/
metaschema-prose-base.xsd
82 lines (76 loc) · 3.47 KB
/
metaschema-prose-base.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:complexType name="inlineMarkupType" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="inlineMarkupGroup"/>
</xs:choice>
</xs:complexType>
<xs:group name="inlineMarkupGroup">
<xs:choice>
<xs:element name="a" type="anchorType"/>
<xs:element name="insert" type="insertType"/>
<xs:element name="br" />
<xs:group ref="phraseMarkupGroup"/>
</xs:choice>
</xs:group>
<xs:group name="phraseMarkupGroup">
<xs:choice>
<xs:element name="code" type="codeType"/>
<xs:element name="em" type="inlineMarkupType"/>
<xs:element name="i" type="inlineMarkupType"/>
<xs:element name="b" type="inlineMarkupType"/>
<xs:element name="strong" type="inlineMarkupType"/>
<xs:element name="sub" type="inlineMarkupType"/>
<xs:element name="sup" type="inlineMarkupType"/>
<xs:element name="q" type="inlineMarkupType"/>
<xs:element name="img" type="imageType"/>
</xs:choice>
</xs:group>
<xs:complexType name="codeType">
<xs:complexContent>
<xs:extension base="inlineMarkupType">
<xs:attribute name="class" type="xs:token"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="imageType">
<xs:attribute name="alt" type="xs:string"/>
<xs:attribute name="src" use="required" type="xs:anyURI"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
<xs:complexType name="anchorType" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="phraseMarkupGroup"/>
</xs:choice>
<xs:attribute name="href" type="xs:anyURI"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
<!--
A value to be assigned by responder via parameter
(a parameter must be available)
-->
<xs:complexType name="insertType">
<xs:annotation>
<xs:documentation>An insert can be used to identify a placeholder for dynamically inserting text related to a specific object, which is referenced by the object's identifier using an <code>id-ref</code>. This insert mechanism allows the selection of which text value from the object to dynamically include based on the application's display requirements.</xs:documentation>
</xs:annotation>
<xs:attribute name="type" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>The type of object to include from (e.g., parameter, control, component, role, etc.)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id-ref" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>The identity of the object to insert a value for. The identity will be selected from the index of objects of the specified <code>type</code>. The specific value to include is based on the application's display requirements, which will likely use a specific data element associated with the <code>type</code> (e.g., title, identifier, value, etc.) that is appropriate for the application.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!--
Within a selection, a choice - tbd
unlike 'value', choice may have inline stuff as well as 'assign' elements
choice = element choice { (assign | mix)* }
-->
<!--
IDs are required everywhere for now
idAttr = attribute id { xsd:ID }
-->
</xs:schema>