nokogiri 1.11.0.rc1-java → 1.11.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/LICENSE-DEPENDENCIES.md +1015 -947
  4. data/LICENSE.md +1 -1
  5. data/README.md +171 -94
  6. data/ext/java/nokogiri/EncodingHandler.java +78 -59
  7. data/ext/java/nokogiri/HtmlDocument.java +137 -114
  8. data/ext/java/nokogiri/HtmlElementDescription.java +104 -87
  9. data/ext/java/nokogiri/HtmlEntityLookup.java +31 -26
  10. data/ext/java/nokogiri/HtmlSaxParserContext.java +220 -192
  11. data/ext/java/nokogiri/HtmlSaxPushParser.java +164 -139
  12. data/ext/java/nokogiri/NokogiriService.java +597 -526
  13. data/ext/java/nokogiri/XmlAttr.java +120 -96
  14. data/ext/java/nokogiri/XmlAttributeDecl.java +97 -76
  15. data/ext/java/nokogiri/XmlCdata.java +35 -26
  16. data/ext/java/nokogiri/XmlComment.java +48 -37
  17. data/ext/java/nokogiri/XmlDocument.java +642 -540
  18. data/ext/java/nokogiri/XmlDocumentFragment.java +127 -107
  19. data/ext/java/nokogiri/XmlDtd.java +450 -384
  20. data/ext/java/nokogiri/XmlElement.java +25 -18
  21. data/ext/java/nokogiri/XmlElementContent.java +345 -286
  22. data/ext/java/nokogiri/XmlElementDecl.java +126 -95
  23. data/ext/java/nokogiri/XmlEntityDecl.java +121 -97
  24. data/ext/java/nokogiri/XmlEntityReference.java +51 -42
  25. data/ext/java/nokogiri/XmlNamespace.java +177 -145
  26. data/ext/java/nokogiri/XmlNode.java +1843 -1590
  27. data/ext/java/nokogiri/XmlNodeSet.java +361 -299
  28. data/ext/java/nokogiri/XmlProcessingInstruction.java +49 -39
  29. data/ext/java/nokogiri/XmlReader.java +513 -418
  30. data/ext/java/nokogiri/XmlRelaxng.java +92 -72
  31. data/ext/java/nokogiri/XmlSaxParserContext.java +330 -280
  32. data/ext/java/nokogiri/XmlSaxPushParser.java +229 -190
  33. data/ext/java/nokogiri/XmlSchema.java +335 -210
  34. data/ext/java/nokogiri/XmlSyntaxError.java +113 -87
  35. data/ext/java/nokogiri/XmlText.java +57 -46
  36. data/ext/java/nokogiri/XmlXpathContext.java +242 -178
  37. data/ext/java/nokogiri/XsltStylesheet.java +282 -239
  38. data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
  39. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +203 -160
  40. data/ext/java/nokogiri/internals/IgnoreSchemaErrorsErrorHandler.java +17 -10
  41. data/ext/java/nokogiri/internals/NokogiriBlockingQueueInputStream.java +43 -16
  42. data/ext/java/nokogiri/internals/NokogiriDomParser.java +65 -50
  43. data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
  44. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +25 -18
  45. data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -254
  46. data/ext/java/nokogiri/internals/NokogiriHelpers.java +738 -622
  47. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +186 -143
  48. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +81 -59
  49. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +66 -49
  50. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +86 -69
  51. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +44 -29
  52. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +121 -48
  53. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -22
  54. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +25 -17
  55. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +57 -42
  56. data/ext/java/nokogiri/internals/ParserContext.java +206 -179
  57. data/ext/java/nokogiri/internals/ReaderNode.java +478 -371
  58. data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -707
  59. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +28 -19
  60. data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
  61. data/ext/java/nokogiri/internals/XmlDeclHandler.java +5 -4
  62. data/ext/java/nokogiri/internals/XmlDomParserContext.java +208 -177
  63. data/ext/java/nokogiri/internals/XmlSaxParser.java +24 -17
  64. data/ext/java/nokogiri/internals/c14n/AttrCompare.java +71 -68
  65. data/ext/java/nokogiri/internals/c14n/C14nHelper.java +137 -118
  66. data/ext/java/nokogiri/internals/c14n/CanonicalFilter.java +27 -21
  67. data/ext/java/nokogiri/internals/c14n/CanonicalizationException.java +74 -61
  68. data/ext/java/nokogiri/internals/c14n/Canonicalizer.java +230 -205
  69. data/ext/java/nokogiri/internals/c14n/Canonicalizer11.java +572 -547
  70. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_OmitComments.java +17 -10
  71. data/ext/java/nokogiri/internals/c14n/Canonicalizer11_WithComments.java +17 -10
  72. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315.java +323 -302
  73. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315Excl.java +232 -219
  74. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclOmitComments.java +22 -15
  75. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclWithComments.java +23 -16
  76. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315OmitComments.java +23 -16
  77. data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315WithComments.java +22 -15
  78. data/ext/java/nokogiri/internals/c14n/CanonicalizerBase.java +575 -545
  79. data/ext/java/nokogiri/internals/c14n/CanonicalizerPhysical.java +141 -120
  80. data/ext/java/nokogiri/internals/c14n/CanonicalizerSpi.java +39 -38
  81. data/ext/java/nokogiri/internals/c14n/Constants.java +13 -10
  82. data/ext/java/nokogiri/internals/c14n/ElementProxy.java +279 -247
  83. data/ext/java/nokogiri/internals/c14n/HelperNodeList.java +66 -53
  84. data/ext/java/nokogiri/internals/c14n/IgnoreAllErrorHandler.java +44 -37
  85. data/ext/java/nokogiri/internals/c14n/InclusiveNamespaces.java +135 -120
  86. data/ext/java/nokogiri/internals/c14n/InvalidCanonicalizerException.java +59 -48
  87. data/ext/java/nokogiri/internals/c14n/NameSpaceSymbTable.java +384 -334
  88. data/ext/java/nokogiri/internals/c14n/NodeFilter.java +25 -24
  89. data/ext/java/nokogiri/internals/c14n/UtfHelpper.java +151 -140
  90. data/ext/java/nokogiri/internals/c14n/XMLUtils.java +456 -423
  91. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTM.java +1466 -1500
  92. data/ext/java/nokogiri/internals/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java +626 -570
  93. data/ext/nokogiri/depend +37 -358
  94. data/ext/nokogiri/extconf.rb +585 -374
  95. data/ext/nokogiri/html_document.c +78 -82
  96. data/ext/nokogiri/html_element_description.c +84 -71
  97. data/ext/nokogiri/html_entity_lookup.c +21 -16
  98. data/ext/nokogiri/html_sax_parser_context.c +69 -66
  99. data/ext/nokogiri/html_sax_push_parser.c +42 -34
  100. data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
  101. data/ext/nokogiri/nokogiri.c +192 -93
  102. data/ext/nokogiri/test_global_handlers.c +40 -0
  103. data/ext/nokogiri/xml_attr.c +15 -15
  104. data/ext/nokogiri/xml_attribute_decl.c +18 -18
  105. data/ext/nokogiri/xml_cdata.c +13 -18
  106. data/ext/nokogiri/xml_comment.c +19 -26
  107. data/ext/nokogiri/xml_document.c +225 -163
  108. data/ext/nokogiri/xml_document_fragment.c +13 -15
  109. data/ext/nokogiri/xml_dtd.c +54 -48
  110. data/ext/nokogiri/xml_element_content.c +30 -27
  111. data/ext/nokogiri/xml_element_decl.c +22 -22
  112. data/ext/nokogiri/xml_encoding_handler.c +17 -11
  113. data/ext/nokogiri/xml_entity_decl.c +32 -30
  114. data/ext/nokogiri/xml_entity_reference.c +16 -18
  115. data/ext/nokogiri/xml_namespace.c +56 -49
  116. data/ext/nokogiri/xml_node.c +338 -286
  117. data/ext/nokogiri/xml_node_set.c +168 -156
  118. data/ext/nokogiri/xml_processing_instruction.c +17 -19
  119. data/ext/nokogiri/xml_reader.c +195 -172
  120. data/ext/nokogiri/xml_relax_ng.c +52 -28
  121. data/ext/nokogiri/xml_sax_parser.c +118 -118
  122. data/ext/nokogiri/xml_sax_parser_context.c +103 -86
  123. data/ext/nokogiri/xml_sax_push_parser.c +36 -27
  124. data/ext/nokogiri/xml_schema.c +111 -34
  125. data/ext/nokogiri/xml_syntax_error.c +42 -21
  126. data/ext/nokogiri/xml_text.c +13 -17
  127. data/ext/nokogiri/xml_xpath_context.c +206 -123
  128. data/ext/nokogiri/xslt_stylesheet.c +158 -161
  129. data/lib/nokogiri.rb +4 -8
  130. data/lib/nokogiri/css/parser.rb +62 -62
  131. data/lib/nokogiri/css/parser.y +2 -2
  132. data/lib/nokogiri/css/parser_extras.rb +38 -36
  133. data/lib/nokogiri/css/xpath_visitor.rb +70 -42
  134. data/lib/nokogiri/extension.rb +26 -0
  135. data/lib/nokogiri/html/document.rb +12 -26
  136. data/lib/nokogiri/html/document_fragment.rb +15 -15
  137. data/lib/nokogiri/nokogiri.jar +0 -0
  138. data/lib/nokogiri/version.rb +2 -148
  139. data/lib/nokogiri/version/constant.rb +5 -0
  140. data/lib/nokogiri/version/info.rb +205 -0
  141. data/lib/nokogiri/xml/builder.rb +2 -2
  142. data/lib/nokogiri/xml/document.rb +48 -18
  143. data/lib/nokogiri/xml/document_fragment.rb +4 -6
  144. data/lib/nokogiri/xml/node.rb +599 -279
  145. data/lib/nokogiri/xml/parse_options.rb +6 -0
  146. data/lib/nokogiri/xml/reader.rb +2 -9
  147. data/lib/nokogiri/xml/relax_ng.rb +6 -2
  148. data/lib/nokogiri/xml/schema.rb +12 -4
  149. data/lib/nokogiri/xml/searchable.rb +24 -16
  150. data/lib/nokogiri/xml/xpath.rb +1 -3
  151. data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
  152. metadata +87 -158
  153. data/ext/nokogiri/html_document.h +0 -10
  154. data/ext/nokogiri/html_element_description.h +0 -10
  155. data/ext/nokogiri/html_entity_lookup.h +0 -8
  156. data/ext/nokogiri/html_sax_parser_context.h +0 -11
  157. data/ext/nokogiri/html_sax_push_parser.h +0 -9
  158. data/ext/nokogiri/nokogiri.h +0 -122
  159. data/ext/nokogiri/xml_attr.h +0 -9
  160. data/ext/nokogiri/xml_attribute_decl.h +0 -9
  161. data/ext/nokogiri/xml_cdata.h +0 -9
  162. data/ext/nokogiri/xml_comment.h +0 -9
  163. data/ext/nokogiri/xml_document.h +0 -23
  164. data/ext/nokogiri/xml_document_fragment.h +0 -10
  165. data/ext/nokogiri/xml_dtd.h +0 -10
  166. data/ext/nokogiri/xml_element_content.h +0 -10
  167. data/ext/nokogiri/xml_element_decl.h +0 -9
  168. data/ext/nokogiri/xml_encoding_handler.h +0 -8
  169. data/ext/nokogiri/xml_entity_decl.h +0 -10
  170. data/ext/nokogiri/xml_entity_reference.h +0 -9
  171. data/ext/nokogiri/xml_io.c +0 -61
  172. data/ext/nokogiri/xml_io.h +0 -11
  173. data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
  174. data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
  175. data/ext/nokogiri/xml_namespace.h +0 -14
  176. data/ext/nokogiri/xml_node.h +0 -13
  177. data/ext/nokogiri/xml_node_set.h +0 -12
  178. data/ext/nokogiri/xml_processing_instruction.h +0 -9
  179. data/ext/nokogiri/xml_reader.h +0 -10
  180. data/ext/nokogiri/xml_relax_ng.h +0 -9
  181. data/ext/nokogiri/xml_sax_parser.h +0 -39
  182. data/ext/nokogiri/xml_sax_parser_context.h +0 -10
  183. data/ext/nokogiri/xml_sax_push_parser.h +0 -9
  184. data/ext/nokogiri/xml_schema.h +0 -9
  185. data/ext/nokogiri/xml_syntax_error.h +0 -13
  186. data/ext/nokogiri/xml_text.h +0 -9
  187. data/ext/nokogiri/xml_xpath_context.h +0 -10
  188. data/ext/nokogiri/xslt_stylesheet.h +0 -14
