From babde00f6fa7e1444ab1c20ca9c1feaee30113c1 Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Mon, 21 Jan 2013 20:26:57 +0100 Subject: Turn CRLF to LF only (using dos2unix) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan Pokorný --- clark.html | 66 +- conv08.rng | 18 +- conv09.rng | 18 +- regextest.rnc | 16 +- regextest.xml | 448 +- res08.rng | 18 +- res09.rng | 28 +- rnctree.py | 648 +-- spectest.xml | 13690 ++++++++++++++++++++++++++++---------------------------- split.xsl | 192 +- testSuite.rng | 314 +- xsdtest.rnc | 44 +- xsdtest.xml | 1610 +++---- xsdtest.xsl | 470 +- 14 files changed, 8790 insertions(+), 8790 deletions(-) diff --git a/clark.html b/clark.html index 1274ba0..14933a7 100644 --- a/clark.html +++ b/clark.html @@ -1,33 +1,33 @@ - - -RELAX NG Test Suite - - - -

This is a test suite for the final version of the RELAX -NG 1.0 Specification.

- -

The test suite consists of a single XML file spectest.xml, which includes over 300 test -cases. Each test case consists of a correct or incorrect RELAX NG -schema and zero or more valid or invalid instances. A RELAX NG schema is available that specifies the format -of the test suite.

- -

In order to run the test suite it may be convenient to split it up -into separate files. An XSLT stylesheet split.xsl is included to do this. This stylesheet -uses SAXON extensions. Jing -includes a class to run the test suite after it has been split up. -The class is com.thaiopensource.relaxng.util.TestDriver. -This class must be invoked with two arguments. The first argument is -a log file for expected errors. The second argument is the directory -containing the split-up test suite.

- -
-James Clark -
- - + + +RELAX NG Test Suite + + + +

This is a test suite for the final version of the RELAX +NG 1.0 Specification.

+ +

The test suite consists of a single XML file spectest.xml, which includes over 300 test +cases. Each test case consists of a correct or incorrect RELAX NG +schema and zero or more valid or invalid instances. A RELAX NG schema is available that specifies the format +of the test suite.

+ +

In order to run the test suite it may be convenient to split it up +into separate files. An XSLT stylesheet split.xsl is included to do this. This stylesheet +uses SAXON extensions. Jing +includes a class to run the test suite after it has been split up. +The class is com.thaiopensource.relaxng.util.TestDriver. +This class must be invoked with two arguments. The first argument is +a log file for expected errors. The second argument is the directory +containing the split-up test suite.

