1 // Author: Dwivedi, Ajay kumar
\r
5 using System.Xml.Serialization;
\r
7 namespace System.Xml.Schema
\r
10 /// Summary description for XmlSchemaDocumentation.
\r
12 public class XmlSchemaDocumentation : XmlSchemaObject
\r
14 private string language;
\r
15 private XmlNode[] markup;
\r
16 private string source;
\r
18 public XmlSchemaDocumentation()
\r
24 public XmlNode[] Markup
\r
26 get{ return markup; }
\r
27 set{ markup = value; }
\r
30 [System.Xml.Serialization.XmlAttribute("source")]
\r
31 public string Source
\r
33 get{ return source; }
\r
34 set{ source = value; }
\r
37 [System.Xml.Serialization.XmlAttribute("xml:lang")]
\r
38 public string Language
\r
40 get{ return language; }
\r
41 set{ language = value; }
\r
46 // xml:lang = language>
\r
47 // Content: ({any})*
\r
49 internal static XmlSchemaDocumentation Read(XmlSchemaReader reader, ValidationEventHandler h, out bool skip)
\r
52 XmlSchemaDocumentation doc = new XmlSchemaDocumentation();
\r
54 reader.MoveToElement();
\r
55 if(reader.NamespaceURI != XmlSchema.Namespace || reader.LocalName != "documentation")
\r
57 error(h,"Should not happen :1: XmlSchemaDocumentation.Read, name="+reader.Name,null);
\r
62 doc.LineNumber = reader.LineNumber;
\r
63 doc.LinePosition = reader.LinePosition;
\r
64 doc.SourceUri = reader.BaseURI;
\r
66 while(reader.MoveToNextAttribute())
\r
68 if(reader.Name == "source")
\r
70 doc.source = reader.Value;
\r
72 else if(reader.Name == "xml:lang")
\r
74 doc.language = reader.Value;
\r
78 error(h,reader.Name + " is not a valid attribute for documentation",null);
\r
82 reader.MoveToElement();
\r
83 if(reader.IsEmptyElement)
\r
87 XmlDocument xmldoc = new XmlDocument();
\r
88 xmldoc.AppendChild(xmldoc.ReadNode(reader));
\r
89 XmlNode root = xmldoc.FirstChild;
\r
90 if(root != null && root.ChildNodes != null)
\r
92 doc.Markup = new XmlNode[root.ChildNodes.Count];
\r
93 for(int i=0;i<root.ChildNodes.Count;i++)
\r
95 doc.Markup[i] = root.ChildNodes[i];
\r
98 if(reader.NodeType == XmlNodeType.Element || reader.NodeType == XmlNodeType.EndElement)
\r