nokogiri 1.5.11-java → 1.6.0-java
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 +85 -52
- data/CHANGELOG.rdoc +33 -4
- data/Gemfile +21 -0
- data/Manifest.txt +12 -0
- data/ROADMAP.md +1 -1
- data/Rakefile +22 -6
- data/build_all +1 -1
- data/dependencies.yml +4 -0
- data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +1 -1
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +2 -17
- data/ext/nokogiri/extconf.rb +103 -52
- data/ext/nokogiri/nokogiri.c +10 -0
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +17 -2
- data/tasks/cross_compile.rb +5 -23
- 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/xml/test_document.rb +0 -40
- data/test_all +2 -2
- metadata +145 -110
- checksums.yaml +0 -7
data/build_all
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
# here's what I recommend for building all the gems:
|
9
9
|
#
|
10
10
|
# 1. set up a vagrant VM guest running ubuntu lucid 32-bit.
|
11
|
-
# 2. install rvm, and install 1.
|
11
|
+
# 2. install rvm, and install 1.9.3, 2.0.0 and jruby.
|
12
12
|
# 3. `sudo apt-get install mingw32`
|
13
13
|
#
|
14
14
|
# as you build, you may run into these problems:
|
data/dependencies.yml
ADDED
@@ -61,16 +61,11 @@ public class NokogiriNonStrictErrorHandler extends NokogiriErrorHandler{
|
|
61
61
|
// found in the prolog, instead it will keep calling this method and we'll
|
62
62
|
// keep inserting the error in the document errors array until we run
|
63
63
|
// out of memory
|
64
|
-
errors.add(ex);
|
65
64
|
String message = ex.getMessage();
|
66
|
-
|
67
|
-
// The problem with Xerces is that some errors will cause the
|
68
|
-
// parser not to advance the reader and it will keep reporting
|
69
|
-
// the same error over and over, which will cause the parser
|
70
|
-
// to enter an infinite loop unless we throw the exception.
|
71
|
-
if (message != null && isFatal(message)) {
|
65
|
+
if (message != null && message.toLowerCase().contains("in prolog")) {
|
72
66
|
throw ex;
|
73
67
|
}
|
68
|
+
errors.add(ex);
|
74
69
|
}
|
75
70
|
|
76
71
|
public void error(String domain, String key, XMLParseException e) {
|
@@ -85,14 +80,4 @@ public class NokogiriNonStrictErrorHandler extends NokogiriErrorHandler{
|
|
85
80
|
errors.add(e);
|
86
81
|
}
|
87
82
|
|
88
|
-
/*
|
89
|
-
* Determine whether this is a fatal error that should cause
|
90
|
-
* the parsing to stop, or an error that can be ignored.
|
91
|
-
*/
|
92
|
-
private static boolean isFatal(String msg) {
|
93
|
-
return
|
94
|
-
msg.toLowerCase().contains("in prolog") ||
|
95
|
-
msg.toLowerCase().contains("limit") ||
|
96
|
-
msg.toLowerCase().contains("preceding the root element must be well-formed");
|
97
|
-
}
|
98
83
|
}
|
data/ext/nokogiri/extconf.rb
CHANGED
@@ -18,7 +18,9 @@ end
|
|
18
18
|
$CFLAGS << " #{ENV["CFLAGS"]}"
|
19
19
|
$LIBS << " #{ENV["LIBS"]}"
|
20
20
|
|
21
|
-
|
21
|
+
windows_p = RbConfig::CONFIG['target_os'] == 'mingw32' || RbConfig::CONFIG['target_os'] =~ /mswin/
|
22
|
+
|
23
|
+
if windows_p
|
22
24
|
$CFLAGS << " -DXP_WIN -DXP_WIN32 -DUSE_INCLUDED_VASPRINTF"
|
23
25
|
elsif RbConfig::CONFIG['target_os'] =~ /solaris/
|
24
26
|
$CFLAGS << " -DUSE_INCLUDED_VASPRINTF"
|
@@ -36,59 +38,107 @@ if RbConfig::MAKEFILE_CONFIG['CC'] =~ /gcc/
|
|
36
38
|
$CFLAGS << " -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline"
|
37
39
|
end
|
38
40
|
|
39
|
-
if
|
40
|
-
|
41
|
-
|
42
|
-
# There's no default include/lib dir on Windows. Let's just add the Ruby ones
|
43
|
-
# and resort on the search path specified by INCLUDE and LIB environment
|
44
|
-
# variables
|
41
|
+
if windows_p
|
42
|
+
# I'm cross compiling!
|
45
43
|
HEADER_DIRS = [INCLUDEDIR]
|
46
44
|
LIB_DIRS = [LIBDIR]
|
47
45
|
XML2_HEADER_DIRS = [File.join(INCLUDEDIR, "libxml2"), INCLUDEDIR]
|
48
46
|
|
49
47
|
else
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
48
|
+
if ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES']
|
49
|
+
HEADER_DIRS = [
|
50
|
+
# First search /opt/local for macports
|
51
|
+
'/opt/local/include',
|
52
|
+
|
53
|
+
# Then search /usr/local for people that installed from source
|
54
|
+
'/usr/local/include',
|
55
|
+
|
56
|
+
# Check the ruby install locations
|
57
|
+
INCLUDEDIR,
|
58
|
+
|
59
|
+
# Finally fall back to /usr
|
60
|
+
'/usr/include',
|
61
|
+
'/usr/include/libxml2',
|
62
|
+
]
|
63
|
+
|
64
|
+
LIB_DIRS = [
|
65
|
+
# First search /opt/local for macports
|
66
|
+
'/opt/local/lib',
|
67
|
+
|
68
|
+
# Then search /usr/local for people that installed from source
|
69
|
+
'/usr/local/lib',
|
70
|
+
|
71
|
+
# Check the ruby install locations
|
72
|
+
LIBDIR,
|
73
|
+
|
74
|
+
# Finally fall back to /usr
|
75
|
+
'/usr/lib',
|
76
|
+
]
|
77
|
+
|
78
|
+
XML2_HEADER_DIRS = [
|
79
|
+
'/opt/local/include/libxml2',
|
80
|
+
'/usr/local/include/libxml2',
|
81
|
+
File.join(INCLUDEDIR, "libxml2")
|
82
|
+
] + HEADER_DIRS
|
83
|
+
|
84
|
+
# If the user has homebrew installed, use the libxml2 inside homebrew
|
85
|
+
brew_prefix = `brew --prefix libxml2 2> /dev/null`.chomp
|
86
|
+
unless brew_prefix.empty?
|
87
|
+
LIB_DIRS.unshift File.join(brew_prefix, 'lib')
|
88
|
+
XML2_HEADER_DIRS.unshift File.join(brew_prefix, 'include/libxml2')
|
89
|
+
end
|
90
|
+
|
91
|
+
else
|
92
|
+
require 'mini_portile'
|
93
|
+
require 'yaml'
|
94
|
+
|
95
|
+
common_recipe = lambda do |recipe|
|
96
|
+
recipe.target = File.join(ROOT, "ports")
|
97
|
+
recipe.files = ["ftp://ftp.xmlsoft.org/libxml2/#{recipe.name}-#{recipe.version}.tar.gz"]
|
98
|
+
|
99
|
+
checkpoint = "#{recipe.target}/#{recipe.name}-#{recipe.version}-#{recipe.host}.installed"
|
100
|
+
unless File.exist?(checkpoint)
|
101
|
+
recipe.cook
|
102
|
+
FileUtils.touch checkpoint
|
103
|
+
end
|
104
|
+
recipe.activate
|
105
|
+
end
|
106
|
+
|
107
|
+
dependencies = YAML.load_file(File.join(ROOT, "dependencies.yml"))
|
108
|
+
|
109
|
+
libxml2_recipe = MiniPortile.new("libxml2", dependencies["libxml2"]).tap do |recipe|
|
110
|
+
recipe.configure_options = [
|
111
|
+
"--enable-shared",
|
112
|
+
"--disable-static",
|
113
|
+
"--without-python",
|
114
|
+
"--without-readline",
|
115
|
+
"--with-c14n",
|
116
|
+
"--with-debug",
|
117
|
+
"--with-threads"
|
118
|
+
]
|
119
|
+
common_recipe.call recipe
|
120
|
+
end
|
121
|
+
|
122
|
+
libxslt_recipe = MiniPortile.new("libxslt", dependencies["libxslt"]).tap do |recipe|
|
123
|
+
recipe.configure_options = [
|
124
|
+
"--enable-shared",
|
125
|
+
"--disable-static",
|
126
|
+
"--without-python",
|
127
|
+
"--without-crypto",
|
128
|
+
"--with-debug",
|
129
|
+
"--with-libxml-prefix=#{libxml2_recipe.path}"
|
130
|
+
]
|
131
|
+
common_recipe.call recipe
|
132
|
+
end
|
133
|
+
|
134
|
+
$LDFLAGS << " -Wl,-rpath,#{libxml2_recipe.path}/lib"
|
135
|
+
$LDFLAGS << " -Wl,-rpath,#{libxslt_recipe.path}/lib"
|
136
|
+
|
137
|
+
$CFLAGS << " -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='\"#{libxml2_recipe.path}\"' -DNOKOGIRI_LIBXSLT_PATH='\"#{libxslt_recipe.path}\"'"
|
138
|
+
|
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
|
+
XML2_HEADER_DIRS = HEADER_DIRS + [File.join(libxml2_recipe.path, "include", "libxml2")]
|
92
142
|
end
|
93
143
|
end
|
94
144
|
|
@@ -117,9 +167,9 @@ asplode "libxml2" unless find_header('libxml/parser.h')
|
|
117
167
|
asplode "libxslt" unless find_header('libxslt/xslt.h')
|
118
168
|
asplode "libexslt" unless find_header('libexslt/exslt.h')
|
119
169
|
asplode "libiconv" unless have_iconv?
|
120
|
-
asplode "libxml2" unless find_library("
|
121
|
-
asplode "libxslt" unless find_library("
|
122
|
-
asplode "libexslt" unless find_library("
|
170
|
+
asplode "libxml2" unless find_library("xml2", 'xmlParseDoc')
|
171
|
+
asplode "libxslt" unless find_library("xslt", 'xsltParseStylesheetDoc')
|
172
|
+
asplode "libexslt" unless find_library("exslt", 'exsltFuncRegister')
|
123
173
|
|
124
174
|
unless have_func('xmlHasFeature')
|
125
175
|
abort "-----\nThe function 'xmlHasFeature' is missing from your installation of libxml2. Likely this means that your installed version of libxml2 is old enough that nokogiri will not work well. To get around this problem, please upgrade your installation of libxml2.
|
@@ -141,4 +191,5 @@ if ENV['CPUPROFILE']
|
|
141
191
|
end
|
142
192
|
|
143
193
|
create_makefile('nokogiri/nokogiri')
|
194
|
+
|
144
195
|
# :startdoc:
|
data/ext/nokogiri/nokogiri.c
CHANGED
@@ -90,6 +90,16 @@ void Init_nokogiri()
|
|
90
90
|
NOKOGIRI_STR_NEW2(xmlParserVersion)
|
91
91
|
);
|
92
92
|
|
93
|
+
#ifdef NOKOGIRI_USE_PACKAGED_LIBRARIES
|
94
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_USE_PACKAGED_LIBRARIES"), Qtrue);
|
95
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_LIBXML2_PATH"), NOKOGIRI_STR_NEW2(NOKOGIRI_LIBXML2_PATH));
|
96
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_LIBXSLT_PATH"), NOKOGIRI_STR_NEW2(NOKOGIRI_LIBXSLT_PATH));
|
97
|
+
#else
|
98
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_USE_PACKAGED_LIBRARIES"), Qfalse);
|
99
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_LIBXML2_PATH"), Qnil);
|
100
|
+
rb_const_set(mNokogiri, rb_intern("NOKOGIRI_LIBXSLT_PATH"), Qnil);
|
101
|
+
#endif
|
102
|
+
|
93
103
|
#ifdef LIBXML_ICONV_ENABLED
|
94
104
|
rb_const_set(mNokogiri, rb_intern("LIBXML_ICONV_ENABLED"), Qtrue);
|
95
105
|
#else
|
data/lib/nokogiri/nokogiri.jar
CHANGED
Binary file
|
data/lib/nokogiri/version.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Nokogiri
|
2
2
|
# The version of Nokogiri you are using
|
3
|
-
VERSION = '1.
|
3
|
+
VERSION = '1.6.0'
|
4
4
|
|
5
5
|
class VersionInfo # :nodoc:
|
6
6
|
def jruby?
|
@@ -12,7 +12,7 @@ module Nokogiri
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def loaded_parser_version
|
15
|
-
LIBXML_PARSER_VERSION.scan(/^(
|
15
|
+
LIBXML_PARSER_VERSION.scan(/^(.*)(..)(..)$/).first.collect{ |j|
|
16
16
|
j.to_i
|
17
17
|
}.join(".")
|
18
18
|
end
|
@@ -25,6 +25,14 @@ module Nokogiri
|
|
25
25
|
defined?(LIBXML_VERSION)
|
26
26
|
end
|
27
27
|
|
28
|
+
def libxml2_using_system?
|
29
|
+
! libxml2_using_packaged?
|
30
|
+
end
|
31
|
+
|
32
|
+
def libxml2_using_packaged?
|
33
|
+
NOKOGIRI_USE_PACKAGED_LIBRARIES
|
34
|
+
end
|
35
|
+
|
28
36
|
def warnings
|
29
37
|
return [] unless libxml2?
|
30
38
|
|
@@ -49,6 +57,13 @@ module Nokogiri
|
|
49
57
|
if libxml2?
|
50
58
|
hash_info['libxml'] = {}
|
51
59
|
hash_info['libxml']['binding'] = 'extension'
|
60
|
+
if libxml2_using_packaged?
|
61
|
+
hash_info['libxml']['source'] = "packaged"
|
62
|
+
hash_info['libxml']['libxml2_path'] = NOKOGIRI_LIBXML2_PATH
|
63
|
+
hash_info['libxml']['libxslt_path'] = NOKOGIRI_LIBXSLT_PATH
|
64
|
+
else
|
65
|
+
hash_info['libxml']['source'] = "system"
|
66
|
+
end
|
52
67
|
hash_info['libxml']['compiled'] = compiled_parser_version
|
53
68
|
hash_info['libxml']['loaded'] = loaded_parser_version
|
54
69
|
hash_info['warnings'] = warnings
|
data/tasks/cross_compile.rb
CHANGED
@@ -3,11 +3,11 @@ require 'rake/extensioncompiler'
|
|
3
3
|
HOST = Rake::ExtensionCompiler.mingw_host
|
4
4
|
|
5
5
|
require 'mini_portile'
|
6
|
+
dependencies = YAML.load_file("dependencies.yml")
|
6
7
|
$recipes = {}
|
7
|
-
|
8
|
-
$recipes[
|
9
|
-
|
10
|
-
$recipes["libxslt"] = MiniPortile.new "libxslt", "1.1.26"
|
8
|
+
%w[zlib libiconv libxml2 libxslt].each do |lib|
|
9
|
+
$recipes[lib] = MiniPortile.new lib, dependencies[lib]
|
10
|
+
end
|
11
11
|
$recipes.each { |_, recipe| recipe.host = HOST }
|
12
12
|
|
13
13
|
file "lib/nokogiri/nokogiri.rb" do
|
@@ -90,15 +90,6 @@ namespace :cross do
|
|
90
90
|
"--without-readline",
|
91
91
|
"CFLAGS='-DIN_LIBXML'"
|
92
92
|
]
|
93
|
-
class << recipe
|
94
|
-
def download
|
95
|
-
Dir.chdir archives_path do
|
96
|
-
@files.each do |url|
|
97
|
-
sh "wget #{url} || curl -O #{url}"
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
93
|
|
103
94
|
checkpoint = "#{CROSS_DIR}/#{recipe.name}-#{recipe.version}-#{recipe.host}.installed"
|
104
95
|
unless File.exist?(checkpoint)
|
@@ -120,15 +111,6 @@ namespace :cross do
|
|
120
111
|
"--without-crypto",
|
121
112
|
"CFLAGS='-DIN_LIBXML'"
|
122
113
|
]
|
123
|
-
class << recipe
|
124
|
-
def download
|
125
|
-
Dir.chdir archives_path do
|
126
|
-
@files.each do |url|
|
127
|
-
sh "wget #{url} || curl -O #{url}"
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
114
|
|
133
115
|
checkpoint = "#{CROSS_DIR}/#{recipe.name}-#{recipe.version}-#{recipe.host}.installed"
|
134
116
|
unless File.exist?(checkpoint)
|
@@ -140,7 +122,7 @@ namespace :cross do
|
|
140
122
|
|
141
123
|
task :file_list do
|
142
124
|
HOE.spec.files += Dir["lib/nokogiri/nokogiri.rb"]
|
143
|
-
HOE.spec.files += Dir["lib/nokogiri/{1.
|
125
|
+
HOE.spec.files += Dir["lib/nokogiri/{1.9,2.0}/nokogiri.so"]
|
144
126
|
end
|
145
127
|
end
|
146
128
|
|
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>
|