]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/schemas/xlink.xsd
Introduce CMS JShell
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / schemas / xlink.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink">
3
4 <xs:annotation>
5 <xs:documentation>This schema document provides attribute declarations and
6 attribute group, complex type and simple type definitions which can be used in
7 the construction of user schemas to define the structure of particular linking
8 constructs, e.g.
9 <![CDATA[
10 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
11 xmlns:xl="http://www.w3.org/1999/xlink">
12
13 <xs:import namespace="http://www.w3.org/1999/xlink"
14 location="http://www.w3.org/1999/xlink.xsd">
15
16 <xs:element name="mySimple">
17 <xs:complexType>
18 ...
19 <xs:attributeGroup ref="xl:simpleAttrs"/>
20 ...
21 </xs:complexType>
22 </xs:element>
23 ...
24 </xs:schema>]]></xs:documentation>
25 </xs:annotation>
26
27 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
28
29 <xs:attribute name="type" type="xlink:typeType"/>
30
31 <xs:simpleType name="typeType">
32 <xs:restriction base="xs:token">
33 <xs:enumeration value="simple"/>
34 <xs:enumeration value="extended"/>
35 <xs:enumeration value="title"/>
36 <xs:enumeration value="resource"/>
37 <xs:enumeration value="locator"/>
38 <xs:enumeration value="arc"/>
39 </xs:restriction>
40 </xs:simpleType>
41
42 <xs:attribute name="href" type="xlink:hrefType"/>
43
44 <xs:simpleType name="hrefType">
45 <xs:restriction base="xs:anyURI"/>
46 </xs:simpleType>
47
48 <xs:attribute name="role" type="xlink:roleType"/>
49
50 <xs:simpleType name="roleType">
51 <xs:restriction base="xs:anyURI">
52 <xs:minLength value="1"/>
53 </xs:restriction>
54 </xs:simpleType>
55
56 <xs:attribute name="arcrole" type="xlink:arcroleType"/>
57
58 <xs:simpleType name="arcroleType">
59 <xs:restriction base="xs:anyURI">
60 <xs:minLength value="1"/>
61 </xs:restriction>
62 </xs:simpleType>
63
64 <xs:attribute name="title" type="xlink:titleAttrType"/>
65
66 <xs:simpleType name="titleAttrType">
67 <xs:restriction base="xs:string"/>
68 </xs:simpleType>
69
70 <xs:attribute name="show" type="xlink:showType"/>
71
72 <xs:simpleType name="showType">
73 <xs:restriction base="xs:token">
74 <xs:enumeration value="new"/>
75 <xs:enumeration value="replace"/>
76 <xs:enumeration value="embed"/>
77 <xs:enumeration value="other"/>
78 <xs:enumeration value="none"/>
79 </xs:restriction>
80 </xs:simpleType>
81
82 <xs:attribute name="actuate" type="xlink:actuateType"/>
83
84 <xs:simpleType name="actuateType">
85 <xs:restriction base="xs:token">
86 <xs:enumeration value="onLoad"/>
87 <xs:enumeration value="onRequest"/>
88 <xs:enumeration value="other"/>
89 <xs:enumeration value="none"/>
90 </xs:restriction>
91 </xs:simpleType>
92
93 <xs:attribute name="label" type="xlink:labelType"/>
94
95 <xs:simpleType name="labelType">
96 <xs:restriction base="xs:NCName"/>
97 </xs:simpleType>
98
99 <xs:attribute name="from" type="xlink:fromType"/>
100
101 <xs:simpleType name="fromType">
102 <xs:restriction base="xs:NCName"/>
103 </xs:simpleType>
104
105 <xs:attribute name="to" type="xlink:toType"/>
106
107 <xs:simpleType name="toType">
108 <xs:restriction base="xs:NCName"/>
109 </xs:simpleType>
110
111 <xs:attributeGroup name="simpleAttrs">
112 <xs:attribute ref="xlink:type" fixed="simple"/>
113 <xs:attribute ref="xlink:href"/>
114 <xs:attribute ref="xlink:role"/>
115 <xs:attribute ref="xlink:arcrole"/>
116 <xs:attribute ref="xlink:title"/>
117 <xs:attribute ref="xlink:show"/>
118 <xs:attribute ref="xlink:actuate"/>
119 </xs:attributeGroup>
120
121 <xs:group name="simpleModel">
122 <xs:sequence>
123 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
124 </xs:sequence>
125 </xs:group>
126
127 <xs:complexType mixed="true" name="simple">
128 <xs:annotation>
129 <xs:documentation>
130 Intended for use as the type of user-declared elements to make them
131 simple links.
132 </xs:documentation>
133 </xs:annotation>
134 <xs:group ref="xlink:simpleModel"/>
135 <xs:attributeGroup ref="xlink:simpleAttrs"/>
136 </xs:complexType>
137
138 <xs:attributeGroup name="extendedAttrs">
139 <xs:attribute ref="xlink:type" fixed="extended" use="required"/>
140 <xs:attribute ref="xlink:role"/>
141 <xs:attribute ref="xlink:title"/>
142 </xs:attributeGroup>
143
144 <xs:group name="extendedModel">
145 <xs:choice>
146 <xs:element ref="xlink:title"/>
147 <xs:element ref="xlink:resource"/>
148 <xs:element ref="xlink:locator"/>
149 <xs:element ref="xlink:arc"/>
150 </xs:choice>
151 </xs:group>
152
153 <xs:complexType name="extended">
154 <xs:annotation>
155 <xs:documentation>
156 Intended for use as the type of user-declared elements to make them
157 extended links.
158 Note that the elements referenced in the content model are all abstract.
159 The intention is that by simply declaring elements with these as their
160 substitutionGroup, all the right things will happen.
161 </xs:documentation>
162 </xs:annotation>
163 <xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded"/>
164 <xs:attributeGroup ref="xlink:extendedAttrs"/>
165 </xs:complexType>
166
167 <xs:element name="title" type="xlink:titleEltType" abstract="true"/>
168
169 <xs:attributeGroup name="titleAttrs">
170 <xs:attribute ref="xlink:type" fixed="title" use="required"/>
171 <xs:attribute ref="xml:lang">
172 <xs:annotation>
173 <xs:documentation>
174 xml:lang is not required, but provides much of the
175 motivation for title elements in addition to attributes, and so
176 is provided here for convenience.
177 </xs:documentation>
178 </xs:annotation>
179 </xs:attribute>
180 </xs:attributeGroup>
181
182 <xs:group name="titleModel">
183 <xs:sequence>
184 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
185 </xs:sequence>
186 </xs:group>
187
188 <xs:complexType mixed="true" name="titleEltType">
189 <xs:group ref="xlink:titleModel"/>
190 <xs:attributeGroup ref="xlink:titleAttrs"/>
191 </xs:complexType>
192
193 <xs:element name="resource" type="xlink:resourceType" abstract="true"/>
194
195 <xs:attributeGroup name="resourceAttrs">
196 <xs:attribute ref="xlink:type" fixed="resource" use="required"/>
197 <xs:attribute ref="xlink:role"/>
198 <xs:attribute ref="xlink:title"/>
199 <xs:attribute ref="xlink:label"/>
200 </xs:attributeGroup>
201
202 <xs:group name="resourceModel">
203 <xs:sequence>
204 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
205 </xs:sequence>
206 </xs:group>
207
208 <xs:complexType mixed="true" name="resourceType">
209 <xs:group ref="xlink:resourceModel"/>
210 <xs:attributeGroup ref="xlink:resourceAttrs"/>
211 </xs:complexType>
212
213 <xs:element name="locator" type="xlink:locatorType" abstract="true"/>
214
215 <xs:attributeGroup name="locatorAttrs">
216 <xs:attribute ref="xlink:type" fixed="locator" use="required"/>
217 <xs:attribute ref="xlink:href" use="required"/>
218 <xs:attribute ref="xlink:role"/>
219 <xs:attribute ref="xlink:title"/>
220 <xs:attribute ref="xlink:label">
221 <xs:annotation>
222 <xs:documentation>
223 label is not required, but locators have no particular
224 XLink function if they are not labeled.
225 </xs:documentation>
226 </xs:annotation>
227 </xs:attribute>
228 </xs:attributeGroup>
229
230 <xs:group name="locatorModel">
231 <xs:sequence>
232 <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
233 </xs:sequence>
234 </xs:group>
235
236 <xs:complexType name="locatorType">
237 <xs:group ref="xlink:locatorModel"/>
238 <xs:attributeGroup ref="xlink:locatorAttrs"/>
239 </xs:complexType>
240
241 <xs:element name="arc" type="xlink:arcType" abstract="true"/>
242
243 <xs:attributeGroup name="arcAttrs">
244 <xs:attribute ref="xlink:type" fixed="arc" use="required"/>
245 <xs:attribute ref="xlink:arcrole"/>
246 <xs:attribute ref="xlink:title"/>
247 <xs:attribute ref="xlink:show"/>
248 <xs:attribute ref="xlink:actuate"/>
249 <xs:attribute ref="xlink:from"/>
250 <xs:attribute ref="xlink:to">
251 <xs:annotation>
252 <xs:documentation>
253 from and to have default behavior when values are missing
254 </xs:documentation>
255 </xs:annotation>
256 </xs:attribute>
257 </xs:attributeGroup>
258
259 <xs:group name="arcModel">
260 <xs:sequence>
261 <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
262 </xs:sequence>
263 </xs:group>
264
265 <xs:complexType name="arcType">
266 <xs:group ref="xlink:arcModel"/>
267 <xs:attributeGroup ref="xlink:arcAttrs"/>
268 </xs:complexType>
269
270 <!-- Hack required for GML support -->
271 <xs:attributeGroup name="simpleLink">
272 <xs:attribute name="type" type="xs:string" use="optional" fixed="simple" form="qualified"/>
273 <xs:attribute ref="xlink:href" use="optional"/>
274 <xs:attribute ref="xlink:role" use="optional"/>
275 <xs:attribute ref="xlink:arcrole" use="optional"/>
276 <xs:attribute ref="xlink:title" use="optional"/>
277 <xs:attribute ref="xlink:show" use="optional"/>
278 <xs:attribute ref="xlink:actuate" use="optional"/>
279 </xs:attributeGroup>
280 </xs:schema>