nokogiri 1.11.0.rc3-java → 1.11.4-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.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/LICENSE-DEPENDENCIES.md +1015 -947
- data/LICENSE.md +1 -1
- data/README.md +168 -91
- data/dependencies.yml +12 -12
- data/ext/java/nokogiri/EncodingHandler.java +76 -89
- data/ext/java/nokogiri/HtmlDocument.java +135 -144
- data/ext/java/nokogiri/HtmlElementDescription.java +102 -117
- data/ext/java/nokogiri/HtmlEntityLookup.java +33 -60
- data/ext/java/nokogiri/HtmlSaxParserContext.java +218 -222
- data/ext/java/nokogiri/HtmlSaxPushParser.java +162 -169
- data/ext/java/nokogiri/NokogiriService.java +595 -556
- data/ext/java/nokogiri/XmlAttr.java +118 -126
- data/ext/java/nokogiri/XmlAttributeDecl.java +95 -106
- data/ext/java/nokogiri/XmlCdata.java +35 -58
- data/ext/java/nokogiri/XmlComment.java +46 -67
- data/ext/java/nokogiri/XmlDocument.java +645 -572
- data/ext/java/nokogiri/XmlDocumentFragment.java +125 -137
- data/ext/java/nokogiri/XmlDtd.java +448 -414
- data/ext/java/nokogiri/XmlElement.java +23 -48
- data/ext/java/nokogiri/XmlElementContent.java +343 -316
- data/ext/java/nokogiri/XmlElementDecl.java +124 -125
- data/ext/java/nokogiri/XmlEntityDecl.java +119 -127
- data/ext/java/nokogiri/XmlEntityReference.java +49 -72
- data/ext/java/nokogiri/XmlNamespace.java +175 -175
- data/ext/java/nokogiri/XmlNode.java +1843 -1622
- data/ext/java/nokogiri/XmlNodeSet.java +361 -331
- data/ext/java/nokogiri/XmlProcessingInstruction.java +47 -69
- data/ext/java/nokogiri/XmlReader.java +513 -450
- data/ext/java/nokogiri/XmlRelaxng.java +89 -101
- data/ext/java/nokogiri/XmlSaxParserContext.java +328 -310
- data/ext/java/nokogiri/XmlSaxPushParser.java +227 -220
- data/ext/java/nokogiri/XmlSchema.java +335 -242
- data/ext/java/nokogiri/XmlSyntaxError.java +113 -119
- data/ext/java/nokogiri/XmlText.java +55 -76
- data/ext/java/nokogiri/XmlXpathContext.java +242 -210
- data/ext/java/nokogiri/XsltStylesheet.java +280 -269
- data/ext/java/nokogiri/internals/ClosedStreamException.java +5 -2
- data/ext/java/nokogiri/internals/HtmlDomParserContext.java +201 -190
- data/ext/java/nokogiri/internals/IgnoreSchemaErrorsErrorHandler.java +17 -10
- data/ext/java/nokogiri/internals/NokogiriBlockingQueueInputStream.java +43 -16
- data/ext/java/nokogiri/internals/NokogiriDomParser.java +63 -80
- data/ext/java/nokogiri/internals/NokogiriEntityResolver.java +107 -88
- data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +27 -52
- data/ext/java/nokogiri/internals/NokogiriHandler.java +316 -286
- data/ext/java/nokogiri/internals/NokogiriHelpers.java +736 -652
- data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +184 -173
- data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +79 -89
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +64 -79
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +84 -99
- data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +48 -65
- data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +119 -78
- data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +34 -54
- data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +23 -46
- data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +55 -72
- data/ext/java/nokogiri/internals/ParserContext.java +206 -211
- data/ext/java/nokogiri/internals/ReaderNode.java +478 -403
- data/ext/java/nokogiri/internals/SaveContextVisitor.java +822 -739
- data/ext/java/nokogiri/internals/SchemaErrorHandler.java +31 -54
- data/ext/java/nokogiri/internals/XalanDTMManagerPatch.java +129 -123
- data/ext/java/nokogiri/internals/XmlDeclHandler.java +3 -34
- data/ext/java/nokogiri/internals/XmlDomParserContext.java +206 -207
- data/ext/java/nokogiri/internals/XmlSaxParser.java +22 -47
- data/ext/java/nokogiri/internals/c14n/AttrCompare.java +71 -68
- data/ext/java/nokogiri/internals/c14n/C14nHelper.java +137 -118
- data/ext/java/nokogiri/internals/c14n/CanonicalFilter.java +27 -21
- data/ext/java/nokogiri/internals/c14n/CanonicalizationException.java +74 -61
- data/ext/java/nokogiri/internals/c14n/Canonicalizer.java +230 -205
- data/ext/java/nokogiri/internals/c14n/Canonicalizer11.java +572 -547
- data/ext/java/nokogiri/internals/c14n/Canonicalizer11_OmitComments.java +17 -10
- data/ext/java/nokogiri/internals/c14n/Canonicalizer11_WithComments.java +17 -10
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315.java +323 -302
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315Excl.java +232 -219
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclOmitComments.java +22 -15
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315ExclWithComments.java +23 -16
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315OmitComments.java +23 -16
- data/ext/java/nokogiri/internals/c14n/Canonicalizer20010315WithComments.java +22 -15
- data/ext/java/nokogiri/internals/c14n/CanonicalizerBase.java +575 -545
- data/ext/java/nokogiri/internals/c14n/CanonicalizerPhysical.java +141 -120
- data/ext/java/nokogiri/internals/c14n/CanonicalizerSpi.java +39 -38
- data/ext/java/nokogiri/internals/c14n/Constants.java +13 -10
- data/ext/java/nokogiri/internals/c14n/ElementProxy.java +279 -247
- data/ext/java/nokogiri/internals/c14n/HelperNodeList.java +66 -53
- data/ext/java/nokogiri/internals/c14n/IgnoreAllErrorHandler.java +44 -37
- data/ext/java/nokogiri/internals/c14n/InclusiveNamespaces.java +135 -120
- data/ext/java/nokogiri/internals/c14n/InvalidCanonicalizerException.java +59 -48
- data/ext/java/nokogiri/internals/c14n/NameSpaceSymbTable.java +384 -334
- data/ext/java/nokogiri/internals/c14n/NodeFilter.java +25 -24
- data/ext/java/nokogiri/internals/c14n/UtfHelpper.java +151 -140
- data/ext/java/nokogiri/internals/c14n/XMLUtils.java +456 -423
- data/ext/java/nokogiri/internals/dom2dtm/DOM2DTM.java +1466 -1500
- data/ext/java/nokogiri/internals/dom2dtm/DOM2DTMdefaultNamespaceDeclarationNode.java +626 -574
- data/ext/nokogiri/depend +37 -358
- data/ext/nokogiri/extconf.rb +581 -374
- data/ext/nokogiri/html_document.c +78 -82
- data/ext/nokogiri/html_element_description.c +84 -71
- data/ext/nokogiri/html_entity_lookup.c +21 -16
- data/ext/nokogiri/html_sax_parser_context.c +69 -66
- data/ext/nokogiri/html_sax_push_parser.c +42 -34
- data/ext/nokogiri/libxml2_backwards_compat.c +121 -0
- data/ext/nokogiri/nokogiri.c +192 -93
- data/ext/nokogiri/test_global_handlers.c +40 -0
- data/ext/nokogiri/xml_attr.c +15 -15
- data/ext/nokogiri/xml_attribute_decl.c +18 -18
- data/ext/nokogiri/xml_cdata.c +13 -18
- data/ext/nokogiri/xml_comment.c +19 -26
- data/ext/nokogiri/xml_document.c +246 -188
- data/ext/nokogiri/xml_document_fragment.c +13 -15
- data/ext/nokogiri/xml_dtd.c +54 -48
- data/ext/nokogiri/xml_element_content.c +30 -27
- data/ext/nokogiri/xml_element_decl.c +22 -22
- data/ext/nokogiri/xml_encoding_handler.c +17 -11
- data/ext/nokogiri/xml_entity_decl.c +32 -30
- data/ext/nokogiri/xml_entity_reference.c +16 -18
- data/ext/nokogiri/xml_namespace.c +56 -49
- data/ext/nokogiri/xml_node.c +371 -320
- data/ext/nokogiri/xml_node_set.c +168 -156
- data/ext/nokogiri/xml_processing_instruction.c +17 -19
- data/ext/nokogiri/xml_reader.c +191 -157
- data/ext/nokogiri/xml_relax_ng.c +52 -28
- data/ext/nokogiri/xml_sax_parser.c +118 -118
- data/ext/nokogiri/xml_sax_parser_context.c +103 -86
- data/ext/nokogiri/xml_sax_push_parser.c +36 -27
- data/ext/nokogiri/xml_schema.c +95 -47
- data/ext/nokogiri/xml_syntax_error.c +42 -21
- data/ext/nokogiri/xml_text.c +13 -17
- data/ext/nokogiri/xml_xpath_context.c +206 -123
- data/ext/nokogiri/xslt_stylesheet.c +158 -161
- data/lib/nokogiri.rb +3 -7
- data/lib/nokogiri/css/parser.rb +3 -3
- data/lib/nokogiri/css/parser.y +2 -2
- data/lib/nokogiri/css/xpath_visitor.rb +70 -42
- data/lib/nokogiri/extension.rb +26 -0
- data/lib/nokogiri/html/document.rb +12 -26
- data/lib/nokogiri/html/document_fragment.rb +15 -15
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +2 -149
- data/lib/nokogiri/version/constant.rb +5 -0
- data/lib/nokogiri/version/info.rb +205 -0
- data/lib/nokogiri/xml/document.rb +91 -35
- data/lib/nokogiri/xml/document_fragment.rb +4 -6
- data/lib/nokogiri/xml/node.rb +89 -69
- data/lib/nokogiri/xml/parse_options.rb +6 -0
- data/lib/nokogiri/xml/reader.rb +2 -9
- data/lib/nokogiri/xml/relax_ng.rb +6 -2
- data/lib/nokogiri/xml/schema.rb +12 -4
- data/lib/nokogiri/xml/searchable.rb +3 -1
- data/lib/nokogiri/xml/xpath.rb +1 -3
- data/lib/nokogiri/xml/xpath/syntax_error.rb +1 -1
- metadata +86 -177
- data/ext/nokogiri/html_document.h +0 -10
- data/ext/nokogiri/html_element_description.h +0 -10
- data/ext/nokogiri/html_entity_lookup.h +0 -8
- data/ext/nokogiri/html_sax_parser_context.h +0 -11
- data/ext/nokogiri/html_sax_push_parser.h +0 -9
- data/ext/nokogiri/nokogiri.h +0 -134
- data/ext/nokogiri/xml_attr.h +0 -9
- data/ext/nokogiri/xml_attribute_decl.h +0 -9
- data/ext/nokogiri/xml_cdata.h +0 -9
- data/ext/nokogiri/xml_comment.h +0 -9
- data/ext/nokogiri/xml_document.h +0 -23
- data/ext/nokogiri/xml_document_fragment.h +0 -10
- data/ext/nokogiri/xml_dtd.h +0 -10
- data/ext/nokogiri/xml_element_content.h +0 -10
- data/ext/nokogiri/xml_element_decl.h +0 -9
- data/ext/nokogiri/xml_encoding_handler.h +0 -8
- data/ext/nokogiri/xml_entity_decl.h +0 -10
- data/ext/nokogiri/xml_entity_reference.h +0 -9
- data/ext/nokogiri/xml_io.c +0 -63
- data/ext/nokogiri/xml_io.h +0 -11
- data/ext/nokogiri/xml_libxml2_hacks.c +0 -112
- data/ext/nokogiri/xml_libxml2_hacks.h +0 -12
- data/ext/nokogiri/xml_namespace.h +0 -14
- data/ext/nokogiri/xml_node.h +0 -13
- data/ext/nokogiri/xml_node_set.h +0 -12
- data/ext/nokogiri/xml_processing_instruction.h +0 -9
- data/ext/nokogiri/xml_reader.h +0 -10
- data/ext/nokogiri/xml_relax_ng.h +0 -9
- data/ext/nokogiri/xml_sax_parser.h +0 -39
- data/ext/nokogiri/xml_sax_parser_context.h +0 -10
- data/ext/nokogiri/xml_sax_push_parser.h +0 -9
- data/ext/nokogiri/xml_schema.h +0 -9
- data/ext/nokogiri/xml_syntax_error.h +0 -13
- data/ext/nokogiri/xml_text.h +0 -9
- data/ext/nokogiri/xml_xpath_context.h +0 -10
- data/ext/nokogiri/xslt_stylesheet.h +0 -14
@@ -27,67 +27,80 @@ import org.w3c.dom.NodeList;
|
|
27
27
|
/**
|
28
28
|
* @author Christian Geuer-Pollmann
|
29
29
|
*/
|
30
|
-
public class HelperNodeList implements NodeList
|
30
|
+
public class HelperNodeList implements NodeList
|
31
|
+
{
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
/** Field nodes */
|
34
|
+
List<Node> nodes = new ArrayList<Node>();
|
35
|
+
boolean allNodesMustHaveSameParent = false;
|
35
36
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
/**
|
38
|
+
*
|
39
|
+
*/
|
40
|
+
public
|
41
|
+
HelperNodeList()
|
42
|
+
{
|
43
|
+
this(false);
|
44
|
+
}
|
42
45
|
|
43
46
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
/**
|
48
|
+
* @param allNodesMustHaveSameParent
|
49
|
+
*/
|
50
|
+
public
|
51
|
+
HelperNodeList(boolean allNodesMustHaveSameParent)
|
52
|
+
{
|
53
|
+
this.allNodesMustHaveSameParent = allNodesMustHaveSameParent;
|
54
|
+
}
|
50
55
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
56
|
+
/**
|
57
|
+
* Method item
|
58
|
+
*
|
59
|
+
* @param index
|
60
|
+
* @return node with index i
|
61
|
+
*/
|
62
|
+
public Node
|
63
|
+
item(int index)
|
64
|
+
{
|
65
|
+
return nodes.get(index);
|
66
|
+
}
|
60
67
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
68
|
+
/**
|
69
|
+
* Method getLength
|
70
|
+
*
|
71
|
+
* @return length of the list
|
72
|
+
*/
|
73
|
+
public int
|
74
|
+
getLength()
|
75
|
+
{
|
76
|
+
return nodes.size();
|
77
|
+
}
|
69
78
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
79
|
+
/**
|
80
|
+
* Method appendChild
|
81
|
+
*
|
82
|
+
* @param node
|
83
|
+
* @throws IllegalArgumentException
|
84
|
+
*/
|
85
|
+
public void
|
86
|
+
appendChild(Node node) throws IllegalArgumentException
|
87
|
+
{
|
88
|
+
if (this.allNodesMustHaveSameParent && this.getLength() > 0
|
89
|
+
&& this.item(0).getParentNode() != node.getParentNode()) {
|
90
|
+
throw new IllegalArgumentException("Nodes have not the same Parent");
|
82
91
|
}
|
92
|
+
nodes.add(node);
|
93
|
+
}
|
83
94
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
95
|
+
/**
|
96
|
+
* @return the document that contains this nodelist
|
97
|
+
*/
|
98
|
+
public Document
|
99
|
+
getOwnerDocument()
|
100
|
+
{
|
101
|
+
if (this.getLength() == 0) {
|
102
|
+
return null;
|
92
103
|
}
|
104
|
+
return XMLUtils.getOwnerDocument(this.item(0));
|
105
|
+
}
|
93
106
|
}
|
@@ -28,52 +28,59 @@ import org.xml.sax.SAXParseException;
|
|
28
28
|
*
|
29
29
|
* @author Christian Geuer-Pollmann
|
30
30
|
*/
|
31
|
-
public class IgnoreAllErrorHandler implements ErrorHandler
|
31
|
+
public class IgnoreAllErrorHandler implements ErrorHandler
|
32
|
+
{
|
32
33
|
|
33
|
-
|
34
|
-
|
35
|
-
|
34
|
+
/** Field throwExceptions */
|
35
|
+
private static final boolean warnOnExceptions =
|
36
|
+
System.getProperty("org.apache.xml.security.test.warn.on.exceptions", "false").equals("true");
|
36
37
|
|
37
|
-
|
38
|
-
|
39
|
-
|
38
|
+
/** Field throwExceptions */
|
39
|
+
private static final boolean throwExceptions =
|
40
|
+
System.getProperty("org.apache.xml.security.test.throw.exceptions", "false").equals("true");
|
40
41
|
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
throw ex;
|
51
|
-
}
|
43
|
+
/** @inheritDoc */
|
44
|
+
public void
|
45
|
+
warning(SAXParseException ex) throws SAXException
|
46
|
+
{
|
47
|
+
if (IgnoreAllErrorHandler.warnOnExceptions) {
|
48
|
+
// TODO
|
49
|
+
// get handler from upper layer
|
50
|
+
//log.warn("", ex);
|
52
51
|
}
|
52
|
+
if (IgnoreAllErrorHandler.throwExceptions) {
|
53
|
+
throw ex;
|
54
|
+
}
|
55
|
+
}
|
53
56
|
|
54
57
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
58
|
+
/** @inheritDoc */
|
59
|
+
public void
|
60
|
+
error(SAXParseException ex) throws SAXException
|
61
|
+
{
|
62
|
+
if (IgnoreAllErrorHandler.warnOnExceptions) {
|
63
|
+
// TODO
|
64
|
+
// get handler from upper layer
|
65
|
+
//log.error("", ex);
|
66
|
+
}
|
67
|
+
if (IgnoreAllErrorHandler.throwExceptions) {
|
68
|
+
throw ex;
|
65
69
|
}
|
70
|
+
}
|
66
71
|
|
67
72
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
73
|
+
/** @inheritDoc */
|
74
|
+
public void
|
75
|
+
fatalError(SAXParseException ex) throws SAXException
|
76
|
+
{
|
77
|
+
if (IgnoreAllErrorHandler.warnOnExceptions) {
|
78
|
+
// TODO
|
79
|
+
// get handler from upper layer
|
80
|
+
//log.warn("", ex);
|
81
|
+
}
|
82
|
+
if (IgnoreAllErrorHandler.throwExceptions) {
|
83
|
+
throw ex;
|
78
84
|
}
|
85
|
+
}
|
79
86
|
}
|
@@ -36,131 +36,146 @@ import org.w3c.dom.Element;
|
|
36
36
|
* @author Christian Geuer-Pollmann
|
37
37
|
*/
|
38
38
|
//public class InclusiveNamespaces extends ElementProxy implements TransformParam {
|
39
|
-
public class InclusiveNamespaces extends ElementProxy
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
39
|
+
public class InclusiveNamespaces extends ElementProxy
|
40
|
+
{
|
41
|
+
|
42
|
+
/** Field _TAG_EC_INCLUSIVENAMESPACES */
|
43
|
+
public static final String _TAG_EC_INCLUSIVENAMESPACES =
|
44
|
+
"InclusiveNamespaces";
|
45
|
+
|
46
|
+
/** Field _ATT_EC_PREFIXLIST */
|
47
|
+
public static final String _ATT_EC_PREFIXLIST = "PrefixList";
|
48
|
+
|
49
|
+
/** Field ExclusiveCanonicalizationNamespace */
|
50
|
+
public static final String ExclusiveCanonicalizationNamespace =
|
51
|
+
"http://www.w3.org/2001/10/xml-exc-c14n#";
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Constructor XPathContainer
|
55
|
+
*
|
56
|
+
* @param doc
|
57
|
+
* @param prefixList
|
58
|
+
*/
|
59
|
+
public
|
60
|
+
InclusiveNamespaces(Document doc, String prefixList)
|
61
|
+
{
|
62
|
+
this(doc, InclusiveNamespaces.prefixStr2Set(prefixList));
|
63
|
+
}
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Constructor InclusiveNamespaces
|
67
|
+
*
|
68
|
+
* @param doc
|
69
|
+
* @param prefixes
|
70
|
+
*/
|
71
|
+
public
|
72
|
+
InclusiveNamespaces(Document doc, Set<String> prefixes)
|
73
|
+
{
|
74
|
+
super(doc);
|
75
|
+
|
76
|
+
SortedSet<String> prefixList;
|
77
|
+
if (prefixes instanceof SortedSet<?>) {
|
78
|
+
prefixList = (SortedSet<String>)prefixes;
|
79
|
+
} else {
|
80
|
+
prefixList = new TreeSet<String>(prefixes);
|
60
81
|
}
|
61
82
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
super(doc);
|
70
|
-
|
71
|
-
SortedSet<String> prefixList;
|
72
|
-
if (prefixes instanceof SortedSet<?>) {
|
73
|
-
prefixList = (SortedSet<String>)prefixes;
|
74
|
-
} else {
|
75
|
-
prefixList = new TreeSet<String>(prefixes);
|
76
|
-
}
|
77
|
-
|
78
|
-
StringBuilder sb = new StringBuilder(prefixList.size() * 8);
|
79
|
-
for (String prefix : prefixList) {
|
80
|
-
if (prefix.equals("xmlns")) {
|
81
|
-
sb.append("#default ");
|
82
|
-
} else {
|
83
|
-
sb.append(prefix).append(' ');
|
84
|
-
}
|
85
|
-
}
|
86
|
-
int last = sb.length() - 1;
|
87
|
-
while (last >= 0 && sb.charAt(last) == ' ') sb.setLength(last--); // trim
|
88
|
-
|
89
|
-
this.constructionElement.setAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST, sb.toString());
|
83
|
+
StringBuilder sb = new StringBuilder(prefixList.size() * 8);
|
84
|
+
for (String prefix : prefixList) {
|
85
|
+
if (prefix.equals("xmlns")) {
|
86
|
+
sb.append("#default ");
|
87
|
+
} else {
|
88
|
+
sb.append(prefix).append(' ');
|
89
|
+
}
|
90
90
|
}
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
91
|
+
int last = sb.length() - 1;
|
92
|
+
while (last >= 0 && sb.charAt(last) == ' ') { sb.setLength(last--); } // trim
|
93
|
+
|
94
|
+
this.constructionElement.setAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST, sb.toString());
|
95
|
+
}
|
96
|
+
|
97
|
+
/**
|
98
|
+
* Constructor InclusiveNamespaces
|
99
|
+
*
|
100
|
+
* @param element
|
101
|
+
* @param BaseURI
|
102
|
+
* @throws XMLSecurityException
|
103
|
+
*/
|
104
|
+
public
|
105
|
+
InclusiveNamespaces(Element element, String BaseURI)
|
106
|
+
throws CanonicalizationException
|
107
|
+
{
|
108
|
+
super(element, BaseURI);
|
109
|
+
}
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Method getInclusiveNamespaces
|
113
|
+
*
|
114
|
+
* @return The Inclusive Namespace string
|
115
|
+
*/
|
116
|
+
public String
|
117
|
+
getInclusiveNamespaces()
|
118
|
+
{
|
119
|
+
return this.constructionElement.getAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST);
|
120
|
+
}
|
121
|
+
|
122
|
+
/**
|
123
|
+
* Decodes the <code>inclusiveNamespaces</code> String and returns all
|
124
|
+
* selected namespace prefixes as a Set. The <code>#default</code>
|
125
|
+
* namespace token is represented as an empty namespace prefix
|
126
|
+
* (<code>"xmlns"</code>).
|
127
|
+
* <BR/>
|
128
|
+
* The String <code>inclusiveNamespaces=" xenc ds #default"</code>
|
129
|
+
* is returned as a Set containing the following Strings:
|
130
|
+
* <UL>
|
131
|
+
* <LI><code>xmlns</code></LI>
|
132
|
+
* <LI><code>xenc</code></LI>
|
133
|
+
* <LI><code>ds</code></LI>
|
134
|
+
* </UL>
|
135
|
+
*
|
136
|
+
* @param inclusiveNamespaces
|
137
|
+
* @return A set to string
|
138
|
+
*/
|
139
|
+
public static SortedSet<String>
|
140
|
+
prefixStr2Set(String inclusiveNamespaces)
|
141
|
+
{
|
142
|
+
SortedSet<String> prefixes = new TreeSet<String>();
|
143
|
+
|
144
|
+
if ((inclusiveNamespaces == null) || (inclusiveNamespaces.length() == 0)) {
|
145
|
+
return prefixes;
|
102
146
|
}
|
103
147
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
}
|
112
|
-
|
113
|
-
/**
|
114
|
-
* Decodes the <code>inclusiveNamespaces</code> String and returns all
|
115
|
-
* selected namespace prefixes as a Set. The <code>#default</code>
|
116
|
-
* namespace token is represented as an empty namespace prefix
|
117
|
-
* (<code>"xmlns"</code>).
|
118
|
-
* <BR/>
|
119
|
-
* The String <code>inclusiveNamespaces=" xenc ds #default"</code>
|
120
|
-
* is returned as a Set containing the following Strings:
|
121
|
-
* <UL>
|
122
|
-
* <LI><code>xmlns</code></LI>
|
123
|
-
* <LI><code>xenc</code></LI>
|
124
|
-
* <LI><code>ds</code></LI>
|
125
|
-
* </UL>
|
126
|
-
*
|
127
|
-
* @param inclusiveNamespaces
|
128
|
-
* @return A set to string
|
129
|
-
*/
|
130
|
-
public static SortedSet<String> prefixStr2Set(String inclusiveNamespaces) {
|
131
|
-
SortedSet<String> prefixes = new TreeSet<String>();
|
132
|
-
|
133
|
-
if ((inclusiveNamespaces == null) || (inclusiveNamespaces.length() == 0)) {
|
134
|
-
return prefixes;
|
135
|
-
}
|
136
|
-
|
137
|
-
String[] tokens = inclusiveNamespaces.split("\\s");
|
138
|
-
for (String prefix : tokens) {
|
139
|
-
if (prefix.equals("#default")) {
|
140
|
-
prefixes.add("xmlns");
|
141
|
-
} else {
|
142
|
-
prefixes.add(prefix);
|
143
|
-
}
|
144
|
-
}
|
145
|
-
|
146
|
-
return prefixes;
|
148
|
+
String[] tokens = inclusiveNamespaces.split("\\s");
|
149
|
+
for (String prefix : tokens) {
|
150
|
+
if (prefix.equals("#default")) {
|
151
|
+
prefixes.add("xmlns");
|
152
|
+
} else {
|
153
|
+
prefixes.add(prefix);
|
154
|
+
}
|
147
155
|
}
|
148
156
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
157
|
+
return prefixes;
|
158
|
+
}
|
159
|
+
|
160
|
+
/**
|
161
|
+
* Method getBaseNamespace
|
162
|
+
*
|
163
|
+
* @inheritDoc
|
164
|
+
*/
|
165
|
+
public String
|
166
|
+
getBaseNamespace()
|
167
|
+
{
|
168
|
+
return InclusiveNamespaces.ExclusiveCanonicalizationNamespace;
|
169
|
+
}
|
170
|
+
|
171
|
+
/**
|
172
|
+
* Method getBaseLocalName
|
173
|
+
*
|
174
|
+
* @inheritDoc
|
175
|
+
*/
|
176
|
+
public String
|
177
|
+
getBaseLocalName()
|
178
|
+
{
|
179
|
+
return InclusiveNamespaces._TAG_EC_INCLUSIVENAMESPACES;
|
180
|
+
}
|
166
181
|
}
|