@@ -17,10 +17,10 @@
17
17
  * distribute, sublicense, and/or sell copies of the Software, and to
18
18
  * permit persons to whom the Software is furnished to do so, subject to
19
19
  * the following conditions:
20
- *
20
+ *
21
21
  * The above copyright notice and this permission notice shall be
22
22
  * included in all copies or substantial portions of the Software.
23
- *
23
+ *
24
24
  * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
25
25
  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26
26
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
@@ -42,24 +42,31 @@ import org.apache.xerces.xni.XNIException;
42
42
  *
43
43
  * @author Patrick Mahoney <pat@polycrystal.org>
44
44
  */
45
- public class XmlSaxParser extends SAXParser {
45
+ public class XmlSaxParser extends SAXParser
46
+ {
46
47
 
47
- protected XmlDeclHandler xmlDeclHandler = null;
48
+ protected XmlDeclHandler xmlDeclHandler = null;
48
49
 
49
- public XmlSaxParser() {
50
- super();
51
- }
50
+ public
51
+ XmlSaxParser()
52
+ {
53
+ super();
54
+ }
52
55
 
53
- public void setXmlDeclHandler(XmlDeclHandler xmlDeclHandler) {
54
- this.xmlDeclHandler = xmlDeclHandler;
55
- }
56
+ public void
57
+ setXmlDeclHandler(XmlDeclHandler xmlDeclHandler)
58
+ {
59
+ this.xmlDeclHandler = xmlDeclHandler;
60
+ }
56
61
 
57
- @Override
58
- public void xmlDecl(String version, String encoding, String standalone,
59
- Augmentations augs) throws XNIException {
60
- super.xmlDecl(version, encoding, standalone, augs);
61
- if (xmlDeclHandler != null) {
62
- xmlDeclHandler.xmlDecl(version, encoding, standalone);
63
- }
62
+ @Override
63
+ public void
64
+ xmlDecl(String version, String encoding, String standalone,
65
+ Augmentations augs) throws XNIException
66
+ {
67
+ super.xmlDecl(version, encoding, standalone, augs);
68
+ if (xmlDeclHandler != null) {
69
+ xmlDeclHandler.xmlDecl(version, encoding, standalone);
64
70
  }
71
+ }
65
72
  }
@@ -28,7 +28,7 @@ import org.w3c.dom.Attr;
28
28
  * Compares two attributes based on the C14n specification.
29
29
  *
30
30
  * <UL>
31
- * <LI>Namespace nodes have a lesser document order position than attribute
31
+ * <LI>Namespace nodes have a lesser document order position than attribute
32
32
  * nodes.
33
33
  * <LI> An element's namespace nodes are sorted lexicographically by
34
34
  * local name (the default namespace node, if one exists, has no
@@ -40,80 +40,83 @@ import org.w3c.dom.Attr;
40
40
  *
41
41
  * @author Christian Geuer-Pollmann
42
42
  */
43
- public class AttrCompare implements Comparator<Attr>, Serializable {
43
+ public class AttrCompare implements Comparator<Attr>, Serializable
44
+ {
44
45
 
45
- private static final long serialVersionUID = -7113259629930576230L;
46
- private static final int ATTR0_BEFORE_ATTR1 = -1;
47
- private static final int ATTR1_BEFORE_ATTR0 = 1;
48
- private static final String XMLNS = Constants.NamespaceSpecNS;
46
+ private static final long serialVersionUID = -7113259629930576230L;
47
+ private static final int ATTR0_BEFORE_ATTR1 = -1;
48
+ private static final int ATTR1_BEFORE_ATTR0 = 1;
49
+ private static final String XMLNS = Constants.NamespaceSpecNS;
49
50
 
50
- /**
51
- * Compares two attributes based on the C14n specification.
52
- *
53
- * <UL>
54
- * <LI>Namespace nodes have a lesser document order position than
55
- * attribute nodes.
56
- * <LI> An element's namespace nodes are sorted lexicographically by
57
- * local name (the default namespace node, if one exists, has no
58
- * local name and is therefore lexicographically least).
59
- * <LI> An element's attribute nodes are sorted lexicographically with
60
- * namespace URI as the primary key and local name as the secondary
61
- * key (an empty namespace URI is lexicographically least).
62
- * </UL>
63
- *
64
- * @param attr0
65
- * @param attr1
66
- * @return returns a negative integer, zero, or a positive integer as
67
- * obj0 is less than, equal to, or greater than obj1
68
- *
69
- */
70
- public int compare(Attr attr0, Attr attr1) {
71
- String namespaceURI0 = attr0.getNamespaceURI();
72
- String namespaceURI1 = attr1.getNamespaceURI();
73
-
74
- boolean isNamespaceAttr0 = XMLNS.equals(namespaceURI0);
75
- boolean isNamespaceAttr1 = XMLNS.equals(namespaceURI1);
51
+ /**
52
+ * Compares two attributes based on the C14n specification.
53
+ *
54
+ * <UL>
55
+ * <LI>Namespace nodes have a lesser document order position than
56
+ * attribute nodes.
57
+ * <LI> An element's namespace nodes are sorted lexicographically by
58
+ * local name (the default namespace node, if one exists, has no
59
+ * local name and is therefore lexicographically least).
60
+ * <LI> An element's attribute nodes are sorted lexicographically with
61
+ * namespace URI as the primary key and local name as the secondary
62
+ * key (an empty namespace URI is lexicographically least).
63
+ * </UL>
64
+ *
65
+ * @param attr0
66
+ * @param attr1
67
+ * @return returns a negative integer, zero, or a positive integer as
68
+ * obj0 is less than, equal to, or greater than obj1
69
+ *
70
+ */
71
+ public int
72
+ compare(Attr attr0, Attr attr1)
73
+ {
74
+ String namespaceURI0 = attr0.getNamespaceURI();
75
+ String namespaceURI1 = attr1.getNamespaceURI();
76
76
 
77
- if (isNamespaceAttr0) {
78
- if (isNamespaceAttr1) {
79
- // both are namespaces
80
- String localname0 = attr0.getLocalName();
81
- String localname1 = attr1.getLocalName();
77
+ boolean isNamespaceAttr0 = XMLNS.equals(namespaceURI0);
78
+ boolean isNamespaceAttr1 = XMLNS.equals(namespaceURI1);
82
79
 
83
- if ("xmlns".equals(localname0)) {
84
- localname0 = "";
85
- }
80
+ if (isNamespaceAttr0) {
81
+ if (isNamespaceAttr1) {
82
+ // both are namespaces
83
+ String localname0 = attr0.getLocalName();
84
+ String localname1 = attr1.getLocalName();
86
85
 
87
- if ("xmlns".equals(localname1)) {
88
- localname1 = "";
89
- }
86
+ if ("xmlns".equals(localname0)) {
87
+ localname0 = "";
88
+ }
90
89
 
91
- return localname0.compareTo(localname1);
92
- }
93
- // attr0 is a namespace, attr1 is not
94
- return ATTR0_BEFORE_ATTR1;
95
- } else if (isNamespaceAttr1) {
96
- // attr1 is a namespace, attr0 is not
97
- return ATTR1_BEFORE_ATTR0;
98
- }
90
+ if ("xmlns".equals(localname1)) {
91
+ localname1 = "";
92
+ }
99
93
 
100
- // none is a namespace
101
- if (namespaceURI0 == null) {
102
- if (namespaceURI1 == null) {
103
- String name0 = attr0.getName();
104
- String name1 = attr1.getName();
105
- return name0.compareTo(name1);
106
- }
107
- return ATTR0_BEFORE_ATTR1;
108
- } else if (namespaceURI1 == null) {
109
- return ATTR1_BEFORE_ATTR0;
110
- }
94
+ return localname0.compareTo(localname1);
95
+ }
96
+ // attr0 is a namespace, attr1 is not
97
+ return ATTR0_BEFORE_ATTR1;
98
+ } else if (isNamespaceAttr1) {
99
+ // attr1 is a namespace, attr0 is not
100
+ return ATTR1_BEFORE_ATTR0;
101
+ }
111
102
 
112
- int a = namespaceURI0.compareTo(namespaceURI1);
113
- if (a != 0) {
114
- return a;
115
- }
116
-
117
- return (attr0.getLocalName()).compareTo(attr1.getLocalName());
103
+ // none is a namespace
104
+ if (namespaceURI0 == null) {
105
+ if (namespaceURI1 == null) {
106
+ String name0 = attr0.getName();
107
+ String name1 = attr1.getName();
108
+ return name0.compareTo(name1);
109
+ }
110
+ return ATTR0_BEFORE_ATTR1;
111
+ } else if (namespaceURI1 == null) {
112
+ return ATTR1_BEFORE_ATTR0;
118
113
  }
114
+
115
+ int a = namespaceURI0.compareTo(namespaceURI1);
116
+ if (a != 0) {
117
+ return a;
118
+ }
119
+
120
+ return (attr0.getLocalName()).compareTo(attr1.getLocalName());
121
+ }
119
122
  }
@@ -29,131 +29,150 @@ import org.w3c.dom.NamedNodeMap;
29
29
  *
30
30
  * @author Christian Geuer-Pollmann
31
31
  */
32
- public class C14nHelper {
33
-
34
- /**
35
- * Constructor C14nHelper
36
- *
37
- */
38
- private C14nHelper() {
39
- // don't allow instantiation
32
+ public class C14nHelper
33
+ {
34
+
35
+ /**
36
+ * Constructor C14nHelper
37
+ *
38
+ */
39
+ private
40
+ C14nHelper()
41
+ {
42
+ // don't allow instantiation
43
+ }
44
+
45
+ /**
46
+ * Method namespaceIsRelative
47
+ *
48
+ * @param namespace
49
+ * @return true if the given namespace is relative.
50
+ */
51
+ public static boolean
52
+ namespaceIsRelative(Attr namespace)
53
+ {
54
+ return !namespaceIsAbsolute(namespace);
55
+ }
56
+
57
+ /**
58
+ * Method namespaceIsRelative
59
+ *
60
+ * @param namespaceValue
61
+ * @return true if the given namespace is relative.
62
+ */
63
+ public static boolean
64
+ namespaceIsRelative(String namespaceValue)
65
+ {
66
+ return !namespaceIsAbsolute(namespaceValue);
67
+ }
68
+
69
+ /**
70
+ * Method namespaceIsAbsolute
71
+ *
72
+ * @param namespace
73
+ * @return true if the given namespace is absolute.
74
+ */
75
+ public static boolean
76
+ namespaceIsAbsolute(Attr namespace)
77
+ {
78
+ return namespaceIsAbsolute(namespace.getValue());
79
+ }
80
+
81
+ /**
82
+ * Method namespaceIsAbsolute
83
+ *
84
+ * @param namespaceValue
85
+ * @return true if the given namespace is absolute.
86
+ */
87
+ public static boolean
88
+ namespaceIsAbsolute(String namespaceValue)
89
+ {
90
+ // assume empty namespaces are absolute
91
+ if (namespaceValue.length() == 0) {
92
+ return true;
40
93
  }
41
-
42
- /**
43
- * Method namespaceIsRelative
44
- *
45
- * @param namespace
46
- * @return true if the given namespace is relative.
47
- */
48
- public static boolean namespaceIsRelative(Attr namespace) {
49
- return !namespaceIsAbsolute(namespace);
94
+ return namespaceValue.indexOf(':') > 0;
95
+ }
96
+
97
+ /**
98
+ * This method throws an exception if the Attribute value contains
99
+ * a relative URI.
100
+ *
101
+ * @param attr
102
+ * @throws CanonicalizationException
103
+ */
104
+ public static void
105
+ assertNotRelativeNS(Attr attr) throws CanonicalizationException
106
+ {
107
+ if (attr == null) {
108
+ return;
50
109
  }
51
110
 
52
- /**
53
- * Method namespaceIsRelative
54
- *
55
- * @param namespaceValue
56
- * @return true if the given namespace is relative.
57
- */
58
- public static boolean namespaceIsRelative(String namespaceValue) {
59
- return !namespaceIsAbsolute(namespaceValue);
60
- }
111
+ String nodeAttrName = attr.getNodeName();
112
+ boolean definesDefaultNS = nodeAttrName.equals("xmlns");
113
+ boolean definesNonDefaultNS = nodeAttrName.startsWith("xmlns:");
61
114
 
62
- /**
63
- * Method namespaceIsAbsolute
64
- *
65
- * @param namespace
66
- * @return true if the given namespace is absolute.
67
- */
68
- public static boolean namespaceIsAbsolute(Attr namespace) {
69
- return namespaceIsAbsolute(namespace.getValue());
70
- }
115
+ if ((definesDefaultNS || definesNonDefaultNS) && namespaceIsRelative(attr)) {
116
+ String parentName = attr.getOwnerElement().getTagName();
117
+ String attrValue = attr.getValue();
118
+ Object exArgs[] = { parentName, nodeAttrName, attrValue };
71
119
 
72
- /**
73
- * Method namespaceIsAbsolute
74
- *
75
- * @param namespaceValue
76
- * @return true if the given namespace is absolute.
77
- */
78
- public static boolean namespaceIsAbsolute(String namespaceValue) {
79
- // assume empty namespaces are absolute
80
- if (namespaceValue.length() == 0) {
81
- return true;
82
- }
83
- return namespaceValue.indexOf(':') > 0;
120
+ throw new CanonicalizationException(
121
+ "c14n.Canonicalizer.RelativeNamespace", exArgs
122
+ );
84
123
  }
85
-
86
- /**
87
- * This method throws an exception if the Attribute value contains
88
- * a relative URI.
89
- *
90
- * @param attr
91
- * @throws CanonicalizationException
92
- */
93
- public static void assertNotRelativeNS(Attr attr) throws CanonicalizationException {
94
- if (attr == null) {
95
- return;
96
- }
97
-
98
- String nodeAttrName = attr.getNodeName();
99
- boolean definesDefaultNS = nodeAttrName.equals("xmlns");
100
- boolean definesNonDefaultNS = nodeAttrName.startsWith("xmlns:");
101
-
102
- if ((definesDefaultNS || definesNonDefaultNS) && namespaceIsRelative(attr)) {
103
- String parentName = attr.getOwnerElement().getTagName();
104
- String attrValue = attr.getValue();
105
- Object exArgs[] = { parentName, nodeAttrName, attrValue };
106
-
107
- throw new CanonicalizationException(
108
- "c14n.Canonicalizer.RelativeNamespace", exArgs
109
- );
110
- }
124
+ }
125
+
126
+ /**
127
+ * This method throws a CanonicalizationException if the supplied Document
128
+ * is not able to be traversed using a TreeWalker.
129
+ *
130
+ * @param document
131
+ * @throws CanonicalizationException
132
+ */
133
+ public static void
134
+ checkTraversability(Document document)
135
+ throws CanonicalizationException
136
+ {
137
+ if (!document.isSupported("Traversal", "2.0")) {
138
+ Object exArgs[] = {document.getImplementation().getClass().getName() };
139
+
140
+ throw new CanonicalizationException(
141
+ "c14n.Canonicalizer.TraversalNotSupported", exArgs
142
+ );
111
143
  }
112
-
113
- /**
114
- * This method throws a CanonicalizationException if the supplied Document
115
- * is not able to be traversed using a TreeWalker.
116
- *
117
- * @param document
118
- * @throws CanonicalizationException
119
- */
120
- public static void checkTraversability(Document document)
121
- throws CanonicalizationException {
122
- if (!document.isSupported("Traversal", "2.0")) {
123
- Object exArgs[] = {document.getImplementation().getClass().getName() };
124
-
125
- throw new CanonicalizationException(
126
- "c14n.Canonicalizer.TraversalNotSupported", exArgs
127
- );
128
- }
129
- }
130
-
131
- /**
132
- * This method throws a CanonicalizationException if the supplied Element
133
- * contains any relative namespaces.
134
- *
135
- * @param ctxNode
136
- * @throws CanonicalizationException
137
- * @see C14nHelper#assertNotRelativeNS(Attr)
138
- */
139
- public static void checkForRelativeNamespace(Element ctxNode)
140
- throws CanonicalizationException {
141
- if (ctxNode != null) {
142
- NamedNodeMap attributes = ctxNode.getAttributes();
143
-
144
- for (int i = 0; i < attributes.getLength(); i++) {
145
- C14nHelper.assertNotRelativeNS((Attr) attributes.item(i));
146
- }
147
- } else {
148
- throw new CanonicalizationException("Called checkForRelativeNamespace() on null");
149
- }
144
+ }
145
+
146
+ /**
147
+ * This method throws a CanonicalizationException if the supplied Element
148
+ * contains any relative namespaces.
149
+ *
150
+ * @param ctxNode
151
+ * @throws CanonicalizationException
152
+ * @see C14nHelper#assertNotRelativeNS(Attr)
153
+ */
154
+ public static void
155
+ checkForRelativeNamespace(Element ctxNode)
156
+ throws CanonicalizationException
157
+ {
158
+ if (ctxNode != null) {
159
+ NamedNodeMap attributes = ctxNode.getAttributes();
160
+
161
+ for (int i = 0; i < attributes.getLength(); i++) {
162
+ C14nHelper.assertNotRelativeNS((Attr) attributes.item(i));
163
+ }
164
+ } else {
165
+ throw new CanonicalizationException("Called checkForRelativeNamespace() on null");
150
166
  }
151
-
152
- public static String getErrorMessage(String message, Object... exArgs) {
153
- StringBuffer sb = new StringBuffer(message);
154
- for (Object arg : exArgs) {
155
- sb.append(", ").append(arg.toString());
156
- }
157
- return new String(sb);
167
+ }
168
+
169
+ public static String
170
+ getErrorMessage(String message, Object... exArgs)
171
+ {
172
+ StringBuffer sb = new StringBuffer(message);
173
+ for (Object arg : exArgs) {
174
+ sb.append(", ").append(arg.toString());
158
175
  }
176
+ return new String(sb);
177
+ }
159
178
  }