<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 name="MemberOfLibrary" type="xs:string" />
<xs:element name="MemberType" type="xs:string" />
<xs:element name="MemberValue" type="xs:string" />
- <xs:element name="onequarter" type="xs:string" />
+ <xs:element name="onequarter" />
+ <xs:element name="PRE" />
+ <xs:element name="permille" />
+ <xs:element name="pi" />
+ <xs:element name="pre" />
<xs:element name="ReturnType" type="xs:string" />
<xs:element name="TypeExcluded" type="xs:string" />
<xs:element ref="block" />
<xs:element ref="c" />
<xs:element ref="code" />
+ <xs:element ref="format" />
<xs:element ref="list" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
<xs:element ref="subscript" />
<xs:element ref="sup" />
+ <xs:element ref="pi" />
<xs:element ref="typeparamref" />
</xs:choice>
<xs:attribute ref="subset" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="c" />
<xs:element ref="block" />
+ <xs:element ref="geq" />
+ <xs:element ref="leq" />
<xs:element ref="paramref" />
<xs:element ref="para" />
+ <xs:element ref="permille" />
+ <xs:element ref="plusminus" />
<xs:element ref="SPAN" />
<xs:element ref="see" />
<xs:element ref="sub" />
<xs:element ref="example" />
<xs:element ref="value" />
<xs:element ref="permission" />
+ <xs:element ref="PermissionSet" />
<xs:element ref="altmember" />
<xs:element ref="altcompliant" />
<xs:element ref="since" />
<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:element name="example">
<xs:complexType mixed="true">
<xs:choice maxOccurs="unbounded">
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="code" />
+ <xs:element ref="codelink" />
<xs:element ref="c" />
<xs:element ref="list" />
<xs:element ref="see" />
<xs:complexType mixed="true">
<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:complexType>
</xs:element>
+ <xs:element name="format">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+ </xs:sequence>
+ <xs:attribute ref="type" />
+ </xs:complexType>
+ </xs:element>
+
<xs:element name="interface">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
</xs:complexType>
</xs:element>
- <xs:element name="Libraries">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="Type" minOccurs = "1" maxOccurs="unbounded" />
- </xs:choice>
- </xs:complexType>
- </xs:element>
-
<xs:element name="link">
<xs:complexType>
<xs:simpleContent>
<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="leq" />
<xs:element ref="list" />
<xs:element ref="link" />
<xs:element ref="ul" />
<xs:element ref="c" />
<xs:element ref="onequarter" />
<xs:element ref="sub" />
+ <xs:element ref="superscript" />
<xs:element ref="sup" />
+ <xs:element ref="permille" />
+ <xs:element ref="plusminus" />
<xs:element ref="SPAN" />
+ <xs:element ref="pi" />
+ <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="c" />
+ <xs:element ref="format" />
<xs:element ref="see" />
<xs:element ref="block" />
+ <xs:element ref="geq" />
+ <xs:element ref="leq" />
<xs:element ref="paramref" />
+ <xs:element ref="plusminus" />
<xs:element ref="para" />
<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:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
<xs:element ref="block" />
<xs:element ref="c" />
<xs:element ref="code" />
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="paramref" />
+ <xs:element ref="PRE" />
+ <xs:element ref="pre" />
<xs:element ref="see" />
<xs:element ref="ul" />
<xs:element ref="example" />
<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="list" />
<xs:element ref="para" />
<xs:element ref="paramref" />
+ <xs:element ref="pi" />
<xs:element ref="see" />
+ <xs:element ref="theta" />
<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:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
</xs:element>
<xs:element name="subscript">
- <xs:complexType mixed="true">
+ <xs:complexType>
<xs:attribute name="term" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
<xs:element ref="c" />
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
<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="sup">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="i" />
<xs:element ref="paramref" />
<xs:element ref="typeparamref" />
</xs:choice>
</xs:complexType>
</xs:element>
+ <xs:element name="superscript">
+ <xs:complexType>
+ <xs:attribute name="term" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+
<xs:element name="term">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
<xs:element ref="c" />
+ <xs:element ref="format" />
+ <xs:element ref="geq" />
+ <xs:element ref="leq" />
<xs:element ref="see" />
<xs:element ref="para" />
<xs:element ref="paramref" />
+ <xs:element ref="pi" />
+ <xs:element ref="plusminus" />
<xs:element ref="sup" />
+ <xs:element ref="theta" />
<xs:element ref="typeparamref" />
+ <xs:element ref="whitespace" />
</xs:choice>
</xs:complexType>
</xs:element>
+ <xs:element name="theta" />
+
<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:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="block" />
<xs:element ref="c" />
+ <xs:element ref="format" />
<xs:element ref="para" />
<xs:element ref="paramref" />
<xs:element ref="see" />
<xs:element name="Assembly">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="AssemblyPublicKey" />
+ <xs:element ref="AssemblyCulture" />
<xs:element ref="Attributes" />
</xs:choice>
<xs:attribute ref="Name" />
</xs:complexType>
</xs:element>
+ <!--
+ ECMA 335 CLILibraryTypes.xml support
+ -->
+
+ <xs:element name="Libraries">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="Types" minOccurs = "1" maxOccurs="unbounded" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="codelink">
+ <xs:complexType>
+ <xs:attribute name="SampleID" type="xs:string" />
+ <xs:attribute name="SnippedID" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="filterpriority" type="xs:string" />
+
+ <xs:element name="geq" />
+ <xs:element name="leq" />
+ <xs:element name="plusminus" />
+ <xs:element name="whitespace" />
+
+ <xs:element name="PermissionSet">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="IPermission">
+ <xs:complexType>
+ <xs:attribute name="class" type="xs:string" />
+ <xs:attribute name="Flags" type="xs:string" />
+ <xs:attribute name="Name" type="xs:string" />
+ <xs:attribute name="PathDiscovery" type="xs:string" />
+ <xs:attribute name="PublicKeyBlob" type="xs:string" />
+ <xs:attribute name="Read" type="xs:string" />
+ <xs:attribute name="Unrestricted" type="xs:string" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="Window" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </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>