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/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
@@ -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
@@ -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 { |_| File.join(_.path, "include") }
140
- LIB_DIRS = [libxml2_recipe, libxslt_recipe].map { |_| File.join(_.path, "lib") }
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
- return NOKOGIRI_STR_NEW2(description->defaultsubelt);
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(RARRAY_PTR(methods)[i]);
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
  }
@@ -1,6 +1,6 @@
1
1
  module Nokogiri
2
2
  # The version of Nokogiri you are using
3
- VERSION = '1.6.0.rc1'
3
+ VERSION = '1.6.0'
4
4
 
5
5
  class VersionInfo # :nodoc:
6
6
  def jruby?
@@ -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
@@ -917,18 +917,23 @@ module Nokogiri
917
917
  end
918
918
 
919
919
  def coerce data # :nodoc:
920
- return data if data.is_a?(XML::NodeSet)
921
- return data.children if data.is_a?(XML::DocumentFragment)
922
- return fragment(data).children if data.is_a?(String)
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
- if data.is_a?(Document) || data.is_a?(XML::Attr) || !data.is_a?(XML::Node)
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
- EOERR
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
- 0.upto(n - 1) do |i|
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[length - 1]
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>