1 <?xml version="1.0" encoding="UTF-8"?>
3 Author: John Luke <john.luke@gmail.com>
4 This is a (not very strict) schema for the monodoc
7 make base type for summary, remarks, returns, etc
8 alias duplicate attributes
9 make stricter in order and occurance
10 add masterdoc support?
12 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
14 <!-- define attributes -->
15 <xs:attribute name="preserve-mono" type="xs:string" />
16 <xs:attribute name="license" type="xs:string" />
17 <xs:attribute name="from" type="xs:string" />
18 <xs:attribute name="modified" type="xs:boolean" />
19 <xs:attribute name="argnames" type="xs:string" />
20 <xs:attribute name="cref" type="xs:string" />
21 <xs:attribute name="Deprecated" type="xs:boolean" />
22 <xs:attribute name="FullName" type="xs:string" />
23 <xs:attribute name="FullNameSP" type="xs:string" />
24 <xs:attribute name="id" type="xs:string" />
25 <xs:attribute name="inherited" type="xs:string" />
26 <xs:attribute name="language" type="xs:string" />
27 <xs:attribute name="Language" type="xs:string" />
28 <xs:attribute name="lang" type="xs:string" />
29 <xs:attribute name="langword" type="xs:string" />
30 <xs:attribute name="Library" type="xs:string" />
31 <xs:attribute name="location" type="xs:string" />
32 <xs:attribute name="Maintainer" type="xs:string" />
33 <xs:attribute name="MemberName" type="xs:string" />
34 <xs:attribute name="name" type="xs:string" />
35 <xs:attribute name="Name" type="xs:string" />
36 <xs:attribute name="namespace" type="xs:string" />
37 <xs:attribute name="propertytype" type="xs:string" />
38 <xs:attribute name="qualify" type="xs:boolean" />
39 <xs:attribute name="RefType" type="xs:string" />
40 <xs:attribute name="returntype" type="xs:string" />
41 <xs:attribute name="source" type="xs:string" />
42 <xs:attribute name="src" type="xs:string" />
43 <xs:attribute name="subset" type="xs:string" />
44 <xs:attribute name="Value" type="xs:string" />
45 <xs:attribute name="version" type="xs:string" />
46 <xs:attribute name="tool" type="xs:string" />
47 <xs:attribute name="type" type="xs:string" />
48 <xs:attribute name="Type" type="xs:string" />
49 <xs:attribute name="TypeParamName" type="xs:string" />
51 <!-- define simple elements -->
52 <xs:element name="AssemblyName" type="xs:string" />
53 <xs:element name="AssemblyPublicKey" type="xs:string" />
54 <xs:element name="AssemblyVersion" type="xs:string" />
55 <xs:element name="AssemblyCulture" type="xs:string" />
56 <xs:element name="AttributeName" type="xs:string" />
57 <xs:element name="BaseTypeName" type="xs:string" />
58 <xs:element name="Excluded" type="xs:string" />
59 <xs:element name="ExcludedBaseTypeName" type="xs:string" />
60 <xs:element name="ExcludedLibrary" type="xs:string" />
61 <xs:element name="ExcludedLibraryName" type="xs:string" />
62 <xs:element name="ExcludedTypeName" type="xs:string" />
63 <xs:element name="i" type="xs:string" />
64 <xs:element name="InterfaceName" type="xs:string" />
65 <xs:element name="li" type="xs:string" />
66 <xs:element name="MemberOfLibrary" type="xs:string" />
67 <xs:element name="MemberType" type="xs:string" />
68 <xs:element name="MemberValue" type="xs:string" />
69 <xs:element name="onequarter" />
70 <xs:element name="PRE" />
71 <xs:element name="permille" />
72 <xs:element name="pi" />
73 <xs:element name="pre" />
74 <xs:element name="ReturnType" type="xs:string" />
75 <xs:element name="TypeExcluded" type="xs:string" />
77 <!-- define complex elements -->
78 <xs:element name="altcompliant">
80 <xs:attribute ref="cref" />
84 <xs:element name="altmember">
87 <xs:extension base="xs:string">
88 <xs:attribute ref="cref" />
94 <xs:element name="AssemblyInfo">
97 <xs:element ref="AssemblyName" minOccurs="0" />
98 <xs:element ref="AssemblyPublicKey" minOccurs="0" />
99 <xs:element ref="AssemblyVersion" minOccurs="0" maxOccurs="unbounded" />
100 <xs:element ref="AssemblyCulture" minOccurs="0" />
101 <xs:element ref="Attributes" minOccurs="0" />
106 <xs:element name="Attribute">
109 <xs:element ref="AttributeName" />
110 <xs:element ref="Excluded" minOccurs="0" />
111 <xs:element ref="ExcludedTypeName" minOccurs="0" />
112 <xs:element ref="ExcludedLibraryName" minOccurs="0" />
117 <xs:element name="Attributes">
120 <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded" />
125 <xs:element name="Base">
128 <xs:element ref="BaseTypeName" minOccurs="0" />
129 <xs:element ref="BaseTypeArguments" minOccurs="0" />
130 <xs:element ref="ExcludedBaseTypeName" minOccurs="0" />
131 <xs:element ref="ExcludedLibraryName" minOccurs="0" />
136 <xs:element name="BaseTypeArgument">
137 <xs:complexType mixed="true">
138 <xs:attribute ref="TypeParamName" />
142 <xs:element name="BaseTypeArguments">
145 <xs:element ref="BaseTypeArgument" minOccurs="0" />
150 <xs:element name="block">
151 <xs:complexType mixed="true">
152 <xs:choice minOccurs="0" maxOccurs="unbounded">
153 <xs:element ref="block" />
154 <xs:element ref="c" />
155 <xs:element ref="code" />
156 <xs:element ref="format" />
157 <xs:element ref="list" />
158 <xs:element ref="para" />
159 <xs:element ref="paramref" />
160 <xs:element ref="see" />
161 <xs:element ref="subscript" />
162 <xs:element ref="sup" />
163 <xs:element ref="pi" />
164 <xs:element ref="typeparamref" />
166 <xs:attribute ref="subset" />
167 <xs:attribute ref="type" />
171 <xs:element name="c">
172 <xs:complexType mixed="true">
173 <xs:choice minOccurs="0" maxOccurs="unbounded">
174 <xs:element ref="code" />
175 <xs:element ref="para" />
176 <xs:element ref="paramref" />
177 <xs:element ref="see" />
178 <xs:element ref="typeparamref" />
183 <xs:element name="class">
185 <xs:choice minOccurs="0" maxOccurs="unbounded">
186 <xs:element ref="constructor" />
187 <xs:element ref="property" />
188 <xs:element ref="method" />
189 <xs:element ref="field" />
190 <xs:element ref="operator" />
191 <xs:element ref="event" />
192 <xs:element ref="enum" />
193 <xs:element ref="class" />
194 <xs:element ref="struct" />
195 <xs:element ref="interface" />
196 <xs:element ref="delegate" />
198 <xs:attribute ref="name" />
199 <xs:attribute ref="namespace" />
203 <xs:element name="code">
206 <xs:extension base="xs:string">
207 <xs:attribute ref="lang" />
208 <xs:attribute ref="language" />
209 <xs:attribute ref="source" />
210 <xs:attribute ref="src" />
216 <xs:element name="constructor">
218 <xs:attribute ref="name" />
219 <xs:attribute ref="argnames" />
223 <xs:element name="delegate">
225 <xs:choice maxOccurs="unbounded">
226 <xs:element ref="constructor" />
227 <xs:element ref="method" />
228 <xs:element ref="property" />
229 <xs:element ref="operator" />
231 <xs:attribute ref="name" />
232 <xs:attribute ref="namespace" />
236 <xs:element name="description">
237 <xs:complexType mixed="true">
238 <xs:choice minOccurs="0" maxOccurs="unbounded">
239 <xs:element ref="c" />
240 <xs:element ref="block" />
241 <xs:element ref="geq" />
242 <xs:element ref="leq" />
243 <xs:element ref="paramref" />
244 <xs:element ref="para" />
245 <xs:element ref="permille" />
246 <xs:element ref="plusminus" />
247 <xs:element ref="SPAN" />
248 <xs:element ref="see" />
249 <xs:element ref="sub" />
250 <xs:element ref="typeparamref" />
255 <xs:element name="Docs">
257 <xs:choice minOccurs="0" maxOccurs="unbounded">
258 <xs:element ref="summary" />
259 <xs:element ref="param" />
260 <xs:element ref="exception" />
261 <xs:element ref="returns" />
262 <xs:element ref="remarks" />
263 <xs:element ref="example" />
264 <xs:element ref="value" />
265 <xs:element ref="permission" />
266 <xs:element ref="PermissionSet" />
267 <xs:element ref="altmember" />
268 <xs:element ref="altcompliant" />
269 <xs:element ref="since" />
270 <xs:element ref="threadsafe" />
271 <xs:element ref="typeparam" />
272 <xs:element ref="filterpriority" />
273 <xs:element ref="related" />
278 <xs:simpleType name="relatedType">
279 <xs:restriction base="xs:string">
280 <!-- External code/application samples -->
281 <xs:enumeration value="sample"/>
282 <!-- e.g. ECMA, OPC, OData, ... specs -->
283 <xs:enumeration value="specification"/>
284 <!-- e.g. Apple/Android documentation -->
285 <xs:enumeration value="externalDocumentation" />
286 <!-- e.g. a more in-depth article at docs.xamarin.com -->
287 <xs:enumeration value="article" />
288 <!-- e.g. a small article describing succintly a feature -->
289 <xs:enumeration value="recipe" />
293 <xs:element name="related">
294 <xs:complexType mixed="true">
295 <xs:attribute name="type" type="relatedType" />
296 <xs:attribute name="href" type="xs:anyURI" />
300 <xs:element name="enum">
302 <xs:choice minOccurs="0" maxOccurs="unbounded">
303 <xs:element ref="field" />
304 <xs:element ref="method" />
306 <xs:attribute ref="name" />
307 <xs:attribute ref="namespace" />
311 <xs:element name="event">
313 <xs:attribute ref="name" />
314 <xs:attribute ref="inherited" />
318 <xs:element name="example">
319 <xs:complexType mixed="true">
320 <xs:choice maxOccurs="unbounded">
321 <xs:element ref="format" />
322 <xs:element ref="para" />
323 <xs:element ref="code" />
324 <xs:element ref="codelink" />
325 <xs:element ref="c" />
326 <xs:element ref="list" />
327 <xs:element ref="see" />
332 <xs:element name="exception">
333 <xs:complexType mixed="true">
334 <xs:choice minOccurs="0" maxOccurs="unbounded">
335 <xs:element ref="block" />
336 <xs:element ref="format" />
337 <xs:element ref="list" />
338 <xs:element ref="para" />
339 <xs:element ref="paramref" />
340 <xs:element ref="see" />
341 <xs:element ref="SPAN" />
342 <xs:element ref="typeparamref" />
344 <xs:attribute ref="cref" />
348 <xs:element name="field">
350 <xs:attribute ref="name" />
351 <xs:attribute ref="inherited" />
355 <xs:element name="format">
358 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
360 <xs:attribute ref="type" />
364 <xs:element name="interface">
366 <xs:choice minOccurs="0" maxOccurs="unbounded">
367 <xs:element ref="constructor" />
368 <xs:element ref="property" />
369 <xs:element ref="method" />
370 <xs:element ref="field" />
371 <xs:element ref="event" />
373 <xs:attribute ref="name" />
374 <xs:attribute ref="namespace" />
378 <xs:element name="Interface">
381 <xs:element ref="InterfaceName" />
382 <xs:element ref="Excluded" minOccurs="0" />
387 <xs:element name="Interfaces">
390 <xs:element ref="Interface" minOccurs="0" maxOccurs="unbounded" />
395 <xs:element name="item">
398 <xs:element ref="term" minOccurs="1" maxOccurs="1" />
399 <xs:element ref="description" minOccurs="0" maxOccurs="unbounded" />
404 <xs:element name="link">
407 <xs:extension base="xs:string">
408 <xs:attribute ref="location" />
414 <xs:element name="list">
417 <xs:element ref="listheader" minOccurs="0" maxOccurs="1" />
418 <xs:element ref="item" minOccurs="0" maxOccurs="unbounded" />
420 <xs:attribute name="type" type="xs:string" />
424 <xs:element name="listheader">
427 <xs:element ref="term" />
428 <xs:element ref="description" maxOccurs="unbounded" />
433 <xs:element name="masterdoc">
435 <xs:choice minOccurs="0" maxOccurs="unbounded">
436 <xs:element ref="class" />
437 <xs:element ref="delegate" />
438 <xs:element ref="interface" />
439 <xs:element ref="struct" />
440 <xs:element ref="enum" />
442 <xs:attribute name="assembly" type="xs:string" />
446 <xs:element name="MemberSignature">
448 <xs:attribute ref="Language" />
449 <xs:attribute ref="Value" />
453 <xs:element name="Link">
455 <xs:attribute ref="Type" use="required" />
456 <xs:attribute name="Member" type="xs:string" use="required" />
460 <xs:element name="Member">
463 <xs:element ref="MemberSignature" minOccurs="1" maxOccurs="unbounded" />
464 <xs:element ref="MemberType" maxOccurs="1" />
465 <xs:element ref="AssemblyInfo" minOccurs="0" maxOccurs="1" />
466 <xs:element ref="Attributes" minOccurs="0" maxOccurs="1" />
467 <xs:element ref="ReturnValue" minOccurs="0" maxOccurs="1" />
468 <xs:element ref="TypeParameters" minOccurs="0" maxOccurs="1" />
469 <xs:element ref="Parameters" minOccurs="0" maxOccurs="1" />
470 <xs:element ref="MemberValue" minOccurs="0" maxOccurs="1" />
471 <xs:element ref="Docs" maxOccurs="1" />
472 <xs:element ref="Excluded" minOccurs="0" maxOccurs="1" />
473 <xs:element ref="ExcludedLibrary" minOccurs="0" maxOccurs="unbounded" />
474 <xs:element ref="Link" minOccurs="0" maxOccurs="1" />
476 <xs:attribute ref="MemberName" />
477 <xs:attribute ref="Deprecated" />
481 <xs:element name="Members">
484 <xs:element ref="Member" minOccurs="0" maxOccurs="unbounded" />
489 <xs:element name="method">
491 <xs:attribute ref="name" />
492 <xs:attribute ref="argnames" />
493 <xs:attribute ref="inherited" />
494 <xs:attribute ref="returntype" />
498 <xs:element name="Namespace">
501 <xs:element ref="Docs" maxOccurs="1" />
503 <xs:attribute ref="Name" />
504 <xs:attribute ref="FullName" />
505 <xs:attribute ref="FullNameSP" />
506 <xs:attribute ref="Maintainer" />
510 <xs:element name="operator">
512 <xs:attribute ref="name" />
513 <xs:attribute ref="argnames" />
517 <xs:element name="para">
518 <xs:complexType mixed="true">
519 <xs:choice minOccurs="0" maxOccurs="unbounded">
520 <xs:element ref="block" />
521 <xs:element ref="i" />
522 <xs:element ref="format" />
523 <xs:element ref="see" />
524 <xs:element ref="geq" />
525 <xs:element ref="leq" />
526 <xs:element ref="list" />
527 <xs:element ref="link" />
528 <xs:element ref="ul" />
529 <xs:element ref="paramref" />
530 <xs:element ref="c" />
531 <xs:element ref="onequarter" />
532 <xs:element ref="sub" />
533 <xs:element ref="superscript" />
534 <xs:element ref="sup" />
535 <xs:element ref="permille" />
536 <xs:element ref="plusminus" />
537 <xs:element ref="SPAN" />
538 <xs:element ref="pi" />
539 <xs:element ref="theta" />
540 <xs:element ref="typeparamref" />
541 <xs:element ref="whitespace" />
542 <xs:element ref="img" />
544 <xs:attribute ref="id" />
545 <xs:attribute ref="tool" />
549 <xs:element name="img">
551 <xs:attribute name="href" type="xs:string" use="required" />
552 <xs:attribute name="class" type="xs:string" use="optional" />
556 <xs:element name="param">
557 <xs:complexType mixed="true">
558 <xs:choice minOccurs="0" maxOccurs="unbounded">
559 <xs:element ref="c" />
560 <xs:element ref="format" />
561 <xs:element ref="see" />
562 <xs:element ref="block" />
563 <xs:element ref="geq" />
564 <xs:element ref="leq" />
565 <xs:element ref="paramref" />
566 <xs:element ref="plusminus" />
567 <xs:element ref="para" />
568 <xs:element ref="SPAN" />
569 <xs:element ref="typeparamref" />
570 <xs:element ref="whitespace" />
571 <xs:element ref="attribution" />
573 <xs:attribute ref="preserve-mono" />
574 <xs:attribute ref="name" use="required" />
578 <xs:element name="paramref">
580 <xs:attribute ref="name" use="required" />
584 <xs:element name="Parameter">
587 <xs:element ref="Attributes" minOccurs="0" maxOccurs="1" />
589 <xs:attribute ref="Name" />
590 <xs:attribute ref="Type" />
591 <xs:attribute ref="RefType" />
595 <xs:element name="Parameters">
598 <xs:element ref="Parameter" minOccurs="0" maxOccurs="unbounded" />
603 <xs:element name="permission">
604 <xs:complexType mixed="true">
605 <xs:choice minOccurs="0" maxOccurs="unbounded">
606 <xs:element ref="block" />
607 <xs:element ref="format" />
608 <xs:element ref="para" />
609 <xs:element ref="paramref" />
610 <xs:element ref="see" />
611 <xs:element ref="typeparamref" />
613 <xs:attribute ref="cref" />
617 <xs:element name="property">
619 <xs:attribute ref="name" />
620 <xs:attribute ref="inherited" />
621 <xs:attribute ref="propertytype" />
625 <xs:element name="remarks">
626 <xs:complexType mixed="true">
627 <xs:choice minOccurs="0" maxOccurs="unbounded">
628 <xs:element ref="block" />
629 <xs:element ref="c" />
630 <xs:element ref="code" />
631 <xs:element ref="format" />
632 <xs:element ref="para" />
633 <xs:element ref="paramref" />
634 <xs:element ref="PRE" />
635 <xs:element ref="pre" />
636 <xs:element ref="see" />
637 <xs:element ref="ul" />
638 <xs:element ref="example" />
639 <xs:element ref="list" />
640 <xs:element ref="SPAN" />
641 <xs:element ref="typeparamref" />
642 <xs:element ref="attribution" />
644 <xs:attribute ref="preserve-mono" />
648 <xs:element name="attribution">
649 <xs:complexType mixed="true">
650 <xs:attribute ref="license" />
651 <xs:attribute ref="from" />
652 <xs:attribute ref="modified" />
656 <xs:element name="returns">
657 <xs:complexType mixed="true">
658 <xs:choice minOccurs="0" maxOccurs="unbounded">
659 <xs:element ref="c" />
660 <xs:element ref="format" />
661 <xs:element ref="geq" />
662 <xs:element ref="leq" />
663 <xs:element ref="list" />
664 <xs:element ref="para" />
665 <xs:element ref="paramref" />
666 <xs:element ref="pi" />
667 <xs:element ref="see" />
668 <xs:element ref="theta" />
669 <xs:element ref="typeparamref" />
670 <xs:element ref="ul" />
671 <xs:element ref="whitespace" />
672 <xs:element ref="attribution" />
674 <xs:attribute ref="preserve-mono" />
678 <xs:element name="ReturnValue">
681 <xs:element ref="ReturnType" minOccurs="0" maxOccurs="1" />
682 <xs:element ref="Attributes" minOccurs="0" />
687 <xs:element name="see">
689 <xs:attribute ref="cref" />
690 <xs:attribute ref="langword" />
691 <xs:attribute ref="qualify" />
695 <xs:element name="since">
697 <xs:attribute ref="version" />
701 <xs:element name="SPAN">
702 <xs:complexType mixed="true">
703 <xs:choice minOccurs="0" maxOccurs="unbounded">
704 <xs:element ref="block" />
705 <xs:element ref="format" />
706 <xs:element ref="para" />
707 <xs:element ref="paramref" />
708 <xs:element ref="see" />
709 <xs:element ref="SPAN" />
710 <xs:element ref="typeparamref" />
712 <xs:attribute ref="version" />
716 <xs:element name="struct">
718 <xs:choice minOccurs="0" maxOccurs="unbounded">
719 <xs:element ref="constructor" />
720 <xs:element ref="property" />
721 <xs:element ref="method" />
722 <xs:element ref="field" />
723 <xs:element ref="operator" />
724 <xs:element ref="struct" />
725 <xs:element ref="class" />
727 <xs:attribute ref="name" />
728 <xs:attribute ref="namespace" />
732 <xs:element name="sub">
733 <xs:complexType mixed="true">
734 <xs:choice minOccurs="0" maxOccurs="unbounded">
735 <xs:element ref="paramref" />
736 <xs:element ref="typeparamref" />
741 <xs:element name="subscript">
743 <xs:attribute name="term" type="xs:string" use="required" />
747 <xs:element name="summary">
748 <xs:complexType mixed="true">
749 <xs:choice minOccurs="0" maxOccurs="unbounded">
750 <xs:element ref="block" />
751 <xs:element ref="c" />
752 <xs:element ref="format" />
753 <xs:element ref="para" />
754 <xs:element ref="paramref" />
755 <xs:element ref="see" />
756 <xs:element ref="typeparamref" />
757 <xs:element ref="ul" />
758 <xs:element ref="list" />
759 <xs:element ref="attribution" />
761 <xs:attribute ref="preserve-mono" />
765 <xs:element name="sup">
766 <xs:complexType mixed="true">
767 <xs:choice minOccurs="0" maxOccurs="unbounded">
768 <xs:element ref="i" />
769 <xs:element ref="paramref" />
770 <xs:element ref="typeparamref" />
775 <xs:element name="superscript">
777 <xs:attribute name="term" type="xs:string" use="required" />
781 <xs:element name="term">
782 <xs:complexType mixed="true">
783 <xs:choice minOccurs="0" maxOccurs="unbounded">
784 <xs:element ref="block" />
785 <xs:element ref="c" />
786 <xs:element ref="format" />
787 <xs:element ref="geq" />
788 <xs:element ref="leq" />
789 <xs:element ref="see" />
790 <xs:element ref="para" />
791 <xs:element ref="paramref" />
792 <xs:element ref="pi" />
793 <xs:element ref="plusminus" />
794 <xs:element ref="sup" />
795 <xs:element ref="theta" />
796 <xs:element ref="typeparamref" />
797 <xs:element ref="whitespace" />
802 <xs:element name="theta" />
804 <xs:element name="threadsafe">
807 <xs:element ref="para" minOccurs="1" maxOccurs="unbounded" />
812 <xs:element name="ThreadingSafetyStatement">
813 <xs:complexType mixed="true">
815 <xs:element ref="link" minOccurs="0" />
820 <xs:element name="ThreadSafetyStatement">
821 <xs:complexType mixed="true">
823 <xs:element ref="link" minOccurs="0" />
828 <xs:element name="Type">
830 <xs:choice maxOccurs="unbounded">
831 <xs:element ref="TypeSignature" minOccurs="1" />
832 <xs:element ref="MemberOfLibrary" minOccurs="0" />
833 <xs:element ref="AssemblyInfo" minOccurs="1" />
834 <xs:element ref="TypeParameters" minOccurs="0" maxOccurs="1" />
835 <xs:element ref="ThreadingSafetyStatement" minOccurs="0" />
836 <xs:element ref="ThreadSafetyStatement" minOccurs="0" />
837 <xs:element ref="Docs" minOccurs="1" />
838 <xs:element ref="Base" minOccurs="1" />
839 <xs:element ref="Interfaces" minOccurs="1" />
840 <xs:element ref="Attributes" minOccurs="1" />
841 <xs:element ref="Members" minOccurs="1" />
842 <xs:element ref="Parameters" minOccurs="0" />
843 <xs:element ref="ReturnValue" minOccurs="0" />
844 <xs:element ref="TypeExcluded" minOccurs="0" />
846 <xs:attribute ref="Name" use="required" />
847 <xs:attribute ref="FullName" use="required" />
848 <xs:attribute ref="FullNameSP" />
849 <xs:attribute ref="Maintainer" />
853 <xs:element name="Types">
855 <xs:choice minOccurs="1" maxOccurs="unbounded">
856 <xs:element ref="Type" />
858 <xs:attribute ref="Library" use="required" />
862 <xs:element name="typeparam">
863 <xs:complexType mixed="true">
864 <xs:choice minOccurs="0" maxOccurs="unbounded">
865 <xs:element ref="block" />
866 <xs:element ref="c" />
867 <xs:element ref="format" />
868 <xs:element ref="para" />
869 <xs:element ref="paramref" />
870 <xs:element ref="see" />
871 <xs:element ref="typeparamref" />
873 <xs:attribute ref="name" use="required" />
877 <xs:element name="typeparamref">
879 <xs:attribute ref="name" use="required" />
883 <xs:element name="TypeParameters">
885 <xs:choice maxOccurs="unbounded">
886 <xs:element ref="TypeParameter" />
891 <xs:element name="TypeParameter">
892 <xs:complexType mixed="true">
893 <xs:choice minOccurs="0" maxOccurs="unbounded">
894 <xs:element ref="Attributes" />
895 <xs:element ref="Constraints" />
897 <xs:attribute ref="Name" use="required" />
901 <xs:element name="Constraints">
902 <xs:complexType mixed="true">
903 <xs:choice minOccurs="0" maxOccurs="unbounded">
904 <xs:element name="ParameterAttribute" type="xs:string" />
905 <xs:element ref="BaseTypeName" />
906 <xs:element ref="InterfaceName" />
911 <xs:element name="TypeSignature">
913 <xs:attribute ref="Language" use="required" />
914 <xs:attribute ref="Value" use="required" />
915 <xs:attribute ref="Maintainer" />
919 <xs:element name="ul">
922 <xs:element ref="li" minOccurs="1" maxOccurs="unbounded" />
927 <xs:element name="value">
928 <xs:complexType mixed="true">
929 <xs:choice minOccurs="0" maxOccurs="unbounded">
930 <xs:element ref="block" />
931 <xs:element ref="c" />
932 <xs:element ref="para" />
933 <xs:element ref="paramref" />
934 <xs:element ref="see" />
935 <xs:element ref="typeparamref" />
936 <xs:element ref="ul" />
937 <xs:element ref="example" />
938 <xs:element ref="list" />
944 index.xml & namespace-name.xml support
947 <!-- define attributes -->
948 <xs:attribute name="Version" type="xs:string" />
949 <xs:attribute name="DisplayName" type="xs:string" />
950 <xs:attribute name="Kind" type="xs:string" />
952 <!-- define simple elements -->
953 <xs:element name="Title" type="xs:string" />
955 <!-- define complex elements -->
956 <xs:element name="Assemblies">
958 <xs:choice minOccurs="0" maxOccurs="unbounded">
959 <xs:element ref="Assembly" />
964 <xs:element name="Assembly">
966 <xs:choice minOccurs="0" maxOccurs="unbounded">
967 <xs:element ref="AssemblyPublicKey" />
968 <xs:element ref="AssemblyCulture" />
969 <xs:element ref="Attributes" />
971 <xs:attribute ref="Name" />
972 <xs:attribute ref="Version" />
976 <xs:element name="Copyright">
977 <xs:complexType mixed="true">
978 <xs:choice minOccurs="0" maxOccurs="unbounded">
979 <xs:element ref="block" />
980 <xs:element ref="code" />
981 <xs:element ref="example" />
982 <xs:element ref="list" />
983 <xs:element ref="para" />
984 <xs:element ref="paramref" />
985 <xs:element ref="see" />
986 <xs:element ref="typeparamref" />
987 <xs:element ref="ul" />
992 <xs:element name="ExtensionMethods">
995 <xs:element ref="ExtensionMethod" minOccurs="0" maxOccurs="unbounded" />
1000 <xs:element name="ExtensionMethod">
1003 <xs:element name="Targets" minOccurs="1" maxOccurs="1">
1005 <xs:choice minOccurs="1" maxOccurs="unbounded">
1006 <xs:element name="Target">
1008 <xs:attribute ref="Type" use="required" />
1014 <xs:element ref="Member" minOccurs="1" maxOccurs="1" />
1019 <xs:element name="Overview">
1021 <xs:choice minOccurs="0" maxOccurs="unbounded">
1022 <xs:element ref="Assemblies" />
1023 <xs:element ref="Copyright" />
1024 <xs:element ref="Remarks" />
1025 <xs:element ref="Title" />
1026 <xs:element name="Types">
1028 <xs:choice minOccurs="0" maxOccurs="unbounded">
1029 <xs:element name="Namespace">
1031 <xs:choice minOccurs="0" maxOccurs="unbounded">
1032 <xs:element name="Type">
1034 <xs:attribute ref="Name" use="required" />
1035 <xs:attribute ref="DisplayName" />
1036 <xs:attribute ref="Kind" />
1040 <xs:attribute ref="Name" />
1046 <xs:element ref="ExtensionMethods" />
1051 <xs:element name="Remarks">
1052 <xs:complexType mixed="true">
1053 <xs:choice minOccurs="0" maxOccurs="unbounded">
1054 <xs:element ref="block" />
1055 <xs:element ref="code" />
1056 <xs:element ref="example" />
1057 <xs:element ref="list" />
1058 <xs:element ref="para" />
1059 <xs:element ref="paramref" />
1060 <xs:element ref="typeparamref" />
1061 <xs:element ref="see" />
1062 <xs:element ref="ul" />
1068 ECMA 335 CLILibraryTypes.xml support
1071 <xs:element name="Libraries">
1073 <xs:choice minOccurs="0" maxOccurs="unbounded">
1074 <xs:element ref="Types" minOccurs = "1" maxOccurs="unbounded" />
1079 <xs:element name="codelink">
1081 <xs:attribute name="SampleID" type="xs:string" />
1082 <xs:attribute name="SnippedID" type="xs:string" />
1086 <xs:element name="filterpriority" type="xs:string" />
1088 <xs:element name="geq" />
1089 <xs:element name="leq" />
1090 <xs:element name="plusminus" />
1091 <xs:element name="whitespace" />
1093 <xs:element name="PermissionSet">
1095 <xs:choice minOccurs="0" maxOccurs="unbounded">
1096 <xs:element name="IPermission">
1098 <xs:attribute name="class" type="xs:string" />
1099 <xs:attribute name="Flags" type="xs:string" />
1100 <xs:attribute name="Name" type="xs:string" />
1101 <xs:attribute name="PathDiscovery" type="xs:string" />
1102 <xs:attribute name="PublicKeyBlob" type="xs:string" />
1103 <xs:attribute name="Read" type="xs:string" />
1104 <xs:attribute name="Unrestricted" type="xs:string" />
1105 <xs:attribute name="version" type="xs:string" />
1106 <xs:attribute name="Window" type="xs:string" />
1114 ECMA 334 Annex E Documentation Comments support.
1117 <xs:element name="seealso">
1120 <xs:extension base="xs:string">
1121 <xs:attribute ref="cref" />
1127 <xs:element name="doc">
1130 <xs:element name="assembly">
1133 <xs:element name="name" type="xs:string" />
1137 <xs:element name="members">
1139 <xs:choice minOccurs="0" maxOccurs="unbounded">
1140 <xs:element name="member">
1142 <xs:choice minOccurs="0" maxOccurs="unbounded">
1143 <xs:element ref="seealso" />
1144 <xs:element ref="example" />
1145 <xs:element ref="exception" />
1146 <xs:element ref="param" />
1147 <xs:element ref="permission" />
1148 <xs:element ref="PermissionSet" />
1149 <xs:element ref="remarks" />
1150 <xs:element ref="returns" />
1151 <xs:element ref="summary" />
1152 <xs:element ref="threadsafe" />
1153 <xs:element ref="typeparam" />
1154 <xs:element ref="value" />
1156 <xs:attribute name="name" type="xs:string" />