+ +
+James Clark +
+ + diff --git a/conv08.rng b/conv08.rng index 53b69d0..eeb207c 100644 --- a/conv08.rng +++ b/conv08.rng @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/conv09.rng b/conv09.rng index a4298b3..27628ec 100644 --- a/conv09.rng +++ b/conv09.rng @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/regextest.rnc b/regextest.rnc index 47950b1..7c9ab1c 100644 --- a/regextest.rnc +++ b/regextest.rnc @@ -1,8 +1,8 @@ -# A schema for regextest.rnc in RELAX NG compact syntax - -element testSuite { - element testCase { - (element correct { text }, element valid|invalid { text }*) - | element incorrect { text } - }* -} +# A schema for regextest.rnc in RELAX NG compact syntax + +element testSuite { + element testCase { + (element correct { text }, element valid|invalid { text }*) + | element incorrect { text } + }* +} diff --git a/regextest.xml b/regextest.xml index 496886f..b6f896d 100644 --- a/regextest.xml +++ b/regextest.xml @@ -1,224 +1,224 @@ - - -xyzzy -xyzzy -xyzz -xyzzyy -xxyzzy -XYZZY - xyzzy - - -\i -j - - - -a?? - - -\P{IsGothic} -𐌰 -𐌿 -𐍏 -X -𐌯 -𠌰 -𰌰 -𐍐 - - -\p{IsGothic} -𐌰 -𐌿 -𐍏 -X -𐌯 -𠌰 -𰌰 -𐍐 - - -$ -$ - - - -a|b - - -[x-y] - - -[\p{Nd}-[a-z]] - - -[\p{Nd}-[\p{IsThai}]] - - -\p{IsThai} - - -\i\c* - - -~!@#$%\^&\*\(\)_\+`\-=\{\}\[\]\|\\:;"',\.<>/\? -~!@#$%^&*()_+`-={}[]|\:;"',.<>/? - - -[f&&g] -f -& -g - - -^ -^ - - -\ - - -? - - -* - - -+ - - -) - - -( - - -[ - - -] - - -- -- - - -| - -| - - -. -. - - - - - -.. -𐌰 - - -[^] - - -[] - - -[]] - - -[[] - - -[\] - - -[^^] -x -^ - - -[?+*(){}|.] -? -+ -* -( -) -{ -} -| -. -x - - - - -x - - -x{2,1} - - -x{1,1} -x - - -x{1, 2} - - -x{ 2} - - -x{2 } - - -x{-0,1} - - -x{+2} - - -x{2147483648} -x - - -x{2147483649,2147483648} - - -x{0,2147483648} -x - - -[a-z-[c-y]] -a -b -z -c -y -d - - -[abc-[a-a]] -b -c -a -d - - -[a-[a]-[a]] - - -\pL - - -\p{IsHighSurrogates}\p{IsLowSurrogates} -𐌰 - - -a[𐌰-[𐌰]]*b -ab -a𐌰b - - + + +xyzzy +xyzzy +xyzz +xyzzyy +xxyzzy +XYZZY + xyzzy + + +\i +j + + + +a?? + + +\P{IsGothic} +𐌰 +𐌿 +𐍏 +X +𐌯 +𠌰 +𰌰 +𐍐 + + +\p{IsGothic} +𐌰 +𐌿 +𐍏 +X +𐌯 +𠌰 +𰌰 +𐍐 + + +$ +$ + + + +a|b + + +[x-y] + + +[\p{Nd}-[a-z]] + + +[\p{Nd}-[\p{IsThai}]] + + +\p{IsThai} + + +\i\c* + + +~!@#$%\^&\*\(\)_\+`\-=\{\}\[\]\|\\:;"',\.<>/\? +~!@#$%^&*()_+`-={}[]|\:;"',.<>/? + + +[f&&g] +f +& +g + + +^ +^ + + +\ + + +? + + +* + + ++ + + +) + + +( + + +[ + + +] + + +- +- + + +| + +| + + +. +. + + + + + +.. +𐌰 + + +[^] + + +[] + + +[]] + + +[[] + + +[\] + + +[^^] +x +^ + + +[?+*(){}|.] +? ++ +* +( +) +{ +} +| +. +x + + + + +x + + +x{2,1} + + +x{1,1} +x + + +x{1, 2} + + +x{ 2} + + +x{2 } + + +x{-0,1} + + +x{+2} + + +x{2147483648} +x + + +x{2147483649,2147483648} + + +x{0,2147483648} +x + + +[a-z-[c-y]] +a +b +z +c +y +d + + +[abc-[a-a]] +b +c +a +d + + +[a-[a]-[a]] + + +\pL + + +\p{IsHighSurrogates}\p{IsLowSurrogates} +𐌰 + + +a[𐌰-[𐌰]]*b +ab +a𐌰b + + diff --git a/res08.rng b/res08.rng index 951942f..556656a 100644 --- a/res08.rng +++ b/res08.rng @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/res09.rng b/res09.rng index ce652f6..46efdaf 100644 --- a/res09.rng +++ b/res09.rng @@ -1,14 +1,14 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/rnctree.py b/rnctree.py index fb78d05..ebb9433 100755 --- a/rnctree.py +++ b/rnctree.py @@ -1,324 +1,324 @@ -#!/usr/bin/env python -# Convert an RELAX NG compact syntax schema to a Node tree -# This file released to the Public Domain by David Mertz -from __future__ import generators -import sys -from rnc_tokenize import token_list - - -class ParseError(SyntaxError): pass - -for t in """ - ANY SOME MAYBE ONE BODY ANNOTATION ELEM ATTR GROUP LITERAL - NAME COMMENT TEXT EMPTY INTERLEAVE CHOICE SEQ ROOT - DEFAULT_NS NS DATATYPES DATATAG PATTERN START DEFINE - """.split(): globals()[t] = t - -PAIRS = {'BEG_BODY': ('END_BODY', BODY), - 'BEG_PAREN': ('END_PAREN', GROUP), - 'BEG_ANNO': ('END_ANNO', ANNOTATION)} - -TAGS = {ONE: 'group', - SOME: 'oneOrMore', - MAYBE: 'optional', - ANY: 'zeroOrMore'} - -DEFAULT_NAMESPACE = None -DATATYPE_LIB = [0, '"http://www.w3.org/2001/XMLSchema-datatypes"'] -OTHER_NAMESPACE = {} -CONTEXT_FREE = 0 - -try: enumerate -except: enumerate = lambda seq: zip(range(len(seq)), seq) -nodetypes = lambda nl: tuple(map(lambda n: n.type, nl)) -toNodes = lambda toks: map(lambda t: Node(t.type, t.value), toks) - - -class Node(object): - __slots__ = ('type', 'value', 'name', 'quant') - - def __iter__(self): yield self - __len__ = lambda self: 1 - - def __init__(self, type='', value=[], name=None, quant=ONE): - self.type = type - self.value = value - self.name = name - self.quant = quant - - def format(self, indent=0): - out = [' ' * indent + repr(self)] - write = out.append - if isinstance(self.value, str): - if self.type == COMMENT: - write(' ' * (1 + indent) + self.value) - else: - for node in self.value: - write(node.format(indent + 1)) - return '\n'.join(out) - - def prettyprint(self): - print self.format() - - def toxml(self): - if CONTEXT_FREE: - out = [] - write = out.append - write('') - write('') - self.type = None - write(self.xmlnode(1)) - write('') - return self.add_ns('\n'.join(out)) - else: - return self.add_ns(self.xmlnode()) - - def xmlnode(self, indent=0): - out = [] - write = out.append - if self.type == ROOT: - write('') - - for x in self.value: - if not isinstance(x, Node): - raise TypeError("Unhappy Node.value: " + repr(x)) - elif x.type == START: - startelem = '' % x.value - write(' ' * indent + startelem) - elif x.type == DEFINE: - write(' ' * indent + '' % x.name) - write(x.xmlnode(indent + 1)) - write(' ' * indent + '') - elif x.type == NAME: - write(' ' * indent + '' % x.value) - elif x.type == COMMENT: - write(' ' * indent + '' % x.value) - elif x.type == LITERAL: - write(' ' * indent + '%s' % x.value) - elif x.type == ANNOTATION: - write(' ' * indent - + '%s' % x.value) - elif x.type == INTERLEAVE: - write(' ' * indent + '') - write(x.xmlnode(indent + 1)) - write(' ' * indent + '') - elif x.type == SEQ: - write(x.xmlnode(indent + 1)) - elif x.type == CHOICE: - write(' ' * indent + '') - write(x.xmlnode(indent + 1)) - write(' ' * indent + '') - elif x.type == GROUP: - write(x.xmlnode(indent)) - elif x.type == TEXT: - write(' ' * indent + '') - elif x.type == EMPTY: - write(' ' * indent + '') - elif x.type == DATATAG: - DATATYPE_LIB[0] = 1 # Use datatypes - if x.name is None: # no paramaters - write(' ' * indent + '' % x.value) - else: - write(' ' * indent + '' % x.name) - p = '%s' % x.value - write(' ' * (indent + 1) + p) - write(' ' * indent + '') - elif x.type == ELEM: - if x.quant == ONE: - write(' ' * indent + '' % x.name) - write(x.xmlnode(indent + 1)) - write(' ' * indent + '') - else: - write(' ' * indent + '<%s>' % TAGS[x.quant]) - write(' ' * (indent + 1) + '' % x.name) - write(x.xmlnode(indent + 2)) - write(' ' * (indent + 1) + '') - write(' ' * indent + '' % TAGS[x.quant]) - elif x.type == ATTR: - if x.value[0].type == TEXT: - write(' ' * indent + '' % x.name) - elif x.value[0].type == EMPTY: - write(' ' * indent + '' % x.name) - write(' ' * (indent + 1) + '') - write(' ' * indent + '') - - return '\n'.join(out) - - def __repr__(self): - return "Node(%s,%s,%s)[%d]" % (self.type, self.name, - self.quant, len(self.value)) - - def add_ns(self, xml): - "Add namespace attributes to top level element" - lines = xml.split('\n') - self.nest_annotations(lines) # annots not allowed before root elem - for i, line in enumerate(lines): - ltpos = line.find('<') - if ltpos >= 0 and line[ltpos + 1] not in ('!', '?'): - # We've got an element tag, not PI or comment - new = line[:line.find('>')] - new += ' xmlns="http://relaxng.org/ns/structure/1.0"' - if DEFAULT_NAMESPACE is not None: - new += '\n ns=%s' % DEFAULT_NAMESPACE - if DATATYPE_LIB[0]: - new += '\n datatypeLibrary=%s' % DATATYPE_LIB[1] - for ns, url in OTHER_NAMESPACE.items(): - new += '\n xmlns:%s=%s' % (ns, url) - new += '>' - lines[i] = new - break - return '\n'.join(lines) - - def nest_annotations(self, lines): - "Nest any top annotation within first element" - top_annotations = [] - for i, line in enumerate(lines[:]): - if line.find('= 0: - top_annotations.append(line) - del lines[i] - else: - ltpos = line.find('<') - if ltpos >= 0 and line[ltpos + 1] not in ('!', '?'): - break - for line in top_annotations: - lines.insert(i, ' ' + line) - - -def findmatch(beg, nodes, offset): - level = 1 - end = PAIRS[beg][0] - for i, t in enumerate(nodes[offset:]): - if t.type == beg: level += 1 - elif t.type == end: level -= 1 - if level == 0: - return i + offset - raise EOFError("No closing token encountered for %s @ %d" - % (beg, offset)) - - -def match_pairs(nodes): - newnodes = [] - i = 0 - while 1: - if i >= len(nodes): break - node = nodes[i] - if node.type in PAIRS.keys(): - # Look for enclosing brackets - match = findmatch(node.type, nodes, i + 1) - matchtype = PAIRS[node.type][1] - node = Node(type=matchtype, value=nodes[i + 1:match]) - node.value = match_pairs(node.value) - newnodes.append(node) - i = match + 1 - else: - newnodes.append(node) - i += 1 - if i >= len(nodes): break - if nodes[i].type in (ANY, SOME, MAYBE): - newnodes[-1].quant = nodes[i].type - i += 1 - nodes[:] = newnodes - return nodes - - -def type_bodies(nodes): - newnodes = [] - i = 0 - while 1: - if i >= len(nodes): break - if nodetypes(nodes[i:i + 3]) == (ELEM, NAME, BODY) or \ - nodetypes(nodes[i:i + 3]) == (ATTR, NAME, BODY): - name, body = nodes[i + 1].value, nodes[i + 2] - value, quant = type_bodies(body.value), body.quant - node = Node(nodes[i].type, value, name, quant) - newnodes.append(node) - i += 3 - elif nodetypes(nodes[i:i + 2]) == (DATATAG, PATTERN): - node = Node(DATATAG, nodes[i + 1].value, nodes[i].value) - newnodes.append(node) - i += 2 - elif nodes[i] == DEFINE: - print nodes[i:] - else: - if nodes[i].type == GROUP: # Recurse into groups - value = type_bodies(nodes[i].value) - nodes[i] = Node(GROUP, value, None, nodes[i].quant) - newnodes.append(nodes[i]) - i += 1 - nodes[:] = newnodes - return nodes - - -def nest_defines(nodes): - "Attach groups to named patterns" - newnodes = [] - i = 0 - while 1: - if i >= len(nodes): break - node = nodes[i] - newnodes.append(node) - if node.type == DEFINE: - group = [] - while (i + 1) < len(nodes) and nodes[i + 1].type != DEFINE: - group.append(nodes[i + 1]) - i += 1 - node.name = node.value - node.value = Node(GROUP, group) - i += 1 - nodes[:] = newnodes - return nodes - - -def intersperse(nodes): - "Look for interleaved, choice, or sequential nodes in groups/bodies" - for node in nodes: - if node.type in (ELEM, ATTR, GROUP, LITERAL): - val = node.value - ntypes = [n.type for n in val if not isinstance(val, str)] - inters = [t for t in ntypes if t in (INTERLEAVE, CHOICE, SEQ)] - inters = dict(zip(inters, [0] * len(inters))) - if len(inters) > 1: - raise ParseError("Ambiguity in sequencing: %s" % node) - if len(inters) > 0: - intertype = inters.keys()[0] - items = [] - for pat in node.value: - if pat.type != intertype: - items.append(pat) - node.value = Node(intertype, items) - if not isinstance(node.value, str): # No recurse to terminal str - intersperse(node.value) - return nodes - - -def scan_NS(nodes): - "Look for any namespace configuration lines" - global DEFAULT_NAMESPACE, OTHER_NAMESPACE, CONTEXT_FREE - for node in nodes: - if node.type == DEFAULT_NS: - DEFAULT_NAMESPACE = node.value - elif node.type == NS: - ns, url = map(str.strip, node.value.split('=')) - OTHER_NAMESPACE[ns] = url - elif node.type == ANNOTATION and 'a' not in OTHER_NAMESPACE: - OTHER_NAMESPACE['a'] =\ - '"http://relaxng.org/ns/compatibility/annotations/1.0"' - elif node.type == DATATYPES: - DATATYPE_LIB[:] = [1, node.value] - elif node.type == START: - CONTEXT_FREE = 1 - - -def make_nodetree(tokens): - nodes = toNodes(tokens) - match_pairs(nodes) - type_bodies(nodes) - nest_defines(nodes) - intersperse(nodes) - scan_NS(nodes) - root = Node(ROOT, nodes) - return root - - -if __name__ == '__main__': - make_nodetree(token_list(sys.stdin.read())).prettyprint() +#!/usr/bin/env python +# Convert an RELAX NG compact syntax schema to a Node tree +# This file released to the Public Domain by David Mertz +from __future__ import generators +import sys +from rnc_tokenize import token_list + + +class ParseError(SyntaxError): pass + +for t in """ + ANY SOME MAYBE ONE BODY ANNOTATION ELEM ATTR GROUP LITERAL + NAME COMMENT TEXT EMPTY INTERLEAVE CHOICE SEQ ROOT + DEFAULT_NS NS DATATYPES DATATAG PATTERN START DEFINE + """.split(): globals()[t] = t + +PAIRS = {'BEG_BODY': ('END_BODY', BODY), + 'BEG_PAREN': ('END_PAREN', GROUP), + 'BEG_ANNO': ('END_ANNO', ANNOTATION)} + +TAGS = {ONE: 'group', + SOME: 'oneOrMore', + MAYBE: 'optional', + ANY: 'zeroOrMore'} + +DEFAULT_NAMESPACE = None +DATATYPE_LIB = [0, '"http://www.w3.org/2001/XMLSchema-datatypes"'] +OTHER_NAMESPACE = {} +CONTEXT_FREE = 0 + +try: enumerate +except: enumerate = lambda seq: zip(range(len(seq)), seq) +nodetypes = lambda nl: tuple(map(lambda n: n.type, nl)) +toNodes = lambda toks: map(lambda t: Node(t.type, t.value), toks) + + +class Node(object): + __slots__ = ('type', 'value', 'name', 'quant') + + def __iter__(self): yield self + __len__ = lambda self: 1 + + def __init__(self, type='', value=[], name=None, quant=ONE): + self.type = type + self.value = value + self.name = name + self.quant = quant + + def format(self, indent=0): + out = [' ' * indent + repr(self)] + write = out.append + if isinstance(self.value, str): + if self.type == COMMENT: + write(' ' * (1 + indent) + self.value) + else: + for node in self.value: + write(node.format(indent + 1)) + return '\n'.join(out) + + def prettyprint(self): + print self.format() + + def toxml(self): + if CONTEXT_FREE: + out = [] + write = out.append + write('') + write('') + self.type = None + write(self.xmlnode(1)) + write('') + return self.add_ns('\n'.join(out)) + else: + return self.add_ns(self.xmlnode()) + + def xmlnode(self, indent=0): + out = [] + write = out.append + if self.type == ROOT: + write('') + + for x in self.value: + if not isinstance(x, Node): + raise TypeError("Unhappy Node.value: " + repr(x)) + elif x.type == START: + startelem = '' % x.value + write(' ' * indent + startelem) + elif x.type == DEFINE: + write(' ' * indent + '' % x.name) + write(x.xmlnode(indent + 1)) + write(' ' * indent + '') + elif x.type == NAME: + write(' ' * indent + '' % x.value) + elif x.type == COMMENT: + write(' ' * indent + '' % x.value) + elif x.type == LITERAL: + write(' ' * indent + '%s' % x.value) + elif x.type == ANNOTATION: + write(' ' * indent + + '%s' % x.value) + elif x.type == INTERLEAVE: + write(' ' * indent + '') + write(x.xmlnode(indent + 1)) + write(' ' * indent + '') + elif x.type == SEQ: + write(x.xmlnode(indent + 1)) + elif x.type == CHOICE: + write(' ' * indent + '') + write(x.xmlnode(indent + 1)) + write(' ' * indent + '') + elif x.type == GROUP: + write(x.xmlnode(indent)) + elif x.type == TEXT: + write(' ' * indent + '') + elif x.type == EMPTY: + write(' ' * indent + '') + elif x.type == DATATAG: + DATATYPE_LIB[0] = 1 # Use datatypes + if x.name is None: # no paramaters + write(' ' * indent + '' % x.value) + else: + write(' ' * indent + '' % x.name) + p = '%s' % x.value + write(' ' * (indent + 1) + p) + write(' ' * indent + '') + elif x.type == ELEM: + if x.quant == ONE: + write(' ' * indent + '' % x.name) + write(x.xmlnode(indent + 1)) + write(' ' * indent + '') + else: + write(' ' * indent + '<%s>' % TAGS[x.quant]) + write(' ' * (indent + 1) + '' % x.name) + write(x.xmlnode(indent + 2)) + write(' ' * (indent + 1) + '') + write(' ' * indent + '' % TAGS[x.quant]) + elif x.type == ATTR: + if x.value[0].type == TEXT: + write(' ' * indent + '' % x.name) + elif x.value[0].type == EMPTY: + write(' ' * indent + '' % x.name) + write(' ' * (indent + 1) + '') + write(' ' * indent + '') + + return '\n'.join(out) + + def __repr__(self): + return "Node(%s,%s,%s)[%d]" % (self.type, self.name, + self.quant, len(self.value)) + + def add_ns(self, xml): + "Add namespace attributes to top level element" + lines = xml.split('\n') + self.nest_annotations(lines) # annots not allowed before root elem + for i, line in enumerate(lines): + ltpos = line.find('<') + if ltpos >= 0 and line[ltpos + 1] not in ('!', '?'): + # We've got an element tag, not PI or comment + new = line[:line.find('>')] + new += ' xmlns="http://relaxng.org/ns/structure/1.0"' + if DEFAULT_NAMESPACE is not None: + new += '\n ns=%s' % DEFAULT_NAMESPACE + if DATATYPE_LIB[0]: + new += '\n datatypeLibrary=%s' % DATATYPE_LIB[1] + for ns, url in OTHER_NAMESPACE.items(): + new += '\n xmlns:%s=%s' % (ns, url) + new += '>' + lines[i] = new + break + return '\n'.join(lines) + + def nest_annotations(self, lines): + "Nest any top annotation within first element" + top_annotations = [] + for i, line in enumerate(lines[:]): + if line.find('= 0: + top_annotations.append(line) + del lines[i] + else: + ltpos = line.find('<') + if ltpos >= 0 and line[ltpos + 1] not in ('!', '?'): + break + for line in top_annotations: + lines.insert(i, ' ' + line) + + +def findmatch(beg, nodes, offset): + level = 1 + end = PAIRS[beg][0] + for i, t in enumerate(nodes[offset:]): + if t.type == beg: level += 1 + elif t.type == end: level -= 1 + if level == 0: + return i + offset + raise EOFError("No closing token encountered for %s @ %d" + % (beg, offset)) + + +def match_pairs(nodes): + newnodes = [] + i = 0 + while 1: + if i >= len(nodes): break + node = nodes[i] + if node.type in PAIRS.keys(): + # Look for enclosing brackets + match = findmatch(node.type, nodes, i + 1) + matchtype = PAIRS[node.type][1] + node = Node(type=matchtype, value=nodes[i + 1:match]) + node.value = match_pairs(node.value) + newnodes.append(node) + i = match + 1 + else: + newnodes.append(node) + i += 1 + if i >= len(nodes): break + if nodes[i].type in (ANY, SOME, MAYBE): + newnodes[-1].quant = nodes[i].type + i += 1 + nodes[:] = newnodes + return nodes + + +def type_bodies(nodes): + newnodes = [] + i = 0 + while 1: + if i >= len(nodes): break + if nodetypes(nodes[i:i + 3]) == (ELEM, NAME, BODY) or \ + nodetypes(nodes[i:i + 3]) == (ATTR, NAME, BODY): + name, body = nodes[i + 1].value, nodes[i + 2] + value, quant = type_bodies(body.value), body.quant + node = Node(nodes[i].type, value, name, quant) + newnodes.append(node) + i += 3 + elif nodetypes(nodes[i:i + 2]) == (DATATAG, PATTERN): + node = Node(DATATAG, nodes[i + 1].value, nodes[i].value) + newnodes.append(node) + i += 2 + elif nodes[i] == DEFINE: + print nodes[i:] + else: + if nodes[i].type == GROUP: # Recurse into groups + value = type_bodies(nodes[i].value) + nodes[i] = Node(GROUP, value, None, nodes[i].quant) + newnodes.append(nodes[i]) + i += 1 + nodes[:] = newnodes + return nodes + + +def nest_defines(nodes): + "Attach groups to named patterns" + newnodes = [] + i = 0 + while 1: + if i >= len(nodes): break + node = nodes[i] + newnodes.append(node) + if node.type == DEFINE: + group = [] + while (i + 1) < len(nodes) and nodes[i + 1].type != DEFINE: + group.append(nodes[i + 1]) + i += 1 + node.name = node.value + node.value = Node(GROUP, group) + i += 1 + nodes[:] = newnodes + return nodes + + +def intersperse(nodes): + "Look for interleaved, choice, or sequential nodes in groups/bodies" + for node in nodes: + if node.type in (ELEM, ATTR, GROUP, LITERAL): + val = node.value + ntypes = [n.type for n in val if not isinstance(val, str)] + inters = [t for t in ntypes if t in (INTERLEAVE, CHOICE, SEQ)] + inters = dict(zip(inters, [0] * len(inters))) + if len(inters) > 1: + raise ParseError("Ambiguity in sequencing: %s" % node) + if len(inters) > 0: + intertype = inters.keys()[0] + items = [] + for pat in node.value: + if pat.type != intertype: + items.append(pat) + node.value = Node(intertype, items) + if not isinstance(node.value, str): # No recurse to terminal str + intersperse(node.value) + return nodes + + +def scan_NS(nodes): + "Look for any namespace configuration lines" + global DEFAULT_NAMESPACE, OTHER_NAMESPACE, CONTEXT_FREE + for node in nodes: + if node.type == DEFAULT_NS: + DEFAULT_NAMESPACE = node.value + elif node.type == NS: + ns, url = map(str.strip, node.value.split('=')) + OTHER_NAMESPACE[ns] = url + elif node.type == ANNOTATION and 'a' not in OTHER_NAMESPACE: + OTHER_NAMESPACE['a'] =\ + '"http://relaxng.org/ns/compatibility/annotations/1.0"' + elif node.type == DATATYPES: + DATATYPE_LIB[:] = [1, node.value] + elif node.type == START: + CONTEXT_FREE = 1 + + +def make_nodetree(tokens): + nodes = toNodes(tokens) + match_pairs(nodes) + type_bodies(nodes) + nest_defines(nodes) + intersperse(nodes) + scan_NS(nodes) + root = Node(ROOT, nodes) + return root + + +if __name__ == '__main__': + make_nodetree(token_list(sys.stdin.read())).prettyprint() diff --git a/spectest.xml b/spectest.xml index 18afb2e..b43d460 100644 --- a/spectest.xml +++ b/spectest.xml @@ -1,6845 +1,6845 @@ -"> -]> - -James Clark -jjc@jclark.com -For October 26 version of the spec. - -
3
- -Various possible syntax errors. - -
3
- - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - foo - - - -
- -
3
- - - - bar - - - -
- -
3
- - - - - foo - - - bar - - - - - -
- -
3
- - - - - foo - - - bar - - - - - -
- -
3
- - - - - foo - - - bar - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - - - - - - -
- -
3
- - - - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - - - - - - - -
-
- -Tests for obsolete syntax - -
3
- - - - - - - - - -
- -
3
- - - - - - - -
- -
3
- - - - foo - - - - -
- -
3
- - - - - foo - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - - - -
-
- -Tests for missing attributes and child elements - -
3
- - - - -
- -
3
- - - foo - - -
- -
3
- - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - - - -
- -
3
- - - - - - - - - - -
- -
3
- - - - - -
- -
3
- - - - - - - - - - -
- -
3
- - - - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - - - - - -
-
- -Checking of ns attribute - -
3
- - - - - - - - -
- -
3
-No checking of ns attribute is performed - - - - - - - - -
- -
3
-No checking of ns attribute is performed - - - - - -
- -
3
-No checking of ns attribute is performed - - - - - -
-
- -Checking of datatypeLibrary attribute - -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - -
- -
3
-Value of datatypeLibrary attribute must conform to RFC 2396 - - - - - - - - -
- -
3
-Value of datatypeLibrary attribute must not be relative - - - - - -
- -
3
-Value of datatypeLibrary attribute must not be relative - - - - - -
- -
3
-Value of datatypeLibrary attribute must not be relative - - - - - -
- -
3
-Value of datatypeLibrary attribute must not be relative - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - - - - -x - -
- -
3
-Value of datatypeLibrary attribute must not contain fragment identifier - - - - - -
- -
3
-Value of datatypeLibrary attribute must not contain fragment identifier - - - - - -
-
- -Tests for QName and NCNames in schemas - -
3
- - - - - - - - -&dii; - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - - -
- -
3
- - - - - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
- -
3
- - - - - -
-
- -Tests for elements that allow only a single pattern child. - -
3
- - - - - - - - - - -
- -
3
- - - - - - - - -
- -
3
- - - - bar - - - - - -
-
- -Tests for foreign element and attribute handling. - -
3
- - - - - -
- -
3
- - - foo - - - -
- -
3
- - - foo - - -
- -
3
- - - - - - -X - -
- -
3
- - - - - - - - - - - - -
- -
3
- - - - - - - - - - foo - - - - - - - - - - - - - - - - -X - -
- -
3
- - - - - foo - - - - - - - -X - -
- -
3
- - - - - - - - - - foo - - - - - - - - - - -X - -
- -
3
- - - - - - - - - - foo - - - - - - - - - - -X - -
-
-
- -
4
- -
4.2
- -
4.2
- - - - - - - - -
- -
4.2
- - - bar - - - -bar - - -bar - -
- -
4.2
- - - - - - -X - -
- -
4.2
- - - foo - bar - - - - - -
- -
4.2
- - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
4.4
- - - bar - - - -bar - - - - bar - - - - bar - - -baz - - -ba r - -
- -
4.5
- -
4.5
- - - - - - - - - - - - - - - - -
- -
4.5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.5
- - - - - - - - -
-
- -
4.6
- -
4.6
- - - - - - - - - - - - - - -
- -
4.6
- - - - - - - - - - - - - - -
- -
4.6
- - - - - - -
- -
4.6
- - - - - - - - - - -
- -
4.6
- - - - - - - - - -
- -
4.6
-Same value of href before resolution, but not a loop. - - - - - - - - - - - - - - - - - - - - - -
-
- -
4.7
- -
4.7
- - - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - -
- -
4.7
- - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.7
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
4.8
- -
4.8
- - - - - - - - - - - -
- -
4.8
- - - - - - - - - - - -
-
- -
4.9
- -
4.9
- - - - bar - - - - - - - - - -
- -
4.6
-
4.9
- - - - - - - - - - - - - - - - -
- - - - - foo - - - - - - - - - - - foo - - - - - - - - - - - bar - - - - - - - -
- -
4.10
- -
4.10
- - - - - -
- -
4.10
- - - - - - - - - - - -
- -
4.10
- - - - - - - - - - - -
- -
4.10
- - - - - - - - - - - -
-
- -
4.11
- -
4.11
- - -
-
- - - -
- - - - - -
-
- - - - - - - - - - - - -
4.12
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
-
4.15
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
-
4.14
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
- - - - x - y - z - - - - -x y z - - -x - -
- -
4.12
-
4.13
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
- - - foo - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
- - - - - foo - bar - baz - - - - - - - - - -
- -
4.12
- - - - - x - y - z - - - - - -xyz -x -y -y -
- -
4.12
- - - - - - - - - - - - - - -
- -
4.12
- - - - bar - - - - - - - - - - - - -
- -
4.12
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -X - - -X - - - - -
- -
4.12
- - - - - - - - - - - - - - - - - - - -
- -
4.12
- - - - - - - - - - - - - - - - - - - - - - - -
- -
4.12
- - - - - - - - - - - -
- -
4.12
- - - - - - - - - - - -
- -
4.12
- - - - - - - - - - - -
-
- -
4.13
- -
4.13
- - - - - - - - - -x - -x -xy - - -
-
- -
4.14
- -
4.14
- - - - - - - - - - - -x - -
-
- -
4.15
- -
4.15
- - - - - - - - - - - -x - - -
-
- -
4.16
- -
4.16
- - - - - - - - - - - - - - -
- -
4.16
- - - - - - - - - foo - - - - - - - - -
- -
4.16
- - - - - - - - - - - - - - -
- -
4.16
- - - - - - - - - foo - - - - - - - - -
- -
4.16
- - - - - - - - - - - - - - -
- -
4.16
- - - - - - - - - foo - - - - - - - - -
- -
4.16
-Tests that 4.16 is before 4.20. - - - - - - - - - - - - - - - - - - - -
- -
4.16
-Tests that 4.16 is before removal of unreachable definitions. - - - - - - - - - - - - - - - - - - - -
- -
4.16
- - - - - - - -
- -
4.16
- - - - - - -
- -
4.16
- - - - - - - -
- -
4.16
- - - - - - - - - - -
- -
4.16
- - - - - - - - - - - - - - -
- -
4.16
- - - - - - - -
- -
4.16
- - - - - xmlns - foo - - - - - -
- -
4.16
- - - - xmlns - - - - -
- -
4.16
- - - - xmlns - - - - -
- -
4.16
- - - - - xmlns - - - - - -
- -
4.16
- - - - - foo - xmlns - - - - - -
- -
4.16
- - - - - - - xmlns - - - - - - - -
- -
4.16
- - - - - - - xmlns - - - - - - - -
- -
4.16
- - - - - - - -
- -
4.16
- - - - - - -
- -
4.16
- - - - 2 - - - -
- -
4.16
- - - - - -
- -
4.16
- - - - - -
- -
4.16
- - - - - - 2 - - - - -
- -
4.16
- - - - - - - - -
- -
4.16
- - - - - - - - -
- -
4.16
- - - - - - - - - - 2 - - - - -
- -
4.16
- - - - - - - - - - - - -
- -
4.16
- - - - - - - - - - - - -
-
- -
4.17
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.17
- - - - - - - - - - - - - - - - - - - - - -
-
- -
4.18
- -
4.18
-grammar must have a start - - - - - - - - - -
- -
4.18
-4.17 is before 4.18 - - - - - - - - - - - - - - - - - - -
- -
4.18
-4.17 is before 4.19 - - - - - - - - - - - - - - - - - -
- -
4.18
-every ref must have a def - - - - - - - -
- -
4.18
-4.17 is before 4.18 - - - - - - - - - - - - -
- -
4.18
-4.17 is before 4.19 - - - - - - - - - - - - - - - -
- -
4.18
-every parentRef must have a def - - - - - - - - - - - - - - - - -
- -
4.18
-4.17 is before 4.18 - - - - - - - - - - - - - - - - - - - - - -
- -
4.18
-4.17 is before 4.19 - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.18
- - - - - - - - - - - - - - - - - - - -
- -
4.18
- - - - - - - - - - - - - - - - - - - - -
- -
4.18
- - - - - - - - - - - - - - - - - - - - - - - -
- -
4.18
- - - - - - - - - - - - - - - - - - - - - - - -
-
- -
4.19
- -
4.19
- - - - - - - - - - - - - - - - - -
- -
4.19
- - - - - - - - - - - - - - - - - - - - - - - - - -
- -
4.19
- - - - - - - - - - - - - -
- -
4.19
-
4.20
-Tests that recursion detection happens before -normalization of notAllowed. - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
6
- -
6.1
- -
6.1
- - - - - - - - - - - - -
- -
6.1
- - - - - foo - - - - - - - - - - - - - - -
- -
6.1
- - - - - - - - - - - - - - - - -
- -
6.1
- - - - - - - - - - - - -
- -
6.1
- - - - - - - - - - - - - - - - - - -
- -
6.1
- - - - - foo - - - - - - - - - - - - - - -
- -
6.1
- - - - - foo - - - - - - - - - - - - - - - - - -
- -
6.1
- - - foo - - - - - - - - - - - - - - - -
- -
6.1
- - - foo - - - - - - - - - - - - - - - -
- -
6.1
- - - - foo - bar - - - - - - - - - - - - - -
-
- -
6.2
- -
6.2.1
- -
6.2.1
- - - - - - - - - - - - - - - - - - - -
- -
6.2.1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
6.2.2
- -
6.2.2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.2
- - - - - - - - - - - - - - - - - - -
- -
6.2.2
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.2
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.2
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.2
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
6.2.3
- -
6.2.3
- - - - - - - - - - - - - - - - - - - - - - - - - - -x - - - - - - - -
- -
6.2.3
- - - - - - - - - - -
- -
6.2.3
- - - - - - - - - -x - - -
- -
6.2.3
- - - - - - - - - - - - -
- -
6.2.3
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.4
- -
6.2.4
- - - - - - - - - - - - -x - - - -x - -y - - - - - -
- -
6.2.4
- - - - - - - - - - - - - - - - - - - - -x - - - - - -x - -y - - - - - - -x - -
- -
6.2.4
- - - - - - - - - - - - - - - - - - - - -x - - - - - - -x - -y - - - - - - -x - -
- -
6.2.4
- - - - - - - - - - - - - - - - - - - - -x - - - - - - -x - -y - - - - - - -x - - -xx - - -xx - -
- -
6.2.4
- - - - - - - - - - - - - - - - - - - - -x - -
-
- -
6.2.5
- -
6.2.5
- - - - - - - - - - - - - - - - - - - - - -
- -
6.2.5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.5
- - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
6.2.6
- -
6.2.6
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.6
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.6
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.6
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- -
6.2.7
- -
6.2.7
- - - - bar - baz - - - - - - - - - - - - - - - - - - - -baz - -
- -
6.2.7
- - - - bar - - baz - - - - - - - - - - - - - - - - - - -baz - - - - - - - -
- -
6.2.7
- - - - bar - - - - - - - - - - - - - -
- -
6.2.7
- - - foo - - - bar - - - - baz - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
6.2.7
-
6.2.8
- - - - - - - -x -
- -
6.2.7
-
6.2.8
- - - - - - - - - - -x -
- -
6.2.7
-
6.2.8
-
6.2.10
- - - - - - - - - -x - x -x y -
- -
6.2.7
-
6.2.8
- - - - - 2 - - - -xx -xxx - - -x - - -
- -
6.2.7
-
6.2.8
- - - - x - - - - - - - x -x -y - - - - - - -x - -x -
- -
6.2.7
-
6.2.8
- - - - x - - - - - - - - - x -x -y - - - - - - -x - -x -
-
- -
6.2.8
- -
6.2.8
- - - - - - x - y - - - - - - -xyzzy - - -x - - -y - - - x - -
- -
6.2.8
- - - - - - - - -
- -
6.2.8
- - - - - - - - -
- -
6.2.8
- - - - - - - - - - - - - -x - -
-
- -
6.2.9
- -
6.2.9
- - - - - - -xyzzy - - - -x - -y - -z - - - - - - - - - - - - - - - -
- -
6.2.9
- - - - - - -xyzzy - - - -x - -y - -z - - - - - - - - - - - - - - - -
- -
6.2.9
- - - x - - -x -xy - x - -
- -
6.2.9
- - - x - - - x - xy -x - -
- -
6.2.9
- - - x - - -x - x -x - x - -xy -
- -
6.2.9
- - - x y - - -x y - x y -x y -xy -
- -
6.2.9
- - - x - - -x - x -x - x - -xy -
- -
6.2.9
- - - x y - - -x y -x y - x y -x y -x y - -xy -
- -
6.2.9
- - - - - -
- -
6.2.9
- - - - - -
- -
6.2.9
- - - - 2 - - - -
- -
6.2.9
- - - - 2 - - - -
-
- -
6.2.10
- -
6.2.10
- - - - x - - - - -x - - - x - - -x x - -
- -
6.2.10
- - - - - x - - - - - -x - - - x x x x - - - - - -x y - -
- -
6.2.10
- - - - - x - y - - - - - -x y - - -x y - - - x y - - -x - -
- -
6.2.10
- - - - - - - - - - - -x y - - - - - -x y z - -
- -
6.2.10
- - - - x y - - - - -x y - -
-
-
-
- -
7
- -
7.1
- -
7.1.1
- - - - - - - - - - - - - -
- -
7.1.1
- - - - - - - - - - - - - - - - -
- -
7.1.1
- - - - - - - - - - - -
- -
7.1.1
- - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - - - - - -
- -
7.1.2
- - - - - - - - - - - - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - - - - - - - - -
- -
7.1.3
- - - - - - - x - y - - - - - - -
- -
7.1.3
- - - - - - - - x - y - - z - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - - - -
- -
7.1.4
- - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - -
- -
7.1.5
- - - - - - - -
- -
7.1.5
- - - - - - - - - - - - -
- -
7.1.5
- - - - - foo - - - - - - - -
- -
7.1.5
- - - - - - - -
- -
7.1.5
- - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - -
- -
7.1.5
- - - - - - - - - - - - - - - - -
- -
7.1.5
- - - - - - - -
- -
7.1.5
- - - - - - - - - - - - -
- -
7.1.5
-
7
-
4.18
-Tests that constraints are post-normalization - - - - - - - - - - -text - -
- -
7.1.5
-
7
-
4.18
- - - -
- -
7.1.1
-
7
-
4.20
- - - - - - - - - - - - - - - -
- -
7.1.1
-
7
-
4.20
-The nested attribute element is normalized out because -of the not allowed. - - - - - - - - - - - - - - - - -
- -
7.1.2
-
7
-
4.12
-The group element is normalized out. - - - - - - - - - - - - - - - - - - -
- -
7.1.2
-
7
-
4.21
-The group element is normalized out. - - - - - - - - - - - - - - - - - - - -
- -
7.1.2
-
7
-
4.20
-The attribute elements are all normalized out. - - - - - - - - - - - - - - - - -
-
- -
7.2
- -
7.2
- - - - - - - - - - - - -
- -Checks that normalization of notAllowed happens -before string sequence checking. -
7.2
-
4.20
- - - - - - - - - - - - - - - - - - - -
- -
4.20
-
7.2
-notAllowed in an element is not normalized - - - - - - - - - - - - - - - - -
-
- -
7.3
- -
7.3
- - - - - - -
- -
7.3
- - - - - - - - -
- -
7.3
- - - - - - - - - - -
- -
7.3
- - - - - - - - -
- -
7.3
- - - - - - - - - - -
- -
7.3
- - - - - - - - - - -
- -
7.3
- - - - - - - - baz - - - - - - -
- -
7.3
- - - - - - - - bar - - - - - - - - - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - - -
- -
7.3
- - - - - - - - baz - - - - - - -
- -
7.3
- - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - - - - bar - - - - - - -
- -
7.3
- - - - - - - - - foo - - - - - - - - - -
- -
7.3
- - - - - - - - - foo - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - bar - - - - - - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - - - - - - - - - -
- -
7.3
- - - - - - - - - - - -
- -
7.3
- - - - - - - - - -
- -
7.3
- - - - - -
- -
7.3
- - - - - -
- -
7.3
- - - foo - - -
-
- -
7.4
- -
7.4
- - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - -
- -
7.4
- - - - - - - - - - bar - - - - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - - - - - - - -
- -
7.4
- - - - - - - - -
- -
7.4
- - - - - - - - - - - - - - -
-
-
- -Regressions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +"> +]> + +James Clark +jjc@jclark.com +For October 26 version of the spec. + +
3
+ +Various possible syntax errors. + +
3
+ + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + foo + + + +
+ +
3
+ + + + bar + + + +
+ +
3
+ + + + + foo + + + bar + + + + + +
+ +
3
+ + + + + foo + + + bar + + + + + +
+ +
3
+ + + + + foo + + + bar + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + + + + + + + +
+
+ +Tests for obsolete syntax + +
3
+ + + + + + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + foo + + + + +
+ +
3
+ + + + + foo + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + + + +
+
+ +Tests for missing attributes and child elements + +
3
+ + + + +
+ +
3
+ + + foo + + +
+ +
3
+ + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + + + +
+ +
3
+ + + + + + + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + + + + + +
+
+ +Checking of ns attribute + +
3
+ + + + + + + + +
+ +
3
+No checking of ns attribute is performed + + + + + + + + +
+ +
3
+No checking of ns attribute is performed + + + + + +
+ +
3
+No checking of ns attribute is performed + + + + + +
+
+ +Checking of datatypeLibrary attribute + +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + +
+ +
3
+Value of datatypeLibrary attribute must conform to RFC 2396 + + + + + + + + +
+ +
3
+Value of datatypeLibrary attribute must not be relative + + + + + +
+ +
3
+Value of datatypeLibrary attribute must not be relative + + + + + +
+ +
3
+Value of datatypeLibrary attribute must not be relative + + + + + +
+ +
3
+Value of datatypeLibrary attribute must not be relative + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + + + + +x + +
+ +
3
+Value of datatypeLibrary attribute must not contain fragment identifier + + + + + +
+ +
3
+Value of datatypeLibrary attribute must not contain fragment identifier + + + + + +
+
+ +Tests for QName and NCNames in schemas + +
3
+ + + + + + + + +&dii; + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + + +
+ +
3
+ + + + + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+ +
3
+ + + + + +
+
+ +Tests for elements that allow only a single pattern child. + +
3
+ + + + + + + + + + +
+ +
3
+ + + + + + + + +
+ +
3
+ + + + bar + + + + + +
+
+ +Tests for foreign element and attribute handling. + +
3
+ + + + + +
+ +
3
+ + + foo + + + +
+ +
3
+ + + foo + + +
+ +
3
+ + + + + + +X + +
+ +
3
+ + + + + + + + + + + + +
+ +
3
+ + + + + + + + + + foo + + + + + + + + + + + + + + + + +X + +
+ +
3
+ + + + + foo + + + + + + + +X + +
+ +
3
+ + + + + + + + + + foo + + + + + + + + + + +X + +
+ +
3
+ + + + + + + + + + foo + + + + + + + + + + +X + +
+
+
+ +
4
+ +
4.2
+ +
4.2
+ + + + + + + + +
+ +
4.2
+ + + bar + + + +bar + + +bar + +
+ +
4.2
+ + + + + + +X + +
+ +
4.2
+ + + foo + bar + + + + + +
+ +
4.2
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
4.4
+ + + bar + + + +bar + + + + bar + + + + bar + + +baz + + +ba r + +
+ +
4.5
+ +
4.5
+ + + + + + + + + + + + + + + + +
+ +
4.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.5
+ + + + + + + + +
+
+ +
4.6
+ +
4.6
+ + + + + + + + + + + + + + +
+ +
4.6
+ + + + + + + + + + + + + + +
+ +
4.6
+ + + + + + +
+ +
4.6
+ + + + + + + + + + +
+ +
4.6
+ + + + + + + + + +
+ +
4.6
+Same value of href before resolution, but not a loop. + + + + + + + + + + + + + + + + + + + + + +
+
+ +
4.7
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
4.8
+ +
4.8
+ + + + + + + + + + + +
+ +
4.8
+ + + + + + + + + + + +
+
+ +
4.9
+ +
4.9
+ + + + bar + + + + + + + + + +
+ +
4.6
+
4.9
+ + + + + + + + + + + + + + + + +
+ + + + + foo + + + + + + + + + + + foo + + + + + + + + + + + bar + + + + + + + +
+ +
4.10
+ +
4.10
+ + + + + +
+ +
4.10
+ + + + + + + + + + + +
+ +
4.10
+ + + + + + + + + + + +
+ +
4.10
+ + + + + + + + + + + +
+
+ +
4.11
+ +
4.11
+ + +
+
+ + + +
+ + + + + +
+
+ + + + + + + + + + + + +
4.12
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+
4.15
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+
4.14
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+ + + + x + y + z + + + + +x y z + + +x + +
+ +
4.12
+
4.13
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+ + + foo + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+ + + + + foo + bar + baz + + + + + + + + + +
+ +
4.12
+ + + + + x + y + z + + + + + +xyz +x +y +y +
+ +
4.12
+ + + + + + + + + + + + + + +
+ +
4.12
+ + + + bar + + + + + + + + + + + + +
+ +
4.12
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +X + + +X + + + + +
+ +
4.12
+ + + + + + + + + + + + + + + + + + + +
+ +
4.12
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.12
+ + + + + + + + + + + +
+ +
4.12
+ + + + + + + + + + + +
+ +
4.12
+ + + + + + + + + + + +
+
+ +
4.13
+ +
4.13
+ + + + + + + + + +x + +x +xy + + +
+
+ +
4.14
+ +
4.14
+ + + + + + + + + + + +x + +
+
+ +
4.15
+ +
4.15
+ + + + + + + + + + + +x + + +
+
+ +
4.16
+ +
4.16
+ + + + + + + + + + + + + + +
+ +
4.16
+ + + + + + + + + foo + + + + + + + + +
+ +
4.16
+ + + + + + + + + + + + + + +
+ +
4.16
+ + + + + + + + + foo + + + + + + + + +
+ +
4.16
+ + + + + + + + + + + + + + +
+ +
4.16
+ + + + + + + + + foo + + + + + + + + +
+ +
4.16
+Tests that 4.16 is before 4.20. + + + + + + + + + + + + + + + + + + + +
+ +
4.16
+Tests that 4.16 is before removal of unreachable definitions. + + + + + + + + + + + + + + + + + + + +
+ +
4.16
+ + + + + + + +
+ +
4.16
+ + + + + + +
+ +
4.16
+ + + + + + + +
+ +
4.16
+ + + + + + + + + + +
+ +
4.16
+ + + + + + + + + + + + + + +
+ +
4.16
+ + + + + + + +
+ +
4.16
+ + + + + xmlns + foo + + + + + +
+ +
4.16
+ + + + xmlns + + + + +
+ +
4.16
+ + + + xmlns + + + + +
+ +
4.16
+ + + + + xmlns + + + + + +
+ +
4.16
+ + + + + foo + xmlns + + + + + +
+ +
4.16
+ + + + + + + xmlns + + + + + + + +
+ +
4.16
+ + + + + + + xmlns + + + + + + + +
+ +
4.16
+ + + + + + + +
+ +
4.16
+ + + + + + +
+ +
4.16
+ + + + 2 + + + +
+ +
4.16
+ + + + + +
+ +
4.16
+ + + + + +
+ +
4.16
+ + + + + + 2 + + + + +
+ +
4.16
+ + + + + + + + +
+ +
4.16
+ + + + + + + + +
+ +
4.16
+ + + + + + + + + + 2 + + + + +
+ +
4.16
+ + + + + + + + + + + + +
+ +
4.16
+ + + + + + + + + + + + +
+
+ +
4.17
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.17
+ + + + + + + + + + + + + + + + + + + + + +
+
+ +
4.18
+ +
4.18
+grammar must have a start + + + + + + + + + +
+ +
4.18
+4.17 is before 4.18 + + + + + + + + + + + + + + + + + + +
+ +
4.18
+4.17 is before 4.19 + + + + + + + + + + + + + + + + + +
+ +
4.18
+every ref must have a def + + + + + + + +
+ +
4.18
+4.17 is before 4.18 + + + + + + + + + + + + +
+ +
4.18
+4.17 is before 4.19 + + + + + + + + + + + + + + + +
+ +
4.18
+every parentRef must have a def + + + + + + + + + + + + + + + + +
+ +
4.18
+4.17 is before 4.18 + + + + + + + + + + + + + + + + + + + + + +
+ +
4.18
+4.17 is before 4.19 + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.18
+ + + + + + + + + + + + + + + + + + + +
+ +
4.18
+ + + + + + + + + + + + + + + + + + + + +
+ +
4.18
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.18
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
4.19
+ +
4.19
+ + + + + + + + + + + + + + + + + +
+ +
4.19
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
4.19
+ + + + + + + + + + + + + +
+ +
4.19
+
4.20
+Tests that recursion detection happens before +normalization of notAllowed. + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
6
+ +
6.1
+ +
6.1
+ + + + + + + + + + + + +
+ +
6.1
+ + + + + foo + + + + + + + + + + + + + + +
+ +
6.1
+ + + + + + + + + + + + + + + + +
+ +
6.1
+ + + + + + + + + + + + +
+ +
6.1
+ + + + + + + + + + + + + + + + + + +
+ +
6.1
+ + + + + foo + + + + + + + + + + + + + + +
+ +
6.1
+ + + + + foo + + + + + + + + + + + + + + + + + +
+ +
6.1
+ + + foo + + + + + + + + + + + + + + + +
+ +
6.1
+ + + foo + + + + + + + + + + + + + + + +
+ +
6.1
+ + + + foo + bar + + + + + + + + + + + + + +
+
+ +
6.2
+ +
6.2.1
+ +
6.2.1
+ + + + + + + + + + + + + + + + + + + +
+ +
6.2.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
6.2.2
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + +
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.2
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
6.2.3
+ +
6.2.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + +x + + + + + + + +
+ +
6.2.3
+ + + + + + + + + + +
+ +
6.2.3
+ + + + + + + + + +x + + +
+ +
6.2.3
+ + + + + + + + + + + + +
+ +
6.2.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.4
+ +
6.2.4
+ + + + + + + + + + + + +x + + + +x + +y + + + + + +
+ +
6.2.4
+ + + + + + + + + + + + + + + + + + + + +x + + + + + +x + +y + + + + + + +x + +
+ +
6.2.4
+ + + + + + + + + + + + + + + + + + + + +x + + + + + + +x + +y + + + + + + +x + +
+ +
6.2.4
+ + + + + + + + + + + + + + + + + + + + +x + + + + + + +x + +y + + + + + + +x + + +xx + + +xx + +
+ +
6.2.4
+ + + + + + + + + + + + + + + + + + + + +x + +
+
+ +
6.2.5
+ +
6.2.5
+ + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
6.2.6
+ +
6.2.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
6.2.7
+ +
6.2.7
+ + + + bar + baz + + + + + + + + + + + + + + + + + + + +baz + +
+ +
6.2.7
+ + + + bar + + baz + + + + + + + + + + + + + + + + + + +baz + + + + + + + +
+ +
6.2.7
+ + + + bar + + + + + + + + + + + + + +
+ +
6.2.7
+ + + foo + + + bar + + + + baz + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
6.2.7
+
6.2.8
+ + + + + + + +x +
+ +
6.2.7
+
6.2.8
+ + + + + + + + + + +x +
+ +
6.2.7
+
6.2.8
+
6.2.10
+ + + + + + + + + +x + x +x y +
+ +
6.2.7
+
6.2.8
+ + + + + 2 + + + +xx +xxx + + +x + + +
+ +
6.2.7
+
6.2.8
+ + + + x + + + + + + + x +x +y + + + + + + +x + +x +
+ +
6.2.7
+
6.2.8
+ + + + x + + + + + + + + + x +x +y + + + + + + +x + +x +
+
+ +
6.2.8
+ +
6.2.8
+ + + + + + x + y + + + + + + +xyzzy + + +x + + +y + + + x + +
+ +
6.2.8
+ + + + + + + + +
+ +
6.2.8
+ + + + + + + + +
+ +
6.2.8
+ + + + + + + + + + + + + +x + +
+
+ +
6.2.9
+ +
6.2.9
+ + + + + + +xyzzy + + + +x + +y + +z + + + + + + + + + + + + + + + +
+ +
6.2.9
+ + + + + + +xyzzy + + + +x + +y + +z + + + + + + + + + + + + + + + +
+ +
6.2.9
+ + + x + + +x +xy + x + +
+ +
6.2.9
+ + + x + + + x + xy +x + +
+ +
6.2.9
+ + + x + + +x + x +x + x + +xy +
+ +
6.2.9
+ + + x y + + +x y + x y +x y +xy +
+ +
6.2.9
+ + + x + + +x + x +x + x + +xy +
+ +
6.2.9
+ + + x y + + +x y +x y + x y +x y +x y + +xy +
+ +
6.2.9
+ + + + + +
+ +
6.2.9
+ + + + + +
+ +
6.2.9
+ + + + 2 + + + +
+ +
6.2.9
+ + + + 2 + + + +
+
+ +
6.2.10
+ +
6.2.10
+ + + + x + + + + +x + + + x + + +x x + +
+ +
6.2.10
+ + + + + x + + + + + +x + + + x x x x + + + + + +x y + +
+ +
6.2.10
+ + + + + x + y + + + + + +x y + + +x y + + + x y + + +x + +
+ +
6.2.10
+ + + + + + + + + + + +x y + + + + + +x y z + +
+ +
6.2.10
+ + + + x y + + + + +x y + +
+
+
+
+ +
7
+ +
7.1
+ +
7.1.1
+ + + + + + + + + + + + + +
+ +
7.1.1
+ + + + + + + + + + + + + + + + +
+ +
7.1.1
+ + + + + + + + + + + +
+ +
7.1.1
+ + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + + + + + +
+ +
7.1.2
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + + + + + + + + +
+ +
7.1.3
+ + + + + + + x + y + + + + + + +
+ +
7.1.3
+ + + + + + + + x + y + + z + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + + + +
+ +
7.1.4
+ + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + +
+ +
7.1.5
+ + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + +
+ +
7.1.5
+ + + + + foo + + + + + + + +
+ +
7.1.5
+ + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + + + + + +
+ +
7.1.5
+ + + + + + + +
+ +
7.1.5
+ + + + + + + + + + + + +
+ +
7.1.5
+
7
+
4.18
+Tests that constraints are post-normalization + + + + + + + + + + +text + +
+ +
7.1.5
+
7
+
4.18
+ + + +
+ +
7.1.1
+
7
+
4.20
+ + + + + + + + + + + + + + + +
+ +
7.1.1
+
7
+
4.20
+The nested attribute element is normalized out because +of the not allowed. + + + + + + + + + + + + + + + + +
+ +
7.1.2
+
7
+
4.12
+The group element is normalized out. + + + + + + + + + + + + + + + + + + +
+ +
7.1.2
+
7
+
4.21
+The group element is normalized out. + + + + + + + + + + + + + + + + + + + +
+ +
7.1.2
+
7
+
4.20
+The attribute elements are all normalized out. + + + + + + + + + + + + + + + + +
+
+ +
7.2
+ +
7.2
+ + + + + + + + + + + + +
+ +Checks that normalization of notAllowed happens +before string sequence checking. +
7.2
+
4.20
+ + + + + + + + + + + + + + + + + + + +
+ +
4.20
+
7.2
+notAllowed in an element is not normalized + + + + + + + + + + + + + + + + +
+
+ +
7.3
+ +
7.3
+ + + + + + +
+ +
7.3
+ + + + + + + + +
+ +
7.3
+ + + + + + + + + + +
+ +
7.3
+ + + + + + + + +
+ +
7.3
+ + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + +
+ +
7.3
+ + + + + + + + baz + + + + + + +
+ +
7.3
+ + + + + + + + bar + + + + + + + + + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + +
+ +
7.3
+ + + + + + + + baz + + + + + + +
+ +
7.3
+ + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + + + bar + + + + + + +
+ +
7.3
+ + + + + + + + + foo + + + + + + + + + +
+ +
7.3
+ + + + + + + + + foo + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + bar + + + + + + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + + + +
+ +
7.3
+ + + + + + + + + +
+ +
7.3
+ + + + + +
+ +
7.3
+ + + + + +
+ +
7.3
+ + + foo + + +
+
+ +
7.4
+ +
7.4
+ + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + bar + + + + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + + + + + + + +
+ +
7.4
+ + + + + + + + +
+ +
7.4
+ + + + + + + + + + + + + + +
+
+
+ +Regressions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/split.xsl b/split.xsl index 6847f1f..bef75f0 100644 --- a/split.xsl +++ b/split.xsl @@ -1,96 +1,96 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testSuite.rng b/testSuite.rng index e3649c6..6626f3a 100644 --- a/testSuite.rng +++ b/testSuite.rng @@ -1,157 +1,157 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ([\-A-Za-z0-9:@&=+$,_.!~*'()]|%[0-9a-fA-F][0-9a-fA-F])+ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ([\-A-Za-z0-9:@&=+$,_.!~*'()]|%[0-9a-fA-F][0-9a-fA-F])+ + + + + diff --git a/xsdtest.rnc b/xsdtest.rnc index d0e7aab..beeb1c4 100644 --- a/xsdtest.rnc +++ b/xsdtest.rnc @@ -1,22 +1,22 @@ -datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes" - -start = - element xsdtest { - element datatype { - attribute name { xsd:NCName }, - ((param*, (valid|invalid)*) - | (valid|invalid|equiv|length|lessThan|incomparable)*) - }* - } - -param = element param { attribute name { xsd:NCName }, string } -valid = element valid { internalSubset?, string } -invalid = element invalid { internalSubset?, string } -equiv = element equiv { element class { value+ }+ } - -value = element value { internalSubset?, string } -length = element length { attribute value { xsd:integer }, internalSubset?, string } -lessThan = element lessThan { value, value } -incomparable = element incomparable { value, value } - -internalSubset = attribute internalSubset { string } +datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes" + +start = + element xsdtest { + element datatype { + attribute name { xsd:NCName }, + ((param*, (valid|invalid)*) + | (valid|invalid|equiv|length|lessThan|incomparable)*) + }* + } + +param = element param { attribute name { xsd:NCName }, string } +valid = element valid { internalSubset?, string } +invalid = element invalid { internalSubset?, string } +equiv = element equiv { element class { value+ }+ } + +value = element value { internalSubset?, string } +length = element length { attribute value { xsd:integer }, internalSubset?, string } +lessThan = element lessThan { value, value } +incomparable = element incomparable { value, value } + +internalSubset = attribute internalSubset { string } diff --git a/xsdtest.xml b/xsdtest.xml index a30b01c..2fe94b6 100644 --- a/xsdtest.xml +++ b/xsdtest.xml @@ -1,805 +1,805 @@ - - -2001-12-01T19:45:00 -2001-12-01T19:45:00Z -2001-12-01T19:45:00-11:59 -0001-01-12T00:00:00+12:00 -2001-12-1T19:45:00+24:00 -2001-12-1T19:45:00 - - - 2001-12-01T19:45:00 - 2001-12-01T19:45:00.00 - - - 2001-12-01T19:45:00Z - 2001-12-01T19:45:00.00Z - 2001-12-01T20:45:00+01:00 - - - - -foobar -http://www.example.com -http://www.example.co%6d -nosuchscheme:stuff -foo$bar:stuff -f%oobar - - -10 -01 -0123456789 -+10 --10 -1.0 -.1 -9999999999999999999999999999999 -1. -0. - - - 0 - +0 - -0 - 00 - - - 10 - +10 - +0010 - 010 - - - -10 - -0010 - -010 - - - - -P1Y -P1Y0M2DT17H5M12S --P1Y -P60D -PT24H -PT1.2S -P24h -P24H -P1YT -P --P - - - -P6M - - - P0Y - -P0Y - - - P1Y - P001Y - P001Y0M - P1Y0M0DT0H0M0.0S - - - P6M - - - PT6M - - - PT1S - PT1.0S - - - - PT1M - PT61S - - - PT59S - PT1M - - - PT60S - PT1M - - - PT1H - PT61M - - - PT59M - PT1H - - - PT60M - PT1H - - - P1D - PT25H - - - PT23H - P1D - - - P1D - PT24H - - - P1Y - P13M - - - P11M - P1Y - - - P12M - P1Y - - - P364D - P1Y - - - P1Y - P365D - - - P1Y - P366D - - - P1Y - P367D - - - P149D - P5M - - - P150D - P5M - - - P151D - P5M - - - P152D - P5M - - - P153D - P5M - - - P5M - P154D - - - P27D - P1M - - - P28D - P1M - - - P29D - P1M - - - P30D - P1M - - - P31D - P1M - - - P1M - P32D - - - -12:45:00 -12:45:00Z - - -1886-12-01 -1886-12-01Z - - 1066-12-31 - 1900-01-01 - - - 1900-01-01 - 1900-01-02 - - - -1996-12 -1996-01 -1996-01Z -1996-00 - -1996-01 - - 1996-01Z - 1996-01+00:00 - 1996-01-00:00 - -1996-01+01:00 -1996-01-01:00 - - - -2001 -2001Z - - 1999 - 2000 - - - 1999+07:00 - 2000+07:00 - - - ---12-01 ---12-01Z - - --12-01 - --12-04 - - - --11-17 - --12-04 - - - ----20 ----20Z - - ---01 - ---31 - - - ---12 ---01 ---01Z - --12 ----01 ---00 ---13 -- -13 - - --01 - --12 - - - --01 - --02 - - - -true -false -0 -1 -00 -00 -01 - -true1 -false0 - - - -AAAA -abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR -STUV WXYZ 0123 4567 89+/ -BA== - -BA== -BQ== -Bg== -Bw== -BBA= -BBA= -BBE= -BBI= -BBM= -BBQ= -BBU= -BBY= -BBc= -BBg= -BBk= -BBo= -BBs= -BBw= -BB0= -BB4= -BB8= -==== -BB== -BBB= -B=== -B - - -deadbeef -d e a d -b eef - - -DEADBEEF -D E A D -B EEF - - - -deadbeef -BA== -BBA= -dead -deadBA== - - -deadbeef - -0123456789ABCDEFabcdef -00 00 -00.00 -0G - - - 00 - - 00 - - - - 01 - - - 10 - - - 0a - 0A - - - -00 -0000 - 0000 -AAAA - - -1.0 -1. -.1 -- 1 -1 .0 -+INF -+NaN --NaN - - - 0 - -0 - +0 - 0 - 0. - .0 - 0.0 - 0e0 - 0E0 - 0E+0 - 0E-0 - - - 1E0 - 0.1E1 - 10E-1 - +1 - - - -1 - - - INF - INF - - - -INF - -INF - - - NaN - NaN - - - - -INF - -1000 - - - 1000 - INF - - - -1 - 1 - - - 0 - 1 - - - -1 - 0 - - - -1.0 -1. -.1 -- 1 -1 .0 -+INF -+NaN --NaN - - - 0 - -0 - +0 - 0 - 0. - .0 - 0.0 - 0e0 - 0E0 - 0E+0 - 0E-0 - - - 1E0 - 0.1E1 - 10E-1 - +1 - - - -1 - - - INF - INF - - - -INF - -INF - - - NaN - NaN - - - - -INF - -1000 - - - 1000 - INF - - - -1 - 1 - - - 0 - 1 - - - -1 - 0 - - - -foo -x:foo -y:foo - - - foo - foo - - - x:foo - x:foo - z:foo - - - x:bar - z:bar - - - y:foo - - - y:bar - - - - -foo -x:foo -y:foo - - -1.0 -1. -.1 -+1.0 --1.0 - 1 -99999999999999999999999999999999999999999999999999999999999999999 --99999999999999999999999999999999999999999999999999999999999999999 -junk ---1 -++1 -+-1 -1.2. -..1 -1.. -1 .2 -1+ -+ 1 - - 0 - 1 - - - --1 -0 --0 -1 - - -1 -0 -+1 -+0 --1 - - -+1 -1 -0 --1 - - --1 -+1 -0 - - -1 -+1 -0 - 0 -1 2 -9999999999999999999999999999999999999999999999999999999999999999999999999 -9223372036854775807 --9223372036854775808 -9223372036854775808 --9223372036854775809 - - - -1 -01 - 1 -2147483647 --2147483648 -2147483648 --2147483649 -9999999999999999999999999999999999999999999999999999999999999999999999999 - - - 1 - +1 - 1 - 001 - - - -1 - -1 - -001 - - - - -1 -32767 --32768 -32768 --32769 -9999999999999999999999999999999999999999999999999999999999999999999999999 - - - 1 - +1 - 1 - 001 - - - -1 - -1 - -001 - - - - -1 -127 --128 -128 --129 - - -1 -+1 --1 -0 -18446744073709551615 -18446744073709551616 --1 - - -1 -+1 -0 -4294967295 -4294967296 --1 - - -1 -+1 -0 -65535 -65536 --1 - - -1 -+1 -0 -255 -256 --1 - - -any thing at all! - - -any thing at all! - - -any thing at all! - - - - - - - - x - x - x - x - x - x - x - x - x - - - x y - x y - x y - x y - x y - x y - x y - x y - x y - x y - x y - x y - x y - - - -x - x -𐠀 - - -en -en-UK -i-cherokee -x-klingon -en-uk-scotland -en.UK - - -foo -_0123456789 -. -: -- -1234 - foo - - -foo -foo:bar -0foo - -foo foo -FOO FOO - - - -foo -_ -. -: -- -1234 - foo - foo -fo -f - - -foo bar - -1 2 3 4 - - -foobar -foo:bar -foo bar - - - -foo -foo - - - -foo - foo bar - - + + +2001-12-01T19:45:00 +2001-12-01T19:45:00Z +2001-12-01T19:45:00-11:59 +0001-01-12T00:00:00+12:00 +2001-12-1T19:45:00+24:00 +2001-12-1T19:45:00 + + + 2001-12-01T19:45:00 + 2001-12-01T19:45:00.00 + + + 2001-12-01T19:45:00Z + 2001-12-01T19:45:00.00Z + 2001-12-01T20:45:00+01:00 + + + + +foobar +http://www.example.com +http://www.example.co%6d +nosuchscheme:stuff +foo$bar:stuff +f%oobar + + +10 +01 +0123456789 ++10 +-10 +1.0 +.1 +9999999999999999999999999999999 +1. +0. + + + 0 + +0 + -0 + 00 + + + 10 + +10 + +0010 + 010 + + + -10 + -0010 + -010 + + + + +P1Y +P1Y0M2DT17H5M12S +-P1Y +P60D +PT24H +PT1.2S +P24h +P24H +P1YT +P +-P + + + -P6M + + + P0Y + -P0Y + + + P1Y + P001Y + P001Y0M + P1Y0M0DT0H0M0.0S + + + P6M + + + PT6M + + + PT1S + PT1.0S + + + + PT1M + PT61S + + + PT59S + PT1M + + + PT60S + PT1M + + + PT1H + PT61M + + + PT59M + PT1H + + + PT60M + PT1H + + + P1D + PT25H + + + PT23H + P1D + + + P1D + PT24H + + + P1Y + P13M + + + P11M + P1Y + + + P12M + P1Y + + + P364D + P1Y + + + P1Y + P365D + + + P1Y + P366D + + + P1Y + P367D + + + P149D + P5M + + + P150D + P5M + + + P151D + P5M + + + P152D + P5M + + + P153D + P5M + + + P5M + P154D + + + P27D + P1M + + + P28D + P1M + + + P29D + P1M + + + P30D + P1M + + + P31D + P1M + + + P1M + P32D + + + +12:45:00 +12:45:00Z + + +1886-12-01 +1886-12-01Z + + 1066-12-31 + 1900-01-01 + + + 1900-01-01 + 1900-01-02 + + + +1996-12 +1996-01 +1996-01Z +1996-00 + +1996-01 + + 1996-01Z + 1996-01+00:00 + 1996-01-00:00 + +1996-01+01:00 +1996-01-01:00 + + + +2001 +2001Z + + 1999 + 2000 + + + 1999+07:00 + 2000+07:00 + + + +--12-01 +--12-01Z + + --12-01 + --12-04 + + + --11-17 + --12-04 + + + +---20 +---20Z + + ---01 + ---31 + + + +--12 +--01 +--01Z + --12 +---01 +--00 +--13 +- -13 + + --01 + --12 + + + --01 + --02 + + + +true +false +0 +1 +00 +00 +01 + +true1 +false0 + + + +AAAA +abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR +STUV WXYZ 0123 4567 89+/ +BA== + +BA== +BQ== +Bg== +Bw== +BBA= +BBA= +BBE= +BBI= +BBM= +BBQ= +BBU= +BBY= +BBc= +BBg= +BBk= +BBo= +BBs= +BBw= +BB0= +BB4= +BB8= +==== +BB== +BBB= +B=== +B + + +deadbeef +d e a d +b eef + + +DEADBEEF +D E A D +B EEF + + + +deadbeef +BA== +BBA= +dead +deadBA== + + +deadbeef + +0123456789ABCDEFabcdef +00 00 +00.00 +0G + + + 00 + + 00 + + + + 01 + + + 10 + + + 0a + 0A + + + +00 +0000 + 0000 +AAAA + + +1.0 +1. +.1 +- 1 +1 .0 ++INF ++NaN +-NaN + + + 0 + -0 + +0 + 0 + 0. + .0 + 0.0 + 0e0 + 0E0 + 0E+0 + 0E-0 + + + 1E0 + 0.1E1 + 10E-1 + +1 + + + -1 + + + INF + INF + + + -INF + -INF + + + NaN + NaN + + + + -INF + -1000 + + + 1000 + INF + + + -1 + 1 + + + 0 + 1 + + + -1 + 0 + + + +1.0 +1. +.1 +- 1 +1 .0 ++INF ++NaN +-NaN + + + 0 + -0 + +0 + 0 + 0. + .0 + 0.0 + 0e0 + 0E0 + 0E+0 + 0E-0 + + + 1E0 + 0.1E1 + 10E-1 + +1 + + + -1 + + + INF + INF + + + -INF + -INF + + + NaN + NaN + + + + -INF + -1000 + + + 1000 + INF + + + -1 + 1 + + + 0 + 1 + + + -1 + 0 + + + +foo +x:foo +y:foo + + + foo + foo + + + x:foo + x:foo + z:foo + + + x:bar + z:bar + + + y:foo + + + y:bar + + + + +foo +x:foo +y:foo + + +1.0 +1. +.1 ++1.0 +-1.0 + 1 +99999999999999999999999999999999999999999999999999999999999999999 +-99999999999999999999999999999999999999999999999999999999999999999 +junk +--1 +++1 ++-1 +1.2. +..1 +1.. +1 .2 +1+ ++ 1 + + 0 + 1 + + + +-1 +0 +-0 +1 + + +1 +0 ++1 ++0 +-1 + + ++1 +1 +0 +-1 + + +-1 ++1 +0 + + +1 ++1 +0 + 0 +1 2 +9999999999999999999999999999999999999999999999999999999999999999999999999 +9223372036854775807 +-9223372036854775808 +9223372036854775808 +-9223372036854775809 + + + +1 +01 + 1 +2147483647 +-2147483648 +2147483648 +-2147483649 +9999999999999999999999999999999999999999999999999999999999999999999999999 + + + 1 + +1 + 1 + 001 + + + -1 + -1 + -001 + + + + +1 +32767 +-32768 +32768 +-32769 +9999999999999999999999999999999999999999999999999999999999999999999999999 + + + 1 + +1 + 1 + 001 + + + -1 + -1 + -001 + + + + +1 +127 +-128 +128 +-129 + + +1 ++1 +-1 +0 +18446744073709551615 +18446744073709551616 +-1 + + +1 ++1 +0 +4294967295 +4294967296 +-1 + + +1 ++1 +0 +65535 +65536 +-1 + + +1 ++1 +0 +255 +256 +-1 + + +any thing at all! + + +any thing at all! + + +any thing at all! + + + + + + + + x + x + x + x + x + x + x + x + x + + + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + x y + + + +x + x +𐠀 + + +en +en-UK +i-cherokee +x-klingon +en-uk-scotland +en.UK + + +foo +_0123456789 +. +: +- +1234 + foo + + +foo +foo:bar +0foo + +foo foo +FOO FOO + + + +foo +_ +. +: +- +1234 + foo + foo +fo +f + + +foo bar + +1 2 3 4 + + +foobar +foo:bar +foo bar + + + +foo +foo + + + +foo + foo bar + + diff --git a/xsdtest.xsl b/xsdtest.xsl index ca47c73..1290b16 100644 --- a/xsdtest.xsl +++ b/xsdtest.xsl @@ -1,235 +1,235 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<!DOCTYPE - - [ - - - -]> - - - - - - - - - element - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<!DOCTYPE + + [ + + + +]> + + + + + + + + + element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit