ruby-saml 0.8.16 → 0.9
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ruby-saml might be problematic. Click here for more details.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +1 -6
- data/Gemfile +2 -12
- data/README.md +363 -35
- data/Rakefile +14 -0
- data/changelog.md +22 -9
- data/lib/onelogin/ruby-saml/attribute_service.rb +34 -0
- data/lib/onelogin/ruby-saml/attributes.rb +26 -64
- data/lib/onelogin/ruby-saml/authrequest.rb +47 -89
- data/lib/onelogin/ruby-saml/idp_metadata_parser.rb +87 -0
- data/lib/onelogin/ruby-saml/logoutrequest.rb +34 -93
- data/lib/onelogin/ruby-saml/logoutresponse.rb +25 -24
- data/lib/onelogin/ruby-saml/metadata.rb +46 -16
- data/lib/onelogin/ruby-saml/response.rb +62 -322
- data/lib/onelogin/ruby-saml/saml_message.rb +78 -0
- data/lib/onelogin/ruby-saml/settings.rb +54 -121
- data/lib/onelogin/ruby-saml/slo_logoutrequest.rb +26 -61
- data/lib/onelogin/ruby-saml/slo_logoutresponse.rb +27 -84
- data/lib/onelogin/ruby-saml/utils.rb +32 -199
- data/lib/onelogin/ruby-saml/version.rb +1 -1
- data/lib/ruby-saml.rb +5 -2
- data/lib/schemas/{saml20assertion_schema.xsd → saml-schema-assertion-2.0.xsd} +283 -283
- 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/{saml20protocol_schema.xsd → saml-schema-protocol-2.0.xsd} +302 -302
- 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 → xenc-schema.xsd} +1 -11
- data/lib/schemas/xml.xsd +287 -0
- data/lib/schemas/{xmldsig_schema.xsd → xmldsig-core-schema.xsd} +0 -9
- data/lib/xml_security.rb +83 -235
- data/ruby-saml.gemspec +1 -0
- data/test/idp_metadata_parser_test.rb +54 -0
- data/test/logoutrequest_test.rb +68 -144
- data/test/logoutresponse_test.rb +43 -25
- data/test/metadata_test.rb +87 -0
- data/test/request_test.rb +103 -90
- data/test/response_test.rb +181 -471
- data/test/responses/idp_descriptor.xml +3 -0
- data/test/responses/logoutresponse_fixtures.rb +5 -5
- data/test/responses/response_no_cert_and_encrypted_attrs.xml +29 -0
- data/test/responses/response_with_multiple_attribute_values.xml +1 -1
- data/test/responses/slo_request.xml +4 -0
- data/test/settings_test.rb +25 -112
- data/test/slo_logoutrequest_test.rb +41 -44
- data/test/slo_logoutresponse_test.rb +87 -167
- data/test/test_helper.rb +27 -102
- data/test/xml_security_test.rb +114 -337
- metadata +34 -84
- data/lib/onelogin/ruby-saml/setting_error.rb +0 -6
- data/test/certificates/certificate.der +0 -0
- data/test/certificates/formatted_certificate +0 -14
- data/test/certificates/formatted_chained_certificate +0 -42
- data/test/certificates/formatted_private_key +0 -12
- data/test/certificates/formatted_rsa_private_key +0 -12
- data/test/certificates/invalid_certificate1 +0 -1
- data/test/certificates/invalid_certificate2 +0 -1
- data/test/certificates/invalid_certificate3 +0 -12
- data/test/certificates/invalid_chained_certificate1 +0 -1
- data/test/certificates/invalid_private_key1 +0 -1
- data/test/certificates/invalid_private_key2 +0 -1
- data/test/certificates/invalid_private_key3 +0 -10
- data/test/certificates/invalid_rsa_private_key1 +0 -1
- data/test/certificates/invalid_rsa_private_key2 +0 -1
- data/test/certificates/invalid_rsa_private_key3 +0 -10
- data/test/certificates/ruby-saml-2.crt +0 -15
- data/test/requests/logoutrequest_fixtures.rb +0 -47
- data/test/responses/encrypted_new_attack.xml.base64 +0 -1
- data/test/responses/invalids/invalid_issuer_assertion.xml.base64 +0 -1
- data/test/responses/invalids/invalid_issuer_message.xml.base64 +0 -1
- data/test/responses/invalids/multiple_signed.xml.base64 +0 -1
- data/test/responses/invalids/no_signature.xml.base64 +0 -1
- data/test/responses/invalids/response_with_concealed_signed_assertion.xml +0 -51
- data/test/responses/invalids/response_with_doubled_signed_assertion.xml +0 -49
- data/test/responses/invalids/signature_wrapping_attack.xml.base64 +0 -1
- data/test/responses/response_node_text_attack.xml.base64 +0 -1
- data/test/responses/response_with_concealed_signed_assertion.xml +0 -51
- data/test/responses/response_with_doubled_signed_assertion.xml +0 -49
- data/test/responses/response_with_multiple_attribute_statements.xml +0 -72
- data/test/responses/response_with_signed_assertion_3.xml +0 -30
- data/test/responses/response_with_signed_message_and_assertion.xml +0 -34
- data/test/responses/response_with_undefined_recipient.xml.base64 +0 -1
- data/test/responses/response_wrapped.xml.base64 +0 -150
- data/test/responses/valid_response.xml.base64 +0 -1
- data/test/responses/valid_response_without_x509certificate.xml.base64 +0 -1
- data/test/utils_test.rb +0 -231
@@ -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
|
+
|
@@ -1,14 +1,4 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
|
-
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
|
3
|
-
"http://www.w3.org/2001/XMLSchema.dtd"
|
4
|
-
[
|
5
|
-
<!ATTLIST schema
|
6
|
-
xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
|
7
|
-
xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'>
|
8
|
-
<!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
|
9
|
-
<!ENTITY % p ''>
|
10
|
-
<!ENTITY % s ''>
|
11
|
-
]>
|
12
2
|
|
13
3
|
<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
|
14
4
|
xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
|
@@ -17,7 +7,7 @@
|
|
17
7
|
elementFormDefault='qualified'>
|
18
8
|
|
19
9
|
<import namespace='http://www.w3.org/2000/09/xmldsig#'
|
20
|
-
schemaLocation='
|
10
|
+
schemaLocation='xmldsig-core-schema.xsd'/>
|
21
11
|
|
22
12
|
<complexType name='EncryptedType' abstract='true'>
|
23
13
|
<sequence>
|
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
|
+
|