<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- define attributes -->
+ <xs:attribute name="preserve-mono" type="xs:string" />
+ <xs:attribute name="license" type="xs:string" />
+ <xs:attribute name="from" type="xs:string" />
+ <xs:attribute name="modified" type="xs:boolean" />
<xs:attribute name="argnames" type="xs:string" />
<xs:attribute name="cref" type="xs:string" />
<xs:attribute name="Deprecated" type="xs:boolean" />
<xs:attribute name="FullName" type="xs:string" />
<xs:attribute name="FullNameSP" type="xs:string" />
+ <xs:attribute name="id" type="xs:string" />
<xs:attribute name="inherited" type="xs:string" />
<xs:attribute name="language" type="xs:string" />
<xs:attribute name="Language" type="xs:string" />
<xs:attribute name="subset" type="xs:string" />
<xs:attribute name="Value" type="xs:string" />
<xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="tool" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:attribute name="Type" type="xs:string" />
<xs:attribute name="TypeParamName" type="xs:string" />
<xs:element ref="threadsafe" />
<xs:element ref="typeparam" />
<xs:element ref="filterpriority" />
+ <xs:element ref="related" />
</xs:choice>
</xs:complexType>
</xs:element>
+ <xs:simpleType name="relatedType">
+ <xs:restriction base="xs:string">
+ <!-- External code/application samples -->
+ <xs:enumeration value="sample"/>
+ <!-- e.g. ECMA, OPC, OData, ... specs -->
+ <xs:enumeration value="specification"/>
+ <!-- e.g. Apple/Android documentation -->
+ <xs:enumeration value="externalDocumentation" />
+ <!-- e.g. a more in-depth article at docs.xamarin.com -->
+ <xs:enumeration value="article" />
+ <!-- e.g. a small article describing succintly a feature -->
+ <xs:enumeration value="recipe" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="related">
+ <xs:complexType mixed="true">
+ <xs:attribute name="type" type="relatedType" />
+ <xs:attribute name="href" type="xs:anyURI" />
+ </xs:complexType>
+ </xs:element>
+
<xs:element name="enum">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
<xs:element ref="format" />
+ <xs:element ref="list" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
<xs:element name="format">
<xs:complexType>
<xs:sequence>
- <xs:any minOccurs="0" processContents="lax" />
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xs:sequence>
<xs:attribute ref="type" />
</xs:complexType>
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
+ <xs:element ref="i" />
<xs:element ref="format" />
<xs:element ref="see" />
<xs:element ref="geq" />
<xs:element ref="theta" />
<xs:element ref="typeparamref" />
<xs:element ref="whitespace" />
+ <xs:element ref="img" />
</xs:choice>
+ <xs:attribute ref="id" />
+ <xs:attribute ref="tool" />
</xs:complexType>
</xs:element>
+ <xs:element name="img">
+ <xs:complexType>
+ <xs:attribute name="href" type="xs:string" use="required" />
+ <xs:attribute name="class" type="xs:string" use="optional" />
+ </xs:complexType>
+ </xs:element>
+
<xs:element name="param">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="SPAN" />
<xs:element ref="typeparamref" />
<xs:element ref="whitespace" />
+ <xs:element ref="attribution" />
</xs:choice>
+ <xs:attribute ref="preserve-mono" />
<xs:attribute ref="name" use="required" />
</xs:complexType>
</xs:element>
<xs:element ref="list" />
<xs:element ref="SPAN" />
<xs:element ref="typeparamref" />
+ <xs:element ref="attribution" />
</xs:choice>
+ <xs:attribute ref="preserve-mono" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="attribution">
+ <xs:complexType mixed="true">
+ <xs:attribute ref="license" />
+ <xs:attribute ref="from" />
+ <xs:attribute ref="modified" />
</xs:complexType>
</xs:element>
<xs:element name="returns">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="c" />
<xs:element ref="format" />
<xs:element ref="geq" />
<xs:element ref="leq" />
<xs:element ref="typeparamref" />
<xs:element ref="ul" />
<xs:element ref="whitespace" />
+ <xs:element ref="attribution" />
</xs:choice>
+ <xs:attribute ref="preserve-mono" />
</xs:complexType>
</xs:element>
<xs:element ref="typeparamref" />
<xs:element ref="ul" />
<xs:element ref="list" />
+ <xs:element ref="attribution" />
</xs:choice>
+ <xs:attribute ref="preserve-mono" />
</xs:complexType>
</xs:element>
<xs:element name="threadsafe">
<xs:complexType>
<xs:sequence>
- <xs:element ref="para" minOccurs="1" />
+ <xs:element ref="para" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
+ <!--
+ ECMA 334 Annex E Documentation Comments support.
+ -->
+
+ <xs:element name="seealso">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="cref" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="doc">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="assembly">
+ <xs:complexType>
+ <xs:choice>
+ <xs:element name="name" type="xs:string" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="members">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="member">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="seealso" />
+ <xs:element ref="example" />
+ <xs:element ref="exception" />
+ <xs:element ref="param" />
+ <xs:element ref="permission" />
+ <xs:element ref="PermissionSet" />
+ <xs:element ref="remarks" />
+ <xs:element ref="returns" />
+ <xs:element ref="summary" />
+ <xs:element ref="threadsafe" />
+ <xs:element ref="typeparam" />
+ <xs:element ref="value" />
+ </xs:choice>
+ <xs:attribute name="name" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
</xs:schema>