nokogiri 1.6.0.rc1 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of nokogiri might be problematic. Click here for more details.
- data/.travis.yml +27 -0
- data/CHANGELOG.ja.rdoc +106 -74
- data/CHANGELOG.rdoc +40 -1
- data/Gemfile +21 -0
- data/Manifest.txt +12 -0
- data/ROADMAP.md +1 -1
- data/ext/nokogiri/extconf.rb +2 -2
- data/ext/nokogiri/html_element_description.c +4 -1
- data/ext/nokogiri/xslt_stylesheet.c +1 -1
- data/lib/nokogiri/version.rb +1 -1
- data/lib/nokogiri/xml/document.rb +8 -1
- data/lib/nokogiri/xml/node.rb +14 -9
- data/lib/nokogiri/xml/node_set.rb +2 -4
- data/lib/xsd/xmlparser/nokogiri.rb +13 -1
- data/test/files/bogus.xml +0 -0
- data/test/files/saml/saml20assertion_schema.xsd +283 -0
- data/test/files/saml/saml20protocol_schema.xsd +302 -0
- data/test/files/saml/xenc_schema.xsd +146 -0
- data/test/files/saml/xmldsig_schema.xsd +318 -0
- data/test/html/test_element_description.rb +5 -0
- data/test/xml/test_document.rb +6 -1
- data/test/xml/test_entity_reference.rb +1 -1
- data/test/xml/test_node.rb +1 -1
- data/test/xml/test_schema.rb +9 -0
- data/test/xslt/test_custom_functions.rb +4 -0
- metadata +17 -10
data/Gemfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
|
4
|
+
|
5
|
+
source "https://rubygems.org/"
|
6
|
+
|
7
|
+
|
8
|
+
gem "hoe-bundler", ">=1.1", :group => [:development, :test]
|
9
|
+
gem "hoe-debugging", ">=1.0.3", :group => [:development, :test]
|
10
|
+
gem "hoe-gemspec", ">=1.0", :group => [:development, :test]
|
11
|
+
gem "hoe-git", ">=1.4", :group => [:development, :test]
|
12
|
+
gem "mini_portile", ">=0.2.2", :group => [:development, :test]
|
13
|
+
gem "minitest", "~>2.2.2", :group => [:development, :test]
|
14
|
+
gem "rake", ">=0.9", :group => [:development, :test]
|
15
|
+
gem "rake-compiler", "~>0.8.0", :group => [:development, :test]
|
16
|
+
gem "racc", ">=1.4.6", :group => [:development, :test], :platform => :ruby
|
17
|
+
gem "rexical", ">=1.0.5", :group => [:development, :test], :platform => :ruby
|
18
|
+
gem "rdoc", "~>3.10", :group => [:development, :test]
|
19
|
+
gem "hoe", "~>2.16", :group => [:development, :test]
|
20
|
+
|
21
|
+
# vim: syntax=ruby
|
data/Manifest.txt
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
.autotest
|
2
2
|
.gemtest
|
3
|
+
.travis.yml
|
3
4
|
CHANGELOG.ja.rdoc
|
4
5
|
CHANGELOG.rdoc
|
5
6
|
C_CODING_STYLE.rdoc
|
7
|
+
Gemfile
|
6
8
|
Manifest.txt
|
7
9
|
README.ja.rdoc
|
8
10
|
README.rdoc
|
@@ -12,6 +14,7 @@ STANDARD_RESPONSES.md
|
|
12
14
|
Y_U_NO_GEMSPEC.md
|
13
15
|
bin/nokogiri
|
14
16
|
build_all
|
17
|
+
dependencies.yml
|
15
18
|
ext/java/nokogiri/EncodingHandler.java
|
16
19
|
ext/java/nokogiri/HtmlDocument.java
|
17
20
|
ext/java/nokogiri/HtmlElementDescription.java
|
@@ -219,6 +222,7 @@ test/files/2ch.html
|
|
219
222
|
test/files/address_book.rlx
|
220
223
|
test/files/address_book.xml
|
221
224
|
test/files/bar/bar.xsd
|
225
|
+
test/files/bogus.xml
|
222
226
|
test/files/dont_hurt_em_why.xml
|
223
227
|
test/files/encoding.html
|
224
228
|
test/files/encoding.xhtml
|
@@ -229,6 +233,10 @@ test/files/metacharset.html
|
|
229
233
|
test/files/noencoding.html
|
230
234
|
test/files/po.xml
|
231
235
|
test/files/po.xsd
|
236
|
+
test/files/saml/saml20assertion_schema.xsd
|
237
|
+
test/files/saml/saml20protocol_schema.xsd
|
238
|
+
test/files/saml/xenc_schema.xsd
|
239
|
+
test/files/saml/xmldsig_schema.xsd
|
232
240
|
test/files/shift_jis.html
|
233
241
|
test/files/shift_jis.xml
|
234
242
|
test/files/snuggles.xml
|
@@ -253,6 +261,10 @@ test/html/test_element_description.rb
|
|
253
261
|
test/html/test_named_characters.rb
|
254
262
|
test/html/test_node.rb
|
255
263
|
test/html/test_node_encoding.rb
|
264
|
+
test/namespaces/test_additional_namespaces_in_builder_doc.rb
|
265
|
+
test/namespaces/test_namespaces_in_builder_doc.rb
|
266
|
+
test/namespaces/test_namespaces_in_created_doc.rb
|
267
|
+
test/namespaces/test_namespaces_in_parsed_doc.rb
|
256
268
|
test/test_convert_xpath.rb
|
257
269
|
test/test_css_cache.rb
|
258
270
|
test/test_encoding_handler.rb
|
data/ROADMAP.md
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
* https://github.com/sparklemotion/nokogiri/issues/451
|
33
33
|
chained :not pseudoselectors
|
34
34
|
|
35
|
-
* better jQuery selector support:
|
35
|
+
* better jQuery selector and CSS pseudo-selector support:
|
36
36
|
* https://github.com/sparklemotion/nokogiri/issues/621
|
37
37
|
* https://github.com/sparklemotion/nokogiri/issues/342
|
38
38
|
* https://github.com/sparklemotion/nokogiri/issues/628
|
data/ext/nokogiri/extconf.rb
CHANGED
@@ -136,8 +136,8 @@ else
|
|
136
136
|
|
137
137
|
$CFLAGS << " -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='\"#{libxml2_recipe.path}\"' -DNOKOGIRI_LIBXSLT_PATH='\"#{libxslt_recipe.path}\"'"
|
138
138
|
|
139
|
-
HEADER_DIRS = [libxml2_recipe, libxslt_recipe].map { |
|
140
|
-
LIB_DIRS = [libxml2_recipe, libxslt_recipe].map { |
|
139
|
+
HEADER_DIRS = [libxml2_recipe, libxslt_recipe].map { |f| File.join(f.path, "include") }
|
140
|
+
LIB_DIRS = [libxml2_recipe, libxslt_recipe].map { |f| File.join(f.path, "lib") }
|
141
141
|
XML2_HEADER_DIRS = HEADER_DIRS + [File.join(libxml2_recipe.path, "include", "libxml2")]
|
142
142
|
end
|
143
143
|
end
|
@@ -86,7 +86,10 @@ static VALUE default_sub_element(VALUE self)
|
|
86
86
|
htmlElemDesc * description;
|
87
87
|
Data_Get_Struct(self, htmlElemDesc, description);
|
88
88
|
|
89
|
-
|
89
|
+
if (description->defaultsubelt)
|
90
|
+
return NOKOGIRI_STR_NEW2(description->defaultsubelt);
|
91
|
+
|
92
|
+
return Qnil;
|
90
93
|
}
|
91
94
|
|
92
95
|
/*
|
@@ -209,7 +209,7 @@ static void * initFunc(xsltTransformContextPtr ctxt, const xmlChar *uri)
|
|
209
209
|
int i;
|
210
210
|
|
211
211
|
for(i = 0; i < RARRAY_LEN(methods); i++) {
|
212
|
-
VALUE method_name = rb_obj_as_string(
|
212
|
+
VALUE method_name = rb_obj_as_string(rb_ary_entry(methods, i));
|
213
213
|
xsltRegisterExtFunction(ctxt,
|
214
214
|
(unsigned char *)StringValuePtr(method_name), uri, method_caller);
|
215
215
|
}
|
data/lib/nokogiri/version.rb
CHANGED
@@ -45,12 +45,13 @@ module Nokogiri
|
|
45
45
|
# Give the options to the user
|
46
46
|
yield options if block_given?
|
47
47
|
|
48
|
+
return new if empty_doc?(string_or_io)
|
49
|
+
|
48
50
|
doc = if string_or_io.respond_to?(:read)
|
49
51
|
url ||= string_or_io.respond_to?(:path) ? string_or_io.path : nil
|
50
52
|
read_io(string_or_io, url, encoding, options.to_i)
|
51
53
|
else
|
52
54
|
# read_memory pukes on empty docs
|
53
|
-
return new if string_or_io.nil? or string_or_io.empty?
|
54
55
|
read_memory(string_or_io, url, encoding, options.to_i)
|
55
56
|
end
|
56
57
|
|
@@ -260,6 +261,12 @@ module Nokogiri
|
|
260
261
|
end
|
261
262
|
|
262
263
|
private
|
264
|
+
def self.empty_doc? string_or_io
|
265
|
+
string_or_io.nil? ||
|
266
|
+
(string_or_io.respond_to?(:empty?) && string_or_io.empty?) ||
|
267
|
+
(string_or_io.respond_to?(:eof?) && string_or_io.eof?)
|
268
|
+
end
|
269
|
+
|
263
270
|
def implied_xpath_context
|
264
271
|
"/"
|
265
272
|
end
|
data/lib/nokogiri/xml/node.rb
CHANGED
@@ -917,18 +917,23 @@ module Nokogiri
|
|
917
917
|
end
|
918
918
|
|
919
919
|
def coerce data # :nodoc:
|
920
|
-
|
921
|
-
|
922
|
-
|
920
|
+
case data
|
921
|
+
when XML::NodeSet
|
922
|
+
return data
|
923
|
+
when XML::DocumentFragment
|
924
|
+
return data.children
|
925
|
+
when String
|
926
|
+
return fragment(data).children
|
927
|
+
when Document, XML::Attr
|
928
|
+
# unacceptable
|
929
|
+
when XML::Node
|
930
|
+
return data
|
931
|
+
end
|
923
932
|
|
924
|
-
|
925
|
-
raise ArgumentError, <<-EOERR
|
933
|
+
raise ArgumentError, <<-EOERR
|
926
934
|
Requires a Node, NodeSet or String argument, and cannot accept a #{data.class}.
|
927
935
|
(You probably want to select a node from the Document with at() or search(), or create a new Node via Node.new().)
|
928
|
-
|
929
|
-
end
|
930
|
-
|
931
|
-
data
|
936
|
+
EOERR
|
932
937
|
end
|
933
938
|
|
934
939
|
def implied_xpath_context
|
@@ -23,16 +23,14 @@ module Nokogiri
|
|
23
23
|
def first n = nil
|
24
24
|
return self[0] unless n
|
25
25
|
list = []
|
26
|
-
|
27
|
-
list << self[i]
|
28
|
-
end
|
26
|
+
n.times { |i| list << self[i] }
|
29
27
|
list
|
30
28
|
end
|
31
29
|
|
32
30
|
###
|
33
31
|
# Get the last element of the NodeSet.
|
34
32
|
def last
|
35
|
-
self[
|
33
|
+
self[-1]
|
36
34
|
end
|
37
35
|
|
38
36
|
###
|
@@ -17,7 +17,7 @@ module XSD # :nodoc:
|
|
17
17
|
# gem 'soap4r'
|
18
18
|
# require 'defaultDriver'
|
19
19
|
# require 'xsd/xmlparser/nokogiri'
|
20
|
-
#
|
20
|
+
#
|
21
21
|
# obj = AvlPortType.new
|
22
22
|
# obj.getLatestByRoute(obj.getAgencies.first, 8).each do |bus|
|
23
23
|
# p "#{bus.routeID}, #{bus.longitude}, #{bus.latitude}"
|
@@ -62,6 +62,13 @@ module XSD # :nodoc:
|
|
62
62
|
characters string
|
63
63
|
end
|
64
64
|
|
65
|
+
###
|
66
|
+
# Called at the beginning of an element
|
67
|
+
# +name+ is the element name
|
68
|
+
# +attrs+ is a list of attributes
|
69
|
+
# +prefix+ is the namespace prefix for the element
|
70
|
+
# +uri+ is the associated namespace URI
|
71
|
+
# +ns+ is a hash of namespace prefix:urls associated with the element
|
65
72
|
def start_element_namespace name, attrs = [], prefix = nil, uri = nil, ns = []
|
66
73
|
###
|
67
74
|
# Deal with SAX v1 interface
|
@@ -74,6 +81,11 @@ module XSD # :nodoc:
|
|
74
81
|
start_element name, attributes
|
75
82
|
end
|
76
83
|
|
84
|
+
###
|
85
|
+
# Called at the end of an element
|
86
|
+
# +name+ is the element's name
|
87
|
+
# +prefix+ is the namespace prefix associated with the element
|
88
|
+
# +uri+ is the associated namespace URI
|
77
89
|
def end_element_namespace name, prefix = nil, uri = nil
|
78
90
|
###
|
79
91
|
# Deal with SAX v1 interface
|
File without changes
|
@@ -0,0 +1,283 @@
|
|
1
|
+
<?xml version="1.0" encoding="US-ASCII"?>
|
2
|
+
<schema
|
3
|
+
targetNamespace="urn:oasis:names:tc:SAML:2.0:assertion"
|
4
|
+
xmlns="http://www.w3.org/2001/XMLSchema"
|
5
|
+
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
|
6
|
+
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
|
7
|
+
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
|
8
|
+
elementFormDefault="unqualified"
|
9
|
+
attributeFormDefault="unqualified"
|
10
|
+
blockDefault="substitution"
|
11
|
+
version="2.0">
|
12
|
+
<import namespace="http://www.w3.org/2000/09/xmldsig#"
|
13
|
+
schemaLocation="xmldsig_schema.xsd"/>
|
14
|
+
<import namespace="http://www.w3.org/2001/04/xmlenc#"
|
15
|
+
schemaLocation="xenc_schema.xsd"/>
|
16
|
+
<annotation>
|
17
|
+
<documentation>
|
18
|
+
Document identifier: saml-schema-assertion-2.0
|
19
|
+
Location: http://docs.oasis-open.org/security/saml/v2.0/
|
20
|
+
Revision history:
|
21
|
+
V1.0 (November, 2002):
|
22
|
+
Initial Standard Schema.
|
23
|
+
V1.1 (September, 2003):
|
24
|
+
Updates within the same V1.0 namespace.
|
25
|
+
V2.0 (March, 2005):
|
26
|
+
New assertion schema for SAML V2.0 namespace.
|
27
|
+
</documentation>
|
28
|
+
</annotation>
|
29
|
+
<attributeGroup name="IDNameQualifiers">
|
30
|
+
<attribute name="NameQualifier" type="string" use="optional"/>
|
31
|
+
<attribute name="SPNameQualifier" type="string" use="optional"/>
|
32
|
+
</attributeGroup>
|
33
|
+
<element name="BaseID" type="saml:BaseIDAbstractType"/>
|
34
|
+
<complexType name="BaseIDAbstractType" abstract="true">
|
35
|
+
<attributeGroup ref="saml:IDNameQualifiers"/>
|
36
|
+
</complexType>
|
37
|
+
<element name="NameID" type="saml:NameIDType"/>
|
38
|
+
<complexType name="NameIDType">
|
39
|
+
<simpleContent>
|
40
|
+
<extension base="string">
|
41
|
+
<attributeGroup ref="saml:IDNameQualifiers"/>
|
42
|
+
<attribute name="Format" type="anyURI" use="optional"/>
|
43
|
+
<attribute name="SPProvidedID" type="string" use="optional"/>
|
44
|
+
</extension>
|
45
|
+
</simpleContent>
|
46
|
+
</complexType>
|
47
|
+
<complexType name="EncryptedElementType">
|
48
|
+
<sequence>
|
49
|
+
<element ref="xenc:EncryptedData"/>
|
50
|
+
<element ref="xenc:EncryptedKey" minOccurs="0" maxOccurs="unbounded"/>
|
51
|
+
</sequence>
|
52
|
+
</complexType>
|
53
|
+
<element name="EncryptedID" type="saml:EncryptedElementType"/>
|
54
|
+
<element name="Issuer" type="saml:NameIDType"/>
|
55
|
+
<element name="AssertionIDRef" type="NCName"/>
|
56
|
+
<element name="AssertionURIRef" type="anyURI"/>
|
57
|
+
<element name="Assertion" type="saml:AssertionType"/>
|
58
|
+
<complexType name="AssertionType">
|
59
|
+
<sequence>
|
60
|
+
<element ref="saml:Issuer"/>
|
61
|
+
<element ref="ds:Signature" minOccurs="0"/>
|
62
|
+
<element ref="saml:Subject" minOccurs="0"/>
|
63
|
+
<element ref="saml:Conditions" minOccurs="0"/>
|
64
|
+
<element ref="saml:Advice" minOccurs="0"/>
|
65
|
+
<choice minOccurs="0" maxOccurs="unbounded">
|
66
|
+
<element ref="saml:Statement"/>
|
67
|
+
<element ref="saml:AuthnStatement"/>
|
68
|
+
<element ref="saml:AuthzDecisionStatement"/>
|
69
|
+
<element ref="saml:AttributeStatement"/>
|
70
|
+
</choice>
|
71
|
+
</sequence>
|
72
|
+
<attribute name="Version" type="string" use="required"/>
|
73
|
+
<attribute name="ID" type="ID" use="required"/>
|
74
|
+
<attribute name="IssueInstant" type="dateTime" use="required"/>
|
75
|
+
</complexType>
|
76
|
+
<element name="Subject" type="saml:SubjectType"/>
|
77
|
+
<complexType name="SubjectType">
|
78
|
+
<choice>
|
79
|
+
<sequence>
|
80
|
+
<choice>
|
81
|
+
<element ref="saml:BaseID"/>
|
82
|
+
<element ref="saml:NameID"/>
|
83
|
+
<element ref="saml:EncryptedID"/>
|
84
|
+
</choice>
|
85
|
+
<element ref="saml:SubjectConfirmation" minOccurs="0" maxOccurs="unbounded"/>
|
86
|
+
</sequence>
|
87
|
+
<element ref="saml:SubjectConfirmation" maxOccurs="unbounded"/>
|
88
|
+
</choice>
|
89
|
+
</complexType>
|
90
|
+
<element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
|
91
|
+
<complexType name="SubjectConfirmationType">
|
92
|
+
<sequence>
|
93
|
+
<choice minOccurs="0">
|
94
|
+
<element ref="saml:BaseID"/>
|
95
|
+
<element ref="saml:NameID"/>
|
96
|
+
<element ref="saml:EncryptedID"/>
|
97
|
+
</choice>
|
98
|
+
<element ref="saml:SubjectConfirmationData" minOccurs="0"/>
|
99
|
+
</sequence>
|
100
|
+
<attribute name="Method" type="anyURI" use="required"/>
|
101
|
+
</complexType>
|
102
|
+
<element name="SubjectConfirmationData" type="saml:SubjectConfirmationDataType"/>
|
103
|
+
<complexType name="SubjectConfirmationDataType" mixed="true">
|
104
|
+
<complexContent>
|
105
|
+
<restriction base="anyType">
|
106
|
+
<sequence>
|
107
|
+
<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
108
|
+
</sequence>
|
109
|
+
<attribute name="NotBefore" type="dateTime" use="optional"/>
|
110
|
+
<attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
|
111
|
+
<attribute name="Recipient" type="anyURI" use="optional"/>
|
112
|
+
<attribute name="InResponseTo" type="NCName" use="optional"/>
|
113
|
+
<attribute name="Address" type="string" use="optional"/>
|
114
|
+
<anyAttribute namespace="##other" processContents="lax"/>
|
115
|
+
</restriction>
|
116
|
+
</complexContent>
|
117
|
+
</complexType>
|
118
|
+
<complexType name="KeyInfoConfirmationDataType" mixed="false">
|
119
|
+
<complexContent>
|
120
|
+
<restriction base="saml:SubjectConfirmationDataType">
|
121
|
+
<sequence>
|
122
|
+
<element ref="ds:KeyInfo" maxOccurs="unbounded"/>
|
123
|
+
</sequence>
|
124
|
+
</restriction>
|
125
|
+
</complexContent>
|
126
|
+
</complexType>
|
127
|
+
<element name="Conditions" type="saml:ConditionsType"/>
|
128
|
+
<complexType name="ConditionsType">
|
129
|
+
<choice minOccurs="0" maxOccurs="unbounded">
|
130
|
+
<element ref="saml:Condition"/>
|
131
|
+
<element ref="saml:AudienceRestriction"/>
|
132
|
+
<element ref="saml:OneTimeUse"/>
|
133
|
+
<element ref="saml:ProxyRestriction"/>
|
134
|
+
</choice>
|
135
|
+
<attribute name="NotBefore" type="dateTime" use="optional"/>
|
136
|
+
<attribute name="NotOnOrAfter" type="dateTime" use="optional"/>
|
137
|
+
</complexType>
|
138
|
+
<element name="Condition" type="saml:ConditionAbstractType"/>
|
139
|
+
<complexType name="ConditionAbstractType" abstract="true"/>
|
140
|
+
<element name="AudienceRestriction" type="saml:AudienceRestrictionType"/>
|
141
|
+
<complexType name="AudienceRestrictionType">
|
142
|
+
<complexContent>
|
143
|
+
<extension base="saml:ConditionAbstractType">
|
144
|
+
<sequence>
|
145
|
+
<element ref="saml:Audience" maxOccurs="unbounded"/>
|
146
|
+
</sequence>
|
147
|
+
</extension>
|
148
|
+
</complexContent>
|
149
|
+
</complexType>
|
150
|
+
<element name="Audience" type="anyURI"/>
|
151
|
+
<element name="OneTimeUse" type="saml:OneTimeUseType" />
|
152
|
+
<complexType name="OneTimeUseType">
|
153
|
+
<complexContent>
|
154
|
+
<extension base="saml:ConditionAbstractType"/>
|
155
|
+
</complexContent>
|
156
|
+
</complexType>
|
157
|
+
<element name="ProxyRestriction" type="saml:ProxyRestrictionType"/>
|
158
|
+
<complexType name="ProxyRestrictionType">
|
159
|
+
<complexContent>
|
160
|
+
<extension base="saml:ConditionAbstractType">
|
161
|
+
<sequence>
|
162
|
+
<element ref="saml:Audience" minOccurs="0" maxOccurs="unbounded"/>
|
163
|
+
</sequence>
|
164
|
+
<attribute name="Count" type="nonNegativeInteger" use="optional"/>
|
165
|
+
</extension>
|
166
|
+
</complexContent>
|
167
|
+
</complexType>
|
168
|
+
<element name="Advice" type="saml:AdviceType"/>
|
169
|
+
<complexType name="AdviceType">
|
170
|
+
<choice minOccurs="0" maxOccurs="unbounded">
|
171
|
+
<element ref="saml:AssertionIDRef"/>
|
172
|
+
<element ref="saml:AssertionURIRef"/>
|
173
|
+
<element ref="saml:Assertion"/>
|
174
|
+
<element ref="saml:EncryptedAssertion"/>
|
175
|
+
<any namespace="##other" processContents="lax"/>
|
176
|
+
</choice>
|
177
|
+
</complexType>
|
178
|
+
<element name="EncryptedAssertion" type="saml:EncryptedElementType"/>
|
179
|
+
<element name="Statement" type="saml:StatementAbstractType"/>
|
180
|
+
<complexType name="StatementAbstractType" abstract="true"/>
|
181
|
+
<element name="AuthnStatement" type="saml:AuthnStatementType"/>
|
182
|
+
<complexType name="AuthnStatementType">
|
183
|
+
<complexContent>
|
184
|
+
<extension base="saml:StatementAbstractType">
|
185
|
+
<sequence>
|
186
|
+
<element ref="saml:SubjectLocality" minOccurs="0"/>
|
187
|
+
<element ref="saml:AuthnContext"/>
|
188
|
+
</sequence>
|
189
|
+
<attribute name="AuthnInstant" type="dateTime" use="required"/>
|
190
|
+
<attribute name="SessionIndex" type="string" use="optional"/>
|
191
|
+
<attribute name="SessionNotOnOrAfter" type="dateTime" use="optional"/>
|
192
|
+
</extension>
|
193
|
+
</complexContent>
|
194
|
+
</complexType>
|
195
|
+
<element name="SubjectLocality" type="saml:SubjectLocalityType"/>
|
196
|
+
<complexType name="SubjectLocalityType">
|
197
|
+
<attribute name="Address" type="string" use="optional"/>
|
198
|
+
<attribute name="DNSName" type="string" use="optional"/>
|
199
|
+
</complexType>
|
200
|
+
<element name="AuthnContext" type="saml:AuthnContextType"/>
|
201
|
+
<complexType name="AuthnContextType">
|
202
|
+
<sequence>
|
203
|
+
<choice>
|
204
|
+
<sequence>
|
205
|
+
<element ref="saml:AuthnContextClassRef"/>
|
206
|
+
<choice minOccurs="0">
|
207
|
+
<element ref="saml:AuthnContextDecl"/>
|
208
|
+
<element ref="saml:AuthnContextDeclRef"/>
|
209
|
+
</choice>
|
210
|
+
</sequence>
|
211
|
+
<choice>
|
212
|
+
<element ref="saml:AuthnContextDecl"/>
|
213
|
+
<element ref="saml:AuthnContextDeclRef"/>
|
214
|
+
</choice>
|
215
|
+
</choice>
|
216
|
+
<element ref="saml:AuthenticatingAuthority" minOccurs="0" maxOccurs="unbounded"/>
|
217
|
+
</sequence>
|
218
|
+
</complexType>
|
219
|
+
<element name="AuthnContextClassRef" type="anyURI"/>
|
220
|
+
<element name="AuthnContextDeclRef" type="anyURI"/>
|
221
|
+
<element name="AuthnContextDecl" type="anyType"/>
|
222
|
+
<element name="AuthenticatingAuthority" type="anyURI"/>
|
223
|
+
<element name="AuthzDecisionStatement" type="saml:AuthzDecisionStatementType"/>
|
224
|
+
<complexType name="AuthzDecisionStatementType">
|
225
|
+
<complexContent>
|
226
|
+
<extension base="saml:StatementAbstractType">
|
227
|
+
<sequence>
|
228
|
+
<element ref="saml:Action" maxOccurs="unbounded"/>
|
229
|
+
<element ref="saml:Evidence" minOccurs="0"/>
|
230
|
+
</sequence>
|
231
|
+
<attribute name="Resource" type="anyURI" use="required"/>
|
232
|
+
<attribute name="Decision" type="saml:DecisionType" use="required"/>
|
233
|
+
</extension>
|
234
|
+
</complexContent>
|
235
|
+
</complexType>
|
236
|
+
<simpleType name="DecisionType">
|
237
|
+
<restriction base="string">
|
238
|
+
<enumeration value="Permit"/>
|
239
|
+
<enumeration value="Deny"/>
|
240
|
+
<enumeration value="Indeterminate"/>
|
241
|
+
</restriction>
|
242
|
+
</simpleType>
|
243
|
+
<element name="Action" type="saml:ActionType"/>
|
244
|
+
<complexType name="ActionType">
|
245
|
+
<simpleContent>
|
246
|
+
<extension base="string">
|
247
|
+
<attribute name="Namespace" type="anyURI" use="required"/>
|
248
|
+
</extension>
|
249
|
+
</simpleContent>
|
250
|
+
</complexType>
|
251
|
+
<element name="Evidence" type="saml:EvidenceType"/>
|
252
|
+
<complexType name="EvidenceType">
|
253
|
+
<choice maxOccurs="unbounded">
|
254
|
+
<element ref="saml:AssertionIDRef"/>
|
255
|
+
<element ref="saml:AssertionURIRef"/>
|
256
|
+
<element ref="saml:Assertion"/>
|
257
|
+
<element ref="saml:EncryptedAssertion"/>
|
258
|
+
</choice>
|
259
|
+
</complexType>
|
260
|
+
<element name="AttributeStatement" type="saml:AttributeStatementType"/>
|
261
|
+
<complexType name="AttributeStatementType">
|
262
|
+
<complexContent>
|
263
|
+
<extension base="saml:StatementAbstractType">
|
264
|
+
<choice maxOccurs="unbounded">
|
265
|
+
<element ref="saml:Attribute"/>
|
266
|
+
<element ref="saml:EncryptedAttribute"/>
|
267
|
+
</choice>
|
268
|
+
</extension>
|
269
|
+
</complexContent>
|
270
|
+
</complexType>
|
271
|
+
<element name="Attribute" type="saml:AttributeType"/>
|
272
|
+
<complexType name="AttributeType">
|
273
|
+
<sequence>
|
274
|
+
<element ref="saml:AttributeValue" minOccurs="0" maxOccurs="unbounded"/>
|
275
|
+
</sequence>
|
276
|
+
<attribute name="Name" type="string" use="required"/>
|
277
|
+
<attribute name="NameFormat" type="anyURI" use="optional"/>
|
278
|
+
<attribute name="FriendlyName" type="string" use="optional"/>
|
279
|
+
<anyAttribute namespace="##other" processContents="lax"/>
|
280
|
+
</complexType>
|
281
|
+
<element name="AttributeValue" type="anyType" nillable="true"/>
|
282
|
+
<element name="EncryptedAttribute" type="saml:EncryptedElementType"/>
|
283
|
+
</schema>
|