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">
5 <xs:documentation>This schema is not normative, or even definitive. The
6 prose copy in the XLink 1.1 recommendation (http://www.w3.org/TR/xlink11/) is
7 definitive, although it should not differ from this file, except for the
8 absence of these two initial comments.</xs:documentation>
12 <xs:documentation>In keeping with the W3C's standard versioning
13 policy, this schema document will persist at
14 http://www.w3.org/XML/2008/06/xlink.xsd.
15 At the date of issue it can also be found at
16 http://www.w3.org/1999/xlink.xsd.
17 The schema document at that URI may however change in the future,
18 in order to remain compatible with the latest version of XML Schema
19 itself, or with the XLink namespace itself. In other words, if the XML
20 Schema or XLink namespaces change, the version of this document at
21 http://www.w3.org/1999/xlink.xsd will change
22 accordingly; the version at
23 http://www.w3.org/2008/06/xlink.xsd will not change.
28 <xs:documentation>This schema document provides attribute declarations and
29 attribute group, complex type and simple type definitions which can be used in
30 the construction of user schemas to define the structure of particular linking
33 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
34 xmlns:xl="http://www.w3.org/1999/xlink">
36 <xs:import namespace="http://www.w3.org/1999/xlink"
37 location="http://www.w3.org/1999/xlink.xsd">
39 <xs:element name="mySimple">
42 <xs:attributeGroup ref="xl:simpleAttrs"/>
47 </xs:schema>]]></xs:documentation>
50 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
52 <xs:attribute name="type" type="xlink:typeType"/>
54 <xs:simpleType name="typeType">
55 <xs:restriction base="xs:token">
56 <xs:enumeration value="simple"/>
57 <xs:enumeration value="extended"/>
58 <xs:enumeration value="title"/>
59 <xs:enumeration value="resource"/>
60 <xs:enumeration value="locator"/>
61 <xs:enumeration value="arc"/>
65 <xs:attribute name="href" type="xlink:hrefType"/>
67 <xs:simpleType name="hrefType">
68 <xs:restriction base="xs:anyURI"/>
71 <xs:attribute name="role" type="xlink:roleType"/>
73 <xs:simpleType name="roleType">
74 <xs:restriction base="xs:anyURI">
75 <xs:minLength value="1"/>
79 <xs:attribute name="arcrole" type="xlink:arcroleType"/>
81 <xs:simpleType name="arcroleType">
82 <xs:restriction base="xs:anyURI">
83 <xs:minLength value="1"/>
87 <xs:attribute name="title" type="xlink:titleAttrType"/>
89 <xs:simpleType name="titleAttrType">
90 <xs:restriction base="xs:string"/>
93 <xs:attribute name="show" type="xlink:showType"/>
95 <xs:simpleType name="showType">
96 <xs:restriction base="xs:token">
97 <xs:enumeration value="new"/>
98 <xs:enumeration value="replace"/>
99 <xs:enumeration value="embed"/>
100 <xs:enumeration value="other"/>
101 <xs:enumeration value="none"/>
105 <xs:attribute name="actuate" type="xlink:actuateType"/>
107 <xs:simpleType name="actuateType">
108 <xs:restriction base="xs:token">
109 <xs:enumeration value="onLoad"/>
110 <xs:enumeration value="onRequest"/>
111 <xs:enumeration value="other"/>
112 <xs:enumeration value="none"/>
116 <xs:attribute name="label" type="xlink:labelType"/>
118 <xs:simpleType name="labelType">
119 <xs:restriction base="xs:NCName"/>
122 <xs:attribute name="from" type="xlink:fromType"/>
124 <xs:simpleType name="fromType">
125 <xs:restriction base="xs:NCName"/>
128 <xs:attribute name="to" type="xlink:toType"/>
130 <xs:simpleType name="toType">
131 <xs:restriction base="xs:NCName"/>
134 <xs:attributeGroup name="simpleAttrs">
135 <xs:attribute ref="xlink:type" fixed="simple"/>
136 <xs:attribute ref="xlink:href"/>
137 <xs:attribute ref="xlink:role"/>
138 <xs:attribute ref="xlink:arcrole"/>
139 <xs:attribute ref="xlink:title"/>
140 <xs:attribute ref="xlink:show"/>
141 <xs:attribute ref="xlink:actuate"/>
144 <xs:group name="simpleModel">
146 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
150 <xs:complexType mixed="true" name="simple">
153 Intended for use as the type of user-declared elements to make them
157 <xs:group ref="xlink:simpleModel"/>
158 <xs:attributeGroup ref="xlink:simpleAttrs"/>
161 <xs:attributeGroup name="extendedAttrs">
162 <xs:attribute ref="xlink:type" fixed="extended" use="required"/>
163 <xs:attribute ref="xlink:role"/>
164 <xs:attribute ref="xlink:title"/>
167 <xs:group name="extendedModel">
169 <xs:element ref="xlink:title"/>
170 <xs:element ref="xlink:resource"/>
171 <xs:element ref="xlink:locator"/>
172 <xs:element ref="xlink:arc"/>
176 <xs:complexType name="extended">
179 Intended for use as the type of user-declared elements to make them
181 Note that the elements referenced in the content model are all abstract.
182 The intention is that by simply declaring elements with these as their
183 substitutionGroup, all the right things will happen.
186 <xs:group ref="xlink:extendedModel" minOccurs="0" maxOccurs="unbounded"/>
187 <xs:attributeGroup ref="xlink:extendedAttrs"/>
190 <xs:element name="title" type="xlink:titleEltType" abstract="true"/>
192 <xs:attributeGroup name="titleAttrs">
193 <xs:attribute ref="xlink:type" fixed="title" use="required"/>
194 <xs:attribute ref="xml:lang">
197 xml:lang is not required, but provides much of the
198 motivation for title elements in addition to attributes, and so
199 is provided here for convenience.
205 <xs:group name="titleModel">
207 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
211 <xs:complexType mixed="true" name="titleEltType">
212 <xs:group ref="xlink:titleModel"/>
213 <xs:attributeGroup ref="xlink:titleAttrs"/>
216 <xs:element name="resource" type="xlink:resourceType" abstract="true"/>
218 <xs:attributeGroup name="resourceAttrs">
219 <xs:attribute ref="xlink:type" fixed="resource" use="required"/>
220 <xs:attribute ref="xlink:role"/>
221 <xs:attribute ref="xlink:title"/>
222 <xs:attribute ref="xlink:label"/>
225 <xs:group name="resourceModel">
227 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
231 <xs:complexType mixed="true" name="resourceType">
232 <xs:group ref="xlink:resourceModel"/>
233 <xs:attributeGroup ref="xlink:resourceAttrs"/>
236 <xs:element name="locator" type="xlink:locatorType" abstract="true"/>
238 <xs:attributeGroup name="locatorAttrs">
239 <xs:attribute ref="xlink:type" fixed="locator" use="required"/>
240 <xs:attribute ref="xlink:href" use="required"/>
241 <xs:attribute ref="xlink:role"/>
242 <xs:attribute ref="xlink:title"/>
243 <xs:attribute ref="xlink:label">
246 label is not required, but locators have no particular
247 XLink function if they are not labeled.
253 <xs:group name="locatorModel">
255 <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
259 <xs:complexType name="locatorType">
260 <xs:group ref="xlink:locatorModel"/>
261 <xs:attributeGroup ref="xlink:locatorAttrs"/>
264 <xs:element name="arc" type="xlink:arcType" abstract="true"/>
266 <xs:attributeGroup name="arcAttrs">
267 <xs:attribute ref="xlink:type" fixed="arc" use="required"/>
268 <xs:attribute ref="xlink:arcrole"/>
269 <xs:attribute ref="xlink:title"/>
270 <xs:attribute ref="xlink:show"/>
271 <xs:attribute ref="xlink:actuate"/>
272 <xs:attribute ref="xlink:from"/>
273 <xs:attribute ref="xlink:to">
276 from and to have default behavior when values are missing
282 <xs:group name="arcModel">
284 <xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
288 <xs:complexType name="arcType">
289 <xs:group ref="xlink:arcModel"/>
290 <xs:attributeGroup ref="xlink:arcAttrs"/>