moxml 0.1.9 → 0.1.11
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.
- checksums.yaml +4 -4
- data/.github/workflows/docs.yml +1 -1
- data/.github/workflows/rake.yml +16 -13
- data/.github/workflows/release.yml +1 -0
- data/.github/workflows/round-trip.yml +74 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +160 -38
- data/Gemfile +2 -1
- data/README.adoc +287 -20
- data/Rakefile +11 -0
- data/data/w3c_entities.json +2131 -0
- data/docs/ENTITY_SUPPORT_FOR_LUTAML_MODEL.md +102 -0
- data/docs/_guides/index.adoc +14 -12
- data/docs/_guides/node-api-consistency.adoc +572 -0
- data/docs/_guides/xml-declaration.adoc +5 -5
- data/docs/_pages/adapters/ox.adoc +30 -0
- data/docs/_pages/adapters/rexml.adoc +1 -1
- data/docs/_pages/configuration.adoc +43 -0
- data/docs/_pages/node-api-reference.adoc +128 -3
- data/docs/_tutorials/namespace-handling.adoc +21 -0
- data/examples/rss_parser/rss_parser.rb +1 -3
- data/lib/moxml/adapter/base.rb +26 -2
- data/lib/moxml/adapter/headed_ox.rb +5 -4
- data/lib/moxml/adapter/libxml.rb +18 -3
- data/lib/moxml/adapter/nokogiri.rb +26 -2
- data/lib/moxml/adapter/oga.rb +137 -20
- data/lib/moxml/adapter/ox.rb +29 -3
- data/lib/moxml/adapter/rexml.rb +54 -7
- data/lib/moxml/attribute.rb +6 -0
- data/lib/moxml/builder.rb +6 -0
- data/lib/moxml/config.rb +52 -1
- data/lib/moxml/context.rb +21 -2
- data/lib/moxml/doctype.rb +33 -0
- data/lib/moxml/document.rb +6 -1
- data/lib/moxml/document_builder.rb +45 -1
- data/lib/moxml/element.rb +10 -3
- data/lib/moxml/entity_reference.rb +29 -0
- data/lib/moxml/entity_registry.rb +278 -0
- data/lib/moxml/error.rb +5 -5
- data/lib/moxml/node.rb +22 -8
- data/lib/moxml/node_set.rb +10 -6
- data/lib/moxml/processing_instruction.rb +6 -0
- data/lib/moxml/version.rb +1 -1
- data/lib/moxml/xml_utils.rb +25 -2
- data/lib/moxml/xpath/errors.rb +1 -1
- data/lib/moxml.rb +1 -0
- data/spec/consistency/README.md +3 -1
- data/spec/consistency/round_trip_spec.rb +479 -0
- data/spec/examples/readme_examples_spec.rb +1 -1
- data/spec/fixtures/round-trips/metanorma/a.xml +66 -0
- data/spec/fixtures/round-trips/metanorma/bilingual-en.xml +7682 -0
- data/spec/fixtures/round-trips/metanorma/bilingual-fr.xml +7520 -0
- data/spec/fixtures/round-trips/metanorma/bilingual.presentation.xml +21211 -0
- data/spec/fixtures/round-trips/metanorma/collection1.xml +313 -0
- data/spec/fixtures/round-trips/metanorma/collection1nested.xml +291 -0
- data/spec/fixtures/round-trips/metanorma/collection_docinline.xml +544 -0
- data/spec/fixtures/round-trips/metanorma/collection_full.xml +1776 -0
- data/spec/fixtures/round-trips/metanorma/dummy.1.xml +295 -0
- data/spec/fixtures/round-trips/metanorma/dummy.xml +349 -0
- data/spec/fixtures/round-trips/metanorma/footnotes.xml +70 -0
- data/spec/fixtures/round-trips/metanorma/iho.xml +116 -0
- data/spec/fixtures/round-trips/metanorma/rice-amd.final.xml +186 -0
- data/spec/fixtures/round-trips/metanorma/rice-amd.final_1.xml +180 -0
- data/spec/fixtures/round-trips/metanorma/rice-en.final.norepo.xml +116 -0
- data/spec/fixtures/round-trips/metanorma/rice-en.final.xml +149 -0
- data/spec/fixtures/round-trips/metanorma/rice-en.final_1.xml +144 -0
- data/spec/fixtures/round-trips/metanorma/rice1-en.final.xml +120 -0
- data/spec/fixtures/round-trips/metanorma/rice2-en.final.xml +116 -0
- data/spec/fixtures/round-trips/metanorma/test_sectionsplit.xml +119 -0
- data/spec/fixtures/round-trips/niso-jats/bmj_sample.xml +1068 -0
- data/spec/fixtures/round-trips/niso-jats/element_citation.xml +7 -0
- data/spec/fixtures/round-trips/niso-jats/pnas_sample.xml +3768 -0
- data/spec/fixtures/round-trips/rfcxml/rfc8881.xml +45848 -0
- data/spec/fixtures/round-trips/rfcxml/rfc8994.xml +6607 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9000.xml +9064 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9043.xml +5527 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9051.xml +14286 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9110.xml +18156 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9260.xml +9136 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9293.xml +8300 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9380.xml +8916 -0
- data/spec/fixtures/round-trips/rfcxml/rfc9420.xml +8927 -0
- data/spec/fixtures/w3c/namespaces/1.0/001.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/002.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/003.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/004.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/005.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/006.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/007.xml +20 -0
- data/spec/fixtures/w3c/namespaces/1.0/008.xml +20 -0
- data/spec/fixtures/w3c/namespaces/1.0/009.xml +19 -0
- data/spec/fixtures/w3c/namespaces/1.0/010.xml +19 -0
- data/spec/fixtures/w3c/namespaces/1.0/011.xml +20 -0
- data/spec/fixtures/w3c/namespaces/1.0/012.xml +19 -0
- data/spec/fixtures/w3c/namespaces/1.0/013.xml +5 -0
- data/spec/fixtures/w3c/namespaces/1.0/014.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/015.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/016.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/017.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/018.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/019.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/020.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/021.xml +6 -0
- data/spec/fixtures/w3c/namespaces/1.0/022.xml +6 -0
- data/spec/fixtures/w3c/namespaces/1.0/023.xml +6 -0
- data/spec/fixtures/w3c/namespaces/1.0/024.xml +6 -0
- data/spec/fixtures/w3c/namespaces/1.0/025.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/026.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/027.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/028.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/029.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/030.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/031.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/032.xml +5 -0
- data/spec/fixtures/w3c/namespaces/1.0/033.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/034.xml +3 -0
- data/spec/fixtures/w3c/namespaces/1.0/035.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/036.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/037.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/038.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/039.xml +10 -0
- data/spec/fixtures/w3c/namespaces/1.0/040.xml +9 -0
- data/spec/fixtures/w3c/namespaces/1.0/041.xml +8 -0
- data/spec/fixtures/w3c/namespaces/1.0/042.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/043.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/044.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/045.xml +7 -0
- data/spec/fixtures/w3c/namespaces/1.0/046.xml +10 -0
- data/spec/fixtures/w3c/namespaces/1.0/047.xml +4 -0
- data/spec/fixtures/w3c/namespaces/1.0/048.xml +5 -0
- data/spec/fixtures/w3c/namespaces/1.0/LICENSE.md +32 -0
- data/spec/fixtures/w3c/namespaces/1.0/README.adoc +42 -0
- data/spec/fixtures/w3c/namespaces/1.0/rmt-ns10.xml +156 -0
- data/spec/integration/shared_examples/node_wrappers/namespace_behavior.rb +14 -2
- data/spec/integration/shared_examples/w3c_namespace_examples.rb +10 -0
- data/spec/integration/w3c_namespace_spec.rb +69 -0
- data/spec/moxml/adapter/libxml_spec.rb +7 -1
- data/spec/moxml/adapter/oga_spec.rb +92 -0
- data/spec/moxml/config_spec.rb +75 -0
- data/spec/moxml/doctype_spec.rb +19 -3
- data/spec/moxml/entity_registry_spec.rb +184 -0
- data/spec/moxml/error_spec.rb +2 -2
- data/spec/moxml/namespace_uri_validation_spec.rb +140 -0
- data/spec/moxml/xpath/axes_spec.rb +3 -4
- data/spec/performance/xpath_benchmark_spec.rb +6 -54
- data/spec/support/w3c_namespace_helpers.rb +41 -0
- data/spec/unit/rexml_isolated_test.rb +271 -0
- metadata +99 -3
- data/.ruby-version +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace inequality test: different capitalization -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b CDATA #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
]>
|
|
13
|
+
<foo xmlns:a="http://example.org/wine"
|
|
14
|
+
xmlns:b="http://Example.org/wine"
|
|
15
|
+
xmlns:c="http://example.org/Wine">
|
|
16
|
+
|
|
17
|
+
<bar a:attr="1" b:attr="2" c:attr="3"/>
|
|
18
|
+
|
|
19
|
+
</foo>
|
|
20
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace inequality test: different escaping -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b CDATA #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
]>
|
|
13
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
14
|
+
xmlns:b="http://example.org/%7ewilbur"
|
|
15
|
+
xmlns:c="http://example.org/%7Ewilbur">
|
|
16
|
+
|
|
17
|
+
<bar a:attr="1" b:attr="2" c:attr="3"/>
|
|
18
|
+
|
|
19
|
+
</foo>
|
|
20
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace equality test: plain repetition -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b CDATA #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
]>
|
|
13
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
14
|
+
xmlns:b="http://example.org/~wilbur">
|
|
15
|
+
|
|
16
|
+
<bar a:attr="1" b:attr="2"/>
|
|
17
|
+
|
|
18
|
+
</foo>
|
|
19
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace equality test: use of character reference -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b CDATA #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
]>
|
|
13
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
14
|
+
xmlns:b="http://example.org/~wilbur">
|
|
15
|
+
|
|
16
|
+
<bar a:attr="1" b:attr="2"/>
|
|
17
|
+
|
|
18
|
+
</foo>
|
|
19
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace equality test: use of entity reference -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b CDATA #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
<!ENTITY tilde "~">
|
|
13
|
+
]>
|
|
14
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
15
|
+
xmlns:b="http://example.org/˜wilbur">
|
|
16
|
+
|
|
17
|
+
<bar a:attr="1" b:attr="2"/>
|
|
18
|
+
|
|
19
|
+
</foo>
|
|
20
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Namespace inequality test: equal after attribute value normalization -->
|
|
3
|
+
<!DOCTYPE foo [
|
|
4
|
+
<!ELEMENT foo ANY>
|
|
5
|
+
<!ATTLIST foo xmlns:a CDATA #IMPLIED
|
|
6
|
+
xmlns:b NMTOKEN #IMPLIED
|
|
7
|
+
xmlns:c CDATA #IMPLIED>
|
|
8
|
+
<!ELEMENT bar ANY>
|
|
9
|
+
<!ATTLIST bar a:attr CDATA #IMPLIED
|
|
10
|
+
b:attr CDATA #IMPLIED
|
|
11
|
+
c:attr CDATA #IMPLIED>
|
|
12
|
+
]>
|
|
13
|
+
<foo xmlns:a="urn:xyzzy"
|
|
14
|
+
xmlns:b=" urn:xyzzy ">
|
|
15
|
+
|
|
16
|
+
<bar a:attr="1" b:attr="2"/>
|
|
17
|
+
|
|
18
|
+
</foo>
|
|
19
|
+
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Attribute uniqueness: prefixed and unprefixed attributes with same
|
|
3
|
+
local name, with default namespace -->
|
|
4
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
5
|
+
xmlns:b="http://example.org/~kipper"
|
|
6
|
+
xmlns="http://example.org/~wilbur">
|
|
7
|
+
|
|
8
|
+
<b:bar a:attr="1" attr="2"/>
|
|
9
|
+
|
|
10
|
+
</foo>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<!-- Attribute uniqueness: prefixed and unprefixed attributes with same
|
|
3
|
+
local name, with default namespace and element in default namespace -->
|
|
4
|
+
<foo xmlns:a="http://example.org/~wilbur"
|
|
5
|
+
xmlns="http://example.org/~wilbur">
|
|
6
|
+
|
|
7
|
+
<bar a:attr="1" attr="2"/>
|
|
8
|
+
|
|
9
|
+
</foo>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Copyright (c) World Wide Web Consortium, (Massachusetts Institute of
|
|
2
|
+
Technology, European Research Consortium for Informatics and Mathematics,
|
|
3
|
+
Keio University, Beihang). All Rights Reserved.
|
|
4
|
+
|
|
5
|
+
This work is distributed under the
|
|
6
|
+
[W3C Test Suite License](https://www.w3.org/Consortium/Legal/2008/04-testsuite-license).
|
|
7
|
+
|
|
8
|
+
Redistribution and use in source and binary forms, with or without
|
|
9
|
+
modification, are permitted provided that the following conditions are met:
|
|
10
|
+
|
|
11
|
+
- Redistributions of works must retain the original copyright notice, this
|
|
12
|
+
list of conditions and the following disclaimer.
|
|
13
|
+
- Redistributions in binary form must reproduce the original copyright
|
|
14
|
+
notice, this list of conditions and the following disclaimer in the
|
|
15
|
+
documentation and/or other materials provided with the distribution.
|
|
16
|
+
- Neither the name of the W3C nor the names of its contributors may be
|
|
17
|
+
used to endorse or promote products derived from this work without
|
|
18
|
+
specific prior written permission.
|
|
19
|
+
|
|
20
|
+
The tests themselves SHALL NOT be changed in any way.
|
|
21
|
+
|
|
22
|
+
THIS SOFTWARE OR DOCUMENT IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
23
|
+
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
|
|
24
|
+
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
25
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
26
|
+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
27
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
28
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
29
|
+
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
30
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
31
|
+
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
32
|
+
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
= W3C XML Namespaces 1.0 Test Suite
|
|
2
|
+
|
|
3
|
+
== Source
|
|
4
|
+
|
|
5
|
+
These test fixtures are extracted from the W3C XML Test Suite
|
|
6
|
+
(https://www.w3.org/XML/Test/), specifically from the `xmlts20130923` archive:
|
|
7
|
+
|
|
8
|
+
* Path in archive: `xmlconf/eduni/namespaces/1.0/`
|
|
9
|
+
* Test catalog: `rmt-ns10.xml` (Richard Tobin's XML Namespaces 1.0 test suite,
|
|
10
|
+
14 Feb 2003)
|
|
11
|
+
|
|
12
|
+
The test suite validates XML namespace processing conformance as defined in
|
|
13
|
+
https://www.w3.org/TR/xml-names/[Namespaces in XML 1.0].
|
|
14
|
+
|
|
15
|
+
== Test types
|
|
16
|
+
|
|
17
|
+
The W3C test suite classifies tests into the following categories:
|
|
18
|
+
|
|
19
|
+
valid:: Documents that must be accepted without errors.
|
|
20
|
+
|
|
21
|
+
error:: Namespace constraint violations that processors MAY report. These are
|
|
22
|
+
advisory -- a conforming processor is not required to reject them.
|
|
23
|
+
|
|
24
|
+
not-wf:: Namespace well-formedness violations that must be rejected by a
|
|
25
|
+
conforming processor.
|
|
26
|
+
|
|
27
|
+
invalid:: Validity errors. Non-validating parsers (which Moxml wraps) should
|
|
28
|
+
accept these documents.
|
|
29
|
+
|
|
30
|
+
== License
|
|
31
|
+
|
|
32
|
+
The W3C XML Test Suite is provided under the
|
|
33
|
+
https://www.w3.org/Consortium/Legal/2008/04-testsuite-license[W3C Test Suite License].
|
|
34
|
+
See link:LICENSE.md[] for the full license text.
|
|
35
|
+
|
|
36
|
+
The test files in this directory SHALL NOT be modified.
|
|
37
|
+
|
|
38
|
+
== See also
|
|
39
|
+
|
|
40
|
+
* https://www.w3.org/XML/Test/[W3C XML Test Suite]
|
|
41
|
+
* https://www.w3.org/TR/xml-names/[Namespaces in XML 1.0 (W3C Recommendation)]
|
|
42
|
+
* https://www.rfc-editor.org/rfc/rfc3986[RFC 3986 -- Uniform Resource Identifier (URI): Generic Syntax]
|