samlsso 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +50 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +36 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/samlsso.rb +16 -0
- data/lib/samlsso/attribute_service.rb +32 -0
- data/lib/samlsso/attributes.rb +107 -0
- data/lib/samlsso/authrequest.rb +124 -0
- data/lib/samlsso/idp_metadata_parser.rb +85 -0
- data/lib/samlsso/logging.rb +20 -0
- data/lib/samlsso/logoutrequest.rb +100 -0
- data/lib/samlsso/logoutresponse.rb +110 -0
- data/lib/samlsso/metadata.rb +94 -0
- data/lib/samlsso/response.rb +271 -0
- data/lib/samlsso/saml_message.rb +117 -0
- data/lib/samlsso/settings.rb +115 -0
- data/lib/samlsso/slo_logoutrequest.rb +64 -0
- data/lib/samlsso/slo_logoutresponse.rb +99 -0
- data/lib/samlsso/utils.rb +42 -0
- data/lib/samlsso/validation_error.rb +5 -0
- data/lib/samlsso/version.rb +3 -0
- data/lib/schemas/saml-schema-assertion-2.0.xsd +283 -0
- data/lib/schemas/saml-schema-authn-context-2.0.xsd +23 -0
- data/lib/schemas/saml-schema-authn-context-types-2.0.xsd +821 -0
- data/lib/schemas/saml-schema-metadata-2.0.xsd +339 -0
- data/lib/schemas/saml-schema-protocol-2.0.xsd +302 -0
- data/lib/schemas/sstc-metadata-attr.xsd +35 -0
- data/lib/schemas/sstc-saml-attribute-ext.xsd +25 -0
- data/lib/schemas/sstc-saml-metadata-algsupport-v1.0.xsd +41 -0
- data/lib/schemas/sstc-saml-metadata-ui-v1.0.xsd +89 -0
- data/lib/schemas/xenc-schema.xsd +136 -0
- data/lib/schemas/xml.xsd +287 -0
- data/lib/schemas/xmldsig-core-schema.xsd +309 -0
- data/lib/xml_security.rb +276 -0
- data/samlsso.gemspec +44 -0
- metadata +168 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<schema
|
3
|
+
targetNamespace="urn:oasis:names:tc:SAML:metadata:attribute"
|
4
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
|
6
|
+
xmlns:mdattr="urn:oasis:names:tc:SAML:metadata:attribute"
|
7
|
+
elementFormDefault="unqualified"
|
8
|
+
attributeFormDefault="unqualified"
|
9
|
+
blockDefault="substitution"
|
10
|
+
version="2.0">
|
11
|
+
|
12
|
+
<annotation>
|
13
|
+
<documentation>
|
14
|
+
Document title: SAML V2.0 Metadata Extention for Entity Attributes Schema
|
15
|
+
Document identifier: sstc-metadata-attr.xsd
|
16
|
+
Location: http://www.oasis-open.org/committees/documents.php?wg_abbrev=security
|
17
|
+
Revision history:
|
18
|
+
V1.0 (November 2008):
|
19
|
+
Initial version.
|
20
|
+
</documentation>
|
21
|
+
</annotation>
|
22
|
+
|
23
|
+
<import namespace="urn:oasis:names:tc:SAML:2.0:assertion"
|
24
|
+
schemaLocation="saml-schema-assertion-2.0.xsd"/>
|
25
|
+
|
26
|
+
<element name="EntityAttributes" type="mdattr:EntityAttributesType"/>
|
27
|
+
<complexType name="EntityAttributesType">
|
28
|
+
<choice maxOccurs="unbounded">
|
29
|
+
<element ref="saml:Attribute"/>
|
30
|
+
<element ref="saml:Assertion"/>
|
31
|
+
</choice>
|
32
|
+
</complexType>
|
33
|
+
|
34
|
+
</schema>
|
35
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<schema
|
3
|
+
targetNamespace="urn:oasis:names:tc:SAML:attribute:ext"
|
4
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
5
|
+
elementFormDefault="unqualified"
|
6
|
+
attributeFormDefault="unqualified"
|
7
|
+
blockDefault="substitution"
|
8
|
+
version="2.0">
|
9
|
+
|
10
|
+
<annotation>
|
11
|
+
<documentation>
|
12
|
+
Document title: SAML V2.0 Attribute Extension Schema
|
13
|
+
Document identifier: sstc-saml-attribute-ext.xsd
|
14
|
+
Location: http://www.oasis-open.org/committees/documents.php?wg_abbrev=security
|
15
|
+
Revision history:
|
16
|
+
V1.0 (October 2008):
|
17
|
+
Initial version.
|
18
|
+
</documentation>
|
19
|
+
</annotation>
|
20
|
+
|
21
|
+
<attribute name="OriginalIssuer" type="anyURI"/>
|
22
|
+
<attribute name="LastModified" type="dateTime"/>
|
23
|
+
|
24
|
+
</schema>
|
25
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<schema
|
3
|
+
targetNamespace="urn:oasis:names:tc:SAML:metadata:algsupport"
|
4
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns:alg="urn:oasis:names:tc:SAML:metadata:algsupport"
|
6
|
+
elementFormDefault="unqualified"
|
7
|
+
attributeFormDefault="unqualified"
|
8
|
+
blockDefault="substitution"
|
9
|
+
version="1.0">
|
10
|
+
|
11
|
+
<annotation>
|
12
|
+
<documentation>
|
13
|
+
Document title: Metadata Extension Schema for SAML V2.0 Metadata Profile for Algorithm Support Version 1.0
|
14
|
+
Document identifier: sstc-saml-metadata-algsupport.xsd
|
15
|
+
Location: http://docs.oasis-open.org/security/saml/Post2.0/
|
16
|
+
Revision history:
|
17
|
+
V1.0 (June 2010):
|
18
|
+
Initial version.
|
19
|
+
</documentation>
|
20
|
+
</annotation>
|
21
|
+
|
22
|
+
<element name="DigestMethod" type="alg:DigestMethodType"/>
|
23
|
+
<complexType name="DigestMethodType">
|
24
|
+
<sequence>
|
25
|
+
<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
26
|
+
</sequence>
|
27
|
+
<attribute name="Algorithm" type="anyURI" use="required"/>
|
28
|
+
</complexType>
|
29
|
+
|
30
|
+
<element name="SigningMethod" type="alg:SigningMethodType"/>
|
31
|
+
<complexType name="SigningMethodType">
|
32
|
+
<sequence>
|
33
|
+
<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
34
|
+
</sequence>
|
35
|
+
<attribute name="Algorithm" type="anyURI" use="required"/>
|
36
|
+
<attribute name="MinKeySize" type="positiveInteger"/>
|
37
|
+
<attribute name="MaxKeySize" type="positiveInteger"/>
|
38
|
+
</complexType>
|
39
|
+
|
40
|
+
</schema>
|
41
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<schema
|
3
|
+
targetNamespace="urn:oasis:names:tc:SAML:metadata:ui"
|
4
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
|
6
|
+
xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"
|
7
|
+
elementFormDefault="unqualified"
|
8
|
+
attributeFormDefault="unqualified"
|
9
|
+
blockDefault="substitution"
|
10
|
+
version="1.0">
|
11
|
+
|
12
|
+
<annotation>
|
13
|
+
<documentation>
|
14
|
+
Document title: Metadata Extension Schema for SAML V2.0 Metadata Extensions for Login and Discovery User Interface Version 1.0
|
15
|
+
Document identifier: sstc-saml-metadata-ui-v1.0.xsd
|
16
|
+
Location: http://docs.oasis-open.org/security/saml/Post2.0/
|
17
|
+
Revision history:
|
18
|
+
16 November 2010:
|
19
|
+
Added Keywords element/type.
|
20
|
+
01 November 2010
|
21
|
+
Changed filename.
|
22
|
+
September 2010:
|
23
|
+
Initial version.
|
24
|
+
</documentation>
|
25
|
+
</annotation>
|
26
|
+
|
27
|
+
<import namespace="urn:oasis:names:tc:SAML:2.0:metadata"
|
28
|
+
schemaLocation="saml-schema-metadata-2.0.xsd"/>
|
29
|
+
<import namespace="http://www.w3.org/XML/1998/namespace"
|
30
|
+
schemaLocation="xml.xsd"/>
|
31
|
+
|
32
|
+
<element name="UIInfo" type="mdui:UIInfoType" />
|
33
|
+
<complexType name="UIInfoType">
|
34
|
+
<choice minOccurs="0" maxOccurs="unbounded">
|
35
|
+
<element ref="mdui:DisplayName"/>
|
36
|
+
<element ref="mdui:Description"/>
|
37
|
+
<element ref="mdui:Keywords"/>
|
38
|
+
<element ref="mdui:Logo"/>
|
39
|
+
<element ref="mdui:InformationURL"/>
|
40
|
+
<element ref="mdui:PrivacyStatementURL"/>
|
41
|
+
<any namespace="##other" processContents="lax"/>
|
42
|
+
</choice>
|
43
|
+
</complexType>
|
44
|
+
|
45
|
+
<element name="DisplayName" type="md:localizedNameType"/>
|
46
|
+
<element name="Description" type="md:localizedNameType"/>
|
47
|
+
<element name="InformationURL" type="md:localizedURIType"/>
|
48
|
+
<element name="PrivacyStatementURL" type="md:localizedURIType"/>
|
49
|
+
|
50
|
+
<element name="Keywords" type="mdui:KeywordsType"/>
|
51
|
+
<complexType name="KeywordsType">
|
52
|
+
<simpleContent>
|
53
|
+
<extension base="mdui:listOfStrings">
|
54
|
+
<attribute ref="xml:lang" use="required"/>
|
55
|
+
</extension>
|
56
|
+
</simpleContent>
|
57
|
+
</complexType>
|
58
|
+
|
59
|
+
<simpleType name="listOfStrings">
|
60
|
+
<list itemType="string"/>
|
61
|
+
</simpleType>
|
62
|
+
|
63
|
+
<element name="Logo" type="mdui:LogoType"/>
|
64
|
+
<complexType name="LogoType">
|
65
|
+
<simpleContent>
|
66
|
+
<extension base="anyURI">
|
67
|
+
<attribute name="height" type="positiveInteger" use="required"/>
|
68
|
+
<attribute name="width" type="positiveInteger" use="required"/>
|
69
|
+
<attribute ref="xml:lang"/>
|
70
|
+
</extension>
|
71
|
+
</simpleContent>
|
72
|
+
</complexType>
|
73
|
+
|
74
|
+
<element name="DiscoHints" type="mdui:DiscoHintsType"/>
|
75
|
+
<complexType name="DiscoHintsType">
|
76
|
+
<choice minOccurs="0" maxOccurs="unbounded">
|
77
|
+
<element ref="mdui:IPHint"/>
|
78
|
+
<element ref="mdui:DomainHint"/>
|
79
|
+
<element ref="mdui:GeolocationHint"/>
|
80
|
+
<any namespace="##other" processContents="lax"/>
|
81
|
+
</choice>
|
82
|
+
</complexType>
|
83
|
+
|
84
|
+
<element name="IPHint" type="string"/>
|
85
|
+
<element name="DomainHint" type="string"/>
|
86
|
+
<element name="GeolocationHint" type="anyURI"/>
|
87
|
+
|
88
|
+
</schema>
|
89
|
+
|
@@ -0,0 +1,136 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
|
3
|
+
<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
|
4
|
+
xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
|
5
|
+
xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
|
6
|
+
targetNamespace='http://www.w3.org/2001/04/xmlenc#'
|
7
|
+
elementFormDefault='qualified'>
|
8
|
+
|
9
|
+
<import namespace='http://www.w3.org/2000/09/xmldsig#'
|
10
|
+
schemaLocation='xmldsig-core-schema.xsd'/>
|
11
|
+
|
12
|
+
<complexType name='EncryptedType' abstract='true'>
|
13
|
+
<sequence>
|
14
|
+
<element name='EncryptionMethod' type='xenc:EncryptionMethodType'
|
15
|
+
minOccurs='0'/>
|
16
|
+
<element ref='ds:KeyInfo' minOccurs='0'/>
|
17
|
+
<element ref='xenc:CipherData'/>
|
18
|
+
<element ref='xenc:EncryptionProperties' minOccurs='0'/>
|
19
|
+
</sequence>
|
20
|
+
<attribute name='Id' type='ID' use='optional'/>
|
21
|
+
<attribute name='Type' type='anyURI' use='optional'/>
|
22
|
+
<attribute name='MimeType' type='string' use='optional'/>
|
23
|
+
<attribute name='Encoding' type='anyURI' use='optional'/>
|
24
|
+
</complexType>
|
25
|
+
|
26
|
+
<complexType name='EncryptionMethodType' mixed='true'>
|
27
|
+
<sequence>
|
28
|
+
<element name='KeySize' minOccurs='0' type='xenc:KeySizeType'/>
|
29
|
+
<element name='OAEPparams' minOccurs='0' type='base64Binary'/>
|
30
|
+
<any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
|
31
|
+
</sequence>
|
32
|
+
<attribute name='Algorithm' type='anyURI' use='required'/>
|
33
|
+
</complexType>
|
34
|
+
|
35
|
+
<simpleType name='KeySizeType'>
|
36
|
+
<restriction base="integer"/>
|
37
|
+
</simpleType>
|
38
|
+
|
39
|
+
<element name='CipherData' type='xenc:CipherDataType'/>
|
40
|
+
<complexType name='CipherDataType'>
|
41
|
+
<choice>
|
42
|
+
<element name='CipherValue' type='base64Binary'/>
|
43
|
+
<element ref='xenc:CipherReference'/>
|
44
|
+
</choice>
|
45
|
+
</complexType>
|
46
|
+
|
47
|
+
<element name='CipherReference' type='xenc:CipherReferenceType'/>
|
48
|
+
<complexType name='CipherReferenceType'>
|
49
|
+
<choice>
|
50
|
+
<element name='Transforms' type='xenc:TransformsType' minOccurs='0'/>
|
51
|
+
</choice>
|
52
|
+
<attribute name='URI' type='anyURI' use='required'/>
|
53
|
+
</complexType>
|
54
|
+
|
55
|
+
<complexType name='TransformsType'>
|
56
|
+
<sequence>
|
57
|
+
<element ref='ds:Transform' maxOccurs='unbounded'/>
|
58
|
+
</sequence>
|
59
|
+
</complexType>
|
60
|
+
|
61
|
+
|
62
|
+
<element name='EncryptedData' type='xenc:EncryptedDataType'/>
|
63
|
+
<complexType name='EncryptedDataType'>
|
64
|
+
<complexContent>
|
65
|
+
<extension base='xenc:EncryptedType'>
|
66
|
+
</extension>
|
67
|
+
</complexContent>
|
68
|
+
</complexType>
|
69
|
+
|
70
|
+
<!-- Children of ds:KeyInfo -->
|
71
|
+
|
72
|
+
<element name='EncryptedKey' type='xenc:EncryptedKeyType'/>
|
73
|
+
<complexType name='EncryptedKeyType'>
|
74
|
+
<complexContent>
|
75
|
+
<extension base='xenc:EncryptedType'>
|
76
|
+
<sequence>
|
77
|
+
<element ref='xenc:ReferenceList' minOccurs='0'/>
|
78
|
+
<element name='CarriedKeyName' type='string' minOccurs='0'/>
|
79
|
+
</sequence>
|
80
|
+
<attribute name='Recipient' type='string'
|
81
|
+
use='optional'/>
|
82
|
+
</extension>
|
83
|
+
</complexContent>
|
84
|
+
</complexType>
|
85
|
+
|
86
|
+
<element name="AgreementMethod" type="xenc:AgreementMethodType"/>
|
87
|
+
<complexType name="AgreementMethodType" mixed="true">
|
88
|
+
<sequence>
|
89
|
+
<element name="KA-Nonce" minOccurs="0" type="base64Binary"/>
|
90
|
+
<!-- <element ref="ds:DigestMethod" minOccurs="0"/> -->
|
91
|
+
<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
|
92
|
+
<element name="OriginatorKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
93
|
+
<element name="RecipientKeyInfo" minOccurs="0" type="ds:KeyInfoType"/>
|
94
|
+
</sequence>
|
95
|
+
<attribute name="Algorithm" type="anyURI" use="required"/>
|
96
|
+
</complexType>
|
97
|
+
|
98
|
+
<!-- End Children of ds:KeyInfo -->
|
99
|
+
|
100
|
+
<element name='ReferenceList'>
|
101
|
+
<complexType>
|
102
|
+
<choice minOccurs='1' maxOccurs='unbounded'>
|
103
|
+
<element name='DataReference' type='xenc:ReferenceType'/>
|
104
|
+
<element name='KeyReference' type='xenc:ReferenceType'/>
|
105
|
+
</choice>
|
106
|
+
</complexType>
|
107
|
+
</element>
|
108
|
+
|
109
|
+
<complexType name='ReferenceType'>
|
110
|
+
<sequence>
|
111
|
+
<any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
|
112
|
+
</sequence>
|
113
|
+
<attribute name='URI' type='anyURI' use='required'/>
|
114
|
+
</complexType>
|
115
|
+
|
116
|
+
|
117
|
+
<element name='EncryptionProperties' type='xenc:EncryptionPropertiesType'/>
|
118
|
+
<complexType name='EncryptionPropertiesType'>
|
119
|
+
<sequence>
|
120
|
+
<element ref='xenc:EncryptionProperty' maxOccurs='unbounded'/>
|
121
|
+
</sequence>
|
122
|
+
<attribute name='Id' type='ID' use='optional'/>
|
123
|
+
</complexType>
|
124
|
+
|
125
|
+
<element name='EncryptionProperty' type='xenc:EncryptionPropertyType'/>
|
126
|
+
<complexType name='EncryptionPropertyType' mixed='true'>
|
127
|
+
<choice maxOccurs='unbounded'>
|
128
|
+
<any namespace='##other' processContents='lax'/>
|
129
|
+
</choice>
|
130
|
+
<attribute name='Target' type='anyURI' use='optional'/>
|
131
|
+
<attribute name='Id' type='ID' use='optional'/>
|
132
|
+
<anyAttribute namespace="http://www.w3.org/XML/1998/namespace"/>
|
133
|
+
</complexType>
|
134
|
+
|
135
|
+
</schema>
|
136
|
+
|
data/lib/schemas/xml.xsd
ADDED
@@ -0,0 +1,287 @@
|
|
1
|
+
<?xml version='1.0'?>
|
2
|
+
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
3
|
+
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
4
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns ="http://www.w3.org/1999/xhtml"
|
6
|
+
xml:lang="en">
|
7
|
+
|
8
|
+
<xs:annotation>
|
9
|
+
<xs:documentation>
|
10
|
+
<div>
|
11
|
+
<h1>About the XML namespace</h1>
|
12
|
+
|
13
|
+
<div class="bodytext">
|
14
|
+
<p>
|
15
|
+
This schema document describes the XML namespace, in a form
|
16
|
+
suitable for import by other schema documents.
|
17
|
+
</p>
|
18
|
+
<p>
|
19
|
+
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
20
|
+
http://www.w3.org/XML/1998/namespace.html</a> and
|
21
|
+
<a href="http://www.w3.org/TR/REC-xml">
|
22
|
+
http://www.w3.org/TR/REC-xml</a> for information
|
23
|
+
about this namespace.
|
24
|
+
</p>
|
25
|
+
<p>
|
26
|
+
Note that local names in this namespace are intended to be
|
27
|
+
defined only by the World Wide Web Consortium or its subgroups.
|
28
|
+
The names currently defined in this namespace are listed below.
|
29
|
+
They should not be used with conflicting semantics by any Working
|
30
|
+
Group, specification, or document instance.
|
31
|
+
</p>
|
32
|
+
<p>
|
33
|
+
See further below in this document for more information about <a
|
34
|
+
href="#usage">how to refer to this schema document from your own
|
35
|
+
XSD schema documents</a> and about <a href="#nsversioning">the
|
36
|
+
namespace-versioning policy governing this schema document</a>.
|
37
|
+
</p>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
</xs:documentation>
|
41
|
+
</xs:annotation>
|
42
|
+
|
43
|
+
<xs:attribute name="lang">
|
44
|
+
<xs:annotation>
|
45
|
+
<xs:documentation>
|
46
|
+
<div>
|
47
|
+
|
48
|
+
<h3>lang (as an attribute name)</h3>
|
49
|
+
<p>
|
50
|
+
denotes an attribute whose value
|
51
|
+
is a language code for the natural language of the content of
|
52
|
+
any element; its value is inherited. This name is reserved
|
53
|
+
by virtue of its definition in the XML specification.</p>
|
54
|
+
|
55
|
+
</div>
|
56
|
+
<div>
|
57
|
+
<h4>Notes</h4>
|
58
|
+
<p>
|
59
|
+
Attempting to install the relevant ISO 2- and 3-letter
|
60
|
+
codes as the enumerated possible values is probably never
|
61
|
+
going to be a realistic possibility.
|
62
|
+
</p>
|
63
|
+
<p>
|
64
|
+
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
65
|
+
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
66
|
+
and the IANA language subtag registry at
|
67
|
+
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
68
|
+
http://www.iana.org/assignments/language-subtag-registry</a>
|
69
|
+
for further information.
|
70
|
+
</p>
|
71
|
+
<p>
|
72
|
+
The union allows for the 'un-declaration' of xml:lang with
|
73
|
+
the empty string.
|
74
|
+
</p>
|
75
|
+
</div>
|
76
|
+
</xs:documentation>
|
77
|
+
</xs:annotation>
|
78
|
+
<xs:simpleType>
|
79
|
+
<xs:union memberTypes="xs:language">
|
80
|
+
<xs:simpleType>
|
81
|
+
<xs:restriction base="xs:string">
|
82
|
+
<xs:enumeration value=""/>
|
83
|
+
</xs:restriction>
|
84
|
+
</xs:simpleType>
|
85
|
+
</xs:union>
|
86
|
+
</xs:simpleType>
|
87
|
+
</xs:attribute>
|
88
|
+
|
89
|
+
<xs:attribute name="space">
|
90
|
+
<xs:annotation>
|
91
|
+
<xs:documentation>
|
92
|
+
<div>
|
93
|
+
|
94
|
+
<h3>space (as an attribute name)</h3>
|
95
|
+
<p>
|
96
|
+
denotes an attribute whose
|
97
|
+
value is a keyword indicating what whitespace processing
|
98
|
+
discipline is intended for the content of the element; its
|
99
|
+
value is inherited. This name is reserved by virtue of its
|
100
|
+
definition in the XML specification.</p>
|
101
|
+
|
102
|
+
</div>
|
103
|
+
</xs:documentation>
|
104
|
+
</xs:annotation>
|
105
|
+
<xs:simpleType>
|
106
|
+
<xs:restriction base="xs:NCName">
|
107
|
+
<xs:enumeration value="default"/>
|
108
|
+
<xs:enumeration value="preserve"/>
|
109
|
+
</xs:restriction>
|
110
|
+
</xs:simpleType>
|
111
|
+
</xs:attribute>
|
112
|
+
|
113
|
+
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
114
|
+
<xs:documentation>
|
115
|
+
<div>
|
116
|
+
|
117
|
+
<h3>base (as an attribute name)</h3>
|
118
|
+
<p>
|
119
|
+
denotes an attribute whose value
|
120
|
+
provides a URI to be used as the base for interpreting any
|
121
|
+
relative URIs in the scope of the element on which it
|
122
|
+
appears; its value is inherited. This name is reserved
|
123
|
+
by virtue of its definition in the XML Base specification.</p>
|
124
|
+
|
125
|
+
<p>
|
126
|
+
See <a
|
127
|
+
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
128
|
+
for information about this attribute.
|
129
|
+
</p>
|
130
|
+
</div>
|
131
|
+
</xs:documentation>
|
132
|
+
</xs:annotation>
|
133
|
+
</xs:attribute>
|
134
|
+
|
135
|
+
<xs:attribute name="id" type="xs:ID">
|
136
|
+
<xs:annotation>
|
137
|
+
<xs:documentation>
|
138
|
+
<div>
|
139
|
+
|
140
|
+
<h3>id (as an attribute name)</h3>
|
141
|
+
<p>
|
142
|
+
denotes an attribute whose value
|
143
|
+
should be interpreted as if declared to be of type ID.
|
144
|
+
This name is reserved by virtue of its definition in the
|
145
|
+
xml:id specification.</p>
|
146
|
+
|
147
|
+
<p>
|
148
|
+
See <a
|
149
|
+
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
150
|
+
for information about this attribute.
|
151
|
+
</p>
|
152
|
+
</div>
|
153
|
+
</xs:documentation>
|
154
|
+
</xs:annotation>
|
155
|
+
</xs:attribute>
|
156
|
+
|
157
|
+
<xs:attributeGroup name="specialAttrs">
|
158
|
+
<xs:attribute ref="xml:base"/>
|
159
|
+
<xs:attribute ref="xml:lang"/>
|
160
|
+
<xs:attribute ref="xml:space"/>
|
161
|
+
<xs:attribute ref="xml:id"/>
|
162
|
+
</xs:attributeGroup>
|
163
|
+
|
164
|
+
<xs:annotation>
|
165
|
+
<xs:documentation>
|
166
|
+
<div>
|
167
|
+
|
168
|
+
<h3>Father (in any context at all)</h3>
|
169
|
+
|
170
|
+
<div class="bodytext">
|
171
|
+
<p>
|
172
|
+
denotes Jon Bosak, the chair of
|
173
|
+
the original XML Working Group. This name is reserved by
|
174
|
+
the following decision of the W3C XML Plenary and
|
175
|
+
XML Coordination groups:
|
176
|
+
</p>
|
177
|
+
<blockquote>
|
178
|
+
<p>
|
179
|
+
In appreciation for his vision, leadership and
|
180
|
+
dedication the W3C XML Plenary on this 10th day of
|
181
|
+
February, 2000, reserves for Jon Bosak in perpetuity
|
182
|
+
the XML name "xml:Father".
|
183
|
+
</p>
|
184
|
+
</blockquote>
|
185
|
+
</div>
|
186
|
+
</div>
|
187
|
+
</xs:documentation>
|
188
|
+
</xs:annotation>
|
189
|
+
|
190
|
+
<xs:annotation>
|
191
|
+
<xs:documentation>
|
192
|
+
<div xml:id="usage" id="usage">
|
193
|
+
<h2><a name="usage">About this schema document</a></h2>
|
194
|
+
|
195
|
+
<div class="bodytext">
|
196
|
+
<p>
|
197
|
+
This schema defines attributes and an attribute group suitable
|
198
|
+
for use by schemas wishing to allow <code>xml:base</code>,
|
199
|
+
<code>xml:lang</code>, <code>xml:space</code> or
|
200
|
+
<code>xml:id</code> attributes on elements they define.
|
201
|
+
</p>
|
202
|
+
<p>
|
203
|
+
To enable this, such a schema must import this schema for
|
204
|
+
the XML namespace, e.g. as follows:
|
205
|
+
</p>
|
206
|
+
<pre>
|
207
|
+
<schema . . .>
|
208
|
+
. . .
|
209
|
+
<import namespace="http://www.w3.org/XML/1998/namespace"
|
210
|
+
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
211
|
+
</pre>
|
212
|
+
<p>
|
213
|
+
or
|
214
|
+
</p>
|
215
|
+
<pre>
|
216
|
+
<import namespace="http://www.w3.org/XML/1998/namespace"
|
217
|
+
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
218
|
+
</pre>
|
219
|
+
<p>
|
220
|
+
Subsequently, qualified reference to any of the attributes or the
|
221
|
+
group defined below will have the desired effect, e.g.
|
222
|
+
</p>
|
223
|
+
<pre>
|
224
|
+
<type . . .>
|
225
|
+
. . .
|
226
|
+
<attributeGroup ref="xml:specialAttrs"/>
|
227
|
+
</pre>
|
228
|
+
<p>
|
229
|
+
will define a type which will schema-validate an instance element
|
230
|
+
with any of those attributes.
|
231
|
+
</p>
|
232
|
+
</div>
|
233
|
+
</div>
|
234
|
+
</xs:documentation>
|
235
|
+
</xs:annotation>
|
236
|
+
|
237
|
+
<xs:annotation>
|
238
|
+
<xs:documentation>
|
239
|
+
<div id="nsversioning" xml:id="nsversioning">
|
240
|
+
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
241
|
+
<div class="bodytext">
|
242
|
+
<p>
|
243
|
+
In keeping with the XML Schema WG's standard versioning
|
244
|
+
policy, this schema document will persist at
|
245
|
+
<a href="http://www.w3.org/2009/01/xml.xsd">
|
246
|
+
http://www.w3.org/2009/01/xml.xsd</a>.
|
247
|
+
</p>
|
248
|
+
<p>
|
249
|
+
At the date of issue it can also be found at
|
250
|
+
<a href="http://www.w3.org/2001/xml.xsd">
|
251
|
+
http://www.w3.org/2001/xml.xsd</a>.
|
252
|
+
</p>
|
253
|
+
<p>
|
254
|
+
The schema document at that URI may however change in the future,
|
255
|
+
in order to remain compatible with the latest version of XML
|
256
|
+
Schema itself, or with the XML namespace itself. In other words,
|
257
|
+
if the XML Schema or XML namespaces change, the version of this
|
258
|
+
document at <a href="http://www.w3.org/2001/xml.xsd">
|
259
|
+
http://www.w3.org/2001/xml.xsd
|
260
|
+
</a>
|
261
|
+
will change accordingly; the version at
|
262
|
+
<a href="http://www.w3.org/2009/01/xml.xsd">
|
263
|
+
http://www.w3.org/2009/01/xml.xsd
|
264
|
+
</a>
|
265
|
+
will not change.
|
266
|
+
</p>
|
267
|
+
<p>
|
268
|
+
Previous dated (and unchanging) versions of this schema
|
269
|
+
document are at:
|
270
|
+
</p>
|
271
|
+
<ul>
|
272
|
+
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
273
|
+
http://www.w3.org/2009/01/xml.xsd</a></li>
|
274
|
+
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
275
|
+
http://www.w3.org/2007/08/xml.xsd</a></li>
|
276
|
+
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
277
|
+
http://www.w3.org/2004/10/xml.xsd</a></li>
|
278
|
+
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
279
|
+
http://www.w3.org/2001/03/xml.xsd</a></li>
|
280
|
+
</ul>
|
281
|
+
</div>
|
282
|
+
</div>
|
283
|
+
</xs:documentation>
|
284
|
+
</xs:annotation>
|
285
|
+
|
286
|
+
</xs:schema>
|
287
|
+
|