summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/src/examples.qdoc1
-rw-r--r--doc/src/examples/schema.qdoc143
-rw-r--r--doc/src/images/schema-example.pngbin0 -> 84320 bytes
-rw-r--r--doc/src/qtxmlpatterns.qdoc21
-rw-r--r--doc/src/snippets/qxmlschema/main.cpp118
-rw-r--r--doc/src/snippets/qxmlschema/qxmlschema.pro3
-rw-r--r--doc/src/snippets/qxmlschemavalidator/main.cpp160
-rw-r--r--doc/src/snippets/qxmlschemavalidator/qxmlschemavalidator.pro3
-rw-r--r--doc/src/snippets/snippets.pro2
-rw-r--r--examples/tools/regexp/regexpdialog.cpp1
-rw-r--r--examples/xmlpatterns/schema/files/contact.xsd25
-rw-r--r--examples/xmlpatterns/schema/files/invalid_contact.xml11
-rw-r--r--examples/xmlpatterns/schema/files/invalid_order.xml13
-rw-r--r--examples/xmlpatterns/schema/files/invalid_recipe.xml14
-rw-r--r--examples/xmlpatterns/schema/files/order.xsd23
-rw-r--r--examples/xmlpatterns/schema/files/recipe.xsd40
-rw-r--r--examples/xmlpatterns/schema/files/valid_contact.xml11
-rw-r--r--examples/xmlpatterns/schema/files/valid_order.xml18
-rw-r--r--examples/xmlpatterns/schema/files/valid_recipe.xml13
-rw-r--r--examples/xmlpatterns/schema/main.cpp54
-rw-r--r--examples/xmlpatterns/schema/mainwindow.cpp218
-rw-r--r--examples/xmlpatterns/schema/mainwindow.h68
-rw-r--r--examples/xmlpatterns/schema/schema.pro11
-rw-r--r--examples/xmlpatterns/schema/schema.qrc13
-rw-r--r--examples/xmlpatterns/schema/schema.ui71
-rw-r--r--examples/xmlpatterns/xmlpatterns.pro3
-rw-r--r--src/corelib/tools/qregexp.cpp333
-rw-r--r--src/corelib/tools/qregexp.h2
-rw-r--r--src/xmlpatterns/Doxyfile2
-rw-r--r--src/xmlpatterns/acceltree/qacceltree.cpp43
-rw-r--r--src/xmlpatterns/acceltree/qacceltree_p.h17
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder.cpp31
-rw-r--r--src/xmlpatterns/acceltree/qacceltreebuilder_p.h19
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp60
-rw-r--r--src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h27
-rw-r--r--src/xmlpatterns/api/api.pri11
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.cpp16
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel.h5
-rw-r--r--src/xmlpatterns/api/qabstractxmlnodemodel_p.h10
-rw-r--r--src/xmlpatterns/api/qabstractxmlpullprovider.cpp177
-rw-r--r--src/xmlpatterns/api/qabstractxmlpullprovider_p.h113
-rw-r--r--src/xmlpatterns/api/qpullbridge.cpp232
-rw-r--r--src/xmlpatterns/api/qpullbridge_p.h103
-rw-r--r--src/xmlpatterns/api/qresourcedelegator.cpp8
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.cpp4
-rw-r--r--src/xmlpatterns/api/qxmlnamepool.h7
-rw-r--r--src/xmlpatterns/api/qxmlquery.cpp18
-rw-r--r--src/xmlpatterns/api/qxmlquery.h11
-rw-r--r--src/xmlpatterns/api/qxmlquery_p.h37
-rw-r--r--src/xmlpatterns/api/qxmlschema.cpp295
-rw-r--r--src/xmlpatterns/api/qxmlschema.h97
-rw-r--r--src/xmlpatterns/api/qxmlschema_p.cpp199
-rw-r--r--src/xmlpatterns/api/qxmlschema_p.h109
-rw-r--r--src/xmlpatterns/api/qxmlschemavalidator.cpp340
-rw-r--r--src/xmlpatterns/api/qxmlschemavalidator.h97
-rw-r--r--src/xmlpatterns/api/qxmlschemavalidator_p.h131
-rw-r--r--src/xmlpatterns/common.pri1
-rw-r--r--src/xmlpatterns/data/data.pri20
-rw-r--r--src/xmlpatterns/data/qcomparisonfactory.cpp154
-rw-r--r--src/xmlpatterns/data/qcomparisonfactory_p.h121
-rw-r--r--src/xmlpatterns/data/qitem_p.h5
-rw-r--r--src/xmlpatterns/data/qvaluefactory.cpp106
-rw-r--r--src/xmlpatterns/data/qvaluefactory_p.h98
-rw-r--r--src/xmlpatterns/environment/createReportContext.xsl5
-rw-r--r--src/xmlpatterns/environment/qreportcontext.cpp1
-rw-r--r--src/xmlpatterns/environment/qreportcontext_p.h4
-rw-r--r--src/xmlpatterns/expr/qcastingplatform.cpp22
-rw-r--r--src/xmlpatterns/expr/qcastingplatform_p.h23
-rw-r--r--src/xmlpatterns/expr/qexpressionfactory.cpp27
-rw-r--r--src/xmlpatterns/functions/qpatternplatform.cpp21
-rw-r--r--src/xmlpatterns/functions/qpatternplatform_p.h18
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser.cpp944
-rw-r--r--src/xmlpatterns/parser/qquerytransformparser_p.h70
-rw-r--r--src/xmlpatterns/parser/querytransformparser.ypp174
-rw-r--r--src/xmlpatterns/schema/.gitignore1
-rw-r--r--src/xmlpatterns/schema/builtinschemas.qrc5
-rw-r--r--src/xmlpatterns/schema/doc/All_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/Alternative_diagram.dot11
-rw-r--r--src/xmlpatterns/schema/doc/Annotation_diagram.dot9
-rw-r--r--src/xmlpatterns/schema/doc/AnyAttribute_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Any_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Assert_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Choice_diagram.dot22
-rw-r--r--src/xmlpatterns/schema/doc/ComplexContentExtension_diagram.dot47
-rw-r--r--src/xmlpatterns/schema/doc/ComplexContentRestriction_diagram.dot47
-rw-r--r--src/xmlpatterns/schema/doc/ComplexContent_diagram.dot11
-rw-r--r--src/xmlpatterns/schema/doc/DefaultOpenContent_diagram.dot9
-rw-r--r--src/xmlpatterns/schema/doc/EnumerationFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Field_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/FractionDigitsFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/GlobalAttribute_diagram.dot9
-rw-r--r--src/xmlpatterns/schema/doc/GlobalComplexType_diagram.dot52
-rw-r--r--src/xmlpatterns/schema/doc/GlobalElement_diagram.dot32
-rw-r--r--src/xmlpatterns/schema/doc/GlobalSimpleType_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/Import_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Include_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/KeyRef_diagram.dot12
-rw-r--r--src/xmlpatterns/schema/doc/Key_diagram.dot12
-rw-r--r--src/xmlpatterns/schema/doc/LengthFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/List_diagram.dot9
-rw-r--r--src/xmlpatterns/schema/doc/LocalAll_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/LocalAttribute_diagram.dot9
-rw-r--r--src/xmlpatterns/schema/doc/LocalChoice_diagram.dot22
-rw-r--r--src/xmlpatterns/schema/doc/LocalComplexType_diagram.dot52
-rw-r--r--src/xmlpatterns/schema/doc/LocalElement_diagram.dot32
-rw-r--r--src/xmlpatterns/schema/doc/LocalSequence_diagram.dot22
-rw-r--r--src/xmlpatterns/schema/doc/LocalSimpleType_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/MaxExclusiveFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/MaxInclusiveFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/MaxLengthFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/MinExclusiveFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/MinInclusiveFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/MinLengthFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/NamedAttributeGroup_diagram.dot17
-rw-r--r--src/xmlpatterns/schema/doc/NamedGroup_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/Notation_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Override_diagram.dot21
-rw-r--r--src/xmlpatterns/schema/doc/PatternFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Redefine_diagram.dot15
-rw-r--r--src/xmlpatterns/schema/doc/ReferredAttributeGroup_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/ReferredGroup_diagram.dot13
-rw-r--r--src/xmlpatterns/schema/doc/Schema_diagram.dot66
-rw-r--r--src/xmlpatterns/schema/doc/Selector_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Sequence_diagram.dot22
-rw-r--r--src/xmlpatterns/schema/doc/SimpleContentExtension_diagram.dot23
-rw-r--r--src/xmlpatterns/schema/doc/SimpleContentRestriction_diagram.dot87
-rw-r--r--src/xmlpatterns/schema/doc/SimpleContent_diagram.dot11
-rw-r--r--src/xmlpatterns/schema/doc/SimpleRestriction_diagram.dot62
-rw-r--r--src/xmlpatterns/schema/doc/TotalDigitsFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/Union_diagram.dot10
-rw-r--r--src/xmlpatterns/schema/doc/Unique_diagram.dot12
-rw-r--r--src/xmlpatterns/schema/doc/WhiteSpaceFacet_diagram.dot6
-rw-r--r--src/xmlpatterns/schema/doc/legend.dot7
-rw-r--r--src/xmlpatterns/schema/qnamespacesupport.cpp160
-rw-r--r--src/xmlpatterns/schema/qnamespacesupport_p.h173
-rw-r--r--src/xmlpatterns/schema/qxsdalternative.cpp68
-rw-r--r--src/xmlpatterns/schema/qxsdalternative_p.h114
-rw-r--r--src/xmlpatterns/schema/qxsdannotated.cpp63
-rw-r--r--src/xmlpatterns/schema/qxsdannotated_p.h96
-rw-r--r--src/xmlpatterns/schema/qxsdannotation.cpp78
-rw-r--r--src/xmlpatterns/schema/qxsdannotation_p.h127
-rw-r--r--src/xmlpatterns/schema/qxsdapplicationinformation.cpp68
-rw-r--r--src/xmlpatterns/schema/qxsdapplicationinformation_p.h115
-rw-r--r--src/xmlpatterns/schema/qxsdassertion.cpp58
-rw-r--r--src/xmlpatterns/schema/qxsdassertion_p.h101
-rw-r--r--src/xmlpatterns/schema/qxsdattribute.cpp130
-rw-r--r--src/xmlpatterns/schema/qxsdattribute_p.h246
-rw-r--r--src/xmlpatterns/schema/qxsdattributegroup.cpp73
-rw-r--r--src/xmlpatterns/schema/qxsdattributegroup_p.h122
-rw-r--r--src/xmlpatterns/schema/qxsdattributereference.cpp88
-rw-r--r--src/xmlpatterns/schema/qxsdattributereference_p.h147
-rw-r--r--src/xmlpatterns/schema/qxsdattributeterm.cpp58
-rw-r--r--src/xmlpatterns/schema/qxsdattributeterm_p.h96
-rw-r--r--src/xmlpatterns/schema/qxsdattributeuse.cpp136
-rw-r--r--src/xmlpatterns/schema/qxsdattributeuse_p.h224
-rw-r--r--src/xmlpatterns/schema/qxsdcomplextype.cpp231
-rw-r--r--src/xmlpatterns/schema/qxsdcomplextype_p.h404
-rw-r--r--src/xmlpatterns/schema/qxsddocumentation.cpp86
-rw-r--r--src/xmlpatterns/schema/qxsddocumentation_p.h137
-rw-r--r--src/xmlpatterns/schema/qxsdelement.cpp244
-rw-r--r--src/xmlpatterns/schema/qxsdelement_p.h403
-rw-r--r--src/xmlpatterns/schema/qxsdfacet.cpp124
-rw-r--r--src/xmlpatterns/schema/qxsdfacet_p.h213
-rw-r--r--src/xmlpatterns/schema/qxsdidcache.cpp66
-rw-r--r--src/xmlpatterns/schema/qxsdidcache_p.h99
-rw-r--r--src/xmlpatterns/schema/qxsdidchelper.cpp137
-rw-r--r--src/xmlpatterns/schema/qxsdidchelper_p.h186
-rw-r--r--src/xmlpatterns/schema/qxsdidentityconstraint.cpp93
-rw-r--r--src/xmlpatterns/schema/qxsdidentityconstraint_p.h173
-rw-r--r--src/xmlpatterns/schema/qxsdinstancereader.cpp196
-rw-r--r--src/xmlpatterns/schema/qxsdinstancereader_p.h189
-rw-r--r--src/xmlpatterns/schema/qxsdmodelgroup.cpp78
-rw-r--r--src/xmlpatterns/schema/qxsdmodelgroup_p.h139
-rw-r--r--src/xmlpatterns/schema/qxsdnotation.cpp68
-rw-r--r--src/xmlpatterns/schema/qxsdnotation_p.h119
-rw-r--r--src/xmlpatterns/schema/qxsdparticle.cpp95
-rw-r--r--src/xmlpatterns/schema/qxsdparticle_p.h154
-rw-r--r--src/xmlpatterns/schema/qxsdparticlechecker.cpp540
-rw-r--r--src/xmlpatterns/schema/qxsdparticlechecker_p.h99
-rw-r--r--src/xmlpatterns/schema/qxsdreference.cpp83
-rw-r--r--src/xmlpatterns/schema/qxsdreference_p.h145
-rw-r--r--src/xmlpatterns/schema/qxsdschema.cpp272
-rw-r--r--src/xmlpatterns/schema/qxsdschema_p.h301
-rw-r--r--src/xmlpatterns/schema/qxsdschemachecker.cpp2061
-rw-r--r--src/xmlpatterns/schema/qxsdschemachecker_helper.cpp306
-rw-r--r--src/xmlpatterns/schema/qxsdschemachecker_p.h284
-rw-r--r--src/xmlpatterns/schema/qxsdschemachecker_setup.cpp287
-rw-r--r--src/xmlpatterns/schema/qxsdschemacontext.cpp528
-rw-r--r--src/xmlpatterns/schema/qxsdschemacontext_p.h187
-rw-r--r--src/xmlpatterns/schema/qxsdschemadebugger.cpp226
-rw-r--r--src/xmlpatterns/schema/qxsdschemadebugger_p.h127
-rw-r--r--src/xmlpatterns/schema/qxsdschemahelper.cpp821
-rw-r--r--src/xmlpatterns/schema/qxsdschemahelper_p.h217
-rw-r--r--src/xmlpatterns/schema/qxsdschemamerger.cpp157
-rw-r--r--src/xmlpatterns/schema/qxsdschemamerger_p.h99
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparser.cpp6038
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparser_p.h721
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparser_setup.cpp1070
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparsercontext.cpp603
-rw-r--r--src/xmlpatterns/schema/qxsdschemaparsercontext_p.h231
-rw-r--r--src/xmlpatterns/schema/qxsdschemaresolver.cpp1736
-rw-r--r--src/xmlpatterns/schema/qxsdschemaresolver_p.h578
-rw-r--r--src/xmlpatterns/schema/qxsdschematoken.cpp2981
-rw-r--r--src/xmlpatterns/schema/qxsdschematoken_p.h198
-rw-r--r--src/xmlpatterns/schema/qxsdschematypesfactory.cpp126
-rw-r--r--src/xmlpatterns/schema/qxsdschematypesfactory_p.h109
-rw-r--r--src/xmlpatterns/schema/qxsdsimpletype.cpp148
-rw-r--r--src/xmlpatterns/schema/qxsdsimpletype_p.h219
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachine.cpp477
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachine_p.h245
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachinebuilder.cpp260
-rw-r--r--src/xmlpatterns/schema/qxsdstatemachinebuilder_p.h141
-rw-r--r--src/xmlpatterns/schema/qxsdterm.cpp68
-rw-r--r--src/xmlpatterns/schema/qxsdterm_p.h114
-rw-r--r--src/xmlpatterns/schema/qxsdtypechecker.cpp1338
-rw-r--r--src/xmlpatterns/schema/qxsdtypechecker_p.h189
-rw-r--r--src/xmlpatterns/schema/qxsduserschematype.cpp75
-rw-r--r--src/xmlpatterns/schema/qxsduserschematype_p.h124
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel.cpp215
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel_p.h179
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp1276
-rw-r--r--src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h296
-rw-r--r--src/xmlpatterns/schema/qxsdwildcard.cpp115
-rw-r--r--src/xmlpatterns/schema/qxsdwildcard_p.h199
-rw-r--r--src/xmlpatterns/schema/qxsdxpathexpression.cpp88
-rw-r--r--src/xmlpatterns/schema/qxsdxpathexpression_p.h143
-rw-r--r--src/xmlpatterns/schema/schema.pri93
-rw-r--r--src/xmlpatterns/schema/schemas/xml.xsd145
-rw-r--r--src/xmlpatterns/schema/tokens.xml155
-rw-r--r--src/xmlpatterns/schema/xml.xsd-LICENSE40
-rw-r--r--src/xmlpatterns/type/qanysimpletype.cpp10
-rw-r--r--src/xmlpatterns/type/qanysimpletype_p.h12
-rw-r--r--src/xmlpatterns/type/qanytype.cpp12
-rw-r--r--src/xmlpatterns/type/qanytype_p.h10
-rw-r--r--src/xmlpatterns/type/qnamedschemacomponent.cpp71
-rw-r--r--src/xmlpatterns/type/qnamedschemacomponent_p.h127
-rw-r--r--src/xmlpatterns/type/qprimitives_p.h13
-rw-r--r--src/xmlpatterns/type/qschematype.cpp5
-rw-r--r--src/xmlpatterns/type/qschematype_p.h30
-rw-r--r--src/xmlpatterns/type/type.pri2
-rw-r--r--src/xmlpatterns/utils/qpatternistlocale_p.h10
-rw-r--r--src/xmlpatterns/utils/qxpathhelper.cpp12
-rw-r--r--src/xmlpatterns/utils/qxpathhelper_p.h5
-rw-r--r--src/xmlpatterns/xmlpatterns.pro2
-rw-r--r--tests/auto/auto.pro5
-rw-r--r--tests/auto/patternistheaders/tst_patternistheaders.cpp8
-rw-r--r--tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp8
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp158
-rw-r--r--tests/auto/qxmlschema/.gitignore1
-rw-r--r--tests/auto/qxmlschema/qxmlschema.pro4
-rw-r--r--tests/auto/qxmlschema/tst_qxmlschema.cpp372
-rw-r--r--tests/auto/qxmlschemavalidator/.gitignore1
-rw-r--r--tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro4
-rw-r--r--tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp445
-rwxr-xr-xtests/auto/runQtXmlPatternsTests.sh2
-rw-r--r--tests/auto/xmlpatterns.pri14
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp2
-rw-r--r--tests/auto/xmlpatternsschema/.gitignore1
-rw-r--r--tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp988
-rw-r--r--tests/auto/xmlpatternsschema/xmlpatternsschema.pro6
-rw-r--r--tests/auto/xmlpatternsschemats/.gitignore4
-rw-r--r--tests/auto/xmlpatternsschemats/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore3
-rw-r--r--tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl21
-rwxr-xr-xtests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh20
-rw-r--r--tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp44
-rw-r--r--tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro23
-rw-r--r--tests/auto/xmlpatternsvalidator/files/instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml3
-rw-r--r--tests/auto/xmlpatternsvalidator/files/valid_schema.xsd12
-rw-r--r--tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp174
-rw-r--r--tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro5
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.cpp32
-rw-r--r--tests/auto/xmlpatternsview/view/MainWindow.h6
-rw-r--r--tests/auto/xmlpatternsview/view/ui_MainWindow.ui9
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp7
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestBaseLine.h9
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestGroup.cpp6
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.cpp26
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TestSuite.h14
-rw-r--r--tests/auto/xmlpatternsxqts/lib/TreeModel.cpp9
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp346
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h130
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp881
-rw-r--r--tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h90
-rw-r--r--tests/auto/xmlpatternsxqts/lib/lib.pro4
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp15
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_suitetest.h14
-rw-r--r--tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp2
-rw-r--r--tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp2
-rw-r--r--tools/tools.pro2
-rw-r--r--tools/xmlpatternsvalidator/main.cpp133
-rw-r--r--tools/xmlpatternsvalidator/main.h76
-rw-r--r--tools/xmlpatternsvalidator/xmlpatternsvalidator.pro19
297 files changed, 43955 insertions, 614 deletions
diff --git a/doc/src/examples.qdoc b/doc/src/examples.qdoc
index f6bb877..2861c90 100644
--- a/doc/src/examples.qdoc
+++ b/doc/src/examples.qdoc
@@ -417,6 +417,7 @@
\o \l{xmlpatterns/qobjectxmlmodel}{QObject XML Model Example}
\o \l{xmlpatterns/xquery/globalVariables}{C++ Source Code Analyzer Example}
\o \l{xmlpatterns/trafficinfo}{Traffic Info}\raisedaster
+ \o \l{xmlpatterns/schema}{XML Schema Validation}\raisedaster
\endlist
\section1 Inter-Process Communication
diff --git a/doc/src/examples/schema.qdoc b/doc/src/examples/schema.qdoc
new file mode 100644
index 0000000..80d158b
--- /dev/null
+++ b/doc/src/examples/schema.qdoc
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example xmlpatterns/schema
+ \title XML Schema Validation Example
+
+ This example shows how to use QtXmlPatterns to validate XML with
+ a W3C XML Schema.
+
+ \tableofcontents
+
+ \section1 Introduction
+
+ The example application shows different XML schema definitions and
+ for every definition two XML instance documents, one that is valid
+ according to the schema and one that is not.
+ The user can select the valid or invalid instance document, change
+ it and validate it again.
+
+ \section2 The User Interface
+
+ The UI for this example was created using \l{Qt Designer Manual} {Qt
+ Designer}:
+
+ \image schema-example.png
+
+ The UI consists of three parts, at the top the XML schema \l{QComboBox} {selection}
+ and the schema \l{QTextBrowser} {viewer}, below the XML instance \l{QComboBox} {selection}
+ and the instance \l{QTextEdit} {editor} and at the bottom the validation status \l{QLabel} {label}
+ next to the validation \l{QPushButton} {button}.
+
+ \section2 Validating XML Instance Documents
+
+ You can select one of the three predefined XML schemas and for each schema
+ an valid or invalid instance document. A click on the 'Validate' button will
+ validate the content of the XML instance editor against the schema from the
+ XML schema viewer. As you can modify the content of the instance editor, different
+ instances can be tested and validation error messages analysed.
+
+ \section1 Code Walk-Through
+
+ The example's main() function creates the standard instance of
+ QApplication. Then it creates an instance of the mainwindow class, shows it,
+ and starts the Qt event loop:
+
+ \snippet examples/xmlpatterns/schema/main.cpp 0
+
+ \section2 The UI Class: MainWindow
+
+ The example's UI is a conventional Qt GUI application inheriting
+ QMainWindow and the class generated by \l{Qt Designer Manual} {Qt
+ Designer}:
+
+ \snippet examples/xmlpatterns/schema/mainwindow.h 0
+
+ The constructor fills the schema and instance \l{QComboBox} selections with the predefined
+ schemas and instances and connects their \l{QComboBox::currentIndexChanged()} {currentIndexChanged()}
+ signals to the window's \c{schemaSelected()} resp. \c{instanceSelected()} slot.
+ Furthermore the signal-slot connections for the validation \l{QPushButton} {button}
+ and the instance \l{QTextEdit} {editor} are set up.
+
+ The call to \c{schemaSelected(0)} and \c{instanceSelected(0)} will trigger the validation
+ of the initial Contact Schema example.
+
+ \snippet examples/xmlpatterns/schema/mainwindow.cpp 0
+
+ In the \c{schemaSelected()} slot the content of the instance \l{QComboBox} {selection}
+ is adapted to the selected schema and the corresponding schema is loaded from the
+ \l{The Qt Resource System} {resource file} and displayed in the schema \l{QTextBrowser} {viewer}.
+ At the end of the method a revalidation is triggered.
+
+ \snippet examples/xmlpatterns/schema/mainwindow.cpp 1
+
+ In the \c{instanceSelected()} slot the selected instance is loaded from the
+ \l{The Qt Resource System} {resource file} and loaded into the instance \l{QTextEdit} {editor}
+ an the revalidation is triggered again.
+
+ \snippet examples/xmlpatterns/schema/mainwindow.cpp 2
+
+ The \c{validate()} slot does the actual work in this example.
+ At first it stores the content of the schema \l{QTextBrowser} {viewer} and the
+ \l{QTextEdit} {editor} into temporary \l{QByteArray} {variables}.
+ Then it instanciates a \c{MessageHandler} object which inherits from
+ \l{QAbstractMessageHandler} {QAbstractMessageHandler} and is a convenience
+ class to store error messages from the XmlPatterns system.
+
+ \snippet examples/xmlpatterns/schema/mainwindow.cpp 4
+
+ After the \l{QXmlSchema} {QXmlSchema} is instanciated and the message handler set
+ on it, the \l{QXmlSchema::load()} {load()} method is called with the schema data as argument.
+ If the schema is invalid or a parsing error has occured, \l{QXmlSchema::isValid()} {isValid()}
+ returns \c{false} and the error is flagged in \c{errorOccurred}.
+ If the loading was successful, a \l{QXmlSchemaValidator} {QXmlSchemaValidator} is
+ instanciated and the schema passed in the constructor.
+ A call to \l{QXmlSchemaValidator::validate()} {validate()} will validate the passed
+ XML instance data against the XML schema. The return value of that method signals
+ whether the validation was successful.
+ Depending on the success the status \l{QLabel} {label} is set to 'validation successful'
+ or the error message stored in the \c{MessageHandler}
+
+ The rest of the code does only some fancy coloring and eyecandy.
+
+ \snippet examples/xmlpatterns/schema/mainwindow.cpp 3
+*/
diff --git a/doc/src/images/schema-example.png b/doc/src/images/schema-example.png
new file mode 100644
index 0000000..5e95bf5
--- /dev/null
+++ b/doc/src/images/schema-example.png
Binary files differ
diff --git a/doc/src/qtxmlpatterns.qdoc b/doc/src/qtxmlpatterns.qdoc
index 6b82c0d..9532401 100644
--- a/doc/src/qtxmlpatterns.qdoc
+++ b/doc/src/qtxmlpatterns.qdoc
@@ -839,6 +839,27 @@
with the \c fn:id() function. See
\l{http://www.w3.org/TR/xml-id/}{xml:id Version 1.0} for details.
+ \section2 XML Schema 1.0
+
+ The QtXmlPatterns implementation of XML Schema validation supports
+ the schema specification version 1.0 in large parts. Known problems
+ of the implementation and areas where conformancy may be questionable
+ are:
+
+ \list
+ \o Large \c minOccurs or \c maxOccurs values or deeply nested ones
+ require huge amount of memory which might cause the system to freeze.
+ Such a schema should be rewritten to use \c unbounded as value instead
+ of large numbers. This restriction will hopefully be fixed in a later release.
+ \o Comparison of really small or large floating point values might lead to
+ wrong results in some cases. However such numbers should not be relevant
+ for day-to-day usage.
+ \o Regular expression support is currently not conformant but follows
+ Qt's QRegExp standard syntax.
+ \o Identity constraint checks can not use the values of default or fixed
+ attribute definitions.
+ \endlist
+
\section2 Resource Loading
When QtXmlPatterns loads an XML resource, e.g., using the
diff --git a/doc/src/snippets/qxmlschema/main.cpp b/doc/src/snippets/qxmlschema/main.cpp
new file mode 100644
index 0000000..9e72f40
--- /dev/null
+++ b/doc/src/snippets/qxmlschema/main.cpp
@@ -0,0 +1,118 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtXmlPatterns>
+
+class Schema
+{
+ public:
+ void loadFromUrl() const;
+ void loadFromFile() const;
+ void loadFromData() const;
+};
+
+void Schema::loadFromUrl() const
+{
+//! [0]
+ QUrl url("http://www.schema-example.org/myschema.xsd");
+
+ QXmlSchema schema;
+ if (schema.load(url) == true)
+ qDebug() << "schema is valid";
+ else
+ qDebug() << "schema is invalid";
+//! [0]
+}
+
+void Schema::loadFromFile() const
+{
+//! [1]
+ QFile file("myschema.xsd");
+ file.open(QIODevice::ReadOnly);
+
+ QXmlSchema schema;
+ schema.load(&file, QUrl::fromLocalFile(file.fileName()));
+
+ if (schema.isValid())
+ qDebug() << "schema is valid";
+ else
+ qDebug() << "schema is invalid";
+//! [1]
+}
+
+void Schema::loadFromData() const
+{
+//! [2]
+ QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchema schema;
+ schema.load(&buffer);
+
+ if (schema.isValid())
+ qDebug() << "schema is valid";
+ else
+ qDebug() << "schema is invalid";
+//! [2]
+}
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+
+ Schema schema;
+
+ schema.loadFromUrl();
+ schema.loadFromFile();
+ schema.loadFromData();
+
+ return 0;
+}
diff --git a/doc/src/snippets/qxmlschema/qxmlschema.pro b/doc/src/snippets/qxmlschema/qxmlschema.pro
new file mode 100644
index 0000000..7e8782a
--- /dev/null
+++ b/doc/src/snippets/qxmlschema/qxmlschema.pro
@@ -0,0 +1,3 @@
+SOURCES += main.cpp
+
+QT += xmlpatterns
diff --git a/doc/src/snippets/qxmlschemavalidator/main.cpp b/doc/src/snippets/qxmlschemavalidator/main.cpp
new file mode 100644
index 0000000..0803380
--- /dev/null
+++ b/doc/src/snippets/qxmlschemavalidator/main.cpp
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <QtXmlPatterns>
+
+class SchemaValidator
+{
+ public:
+ void validateFromUrl() const;
+ void validateFromFile() const;
+ void validateFromData() const;
+ void validateComplete() const;
+
+ private:
+ QXmlSchema getSchema() const;
+};
+
+void SchemaValidator::validateFromUrl() const
+{
+//! [0]
+ const QXmlSchema schema = getSchema();
+
+ const QUrl url("http://www.schema-example.org/test.xml");
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(url))
+ qDebug() << "instance document is valid";
+ else
+ qDebug() << "instance document is invalid";
+//! [0]
+}
+
+void SchemaValidator::validateFromFile() const
+{
+//! [1]
+ const QXmlSchema schema = getSchema();
+
+ QFile file("test.xml");
+ file.open(QIODevice::ReadOnly);
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(&file, QUrl::fromLocalFile(file.fileName())))
+ qDebug() << "instance document is valid";
+ else
+ qDebug() << "instance document is invalid";
+//! [1]
+}
+
+void SchemaValidator::validateFromData() const
+{
+//! [2]
+ const QXmlSchema schema = getSchema();
+
+ QByteArray data("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<test></test>");
+
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(&buffer))
+ qDebug() << "instance document is valid";
+ else
+ qDebug() << "instance document is invalid";
+//! [2]
+}
+
+QXmlSchema SchemaValidator::getSchema() const
+{
+ QByteArray data("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>");
+
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchema schema;
+ schema.load(&buffer);
+
+ return schema;
+}
+
+void SchemaValidator::validateComplete() const
+{
+//! [3]
+ QUrl schemaUrl("file:///home/user/schema.xsd");
+
+ QXmlSchema schema;
+ schema.load(schemaUrl);
+
+ if (schema.isValid()) {
+ QFile file("test.xml");
+ file.open(QIODevice::ReadOnly);
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(&file, QUrl::fromLocalFile(file.fileName())))
+ qDebug() << "instance document is valid";
+ else
+ qDebug() << "instance document is invalid";
+ }
+//! [3]
+}
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+
+ SchemaValidator validator;
+
+ validator.validateFromUrl();
+ validator.validateFromFile();
+ validator.validateFromData();
+ validator.validateComplete();
+
+ return 0;
+}
diff --git a/doc/src/snippets/qxmlschemavalidator/qxmlschemavalidator.pro b/doc/src/snippets/qxmlschemavalidator/qxmlschemavalidator.pro
new file mode 100644
index 0000000..7e8782a
--- /dev/null
+++ b/doc/src/snippets/qxmlschemavalidator/qxmlschemavalidator.pro
@@ -0,0 +1,3 @@
+SOURCES += main.cpp
+
+QT += xmlpatterns
diff --git a/doc/src/snippets/snippets.pro b/doc/src/snippets/snippets.pro
index 50e33b3..e3e7eca 100644
--- a/doc/src/snippets/snippets.pro
+++ b/doc/src/snippets/snippets.pro
@@ -73,6 +73,8 @@ SUBDIRS = brush \
quiloader \
qx11embedcontainer \
qx11embedwidget \
+ qxmlschema \
+ qxmlschemavalidator \
reading-selections \
scribe-overview \
separations \
diff --git a/examples/tools/regexp/regexpdialog.cpp b/examples/tools/regexp/regexpdialog.cpp
index 42cb617..7aab1be 100644
--- a/examples/tools/regexp/regexpdialog.cpp
+++ b/examples/tools/regexp/regexpdialog.cpp
@@ -69,6 +69,7 @@ RegExpDialog::RegExpDialog(QWidget *parent)
syntaxComboBox->addItem(tr("Regular expression v2"), QRegExp::RegExp2);
syntaxComboBox->addItem(tr("Wildcard"), QRegExp::Wildcard);
syntaxComboBox->addItem(tr("Fixed string"), QRegExp::FixedString);
+ syntaxComboBox->addItem(tr("W3C Xml Schema 1.1"), QRegExp::W3CXmlSchema11);
syntaxLabel = new QLabel(tr("&Pattern Syntax:"));
syntaxLabel->setBuddy(syntaxComboBox);
diff --git a/examples/xmlpatterns/schema/files/contact.xsd b/examples/xmlpatterns/schema/files/contact.xsd
new file mode 100644
index 0000000..3e1b570
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/contact.xsd
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="contact">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="givenName" type="xsd:string"/>
+ <xsd:element name="familyName" type="xsd:string"/>
+ <xsd:element name="birthdate" type="xsd:date" minOccurs="0"/>
+ <xsd:element name="homeAddress" type="address"/>
+ <xsd:element name="workAddress" type="address" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="address">
+ <xsd:sequence>
+ <xsd:element name="street" type="xsd:string"/>
+ <xsd:element name="zipCode" type="xsd:string"/>
+ <xsd:element name="city" type="xsd:string"/>
+ <xsd:element name="country" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/examples/xmlpatterns/schema/files/invalid_contact.xml b/examples/xmlpatterns/schema/files/invalid_contact.xml
new file mode 100644
index 0000000..42f1edd
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/invalid_contact.xml
@@ -0,0 +1,11 @@
+<contact>
+ <givenName>John</givenName>
+ <familyName>Doe</familyName>
+ <title>Prof.</title>
+ <workAddress>
+ <street>Sandakerveien 116</street>
+ <zipCode>N-0550</zipCode>
+ <city>Oslo</city>
+ <country>Norway</country>
+ </workAddress>
+</contact>
diff --git a/examples/xmlpatterns/schema/files/invalid_order.xml b/examples/xmlpatterns/schema/files/invalid_order.xml
new file mode 100644
index 0000000..8ffc5fd
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/invalid_order.xml
@@ -0,0 +1,13 @@
+<order>
+ <customerId>234219</customerId>
+ <article>
+ <articleId>21692</articleId>
+ <count>3</count>
+ </article>
+ <article>
+ <articleId>24749</articleId>
+ <count>9</count>
+ </article>
+ <deliveryDate>2009-01-23</deliveryDate>
+ <payed>yes</payed>
+</order>
diff --git a/examples/xmlpatterns/schema/files/invalid_recipe.xml b/examples/xmlpatterns/schema/files/invalid_recipe.xml
new file mode 100644
index 0000000..4d75af6
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/invalid_recipe.xml
@@ -0,0 +1,14 @@
+<recipe>
+ <title>Cheese on Toast</title>
+ <ingredient name="Bread" quantity="2" unit="slices"/>
+ <ingredient name="Cheese" quantity="2" unit="slices"/>
+ <time quantity="3" unit="days"/>
+ <method>
+ <step>1. Slice the bread and cheese.</step>
+ <step>2. Grill one side of each slice of bread.</step>
+ <step>3. Turn over the bread and place a slice of cheese on each piece.</step>
+ <step>4. Grill until the cheese has started to melt.</step>
+ <step>5. Serve and enjoy!</step>
+ </method>
+ <comment>Tell your friends about it!</comment>
+</recipe>
diff --git a/examples/xmlpatterns/schema/files/order.xsd b/examples/xmlpatterns/schema/files/order.xsd
new file mode 100644
index 0000000..405cafe
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/order.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="order">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerId" type="xsd:positiveInteger"/>
+ <xsd:element name="article" type="articleType" maxOccurs="unbounded"/>
+ <xsd:element name="deliveryDate" type="xsd:date"/>
+ <xsd:element name="payed" type="xsd:boolean"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="articleType">
+ <xsd:sequence>
+ <xsd:element name="articleId" type="xsd:positiveInteger"/>
+ <xsd:element name="count" type="xsd:positiveInteger"/>
+ <xsd:element name="comment" type="xsd:string" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/examples/xmlpatterns/schema/files/recipe.xsd b/examples/xmlpatterns/schema/files/recipe.xsd
new file mode 100644
index 0000000..bbbafd9
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/recipe.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="recipe">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="title" type="xsd:string"/>
+ <xsd:element name="ingredient" type="ingredientType" maxOccurs="unbounded"/>
+ <xsd:element name="time" type="timeType"/>
+ <xsd:element name="method">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="step" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="ingredientType">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="quantity" type="xsd:positiveInteger"/>
+ <xsd:attribute name="unit" type="xsd:string"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="timeType">
+ <xsd:attribute name="quantity" type="xsd:positiveInteger"/>
+ <xsd:attribute name="unit">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="seconds"/>
+ <xsd:enumeration value="minutes"/>
+ <xsd:enumeration value="hours"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/examples/xmlpatterns/schema/files/valid_contact.xml b/examples/xmlpatterns/schema/files/valid_contact.xml
new file mode 100644
index 0000000..53c04d4
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/valid_contact.xml
@@ -0,0 +1,11 @@
+<contact>
+ <givenName>John</givenName>
+ <familyName>Doe</familyName>
+ <birthdate>1977-12-25</birthdate>
+ <homeAddress>
+ <street>Sandakerveien 116</street>
+ <zipCode>N-0550</zipCode>
+ <city>Oslo</city>
+ <country>Norway</country>
+ </homeAddress>
+</contact>
diff --git a/examples/xmlpatterns/schema/files/valid_order.xml b/examples/xmlpatterns/schema/files/valid_order.xml
new file mode 100644
index 0000000..f83c36c
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/valid_order.xml
@@ -0,0 +1,18 @@
+<order>
+ <customerId>194223</customerId>
+ <article>
+ <articleId>22242</articleId>
+ <count>5</count>
+ </article>
+ <article>
+ <articleId>32372</articleId>
+ <count>12</count>
+ <comment>without stripes</comment>
+ </article>
+ <article>
+ <articleId>23649</articleId>
+ <count>2</count>
+ </article>
+ <deliveryDate>2009-01-23</deliveryDate>
+ <payed>true</payed>
+</order>
diff --git a/examples/xmlpatterns/schema/files/valid_recipe.xml b/examples/xmlpatterns/schema/files/valid_recipe.xml
new file mode 100644
index 0000000..f6499ba
--- /dev/null
+++ b/examples/xmlpatterns/schema/files/valid_recipe.xml
@@ -0,0 +1,13 @@
+<recipe>
+ <title>Cheese on Toast</title>
+ <ingredient name="Bread" quantity="2" unit="slices"/>
+ <ingredient name="Cheese" quantity="2" unit="slices"/>
+ <time quantity="3" unit="minutes"/>
+ <method>
+ <step>1. Slice the bread and cheese.</step>
+ <step>2. Grill one side of each slice of bread.</step>
+ <step>3. Turn over the bread and place a slice of cheese on each piece.</step>
+ <step>4. Grill until the cheese has started to melt.</step>
+ <step>5. Serve and enjoy!</step>
+ </method>
+</recipe>
diff --git a/examples/xmlpatterns/schema/main.cpp b/examples/xmlpatterns/schema/main.cpp
new file mode 100644
index 0000000..50e1139
--- /dev/null
+++ b/examples/xmlpatterns/schema/main.cpp
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include "mainwindow.h"
+
+//! [0]
+int main(int argc, char* argv[])
+{
+ Q_INIT_RESOURCE(schema);
+ QApplication app(argc, argv);
+ MainWindow* const window = new MainWindow;
+ window->show();
+ return app.exec();
+}
+//! [0]
diff --git a/examples/xmlpatterns/schema/mainwindow.cpp b/examples/xmlpatterns/schema/mainwindow.cpp
new file mode 100644
index 0000000..bee7407
--- /dev/null
+++ b/examples/xmlpatterns/schema/mainwindow.cpp
@@ -0,0 +1,218 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include <QtXmlPatterns>
+
+#include "mainwindow.h"
+#include "xmlsyntaxhighlighter.h"
+
+//! [4]
+class MessageHandler : public QAbstractMessageHandler
+{
+ public:
+ MessageHandler()
+ : QAbstractMessageHandler(0)
+ {
+ }
+
+ QString statusMessage() const
+ {
+ return m_description;
+ }
+
+ int line() const
+ {
+ return m_sourceLocation.line();
+ }
+
+ int column() const
+ {
+ return m_sourceLocation.column();
+ }
+
+ protected:
+ virtual void handleMessage(QtMsgType type, const QString &description,
+ const QUrl &identifier, const QSourceLocation &sourceLocation)
+ {
+ Q_UNUSED(type);
+ Q_UNUSED(identifier);
+
+ m_messageType = type;
+ m_description = description;
+ m_sourceLocation = sourceLocation;
+ }
+
+ private:
+ QtMsgType m_messageType;
+ QString m_description;
+ QSourceLocation m_sourceLocation;
+};
+//! [4]
+
+//! [0]
+MainWindow::MainWindow()
+{
+ setupUi(this);
+
+ new XmlSyntaxHighlighter(schemaView->document());
+ new XmlSyntaxHighlighter(instanceEdit->document());
+
+ schemaSelection->addItem(tr("Contact Schema"));
+ schemaSelection->addItem(tr("Recipe Schema"));
+ schemaSelection->addItem(tr("Order Schema"));
+
+ instanceSelection->addItem(tr("Valid Contact Instance"));
+ instanceSelection->addItem(tr("Invalid Contact Instance"));
+
+ connect(schemaSelection, SIGNAL(currentIndexChanged(int)), SLOT(schemaSelected(int)));
+ connect(instanceSelection, SIGNAL(currentIndexChanged(int)), SLOT(instanceSelected(int)));
+ connect(validateButton, SIGNAL(clicked()), SLOT(validate()));
+ connect(instanceEdit, SIGNAL(textChanged()), SLOT(textChanged()));
+
+ validationStatus->setAlignment(Qt::AlignCenter | Qt::AlignVCenter);
+
+ schemaSelected(0);
+ instanceSelected(0);
+}
+//! [0]
+
+//! [1]
+void MainWindow::schemaSelected(int index)
+{
+ instanceSelection->clear();
+ if (index == 0) {
+ instanceSelection->addItem(tr("Valid Contact Instance"));
+ instanceSelection->addItem(tr("Invalid Contact Instance"));
+ } else if (index == 1) {
+ instanceSelection->addItem(tr("Valid Recipe Instance"));
+ instanceSelection->addItem(tr("Invalid Recipe Instance"));
+ } else if (index == 2) {
+ instanceSelection->addItem(tr("Valid Order Instance"));
+ instanceSelection->addItem(tr("Invalid Order Instance"));
+ }
+ textChanged();
+
+ QFile schemaFile(QString(":/schema_%1.xsd").arg(index));
+ schemaFile.open(QIODevice::ReadOnly);
+ const QString schemaText(QString::fromUtf8(schemaFile.readAll()));
+ schemaView->setPlainText(schemaText);
+
+ validate();
+}
+//! [1]
+
+//! [2]
+void MainWindow::instanceSelected(int index)
+{
+ QFile instanceFile(QString(":/instance_%1.xml").arg((2*schemaSelection->currentIndex()) + index));
+ instanceFile.open(QIODevice::ReadOnly);
+ const QString instanceText(QString::fromUtf8(instanceFile.readAll()));
+ instanceEdit->setPlainText(instanceText);
+
+ validate();
+}
+//! [2]
+
+//! [3]
+void MainWindow::validate()
+{
+ const QByteArray schemaData = schemaView->toPlainText().toUtf8();
+ const QByteArray instanceData = instanceEdit->toPlainText().toUtf8();
+
+ MessageHandler messageHandler;
+
+ QXmlSchema schema;
+ schema.setMessageHandler(&messageHandler);
+
+ schema.load(schemaData);
+
+ bool errorOccurred = false;
+ if (!schema.isValid()) {
+ errorOccurred = true;
+ } else {
+ QXmlSchemaValidator validator(schema);
+ if (!validator.validate(instanceData))
+ errorOccurred = true;
+ }
+
+ if (errorOccurred) {
+ validationStatus->setText(messageHandler.statusMessage());
+ moveCursor(messageHandler.line(), messageHandler.column());
+ } else {
+ validationStatus->setText(tr("validation successful"));
+ }
+
+ const QString styleSheet = QString("QLabel {background: %1; padding: 3px}")
+ .arg(errorOccurred ? QColor(Qt::red).lighter(160).name() :
+ QColor(Qt::green).lighter(160).name());
+ validationStatus->setStyleSheet(styleSheet);
+}
+//! [3]
+
+void MainWindow::textChanged()
+{
+ instanceEdit->setExtraSelections(QList<QTextEdit::ExtraSelection>());
+}
+
+void MainWindow::moveCursor(int line, int column)
+{
+ instanceEdit->moveCursor(QTextCursor::Start);
+ for (int i = 1; i < line; ++i)
+ instanceEdit->moveCursor(QTextCursor::Down);
+
+ for (int i = 1; i < column; ++i)
+ instanceEdit->moveCursor(QTextCursor::Right);
+
+ QList<QTextEdit::ExtraSelection> extraSelections;
+ QTextEdit::ExtraSelection selection;
+
+ const QColor lineColor = QColor(Qt::red).lighter(160);
+ selection.format.setBackground(lineColor);
+ selection.format.setProperty(QTextFormat::FullWidthSelection, true);
+ selection.cursor = instanceEdit->textCursor();
+ selection.cursor.clearSelection();
+ extraSelections.append(selection);
+
+ instanceEdit->setExtraSelections(extraSelections);
+
+ instanceEdit->setFocus();
+}
diff --git a/examples/xmlpatterns/schema/mainwindow.h b/examples/xmlpatterns/schema/mainwindow.h
new file mode 100644
index 0000000..5f56afc
--- /dev/null
+++ b/examples/xmlpatterns/schema/mainwindow.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+#include "ui_schema.h"
+
+//! [0]
+class MainWindow : public QMainWindow,
+ private Ui::SchemaMainWindow
+{
+ Q_OBJECT
+
+ public:
+ MainWindow();
+
+ private Q_SLOTS:
+ void schemaSelected(int index);
+ void instanceSelected(int index);
+ void validate();
+ void textChanged();
+
+ private:
+ void moveCursor(int line, int column);
+};
+//! [0]
+#endif
diff --git a/examples/xmlpatterns/schema/schema.pro b/examples/xmlpatterns/schema/schema.pro
new file mode 100644
index 0000000..af32e0a
--- /dev/null
+++ b/examples/xmlpatterns/schema/schema.pro
@@ -0,0 +1,11 @@
+QT += xmlpatterns
+FORMS += schema.ui
+HEADERS = mainwindow.h ../shared/xmlsyntaxhighlighter.h
+RESOURCES = schema.qrc
+SOURCES = main.cpp mainwindow.cpp ../shared/xmlsyntaxhighlighter.cpp
+INCLUDEPATH += ../shared/
+
+target.path = $$[QT_INSTALL_EXAMPLES]/xmlpatterns/schema
+sources.files = $$SOURCES $$HEADERS $$RESOURCES *.pro *.xq *.html files
+sources.path = $$[QT_INSTALL_EXAMPLES]/xmlpatterns/schema
+INSTALLS += target sources
diff --git a/examples/xmlpatterns/schema/schema.qrc b/examples/xmlpatterns/schema/schema.qrc
new file mode 100644
index 0000000..eb7ddfd
--- /dev/null
+++ b/examples/xmlpatterns/schema/schema.qrc
@@ -0,0 +1,13 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file alias="schema_0.xsd">files/contact.xsd</file>
+ <file alias="schema_1.xsd">files/recipe.xsd</file>
+ <file alias="schema_2.xsd">files/order.xsd</file>
+ <file alias="instance_0.xml">files/valid_contact.xml</file>
+ <file alias="instance_1.xml">files/invalid_contact.xml</file>
+ <file alias="instance_2.xml">files/valid_recipe.xml</file>
+ <file alias="instance_3.xml">files/invalid_recipe.xml</file>
+ <file alias="instance_4.xml">files/valid_order.xml</file>
+ <file alias="instance_5.xml">files/invalid_order.xml</file>
+</qresource>
+</RCC>
diff --git a/examples/xmlpatterns/schema/schema.ui b/examples/xmlpatterns/schema/schema.ui
new file mode 100644
index 0000000..b67f444
--- /dev/null
+++ b/examples/xmlpatterns/schema/schema.ui
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SchemaMainWindow</class>
+ <widget class="QMainWindow" name="SchemaMainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>417</width>
+ <height>594</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>XML Schema Validation</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0" colspan="2">
+ <widget class="QLabel" name="schemaLabel">
+ <property name="text">
+ <string>XML Schema Document:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" colspan="2">
+ <widget class="QComboBox" name="schemaSelection"/>
+ </item>
+ <item row="1" column="0" colspan="4">
+ <widget class="QTextBrowser" name="schemaView"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QLabel" name="instanceLabel">
+ <property name="text">
+ <string>XML Instance Document:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" colspan="2">
+ <widget class="QComboBox" name="instanceSelection"/>
+ </item>
+ <item row="3" column="0" colspan="4">
+ <widget class="QTextEdit" name="instanceEdit"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Status:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1" colspan="2">
+ <widget class="QLabel" name="validationStatus">
+ <property name="text">
+ <string>not validated</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="3">
+ <widget class="QPushButton" name="validateButton">
+ <property name="text">
+ <string>Validate</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/xmlpatterns/xmlpatterns.pro b/examples/xmlpatterns/xmlpatterns.pro
index 1a57005..3ff3e35 100644
--- a/examples/xmlpatterns/xmlpatterns.pro
+++ b/examples/xmlpatterns/xmlpatterns.pro
@@ -2,7 +2,8 @@ TEMPLATE = subdirs
SUBDIRS = recipes \
trafficinfo \
xquery \
- filetree
+ filetree \
+ schema
# This example depends on QtWebkit as well.
contains(QT_CONFIG, webkit):SUBDIRS += qobjectxmlmodel
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index 3108f31..d43be3e 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -70,6 +70,8 @@ int qFindString(const QChar *haystack, int haystackLen, int from,
#define RXERR_LEFTDELIM QT_TRANSLATE_NOOP("QRegExp", "missing left delim")
#define RXERR_END QT_TRANSLATE_NOOP("QRegExp", "unexpected end")
#define RXERR_LIMIT QT_TRANSLATE_NOOP("QRegExp", "met internal limit")
+#define RXERR_INTERVAL QT_TRANSLATE_NOOP("QRegExp", "invalid interval")
+#define RXERR_CATEGORY QT_TRANSLATE_NOOP("QRegExp", "invalid category")
/*
WARNING! Be sure to read qregexp.tex before modifying this file.
@@ -1116,6 +1118,7 @@ private:
bool valid; // is the regular expression valid?
Qt::CaseSensitivity cs; // case sensitive?
bool greedyQuantifiers; // RegExp2?
+ bool xmlSchemaExtensions;
#ifndef QT_NO_REGEXP_BACKREF
int nbrefs; // number of back-references
#endif
@@ -1193,6 +1196,8 @@ private:
friend class Box;
+ void setupCategoriesRangeMap();
+
/*
This is the lexical analyzer for regular expressions.
*/
@@ -1232,6 +1237,7 @@ private:
int yyTok; // the last token read
bool yyMayCapture; // set this to false to disable capturing
+ QHash<QByteArray, QPair<int, int> > categoriesRangeMap; // fast lookup hash for xml schema extensions
friend struct QRegExpMatchState;
};
@@ -1253,7 +1259,8 @@ struct QRegExpLookahead
#endif
QRegExpEngine::QRegExpEngine(const QRegExpEngineKey &key)
- : cs(key.cs), greedyQuantifiers(key.patternSyntax == QRegExp::RegExp2)
+ : cs(key.cs), greedyQuantifiers(key.patternSyntax == QRegExp::RegExp2),
+ xmlSchemaExtensions(false)
{
setup();
@@ -1268,6 +1275,8 @@ QRegExpEngine::QRegExpEngine(const QRegExpEngineKey &key)
case QRegExp::FixedString:
rx = QRegExp::escape(key.pattern);
break;
+ case QRegExp::W3CXmlSchema11:
+ xmlSchemaExtensions = true;
default:
rx = key.pattern;
}
@@ -2621,6 +2630,152 @@ void QRegExpEngine::Box::addAnchorsToEngine(const Box &to) const
}
}
+void QRegExpEngine::setupCategoriesRangeMap()
+{
+ categoriesRangeMap.insert("IsBasicLatin", qMakePair(0x0000, 0x007F));
+ categoriesRangeMap.insert("IsLatin-1Supplement", qMakePair(0x0080, 0x00FF));
+ categoriesRangeMap.insert("IsLatinExtended-A", qMakePair(0x0100, 0x017F));
+ categoriesRangeMap.insert("IsLatinExtended-B", qMakePair(0x0180, 0x024F));
+ categoriesRangeMap.insert("IsIPAExtensions", qMakePair(0x0250, 0x02AF));
+ categoriesRangeMap.insert("IsSpacingModifierLetters", qMakePair(0x02B0, 0x02FF));
+ categoriesRangeMap.insert("IsCombiningDiacriticalMarks", qMakePair(0x0300, 0x036F));
+ categoriesRangeMap.insert("IsGreek", qMakePair(0x0370, 0x03FF));
+ categoriesRangeMap.insert("IsCyrillic", qMakePair(0x0400, 0x04FF));
+ categoriesRangeMap.insert("IsCyrillicSupplement", qMakePair(0x0500, 0x052F));
+ categoriesRangeMap.insert("IsArmenian", qMakePair(0x0530, 0x058F));
+ categoriesRangeMap.insert("IsHebrew", qMakePair(0x0590, 0x05FF));
+ categoriesRangeMap.insert("IsArabic", qMakePair(0x0600, 0x06FF));
+ categoriesRangeMap.insert("IsSyriac", qMakePair(0x0700, 0x074F));
+ categoriesRangeMap.insert("IsArabicSupplement", qMakePair(0x0750, 0x077F));
+ categoriesRangeMap.insert("IsThaana", qMakePair(0x0780, 0x07BF));
+ categoriesRangeMap.insert("IsDevanagari", qMakePair(0x0900, 0x097F));
+ categoriesRangeMap.insert("IsBengali", qMakePair(0x0980, 0x09FF));
+ categoriesRangeMap.insert("IsGurmukhi", qMakePair(0x0A00, 0x0A7F));
+ categoriesRangeMap.insert("IsGujarati", qMakePair(0x0A80, 0x0AFF));
+ categoriesRangeMap.insert("IsOriya", qMakePair(0x0B00, 0x0B7F));
+ categoriesRangeMap.insert("IsTamil", qMakePair(0x0B80, 0x0BFF));
+ categoriesRangeMap.insert("IsTelugu", qMakePair(0x0C00, 0x0C7F));
+ categoriesRangeMap.insert("IsKannada", qMakePair(0x0C80, 0x0CFF));
+ categoriesRangeMap.insert("IsMalayalam", qMakePair(0x0D00, 0x0D7F));
+ categoriesRangeMap.insert("IsSinhala", qMakePair(0x0D80, 0x0DFF));
+ categoriesRangeMap.insert("IsThai", qMakePair(0x0E00, 0x0E7F));
+ categoriesRangeMap.insert("IsLao", qMakePair(0x0E80, 0x0EFF));
+ categoriesRangeMap.insert("IsTibetan", qMakePair(0x0F00, 0x0FFF));
+ categoriesRangeMap.insert("IsMyanmar", qMakePair(0x1000, 0x109F));
+ categoriesRangeMap.insert("IsGeorgian", qMakePair(0x10A0, 0x10FF));
+ categoriesRangeMap.insert("IsHangulJamo", qMakePair(0x1100, 0x11FF));
+ categoriesRangeMap.insert("IsEthiopic", qMakePair(0x1200, 0x137F));
+ categoriesRangeMap.insert("IsEthiopicSupplement", qMakePair(0x1380, 0x139F));
+ categoriesRangeMap.insert("IsCherokee", qMakePair(0x13A0, 0x13FF));
+ categoriesRangeMap.insert("IsUnifiedCanadianAboriginalSyllabics", qMakePair(0x1400, 0x167F));
+ categoriesRangeMap.insert("IsOgham", qMakePair(0x1680, 0x169F));
+ categoriesRangeMap.insert("IsRunic", qMakePair(0x16A0, 0x16FF));
+ categoriesRangeMap.insert("IsTagalog", qMakePair(0x1700, 0x171F));
+ categoriesRangeMap.insert("IsHanunoo", qMakePair(0x1720, 0x173F));
+ categoriesRangeMap.insert("IsBuhid", qMakePair(0x1740, 0x175F));
+ categoriesRangeMap.insert("IsTagbanwa", qMakePair(0x1760, 0x177F));
+ categoriesRangeMap.insert("IsKhmer", qMakePair(0x1780, 0x17FF));
+ categoriesRangeMap.insert("IsMongolian", qMakePair(0x1800, 0x18AF));
+ categoriesRangeMap.insert("IsLimbu", qMakePair(0x1900, 0x194F));
+ categoriesRangeMap.insert("IsTaiLe", qMakePair(0x1950, 0x197F));
+ categoriesRangeMap.insert("IsNewTaiLue", qMakePair(0x1980, 0x19DF));
+ categoriesRangeMap.insert("IsKhmerSymbols", qMakePair(0x19E0, 0x19FF));
+ categoriesRangeMap.insert("IsBuginese", qMakePair(0x1A00, 0x1A1F));
+ categoriesRangeMap.insert("IsPhoneticExtensions", qMakePair(0x1D00, 0x1D7F));
+ categoriesRangeMap.insert("IsPhoneticExtensionsSupplement", qMakePair(0x1D80, 0x1DBF));
+ categoriesRangeMap.insert("IsCombiningDiacriticalMarksSupplement", qMakePair(0x1DC0, 0x1DFF));
+ categoriesRangeMap.insert("IsLatinExtendedAdditional", qMakePair(0x1E00, 0x1EFF));
+ categoriesRangeMap.insert("IsGreekExtended", qMakePair(0x1F00, 0x1FFF));
+ categoriesRangeMap.insert("IsGeneralPunctuation", qMakePair(0x2000, 0x206F));
+ categoriesRangeMap.insert("IsSuperscriptsandSubscripts", qMakePair(0x2070, 0x209F));
+ categoriesRangeMap.insert("IsCurrencySymbols", qMakePair(0x20A0, 0x20CF));
+ categoriesRangeMap.insert("IsCombiningMarksforSymbols", qMakePair(0x20D0, 0x20FF));
+ categoriesRangeMap.insert("IsLetterlikeSymbols", qMakePair(0x2100, 0x214F));
+ categoriesRangeMap.insert("IsNumberForms", qMakePair(0x2150, 0x218F));
+ categoriesRangeMap.insert("IsArrows", qMakePair(0x2190, 0x21FF));
+ categoriesRangeMap.insert("IsMathematicalOperators", qMakePair(0x2200, 0x22FF));
+ categoriesRangeMap.insert("IsMiscellaneousTechnical", qMakePair(0x2300, 0x23FF));
+ categoriesRangeMap.insert("IsControlPictures", qMakePair(0x2400, 0x243F));
+ categoriesRangeMap.insert("IsOpticalCharacterRecognition", qMakePair(0x2440, 0x245F));
+ categoriesRangeMap.insert("IsEnclosedAlphanumerics", qMakePair(0x2460, 0x24FF));
+ categoriesRangeMap.insert("IsBoxDrawing", qMakePair(0x2500, 0x257F));
+ categoriesRangeMap.insert("IsBlockElements", qMakePair(0x2580, 0x259F));
+ categoriesRangeMap.insert("IsGeometricShapes", qMakePair(0x25A0, 0x25FF));
+ categoriesRangeMap.insert("IsMiscellaneousSymbols", qMakePair(0x2600, 0x26FF));
+ categoriesRangeMap.insert("IsDingbats", qMakePair(0x2700, 0x27BF));
+ categoriesRangeMap.insert("IsMiscellaneousMathematicalSymbols-A", qMakePair(0x27C0, 0x27EF));
+ categoriesRangeMap.insert("IsSupplementalArrows-A", qMakePair(0x27F0, 0x27FF));
+ categoriesRangeMap.insert("IsBraillePatterns", qMakePair(0x2800, 0x28FF));
+ categoriesRangeMap.insert("IsSupplementalArrows-B", qMakePair(0x2900, 0x297F));
+ categoriesRangeMap.insert("IsMiscellaneousMathematicalSymbols-B", qMakePair(0x2980, 0x29FF));
+ categoriesRangeMap.insert("IsSupplementalMathematicalOperators", qMakePair(0x2A00, 0x2AFF));
+ categoriesRangeMap.insert("IsMiscellaneousSymbolsandArrows", qMakePair(0x2B00, 0x2BFF));
+ categoriesRangeMap.insert("IsGlagolitic", qMakePair(0x2C00, 0x2C5F));
+ categoriesRangeMap.insert("IsCoptic", qMakePair(0x2C80, 0x2CFF));
+ categoriesRangeMap.insert("IsGeorgianSupplement", qMakePair(0x2D00, 0x2D2F));
+ categoriesRangeMap.insert("IsTifinagh", qMakePair(0x2D30, 0x2D7F));
+ categoriesRangeMap.insert("IsEthiopicExtended", qMakePair(0x2D80, 0x2DDF));
+ categoriesRangeMap.insert("IsSupplementalPunctuation", qMakePair(0x2E00, 0x2E7F));
+ categoriesRangeMap.insert("IsCJKRadicalsSupplement", qMakePair(0x2E80, 0x2EFF));
+ categoriesRangeMap.insert("IsKangxiRadicals", qMakePair(0x2F00, 0x2FDF));
+ categoriesRangeMap.insert("IsIdeographicDescriptionCharacters", qMakePair(0x2FF0, 0x2FFF));
+ categoriesRangeMap.insert("IsCJKSymbolsandPunctuation", qMakePair(0x3000, 0x303F));
+ categoriesRangeMap.insert("IsHiragana", qMakePair(0x3040, 0x309F));
+ categoriesRangeMap.insert("IsKatakana", qMakePair(0x30A0, 0x30FF));
+ categoriesRangeMap.insert("IsBopomofo", qMakePair(0x3100, 0x312F));
+ categoriesRangeMap.insert("IsHangulCompatibilityJamo", qMakePair(0x3130, 0x318F));
+ categoriesRangeMap.insert("IsKanbun", qMakePair(0x3190, 0x319F));
+ categoriesRangeMap.insert("IsBopomofoExtended", qMakePair(0x31A0, 0x31BF));
+ categoriesRangeMap.insert("IsCJKStrokes", qMakePair(0x31C0, 0x31EF));
+ categoriesRangeMap.insert("IsKatakanaPhoneticExtensions", qMakePair(0x31F0, 0x31FF));
+ categoriesRangeMap.insert("IsEnclosedCJKLettersandMonths", qMakePair(0x3200, 0x32FF));
+ categoriesRangeMap.insert("IsCJKCompatibility", qMakePair(0x3300, 0x33FF));
+ categoriesRangeMap.insert("IsCJKUnifiedIdeographsExtensionA", qMakePair(0x3400, 0x4DB5));
+ categoriesRangeMap.insert("IsYijingHexagramSymbols", qMakePair(0x4DC0, 0x4DFF));
+ categoriesRangeMap.insert("IsCJKUnifiedIdeographs", qMakePair(0x4E00, 0x9FFF));
+ categoriesRangeMap.insert("IsYiSyllables", qMakePair(0xA000, 0xA48F));
+ categoriesRangeMap.insert("IsYiRadicals", qMakePair(0xA490, 0xA4CF));
+ categoriesRangeMap.insert("IsModifierToneLetters", qMakePair(0xA700, 0xA71F));
+ categoriesRangeMap.insert("IsSylotiNagri", qMakePair(0xA800, 0xA82F));
+ categoriesRangeMap.insert("IsHangulSyllables", qMakePair(0xAC00, 0xD7A3));
+ categoriesRangeMap.insert("IsPrivateUse", qMakePair(0xE000, 0xF8FF));
+ categoriesRangeMap.insert("IsCJKCompatibilityIdeographs", qMakePair(0xF900, 0xFAFF));
+ categoriesRangeMap.insert("IsAlphabeticPresentationForms", qMakePair(0xFB00, 0xFB4F));
+ categoriesRangeMap.insert("IsArabicPresentationForms-A", qMakePair(0xFB50, 0xFDFF));
+ categoriesRangeMap.insert("IsVariationSelectors", qMakePair(0xFE00, 0xFE0F));
+ categoriesRangeMap.insert("IsVerticalForms", qMakePair(0xFE10, 0xFE1F));
+ categoriesRangeMap.insert("IsCombiningHalfMarks", qMakePair(0xFE20, 0xFE2F));
+ categoriesRangeMap.insert("IsCJKCompatibilityForms", qMakePair(0xFE30, 0xFE4F));
+ categoriesRangeMap.insert("IsSmallFormVariants", qMakePair(0xFE50, 0xFE6F));
+ categoriesRangeMap.insert("IsArabicPresentationForms-B", qMakePair(0xFE70, 0xFEFF));
+ categoriesRangeMap.insert("IsHalfwidthandFullwidthForms", qMakePair(0xFF00, 0xFFEF));
+ categoriesRangeMap.insert("IsSpecials", qMakePair(0xFFF0, 0xFFFF));
+ categoriesRangeMap.insert("IsLinearBSyllabary", qMakePair(0x10000, 0x1007F));
+ categoriesRangeMap.insert("IsLinearBIdeograms", qMakePair(0x10080, 0x100FF));
+ categoriesRangeMap.insert("IsAegeanNumbers", qMakePair(0x10100, 0x1013F));
+ categoriesRangeMap.insert("IsAncientGreekNumbers", qMakePair(0x10140, 0x1018F));
+ categoriesRangeMap.insert("IsOldItalic", qMakePair(0x10300, 0x1032F));
+ categoriesRangeMap.insert("IsGothic", qMakePair(0x10330, 0x1034F));
+ categoriesRangeMap.insert("IsUgaritic", qMakePair(0x10380, 0x1039F));
+ categoriesRangeMap.insert("IsOldPersian", qMakePair(0x103A0, 0x103DF));
+ categoriesRangeMap.insert("IsDeseret", qMakePair(0x10400, 0x1044F));
+ categoriesRangeMap.insert("IsShavian", qMakePair(0x10450, 0x1047F));
+ categoriesRangeMap.insert("IsOsmanya", qMakePair(0x10480, 0x104AF));
+ categoriesRangeMap.insert("IsCypriotSyllabary", qMakePair(0x10800, 0x1083F));
+ categoriesRangeMap.insert("IsKharoshthi", qMakePair(0x10A00, 0x10A5F));
+ categoriesRangeMap.insert("IsByzantineMusicalSymbols", qMakePair(0x1D000, 0x1D0FF));
+ categoriesRangeMap.insert("IsMusicalSymbols", qMakePair(0x1D100, 0x1D1FF));
+ categoriesRangeMap.insert("IsAncientGreekMusicalNotation", qMakePair(0x1D200, 0x1D24F));
+ categoriesRangeMap.insert("IsTaiXuanJingSymbols", qMakePair(0x1D300, 0x1D35F));
+ categoriesRangeMap.insert("IsMathematicalAlphanumericSymbols", qMakePair(0x1D400, 0x1D7FF));
+ categoriesRangeMap.insert("IsCJKUnifiedIdeographsExtensionB", qMakePair(0x20000, 0x2A6DF));
+ categoriesRangeMap.insert("IsCJKCompatibilityIdeographsSupplement", qMakePair(0x2F800, 0x2FA1F));
+ categoriesRangeMap.insert("IsTags", qMakePair(0xE0000, 0xE007F));
+ categoriesRangeMap.insert("IsVariationSelectorsSupplement", qMakePair(0xE0100, 0xE01EF));
+ categoriesRangeMap.insert("IsSupplementaryPrivateUseArea-A", qMakePair(0xF0000, 0xFFFFF));
+ categoriesRangeMap.insert("IsSupplementaryPrivateUseArea-B", qMakePair(0x100000, 0x10FFFF));
+}
+
int QRegExpEngine::getChar()
{
return (yyPos == yyLen) ? EOS : yyIn[yyPos++].unicode();
@@ -2713,6 +2868,177 @@ int QRegExpEngine::getEscape()
yyCharClass->addCategories(0x000f807e);
yyCharClass->addSingleton(0x005f); // '_'
return Tok_CharClass;
+ case 'I':
+ if (xmlSchemaExtensions) {
+ yyCharClass->setNegative(!yyCharClass->negative());
+ // fall through
+ }
+ case 'i':
+ if (xmlSchemaExtensions) {
+ yyCharClass->addCategories(0x000f807e);
+ yyCharClass->addSingleton(0x003a); // ':'
+ yyCharClass->addSingleton(0x005f); // '_'
+ yyCharClass->addRange(0x0041, 0x005a); // [A-Z]
+ yyCharClass->addRange(0x0061, 0x007a); // [a-z]
+ yyCharClass->addRange(0xc0, 0xd6);
+ yyCharClass->addRange(0xd8, 0xf6);
+ yyCharClass->addRange(0xf8, 0x2ff);
+ yyCharClass->addRange(0x370, 0x37d);
+ yyCharClass->addRange(0x37f, 0x1fff);
+ yyCharClass->addRange(0x200c, 0x200d);
+ yyCharClass->addRange(0x2070, 0x218f);
+ yyCharClass->addRange(0x2c00, 0x2fef);
+ yyCharClass->addRange(0x3001, 0xd7ff);
+ yyCharClass->addRange(0xf900, 0xfdcf);
+ yyCharClass->addRange(0xfdf0, 0xfffd);
+ yyCharClass->addRange((ushort)0x10000, (ushort)0xeffff);
+ }
+ return Tok_CharClass;
+ case 'C':
+ if (xmlSchemaExtensions) {
+ yyCharClass->setNegative(!yyCharClass->negative());
+ // fall through
+ }
+ case 'c':
+ if (xmlSchemaExtensions) {
+ yyCharClass->addCategories(0x000f807e);
+ yyCharClass->addSingleton(0x002d); // '-'
+ yyCharClass->addSingleton(0x002e); // '.'
+ yyCharClass->addSingleton(0x003a); // ':'
+ yyCharClass->addSingleton(0x005f); // '_'
+ yyCharClass->addSingleton(0xb7);
+ yyCharClass->addRange(0x0030, 0x0039); // [0-9]
+ yyCharClass->addRange(0x0041, 0x005a); // [A-Z]
+ yyCharClass->addRange(0x0061, 0x007a); // [a-z]
+ yyCharClass->addRange(0xc0, 0xd6);
+ yyCharClass->addRange(0xd8, 0xf6);
+ yyCharClass->addRange(0xf8, 0x2ff);
+ yyCharClass->addRange(0x370, 0x37d);
+ yyCharClass->addRange(0x37f, 0x1fff);
+ yyCharClass->addRange(0x200c, 0x200d);
+ yyCharClass->addRange(0x2070, 0x218f);
+ yyCharClass->addRange(0x2c00, 0x2fef);
+ yyCharClass->addRange(0x3001, 0xd7ff);
+ yyCharClass->addRange(0xf900, 0xfdcf);
+ yyCharClass->addRange(0xfdf0, 0xfffd);
+ yyCharClass->addRange((ushort)0x10000, (ushort)0xeffff);
+ yyCharClass->addRange(0x0300, 0x036f);
+ yyCharClass->addRange(0x203f, 0x2040);
+ }
+ return Tok_CharClass;
+ case 'P':
+ if (xmlSchemaExtensions) {
+ yyCharClass->setNegative(!yyCharClass->negative());
+ // fall through
+ }
+ case 'p':
+ if (xmlSchemaExtensions) {
+ if (yyCh != '{') {
+ error(RXERR_CHARCLASS);
+ return Tok_CharClass;
+ }
+
+ QByteArray category;
+ yyCh = getChar();
+ while (yyCh != '}') {
+ if (yyCh == EOS) {
+ error(RXERR_END);
+ return Tok_CharClass;
+ }
+ category.append(yyCh);
+ yyCh = getChar();
+ }
+ yyCh = getChar(); // skip closing '}'
+
+ if (category == "M") {
+ yyCharClass->addCategories(0x0000000e);
+ } else if (category == "Mn") {
+ yyCharClass->addCategories(0x00000002);
+ } else if (category == "Mc") {
+ yyCharClass->addCategories(0x00000004);
+ } else if (category == "Me") {
+ yyCharClass->addCategories(0x00000008);
+ } else if (category == "N") {
+ yyCharClass->addCategories(0x00000070);
+ } else if (category == "Nd") {
+ yyCharClass->addCategories(0x00000010);
+ } else if (category == "Nl") {
+ yyCharClass->addCategories(0x00000020);
+ } else if (category == "No") {
+ yyCharClass->addCategories(0x00000040);
+ } else if (category == "Z") {
+ yyCharClass->addCategories(0x00000380);
+ } else if (category == "Zs") {
+ yyCharClass->addCategories(0x00000080);
+ } else if (category == "Zl") {
+ yyCharClass->addCategories(0x00000100);
+ } else if (category == "Zp") {
+ yyCharClass->addCategories(0x00000200);
+ } else if (category == "C") {
+ yyCharClass->addCategories(0x00006c00);
+ } else if (category == "Cc") {
+ yyCharClass->addCategories(0x00000400);
+ } else if (category == "Cf") {
+ yyCharClass->addCategories(0x00000800);
+ } else if (category == "Cs") {
+ yyCharClass->addCategories(0x00001000);
+ } else if (category == "Co") {
+ yyCharClass->addCategories(0x00002000);
+ } else if (category == "Cn") {
+ yyCharClass->addCategories(0x00004000);
+ } else if (category == "L") {
+ yyCharClass->addCategories(0x000f8000);
+ } else if (category == "Lu") {
+ yyCharClass->addCategories(0x00008000);
+ } else if (category == "Ll") {
+ yyCharClass->addCategories(0x00010000);
+ } else if (category == "Lt") {
+ yyCharClass->addCategories(0x00020000);
+ } else if (category == "Lm") {
+ yyCharClass->addCategories(0x00040000);
+ } else if (category == "Lo") {
+ yyCharClass->addCategories(0x00080000);
+ } else if (category == "P") {
+ yyCharClass->addCategories(0x4f580780);
+ } else if (category == "Pc") {
+ yyCharClass->addCategories(0x00100000);
+ } else if (category == "Pd") {
+ yyCharClass->addCategories(0x00200000);
+ } else if (category == "Ps") {
+ yyCharClass->addCategories(0x00400000);
+ } else if (category == "Pe") {
+ yyCharClass->addCategories(0x00800000);
+ } else if (category == "Pi") {
+ yyCharClass->addCategories(0x01000000);
+ } else if (category == "Pf") {
+ yyCharClass->addCategories(0x02000000);
+ } else if (category == "Po") {
+ yyCharClass->addCategories(0x04000000);
+ } else if (category == "S") {
+ yyCharClass->addCategories(0x78000000);
+ } else if (category == "Sm") {
+ yyCharClass->addCategories(0x08000000);
+ } else if (category == "Sc") {
+ yyCharClass->addCategories(0x10000000);
+ } else if (category == "Sk") {
+ yyCharClass->addCategories(0x20000000);
+ } else if (category == "So") {
+ yyCharClass->addCategories(0x40000000);
+ } else if (category.startsWith("Is")) {
+ if (categoriesRangeMap.isEmpty())
+ setupCategoriesRangeMap();
+
+ if (categoriesRangeMap.contains(category)) {
+ const QPair<int, int> range = categoriesRangeMap.value(category);
+ yyCharClass->addRange(range.first, range.second);
+ } else {
+ error(RXERR_CATEGORY);
+ }
+ } else {
+ error(RXERR_CATEGORY);
+ }
+ }
+ return Tok_CharClass;
#endif
#ifndef QT_NO_REGEXP_ESCAPE
case 'x':
@@ -2934,7 +3260,7 @@ int QRegExpEngine::getToken()
yyMaxRep = getRep(InftyRep);
}
if (yyMaxRep < yyMinRep)
- qSwap(yyMinRep, yyMaxRep);
+ error(RXERR_INTERVAL);
if (yyCh != '}')
error(RXERR_REPETITION);
yyCh = getChar();
@@ -3374,6 +3700,9 @@ static void invalidateEngine(QRegExpPrivate *priv)
equivalent to using the RegExp pattern on a string in
which all metacharacters are escaped using escape().
+ \value W3CXmlSchema11 The pattern is a regular expression as
+ defined by the W3C XML Schema 1.1 specification.
+
\sa setPatternSyntax()
*/
diff --git a/src/corelib/tools/qregexp.h b/src/corelib/tools/qregexp.h
index 057eec2..16682a3 100644
--- a/src/corelib/tools/qregexp.h
+++ b/src/corelib/tools/qregexp.h
@@ -61,7 +61,7 @@ class QStringList;
class Q_CORE_EXPORT QRegExp
{
public:
- enum PatternSyntax { RegExp, Wildcard, FixedString, RegExp2 };
+ enum PatternSyntax { RegExp, Wildcard, FixedString, RegExp2, W3CXmlSchema11 };
enum CaretMode { CaretAtZero, CaretAtOffset, CaretWontMatch };
QRegExp();
diff --git a/src/xmlpatterns/Doxyfile b/src/xmlpatterns/Doxyfile
index 60a6c77..83f7062 100644
--- a/src/xmlpatterns/Doxyfile
+++ b/src/xmlpatterns/Doxyfile
@@ -1157,7 +1157,7 @@ DOT_PATH =
# contain dot files that are included in the documentation (see the
# \dotfile command).
-DOTFILE_DIRS =
+DOTFILE_DIRS = schema/doc/
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, which results in a white background.
diff --git a/src/xmlpatterns/acceltree/qacceltree.cpp b/src/xmlpatterns/acceltree/qacceltree.cpp
index 6111af2..83ea949 100644
--- a/src/xmlpatterns/acceltree/qacceltree.cpp
+++ b/src/xmlpatterns/acceltree/qacceltree.cpp
@@ -42,6 +42,7 @@
#include <QStack>
#include "qabstractxmlreceiver.h"
+#include "qabstractxmlnodemodel_p.h"
#include "qacceliterators_p.h"
#include "qacceltree_p.h"
#include "qatomicstring_p.h"
@@ -55,6 +56,37 @@ QT_BEGIN_NAMESPACE
using namespace QPatternist;
+namespace QPatternist {
+
+ class AccelTreePrivate : public QAbstractXmlNodeModelPrivate
+ {
+ public:
+ AccelTreePrivate(AccelTree *accelTree)
+ : m_accelTree(accelTree)
+ {
+ }
+
+ virtual QSourceLocation sourceLocation(const QXmlNodeModelIndex &index) const
+ {
+ return m_accelTree->sourceLocation(index);
+ }
+
+ private:
+ AccelTree *m_accelTree;
+ };
+}
+
+AccelTree::AccelTree(const QUrl &docURI, const QUrl &bURI)
+ : QAbstractXmlNodeModel(new AccelTreePrivate(this))
+ , m_documentURI(docURI)
+ , m_baseURI(bURI)
+{
+ /* Pre-allocate at least a little bit. */
+ // TODO. Do it according to what an average 4 KB doc contains.
+ basicData.reserve(100);
+ data.reserve(30);
+}
+
void AccelTree::printStats(const NamePool::Ptr &np) const
{
Q_ASSERT(np);
@@ -674,6 +706,17 @@ void AccelTree::copyNodeTo(const QXmlNodeModelIndex &node,
}
+QSourceLocation AccelTree::sourceLocation(const QXmlNodeModelIndex &index) const
+{
+ const PreNumber key = toPreNumber(index);
+ if (sourcePositions.contains(key)) {
+ const QPair<qint64, qint64> position = sourcePositions.value(key);
+ return QSourceLocation(m_documentURI, position.first, position.second);
+ } else {
+ return QSourceLocation();
+ }
+}
+
void AccelTree::copyChildren(const QXmlNodeModelIndex &node,
QAbstractXmlReceiver *const receiver,
const NodeCopySettings &settings) const
diff --git a/src/xmlpatterns/acceltree/qacceltree_p.h b/src/xmlpatterns/acceltree/qacceltree_p.h
index 38de08c..0c68fab 100644
--- a/src/xmlpatterns/acceltree/qacceltree_p.h
+++ b/src/xmlpatterns/acceltree/qacceltree_p.h
@@ -91,6 +91,7 @@ namespace QPatternist
*/
class AccelTree : public QAbstractXmlNodeModel
{
+ friend class AccelTreePrivate;
public:
using QAbstractXmlNodeModel::createIndex;
@@ -99,15 +100,7 @@ namespace QPatternist
typedef PreNumber PostNumber;
typedef qint8 Depth;
- inline AccelTree(const QUrl &docURI,
- const QUrl &bURI) : m_documentURI(docURI),
- m_baseURI(bURI)
- {
- /* Pre-allocate at least a little bit. */
- // TODO. Do it according to what an average 4 KB doc contains.
- basicData.reserve(100);
- data.reserve(30);
- }
+ AccelTree(const QUrl &docURI, const QUrl &bURI);
/**
* @short Houses data for a node, and that all node kinds have.
@@ -280,6 +273,7 @@ namespace QPatternist
QHash<PreNumber, QString> data;
QVector<BasicNodeData> basicData;
+ QHash<PreNumber, QPair<qint64, qint64> > sourcePositions;
inline QUrl documentUri() const
{
@@ -381,6 +375,11 @@ namespace QPatternist
private:
/**
+ * Returns the source location for the object with the given @p index.
+ */
+ QSourceLocation sourceLocation(const QXmlNodeModelIndex &index) const;
+
+ /**
* Copies the children of @p node to @p receiver.
*/
inline void copyChildren(const QXmlNodeModelIndex &node,
diff --git a/src/xmlpatterns/acceltree/qacceltreebuilder.cpp b/src/xmlpatterns/acceltree/qacceltreebuilder.cpp
index 63372ac..e58cc92 100644
--- a/src/xmlpatterns/acceltree/qacceltreebuilder.cpp
+++ b/src/xmlpatterns/acceltree/qacceltreebuilder.cpp
@@ -49,15 +49,17 @@ template <bool FromDocument>
AccelTreeBuilder<FromDocument>::AccelTreeBuilder(const QUrl &docURI,
const QUrl &baseURI,
const NamePool::Ptr &np,
- ReportContext *const context) : m_preNumber(-1)
- , m_isPreviousAtomic(false)
- , m_hasCharacters(false)
- , m_isCharactersCompressed(false)
- , m_namePool(np)
- , m_document(new AccelTree(docURI, baseURI))
- , m_skippedDocumentNodes(0)
- , m_documentURI(docURI)
- , m_context(context)
+ ReportContext *const context,
+ Features features) : m_preNumber(-1)
+ , m_isPreviousAtomic(false)
+ , m_hasCharacters(false)
+ , m_isCharactersCompressed(false)
+ , m_namePool(np)
+ , m_document(new AccelTree(docURI, baseURI))
+ , m_skippedDocumentNodes(0)
+ , m_documentURI(docURI)
+ , m_context(context)
+ , m_features(features)
{
Q_ASSERT(m_namePool);
@@ -126,9 +128,18 @@ void AccelTreeBuilder<FromDocument>::item(const Item &it)
template <bool FromDocument>
void AccelTreeBuilder<FromDocument>::startElement(const QXmlName &name)
{
+ startElement(name, 1, 1);
+}
+
+template <bool FromDocument>
+void AccelTreeBuilder<FromDocument>::startElement(const QXmlName &name, qint64 line, qint64 column)
+{
startStructure();
- m_document->basicData.append(AccelTree::BasicNodeData(currentDepth(), currentParent(), QXmlNodeModelIndex::Element, -1, name));
+ AccelTree::BasicNodeData data(currentDepth(), currentParent(), QXmlNodeModelIndex::Element, -1, name);
+ m_document->basicData.append(data);
+ if (m_features & SourceLocationsFeature)
+ m_document->sourcePositions.insert(m_document->maximumPreNumber(), qMakePair(line, column));
++m_preNumber;
m_ancestors.push(m_preNumber);
diff --git a/src/xmlpatterns/acceltree/qacceltreebuilder_p.h b/src/xmlpatterns/acceltree/qacceltreebuilder_p.h
index 6eb3102..5f6a287 100644
--- a/src/xmlpatterns/acceltree/qacceltreebuilder_p.h
+++ b/src/xmlpatterns/acceltree/qacceltreebuilder_p.h
@@ -90,15 +90,27 @@ namespace QPatternist
typedef QExplicitlySharedDataPointer<AccelTreeBuilder> Ptr;
/**
+ * Describes the memory relevant features the builder shall support.
+ */
+ enum Feature
+ {
+ NoneFeature, ///< No special features are enabled.
+ SourceLocationsFeature = 1 ///< The accel tree builder will store source locations for each start element.
+ };
+ Q_DECLARE_FLAGS(Features, Feature)
+
+ /**
* @param context may be @c null.
*/
AccelTreeBuilder(const QUrl &docURI,
const QUrl &baseURI,
const NamePool::Ptr &np,
- ReportContext *const context);
+ ReportContext *const context,
+ Features features = NoneFeature);
virtual void startDocument();
virtual void endDocument();
virtual void startElement(const QXmlName &name);
+ void startElement(const QXmlName &name, qint64 line, qint64 column);
virtual void endElement();
virtual void attribute(const QXmlName &name, const QStringRef &value);
virtual void characters(const QStringRef &ch);
@@ -175,8 +187,13 @@ namespace QPatternist
* a member.
*/
ReportContext *const m_context;
+
+ Features m_features;
};
+ Q_DECLARE_OPERATORS_FOR_FLAGS(AccelTreeBuilder<true>::Features)
+ Q_DECLARE_OPERATORS_FOR_FLAGS(AccelTreeBuilder<false>::Features)
+
#include "qacceltreebuilder.cpp"
}
diff --git a/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp b/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp
index 0e59821..1cd84db 100644
--- a/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp
+++ b/src/xmlpatterns/acceltree/qacceltreeresourceloader.cpp
@@ -46,7 +46,6 @@
#include <QtNetwork/QNetworkRequest>
-#include "qacceltreebuilder_p.h"
#include "qatomicstring_p.h"
#include "qautoptr_p.h"
#include "qcommonsequencetypes_p.h"
@@ -57,14 +56,12 @@ QT_BEGIN_NAMESPACE
using namespace QPatternist;
-static inline uint qHash(const QUrl &uri)
-{
- return qHash(uri.toString());
-}
-
AccelTreeResourceLoader::AccelTreeResourceLoader(const NamePool::Ptr &np,
- const NetworkAccessDelegator::Ptr &manager) : m_namePool(np)
- , m_networkAccessDelegator(manager)
+ const NetworkAccessDelegator::Ptr &manager,
+ AccelTreeBuilder<true>::Features features)
+ : m_namePool(np)
+ , m_networkAccessDelegator(manager)
+ , m_features(features)
{
Q_ASSERT(m_namePool);
Q_ASSERT(m_networkAccessDelegator);
@@ -74,7 +71,7 @@ bool AccelTreeResourceLoader::retrieveDocument(const QUrl &uri,
const ReportContext::Ptr &context)
{
Q_ASSERT(uri.isValid());
- AccelTreeBuilder<true> builder(uri, uri, m_namePool, context.data());
+ AccelTreeBuilder<true> builder(uri, uri, m_namePool, context.data(), m_features);
const AutoPtr<QNetworkReply> reply(load(uri, m_networkAccessDelegator, context));
@@ -88,18 +85,35 @@ bool AccelTreeResourceLoader::retrieveDocument(const QUrl &uri,
return success;
}
+bool AccelTreeResourceLoader::retrieveDocument(QIODevice *source, const QUrl &documentUri, const ReportContext::Ptr &context)
+{
+ Q_ASSERT(source);
+ Q_ASSERT(source->isReadable());
+ Q_ASSERT(documentUri.isValid());
+
+ AccelTreeBuilder<true> builder(documentUri, documentUri, m_namePool, context.data(), m_features);
+
+ bool success = false;
+ success = streamToReceiver(source, &builder, m_namePool, context, documentUri);
+
+ m_loadedDocuments.insert(documentUri, builder.builtDocument());
+
+ return success;
+}
+
QNetworkReply *AccelTreeResourceLoader::load(const QUrl &uri,
const NetworkAccessDelegator::Ptr &networkDelegator,
- const ReportContext::Ptr &context)
+ const ReportContext::Ptr &context, ErrorHandling errorHandling)
{
return load(uri,
networkDelegator->managerFor(uri),
- context);
+ context, errorHandling);
}
QNetworkReply *AccelTreeResourceLoader::load(const QUrl &uri,
QNetworkAccessManager *const networkManager,
- const ReportContext::Ptr &context)
+ const ReportContext::Ptr &context, ErrorHandling errorHandling)
+
{
Q_ASSERT(networkManager);
Q_ASSERT(uri.isValid());
@@ -120,7 +134,7 @@ QNetworkReply *AccelTreeResourceLoader::load(const QUrl &uri,
const QSourceLocation location(uri);
- if(context)
+ if(context && (errorHandling == FailOnError))
context->error(errorMessage, ReportContext::FODC0002, location);
return 0;
@@ -130,7 +144,7 @@ QNetworkReply *AccelTreeResourceLoader::load(const QUrl &uri,
}
bool AccelTreeResourceLoader::streamToReceiver(QIODevice *const dev,
- QAbstractXmlReceiver *const receiver,
+ AccelTreeBuilder<true> *const receiver,
const NamePool::Ptr &np,
const ReportContext::Ptr &context,
const QUrl &uri)
@@ -154,7 +168,7 @@ bool AccelTreeResourceLoader::streamToReceiver(QIODevice *const dev,
{
/* Send the name. */
receiver->startElement(np->allocateQName(reader.namespaceUri().toString(), reader.name().toString(),
- reader.prefix().toString()));
+ reader.prefix().toString()), reader.lineNumber(), reader.columnNumber());
/* Send namespace declarations. */
const QXmlStreamNamespaceDeclarations &nss = reader.namespaceDeclarations();
@@ -263,6 +277,22 @@ Item AccelTreeResourceLoader::openDocument(const QUrl &uri,
}
}
+Item AccelTreeResourceLoader::openDocument(QIODevice *source, const QUrl &documentUri,
+ const ReportContext::Ptr &context)
+{
+ const AccelTree::Ptr doc(m_loadedDocuments.value(documentUri));
+
+ if(doc)
+ return doc->root(QXmlNodeModelIndex()); /* Pass in dummy object. We know AccelTree doesn't use it. */
+ else
+ {
+ if(retrieveDocument(source, documentUri, context))
+ return m_loadedDocuments.value(documentUri)->root(QXmlNodeModelIndex()); /* Pass in dummy object. We know AccelTree doesn't use it. */
+ else
+ return Item();
+ }
+}
+
SequenceType::Ptr AccelTreeResourceLoader::announceDocument(const QUrl &uri, const Usage)
{
// TODO deal with the usage thingy
diff --git a/src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h b/src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h
index a650dfa..f24a88e 100644
--- a/src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h
+++ b/src/xmlpatterns/acceltree/qacceltreeresourceloader_p.h
@@ -52,12 +52,12 @@
#ifndef Patternist_AccelTreeResourceLoader_H
#define Patternist_AccelTreeResourceLoader_H
-#include <QtCore/QHash>
#include <QtCore/QEventLoop>
#include <QtNetwork/QNetworkReply>
#include "qabstractxmlreceiver.h"
#include "qacceltree_p.h"
+#include "qacceltreebuilder_p.h"
#include "qdeviceresourceloader_p.h"
#include "qnamepool_p.h"
#include "qnetworkaccessdelegator_p.h"
@@ -115,13 +115,25 @@ namespace QPatternist
{
public:
/**
+ * Describes the behaviour of the resource loader in case of an
+ * error.
+ */
+ enum ErrorHandling
+ {
+ FailOnError, ///< The resource loader will report the error via the report context.
+ ContinueOnError ///< The resource loader will report no error and return an empty QNetworkReply.
+ };
+
+ /**
* AccelTreeResourceLoader does not own @p context.
*/
AccelTreeResourceLoader(const NamePool::Ptr &np,
- const NetworkAccessDelegator::Ptr &networkDelegator);
+ const NetworkAccessDelegator::Ptr &networkDelegator, AccelTreeBuilder<true>::Features = AccelTreeBuilder<true>::NoneFeature);
virtual Item openDocument(const QUrl &uri,
const ReportContext::Ptr &context);
+ virtual Item openDocument(QIODevice *source, const QUrl &documentUri,
+ const ReportContext::Ptr &context);
virtual SequenceType::Ptr announceDocument(const QUrl &uri, const Usage usageHint);
virtual bool isDocumentAvailable(const QUrl &uri);
@@ -133,7 +145,6 @@ namespace QPatternist
const ReportContext::Ptr &context,
const SourceLocationReflection *const where);
-
/**
* @short Helper function that do NetworkAccessDelegator::get(), but
* does it blocked.
@@ -149,14 +160,14 @@ namespace QPatternist
*/
static QNetworkReply *load(const QUrl &uri,
QNetworkAccessManager *const networkManager,
- const ReportContext::Ptr &context);
+ const ReportContext::Ptr &context, ErrorHandling handling = FailOnError);
/**
* @overload
*/
static QNetworkReply *load(const QUrl &uri,
const NetworkAccessDelegator::Ptr &networkDelegator,
- const ReportContext::Ptr &context);
+ const ReportContext::Ptr &context, ErrorHandling handling = FailOnError);
/**
* @short Returns the URIs this AccelTreeResourceLoader has loaded
@@ -165,14 +176,17 @@ namespace QPatternist
virtual QSet<QUrl> deviceURIs() const;
virtual void clear(const QUrl &uri);
+
private:
static bool streamToReceiver(QIODevice *const dev,
- QAbstractXmlReceiver *const receiver,
+ AccelTreeBuilder<true> *const receiver,
const NamePool::Ptr &np,
const ReportContext::Ptr &context,
const QUrl &uri);
bool retrieveDocument(const QUrl &uri,
const ReportContext::Ptr &context);
+ bool retrieveDocument(QIODevice *source, const QUrl &documentUri,
+ const ReportContext::Ptr &context);
/**
* If @p context is @c null, no error reporting should be done.
*/
@@ -185,6 +199,7 @@ namespace QPatternist
const NamePool::Ptr m_namePool;
const NetworkAccessDelegator::Ptr m_networkAccessDelegator;
QHash<QPair<QUrl, QString>, QString> m_unparsedTexts;
+ AccelTreeBuilder<true>::Features m_features;
};
}
diff --git a/src/xmlpatterns/api/api.pri b/src/xmlpatterns/api/api.pri
index a0298f2..9fcc2f5 100644
--- a/src/xmlpatterns/api/api.pri
+++ b/src/xmlpatterns/api/api.pri
@@ -3,11 +3,13 @@ HEADERS += $$PWD/qabstractxmlforwarditerator_p.h \
$$PWD/qabstracturiresolver.h \
$$PWD/qabstractxmlnodemodel.h \
$$PWD/qabstractxmlnodemodel_p.h \
+ $$PWD/qabstractxmlpullprovider_p.h \
$$PWD/qabstractxmlreceiver.h \
$$PWD/qabstractxmlreceiver_p.h \
$$PWD/qdeviceresourceloader_p.h \
$$PWD/qiodevicedelegate_p.h \
$$PWD/qnetworkaccessdelegator_p.h \
+ $$PWD/qpullbridge_p.h \
$$PWD/qresourcedelegator_p.h \
$$PWD/qsimplexmlnodemodel.h \
$$PWD/qsourcelocation.h \
@@ -20,6 +22,10 @@ HEADERS += $$PWD/qabstractxmlforwarditerator_p.h \
$$PWD/qxmlquery_p.h \
$$PWD/qxmlresultitems.h \
$$PWD/qxmlresultitems_p.h \
+ $$PWD/qxmlschema.h \
+ $$PWD/qxmlschema_p.h \
+ $$PWD/qxmlschemavalidator.h \
+ $$PWD/qxmlschemavalidator_p.h \
$$PWD/qxmlserializer.h \
$$PWD/qxmlserializer_p.h \
$$PWD/../../../tools/xmlpatterns/qcoloringmessagehandler_p.h \
@@ -29,9 +35,11 @@ SOURCES += $$PWD/qvariableloader.cpp \
$$PWD/qabstractmessagehandler.cpp \
$$PWD/qabstracturiresolver.cpp \
$$PWD/qabstractxmlnodemodel.cpp \
+ $$PWD/qabstractxmlpullprovider.cpp \
$$PWD/qabstractxmlreceiver.cpp \
$$PWD/qiodevicedelegate.cpp \
$$PWD/qnetworkaccessdelegator.cpp \
+ $$PWD/qpullbridge.cpp \
$$PWD/qresourcedelegator.cpp \
$$PWD/qsimplexmlnodemodel.cpp \
$$PWD/qsourcelocation.cpp \
@@ -41,6 +49,9 @@ SOURCES += $$PWD/qvariableloader.cpp \
$$PWD/qxmlnamepool.cpp \
$$PWD/qxmlquery.cpp \
$$PWD/qxmlresultitems.cpp \
+ $$PWD/qxmlschema.cpp \
+ $$PWD/qxmlschema_p.cpp \
+ $$PWD/qxmlschemavalidator.cpp \
$$PWD/qxmlserializer.cpp \
$$PWD/../../../tools/xmlpatterns/qcoloringmessagehandler.cpp \
$$PWD/../../../tools/xmlpatterns/qcoloroutput.cpp
diff --git a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
index fde2c17..0a2ca91 100644
--- a/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
+++ b/src/xmlpatterns/api/qabstractxmlnodemodel.cpp
@@ -1666,4 +1666,20 @@ void QAbstractXmlNodeModel::copyNodeTo(const QXmlNodeModelIndex &node,
"This function is not expected to be called.");
}
+/*!
+ Returns the source location for the object with the given \a index
+ or a default constructed QSourceLocation in case no location
+ information is available.
+
+ \since TODO
+ */
+QSourceLocation QAbstractXmlNodeModel::sourceLocation(const QXmlNodeModelIndex &index) const
+{
+ // TODO: make this method virtual in Qt5 to allow source location support in custom models
+ if (d_ptr)
+ return d_ptr->sourceLocation(index);
+ else
+ return QSourceLocation();
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qabstractxmlnodemodel.h b/src/xmlpatterns/api/qabstractxmlnodemodel.h
index 9629f27..3d44547 100644
--- a/src/xmlpatterns/api/qabstractxmlnodemodel.h
+++ b/src/xmlpatterns/api/qabstractxmlnodemodel.h
@@ -56,6 +56,7 @@ QT_MODULE(XmlPatterns)
class QAbstractXmlNodeModel;
class QAbstractXmlNodeModelPrivate;
class QAbstractXmlReceiver;
+class QSourceLocation;
class QUrl;
class QXmlName;
class QXmlNodeModelIndex;
@@ -69,6 +70,7 @@ namespace QPatternist
class DynamicContext;
class Item;
class ItemType;
+ class XsdValidatedXmlNodeModel;
template<typename TResult, typename TSource, typename TMapper, typename Context> class ItemMappingIterator;
template<typename TResult, typename TSource, typename TMapper> class SequenceMappingIterator;
typedef QExplicitlySharedDataPointer<ItemType> ItemTypePtr;
@@ -315,6 +317,8 @@ public:
QAbstractXmlReceiver *const receiver,
const NodeCopySettings &) const;
+ QSourceLocation sourceLocation(const QXmlNodeModelIndex &index) const;
+
protected:
virtual QXmlNodeModelIndex nextFromSimpleAxis(SimpleAxis axis, const QXmlNodeModelIndex &origin) const = 0;
@@ -343,6 +347,7 @@ protected:
private:
friend class QPatternist::ItemMappingIterator<QXmlNodeModelIndex, QXmlNodeModelIndex, const QAbstractXmlNodeModel *, QExplicitlySharedDataPointer<QPatternist::DynamicContext> >;
friend class QPatternist::SequenceMappingIterator<QXmlNodeModelIndex, QXmlNodeModelIndex, const QAbstractXmlNodeModel *>;
+ friend class QPatternist::XsdValidatedXmlNodeModel;
inline QExplicitlySharedDataPointer<QAbstractXmlForwardIterator<QXmlNodeModelIndex> > mapToSequence(const QXmlNodeModelIndex &ni,
const QExplicitlySharedDataPointer<QPatternist::DynamicContext> &) const;
diff --git a/src/xmlpatterns/api/qabstractxmlnodemodel_p.h b/src/xmlpatterns/api/qabstractxmlnodemodel_p.h
index 5d9e0eb..9061616 100644
--- a/src/xmlpatterns/api/qabstractxmlnodemodel_p.h
+++ b/src/xmlpatterns/api/qabstractxmlnodemodel_p.h
@@ -52,6 +52,9 @@
#ifndef QABSTRACTXMLNODEMODEL_P_H
#define QABSTRACTXMLNODEMODEL_P_H
+#include "qabstractxmlnodemodel.h"
+#include "qsourcelocation.h"
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -62,6 +65,13 @@ public:
virtual ~QAbstractXmlNodeModelPrivate()
{
}
+
+ virtual QSourceLocation sourceLocation(const QXmlNodeModelIndex &index) const
+ {
+ Q_UNUSED(index);
+
+ return QSourceLocation();
+ }
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qabstractxmlpullprovider.cpp b/src/xmlpatterns/api/qabstractxmlpullprovider.cpp
new file mode 100644
index 0000000..7a7d87d
--- /dev/null
+++ b/src/xmlpatterns/api/qabstractxmlpullprovider.cpp
@@ -0,0 +1,177 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QHash>
+
+#include "qxmlname.h"
+#include "qnamepool_p.h"
+#include "qabstractxmlpullprovider_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+// TODO have example where query selects, and the events for the result are indented
+
+/*!
+ \internal
+ \class AbstractXmlPullProvider
+ \brief The AbstractXmlPullProvider class provides a pull-based stream interface for the XPath Data Model.
+ \reentrant
+ \ingroup xml-tools
+
+ AbstractXmlPullProvider allows a stream of items from the XPath Data Model -- essentially XML --
+ to be iterated over. The subclass of AbstractXmlPullProvider provides the events, and the
+ user calling next() and so on, consumes them. AbstractXmlPullProvider can be considered
+ a forward-only, non-reversible iterator.
+
+ Note that the content the events describes, are not necessarily a well-formed XML document, but
+ rather an instance of the XPath Data model, to be specific. For instance, maybe a pull provider
+ returns two atomic values, followed by an element tree, and at the end two document nodes.
+
+ If you are subclassing AbstractXmlPullProvider, be careful to correctly implement
+ the behaviors, as described for the individual members and events.
+
+ \sa AbstractXmlPullProvider::Event
+ */
+
+/*!
+ \enum AbstractXmlPullProvider::Event
+ \value StartOfInput The value AbstractXmlPullProvider::current() returns before the first call to next().
+ \value AtomicValue an atomic value such as an \c xs:integer, \c xs:hexBinary, or \c xs:dateTime. Atomic values
+ can only be top level items.
+ \value StartDocument Signals the start of a document node. Note that a AbstractXmlPullProvider can provide
+ a sequence of document nodes.
+ \value EndDocument Signals the end of a document node. StartDocument and EndDocument are always balanced
+ and always top-level events. For instance, StartDocument can never appear after any StartElement
+ events that hasn't been balanced by the corresponding amount of EndElement events.
+ \value StartElement Signals an element start tag.
+ \value EndElement Signals the end of an element. StartElement and EndElement events are always balanced.
+ \value Text Signals a text node. Adjacent text nodes cannot occur.
+ \value ProcessingInstruction A processing instruction. Its name is returned from name(), and its value in stringValue().
+ \value Comment a comment node. Its value can be retrieved with stingValue().
+ \value Attribute Signals an attribute node. Attribute events can only appear after Namespace events, or
+ if no such are sent, after the StartElement. In addition they must appear sequentially,
+ and each name must be unique. The ordering of attribute events is undefined and insignificant.
+ \value Namespace Signals a namespace binding. They occur very infrequently and are not needed for attributes
+ and elements. Namespace events can only appear after the StartElement event. The
+ ordering of namespace events is undefined and insignificant.
+ \value EndOfInput When next() is called after the last event, EndOfInput is returned.
+
+ \sa AbstractXmlPullProvider::current()
+ */
+
+/*!
+ Constucts a AbstractXmlPullProvider instance.
+ */
+AbstractXmlPullProvider::AbstractXmlPullProvider()
+{
+}
+
+/*!
+ Destructs this AbstractXmlPullProvider.
+ */
+AbstractXmlPullProvider::~AbstractXmlPullProvider()
+{
+}
+
+/*!
+ \fn Event AbstractXmlPullProvider::next() = 0;
+ Advances this AbstractXmlPullProvider, and returns the new event.
+
+ \sa current()
+ */
+
+/*!
+ \fn Event AbstractXmlPullProvider::current() const = 0;
+ Returns the event that next() returned the last time it was called. It doesn't
+ alter this AbstractXmlPullProvider.
+
+ current() may not modify this AbstractXmlPullProvider's state. Subsequent calls to current()
+ must return the same value.
+
+ \sa AbstractXmlPullProvider::Event
+ */
+
+/*!
+ \fn QName AbstractXmlPullProvider::name() const = 0;
+ If the current event is StartElement,
+ EndElement, ProcessingInstruction, Attribute, or Namespace, the node's name is returned.
+
+ If the current event is ProcessingInstruction,
+ the processing instruction target is in in the local name.
+
+ If the current event is Namespace, the name's namespace URI is the namespace, and
+ the local name is the prefix the name is binding to.
+
+ In all other cases, an invalid QName is returned.
+ */
+
+/*!
+ \fn QVariant AbstractXmlPullProvider::atomicValue() const = 0;
+
+ If current() event is AtomicValue, the atomic value is returned as a QVariant.
+ In all other cases, this function returns a null QVariant.
+ */
+
+/*!
+ \fn QString AbstractXmlPullProvider::stringValue() const = 0;
+
+ If current() is Text, the text node's value is returned.
+
+ If the current() event is Comment, its value is returned. The subclasser guarantees
+ it does not contain the string "-->".
+
+ If the current() event is ProcessingInstruction, its data is returned. The subclasser
+ guarantees the data does not contain the string "?>".
+
+ In other cases, it returns a default constructed string.
+ */
+
+/*!
+ \fn QHash<QXmlName, QString> AbstractXmlPullProvider::attributes() = 0;
+
+ If the current() is Element, the attributes of the element are returned,
+ an empty list of attributes otherwise.
+ */
+
+QT_END_NAMESPACE
+
diff --git a/src/xmlpatterns/api/qabstractxmlpullprovider_p.h b/src/xmlpatterns/api/qabstractxmlpullprovider_p.h
new file mode 100644
index 0000000..99fb280
--- /dev/null
+++ b/src/xmlpatterns/api/qabstractxmlpullprovider_p.h
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef QABSTRACTXMLPULLPROVIDER_H
+#define QABSTRACTXMLPULLPROVIDER_H
+
+#include <QtCore/QtGlobal>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlItem;
+class QXmlName;
+class QString;
+class QVariant;
+template<typename Key, typename Value> class QHash;
+
+namespace QPatternist
+{
+ class AbstractXmlPullProviderPrivate;
+
+ class AbstractXmlPullProvider
+ {
+ public:
+ AbstractXmlPullProvider();
+ virtual ~AbstractXmlPullProvider();
+
+ enum Event
+ {
+ StartOfInput = 1,
+ AtomicValue = 1 << 1,
+ StartDocument = 1 << 2,
+ EndDocument = 1 << 3,
+ StartElement = 1 << 4,
+ EndElement = 1 << 5,
+ Text = 1 << 6,
+ ProcessingInstruction = 1 << 7,
+ Comment = 1 << 8,
+ Attribute = 1 << 9,
+ Namespace = 1 << 10,
+ EndOfInput = 1 << 11
+ };
+
+ virtual Event next() = 0;
+ virtual Event current() const = 0;
+ virtual QXmlName name() const = 0;
+ virtual QVariant atomicValue() const = 0;
+ virtual QString stringValue() const = 0;
+
+ virtual QHash<QXmlName, QString> attributes() = 0;
+ virtual QHash<QXmlName, QXmlItem> attributeItems() = 0;
+
+ /* *** The functions below are internal. */
+ private:
+ Q_DISABLE_COPY(AbstractXmlPullProvider)
+ AbstractXmlPullProviderPrivate *d;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/api/qpullbridge.cpp b/src/xmlpatterns/api/qpullbridge.cpp
new file mode 100644
index 0000000..1456b32
--- /dev/null
+++ b/src/xmlpatterns/api/qpullbridge.cpp
@@ -0,0 +1,232 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QVariant>
+
+#include "qabstractxmlnodemodel_p.h"
+#include "qitemmappingiterator_p.h"
+#include "qitem_p.h"
+#include "qxmlname.h"
+#include "qxmlquery_p.h"
+
+#include "qpullbridge_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/*!
+ \brief Bridges a QPatternist::SequenceIterator to QAbstractXmlPullProvider.
+ \class QPatternist::PullBridge
+ \internal
+ \reentrant
+ \ingroup xml-tools
+
+ The approach of this class is rather straight forward since QPatternist::SequenceIterator
+ and QAbstractXmlPullProvider are conceptually similar. While QPatternist::SequenceIterator only
+ delivers top level items(since it's not an event stream, it's a list of items), PullBridge
+ needs to recursively iterate the children of nodes too, which is achieved through the
+ stack m_iterators.
+ */
+
+AbstractXmlPullProvider::Event PullBridge::next()
+{
+ m_index = m_iterators.top().second->next();
+
+ if(!m_index.isNull())
+ {
+ Item item(m_index);
+
+ if(item && item.isAtomicValue())
+ m_current = AtomicValue;
+ else
+ {
+ Q_ASSERT(item.isNode());
+
+ switch(m_index.kind())
+ {
+ case QXmlNodeModelIndex::Attribute:
+ {
+ m_current = Attribute;
+ break;
+ }
+ case QXmlNodeModelIndex::Comment:
+ {
+ m_current = Comment;
+ break;
+ }
+ case QXmlNodeModelIndex::Element:
+ {
+ m_iterators.push(qMakePair(StartElement, m_index.iterate(QXmlNodeModelIndex::AxisChild)));
+ m_current = StartElement;
+ break;
+ }
+ case QXmlNodeModelIndex::Document:
+ {
+ m_iterators.push(qMakePair(StartDocument, m_index.iterate(QXmlNodeModelIndex::AxisChild)));
+ m_current = StartDocument;
+ break;
+ }
+ case QXmlNodeModelIndex::Namespace:
+ {
+ m_current = Namespace;
+ break;
+ }
+ case QXmlNodeModelIndex::ProcessingInstruction:
+ {
+ m_current = ProcessingInstruction;
+ break;
+ }
+ case QXmlNodeModelIndex::Text:
+ {
+ m_current = Text;
+ break;
+ }
+ }
+ }
+ }
+ else
+ {
+ if(m_iterators.isEmpty())
+ m_current = EndOfInput;
+ else
+ {
+ switch(m_iterators.top().first)
+ {
+ case StartOfInput:
+ {
+ m_current = EndOfInput;
+ break;
+ }
+ case StartElement:
+ {
+ m_current = EndElement;
+ m_iterators.pop();
+ break;
+ }
+ case StartDocument:
+ {
+ m_current = EndDocument;
+ m_iterators.pop();
+ break;
+ }
+ default:
+ {
+ Q_ASSERT_X(false, Q_FUNC_INFO,
+ "Invalid value.");
+ m_current = EndOfInput;
+ }
+ }
+ }
+
+ }
+
+ return m_current;
+}
+
+AbstractXmlPullProvider::Event PullBridge::current() const
+{
+ return m_current;
+}
+
+QXmlNodeModelIndex PullBridge::index() const
+{
+ return m_index;
+}
+
+QSourceLocation PullBridge::sourceLocation() const
+{
+ return m_index.model()->sourceLocation(m_index);
+}
+
+QXmlName PullBridge::name() const
+{
+ return m_index.name();
+}
+
+QVariant PullBridge::atomicValue() const
+{
+ return QVariant();
+}
+
+QString PullBridge::stringValue() const
+{
+ return QString();
+}
+
+QHash<QXmlName, QString> PullBridge::attributes()
+{
+ Q_ASSERT(m_current == StartElement);
+
+ QHash<QXmlName, QString> attributes;
+
+ QXmlNodeModelIndex::Iterator::Ptr it = m_index.iterate(QXmlNodeModelIndex::AxisAttribute);
+ QXmlNodeModelIndex index = it->next();
+ while (!index.isNull()) {
+ const Item attribute(index);
+ attributes.insert(index.name(), index.stringValue());
+
+ index = it->next();
+ }
+
+ return attributes;
+}
+
+QHash<QXmlName, QXmlItem> PullBridge::attributeItems()
+{
+ Q_ASSERT(m_current == StartElement);
+
+ QHash<QXmlName, QXmlItem> attributes;
+
+ QXmlNodeModelIndex::Iterator::Ptr it = m_index.iterate(QXmlNodeModelIndex::AxisAttribute);
+ QXmlNodeModelIndex index = it->next();
+ while (!index.isNull()) {
+ const Item attribute(index);
+ attributes.insert(index.name(), QXmlItem(index));
+
+ index = it->next();
+ }
+
+ return attributes;
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/xmlpatterns/api/qpullbridge_p.h b/src/xmlpatterns/api/qpullbridge_p.h
new file mode 100644
index 0000000..14aa29a
--- /dev/null
+++ b/src/xmlpatterns/api/qpullbridge_p.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef PATTERNIST_PULLBRIDGE_P_H
+#define PATTERNIST_PULLBRIDGE_P_H
+
+#include <QtCore/QPair>
+#include <QtCore/QStack>
+
+#include "qabstractxmlforwarditerator_p.h"
+#include "qabstractxmlpullprovider_p.h"
+#include "qitem_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ class PullBridge : public AbstractXmlPullProvider
+ {
+ public:
+ inline PullBridge(const QXmlNodeModelIndex::Iterator::Ptr &it) : m_current(StartOfInput)
+ {
+ Q_ASSERT(it);
+ m_iterators.push(qMakePair(StartOfInput, it));
+ }
+
+ virtual Event next();
+ virtual Event current() const;
+ virtual QXmlName name() const;
+ /**
+ * Returns always an empty QVariant.
+ */
+ virtual QVariant atomicValue() const;
+ virtual QString stringValue() const;
+ virtual QHash<QXmlName, QString> attributes();
+ virtual QHash<QXmlName, QXmlItem> attributeItems();
+
+ QXmlNodeModelIndex index() const;
+ QSourceLocation sourceLocation() const;
+
+ private:
+ typedef QStack<QPair<Event, QXmlNodeModelIndex::Iterator::Ptr> > IteratorStack;
+ IteratorStack m_iterators;
+ QXmlNodeModelIndex m_index;
+ Event m_current;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/api/qresourcedelegator.cpp b/src/xmlpatterns/api/qresourcedelegator.cpp
index 5a5bcf4..ad93848 100644
--- a/src/xmlpatterns/api/qresourcedelegator.cpp
+++ b/src/xmlpatterns/api/qresourcedelegator.cpp
@@ -45,14 +45,6 @@ QT_BEGIN_NAMESPACE
using namespace QPatternist;
-/**
- * Duplicated in qacceltreeresourceloader.cpp.
- */
-static inline uint qHash(const QUrl &uri)
-{
- return qHash(uri.toString());
-}
-
bool ResourceDelegator::isUnparsedTextAvailable(const QUrl &uri,
const QString &encoding)
{
diff --git a/src/xmlpatterns/api/qxmlnamepool.cpp b/src/xmlpatterns/api/qxmlnamepool.cpp
index 5b03975..66eb788 100644
--- a/src/xmlpatterns/api/qxmlnamepool.cpp
+++ b/src/xmlpatterns/api/qxmlnamepool.cpp
@@ -96,6 +96,10 @@ QXmlNamePool::~QXmlNamePool()
{
}
+QXmlNamePool::QXmlNamePool(QPatternist::NamePool *namePool) : d(QExplicitlySharedDataPointer<QPatternist::NamePool>(namePool))
+{
+}
+
/*!
Assigns the \a other name pool to this one.
*/
diff --git a/src/xmlpatterns/api/qxmlnamepool.h b/src/xmlpatterns/api/qxmlnamepool.h
index 68cf627..6c1fe4f 100644
--- a/src/xmlpatterns/api/qxmlnamepool.h
+++ b/src/xmlpatterns/api/qxmlnamepool.h
@@ -54,6 +54,8 @@ QT_MODULE(XmlPatterns)
namespace QPatternist
{
class NamePool;
+ class XsdSchemaParser;
+ class XsdValidatingInstanceReader;
}
namespace QPatternistSDK
@@ -73,10 +75,15 @@ public:
QXmlNamePool &operator=(const QXmlNamePool &other);
private:
+ QXmlNamePool(QPatternist::NamePool *namePool);
friend class QXmlQueryPrivate;
friend class QXmlQuery;
+ friend class QXmlSchemaPrivate;
+ friend class QXmlSchemaValidatorPrivate;
friend class QXmlSerializerPrivate;
friend class QXmlName;
+ friend class QPatternist::XsdSchemaParser;
+ friend class QPatternist::XsdValidatingInstanceReader;
friend class QPatternistSDK::Global;
QExplicitlySharedDataPointer<QPatternist::NamePool> d;
};
diff --git a/src/xmlpatterns/api/qxmlquery.cpp b/src/xmlpatterns/api/qxmlquery.cpp
index 3d023a0..79ae7a9 100644
--- a/src/xmlpatterns/api/qxmlquery.cpp
+++ b/src/xmlpatterns/api/qxmlquery.cpp
@@ -231,6 +231,18 @@ QT_BEGIN_NAMESPACE
\value XQuery10 XQuery 1.0.
\value XSLT20 XSLT 2.0
+ \omitvalue XmlSchema11IdentityConstraintSelector The selector, the restricted
+ XPath pattern found in W3C XML Schema 1.1 for uniqueness
+ contraints. Apart from restricting the syntax, the type check stage
+ for the expression assumes a sequence of nodes to be the focus.
+ \omitvalue XmlSchema11IdentityConstraintField The field, the restricted
+ XPath pattern found in W3C XML Schema 1.1 for uniqueness
+ contraints. Apart from restricting the syntax, the type check stage
+ for the expression assumes a sequence of nodes to be the focus.
+ \omitvalue XPath20 Signifies XPath 2.0. Has no effect in the public API, it's
+ used internally. As With XmlSchema11IdentityConstraintSelector and
+ XmlSchema11IdentityConstraintField, the type check stage
+ for the expression assumes a sequence of nodes to be the focus.
\sa setQuery()
*/
@@ -415,7 +427,7 @@ void QXmlQuery::setQuery(QIODevice *sourceCode, const QUrl &documentURI)
return;
}
- d->queryURI = QXmlQueryPrivate::normalizeQueryURI(documentURI);
+ d->queryURI = QPatternist::XPathHelper::normalizeQueryURI(documentURI);
d->expression(sourceCode);
}
@@ -463,12 +475,12 @@ void QXmlQuery::setQuery(const QUrl &queryURI, const QUrl &baseURI)
{
Q_ASSERT_X(queryURI.isValid(), Q_FUNC_INFO, "The passed URI must be valid.");
- const QUrl canonicalURI(QXmlQueryPrivate::normalizeQueryURI(queryURI));
+ const QUrl canonicalURI(QPatternist::XPathHelper::normalizeQueryURI(queryURI));
Q_ASSERT(canonicalURI.isValid());
Q_ASSERT(!canonicalURI.isRelative());
Q_ASSERT(baseURI.isValid() || baseURI.isEmpty());
- d->queryURI = QXmlQueryPrivate::normalizeQueryURI(baseURI.isEmpty() ? queryURI : baseURI);
+ d->queryURI = QPatternist::XPathHelper::normalizeQueryURI(baseURI.isEmpty() ? queryURI : baseURI);
QPatternist::AutoPtr<QIODevice> result;
diff --git a/src/xmlpatterns/api/qxmlquery.h b/src/xmlpatterns/api/qxmlquery.h
index 4ddfc76..b4ac121 100644
--- a/src/xmlpatterns/api/qxmlquery.h
+++ b/src/xmlpatterns/api/qxmlquery.h
@@ -71,6 +71,8 @@ namespace QPatternistSDK
namespace QPatternist
{
+ class XsdSchemaParser;
+ class XsdValidatingInstanceReader;
class VariableLoader;
};
@@ -79,8 +81,11 @@ class Q_XMLPATTERNS_EXPORT QXmlQuery
public:
enum QueryLanguage
{
- XQuery10 = 1,
- XSLT20 = 2
+ XQuery10 = 1,
+ XSLT20 = 2,
+ XmlSchema11IdentityConstraintSelector = 1024,
+ XmlSchema11IdentityConstraintField = 2048,
+ XPath20 = 4096
};
QXmlQuery();
@@ -136,6 +141,8 @@ private:
friend class QXmlName;
friend class QXmlSerializer;
friend class QPatternistSDK::TestCase;
+ friend class QPatternist::XsdSchemaParser;
+ friend class QPatternist::XsdValidatingInstanceReader;
friend class QPatternist::VariableLoader;
template<typename TInputType> friend bool setFocusHelper(QXmlQuery *const queryInstance,
const TInputType &focusValue);
diff --git a/src/xmlpatterns/api/qxmlquery_p.h b/src/xmlpatterns/api/qxmlquery_p.h
index 05222be..cb2bbad 100644
--- a/src/xmlpatterns/api/qxmlquery_p.h
+++ b/src/xmlpatterns/api/qxmlquery_p.h
@@ -142,13 +142,10 @@ public:
if(!m_functionFactory)
{
- if(queryLanguage == QXmlQuery::XQuery10)
- m_functionFactory = QPatternist::FunctionFactoryCollection::xpath20Factory(namePool.d);
- else
- {
- Q_ASSERT(queryLanguage == QXmlQuery::XSLT20);
+ if(queryLanguage == QXmlQuery::XSLT20)
m_functionFactory = QPatternist::FunctionFactoryCollection::xslt20Factory(namePool.d);
- }
+ else
+ m_functionFactory = QPatternist::FunctionFactoryCollection::xpath20Factory(namePool.d);
}
const QPatternist::GenericStaticContext::Ptr genericStaticContext(new QPatternist::GenericStaticContext(namePool.d,
@@ -164,6 +161,14 @@ public:
if(!contextItem.isNull())
m_staticContext = QPatternist::StaticContext::Ptr(new QPatternist::StaticFocusContext(QPatternist::AtomicValue::qtToXDMType(contextItem), m_staticContext));
+ else if( queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintField
+ || queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintSelector
+ || queryLanguage == QXmlQuery::XPath20)
+ m_staticContext = QPatternist::StaticContext::Ptr(new QPatternist::StaticFocusContext(QPatternist::BuiltinTypes::node, m_staticContext));
+
+ for (int i = 0; i < m_additionalNamespaceBindings.count(); ++i) {
+ m_staticContext->namespaceBindings()->addBinding(m_additionalNamespaceBindings.at(i));
+ }
return m_staticContext;
}
@@ -207,19 +212,6 @@ public:
return m_resourceLoader;
}
-
- static inline QUrl normalizeQueryURI(const QUrl &uri)
- {
- Q_ASSERT_X(uri.isEmpty() || uri.isValid(), Q_FUNC_INFO,
- "The URI passed to QXmlQuery::setQuery() must be valid or empty.");
- if(uri.isEmpty())
- return QUrl::fromLocalFile(QCoreApplication::applicationFilePath());
- else if(uri.isRelative())
- return QUrl::fromLocalFile(QCoreApplication::applicationFilePath()).resolved(uri);
- else
- return uri;
- }
-
void setRequiredType(const QPatternist::SequenceType::Ptr &seqType)
{
Q_ASSERT(seqType);
@@ -278,6 +270,11 @@ public:
return m_expr;
}
+ inline void addAdditionalNamespaceBinding(const QXmlName &binding)
+ {
+ m_additionalNamespaceBindings.append(binding);
+ }
+
QXmlNamePool namePool;
QPointer<QAbstractMessageHandler> messageHandler;
/**
@@ -321,6 +318,8 @@ public:
QPatternist::SequenceType::Ptr m_requiredType;
QPatternist::FunctionFactory::Ptr m_functionFactory;
QPatternist::NetworkAccessDelegator::Ptr m_networkAccessDelegator;
+
+ QList<QXmlName> m_additionalNamespaceBindings;
};
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/api/qxmlschema.cpp b/src/xmlpatterns/api/qxmlschema.cpp
new file mode 100644
index 0000000..c6dc9b2
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschema.cpp
@@ -0,0 +1,295 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxmlschema.h"
+#include "qxmlschema_p.h"
+
+#include <QtCore/QIODevice>
+#include <QtCore/QUrl>
+
+/*!
+ \class QXmlSchema
+
+ \brief The QXmlSchema class provides loading and validation of a W3C XML Schema.
+
+ \reentrant
+ \since 4.6
+ \ingroup xml-tools
+
+ The QXmlSchema class loads, compiles and validates W3C XML Schema files
+ that can be used further for validation of XML instance documents via
+ \l{QXmlSchemaValidator}.
+
+ The following example shows how to load a XML Schema file from the network
+ and test whether it is a valid schema document:
+
+ \snippet doc/src/snippets/qxmlschema/main.cpp 0
+
+ \sa QXmlSchemaValidator, {xmlpatterns/schema}{XML Schema Validation Example}
+*/
+
+/*!
+ Constructs an invalid, empty schema that cannot be used until
+ load() is called.
+ */
+QXmlSchema::QXmlSchema()
+ : d(new QXmlSchemaPrivate(QXmlNamePool()))
+{
+}
+
+/*!
+ Constructs a QXmlSchema that is a copy of \a other. The new
+ instance will share resources with the existing schema
+ to the extent possible.
+ */
+QXmlSchema::QXmlSchema(const QXmlSchema &other)
+ : d(other.d)
+{
+}
+
+/*!
+ Destroys this QXmlSchema.
+ */
+QXmlSchema::~QXmlSchema()
+{
+}
+
+/*!
+ Sets this QXmlSchema to a schema loaded from the \a source
+ URI.
+
+ If the schema \l {isValid()} {is invalid}, \c{false} is returned
+ and the behavior is undefined.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschema/main.cpp 0
+
+ \sa isValid()
+ */
+bool QXmlSchema::load(const QUrl &source)
+{
+ d->load(source, QString());
+ return d->isValid();
+}
+
+/*!
+ Sets this QXmlSchema to a schema read from the \a source
+ device. The device must have been opened with at least
+ QIODevice::ReadOnly.
+
+ \a documentUri represents the schema obtained from the \a source
+ device. It is the base URI of the schema, that is used
+ internally to resolve relative URIs that appear in the schema, and
+ for message reporting.
+
+ If \a source is \c null or not readable, or if \a documentUri is not
+ a valid URI, behavior is undefined.
+
+ If the schema \l {isValid()} {is invalid}, \c{false} is returned
+ and the behavior is undefined.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschema/main.cpp 1
+
+ \sa isValid()
+ */
+bool QXmlSchema::load(QIODevice *source, const QUrl &documentUri)
+{
+ d->load(source, documentUri, QString());
+ return d->isValid();
+}
+
+/*!
+ Sets this QXmlSchema to a schema read from the \a data
+
+ \a documentUri represents the schema obtained from the \a data.
+ It is the base URI of the schema, that is used internally to
+ resolve relative URIs that appear in the schema, and
+ for message reporting.
+
+ If \a documentUri is not a valid URI, behavior is undefined.
+ \sa isValid()
+
+ If the schema \l {isValid()} {is invalid}, \c{false} is returned
+ and the behavior is undefined.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschema/main.cpp 2
+
+ \sa isValid()
+ */
+bool QXmlSchema::load(const QByteArray &data, const QUrl &documentUri)
+{
+ d->load(data, documentUri, QString());
+ return d->isValid();
+}
+
+/*!
+ Returns true if this schema is valid. Examples of invalid schemas
+ are ones that contain syntax errors or that do not conform the
+ W3C XML Schema specification.
+ */
+bool QXmlSchema::isValid() const
+{
+ return d->isValid();
+}
+
+/*!
+ Returns the name pool used by this QXmlSchema for constructing \l
+ {QXmlName} {names}. There is no setter for the name pool, because
+ mixing name pools causes errors due to name confusion.
+ */
+QXmlNamePool QXmlSchema::namePool() const
+{
+ return d->namePool();
+}
+
+/*!
+ Returns the document URI of the schema or an empty URI if no
+ schema has been set.
+ */
+QUrl QXmlSchema::documentUri() const
+{
+ return d->documentUri();
+}
+
+/*!
+ Changes the \l {QAbstractMessageHandler}{message handler} for this
+ QXmlSchema to \a handler. The schema sends all compile and
+ validation messages to this message handler. QXmlSchema does not take
+ ownership of \a handler.
+
+ Normally, the default message handler is sufficient. It writes
+ compile and validation messages to \e stderr. The default message
+ handler includes color codes if \e stderr can render colors.
+
+ When QXmlSchema calls QAbstractMessageHandler::message(),
+ the arguments are as follows:
+
+ \table
+ \header
+ \o message() argument
+ \o Semantics
+ \row
+ \o QtMsgType type
+ \o Only QtWarningMsg and QtFatalMsg are used. The former
+ identifies a warning, while the latter identifies an error.
+ \row
+ \o const QString & description
+ \o An XHTML document which is the actual message. It is translated
+ into the current language.
+ \row
+ \o const QUrl &identifier
+ \o Identifies the error with a URI, where the fragment is
+ the error code, and the rest of the URI is the error namespace.
+ \row
+ \o const QSourceLocation & sourceLocation
+ \o Identifies where the error occurred.
+ \endtable
+
+ */
+void QXmlSchema::setMessageHandler(QAbstractMessageHandler *handler)
+{
+ d->setMessageHandler(handler);
+}
+
+/*!
+ Returns the message handler that handles compile and validation
+ messages for this QXmlSchema.
+ */
+QAbstractMessageHandler *QXmlSchema::messageHandler() const
+{
+ return d->messageHandler();
+}
+
+/*!
+ Sets the URI resolver to \a resolver. QXmlSchema does not take
+ ownership of \a resolver.
+
+ \sa uriResolver()
+ */
+void QXmlSchema::setUriResolver(const QAbstractUriResolver *resolver)
+{
+ d->setUriResolver(resolver);
+}
+
+/*!
+ Returns the schema's URI resolver. If no URI resolver has been set,
+ QtXmlPatterns will use the URIs in schemas as they are.
+
+ The URI resolver provides a level of abstraction, or \e{polymorphic
+ URIs}. A resolver can rewrite \e{logical} URIs to physical ones, or
+ it can translate obsolete or invalid URIs to valid ones.
+
+ When QtXmlPatterns calls QAbstractUriResolver::resolve() the
+ absolute URI is the URI mandated by the schema specification, and the
+ relative URI is the URI specified by the user.
+
+ \sa setUriResolver()
+ */
+const QAbstractUriResolver *QXmlSchema::uriResolver() const
+{
+ return d->uriResolver();
+}
+
+/*!
+ Sets the network manager to \a manager.
+ QXmlSchema does not take ownership of \a manager.
+
+ \sa networkAccessManager()
+ */
+void QXmlSchema::setNetworkAccessManager(QNetworkAccessManager *manager)
+{
+ d->setNetworkAccessManager(manager);
+}
+
+/*!
+ Returns the network manager, or 0 if it has not been set.
+
+ \sa setNetworkAccessManager()
+ */
+QNetworkAccessManager *QXmlSchema::networkAccessManager() const
+{
+ return d->networkAccessManager();
+}
diff --git a/src/xmlpatterns/api/qxmlschema.h b/src/xmlpatterns/api/qxmlschema.h
new file mode 100644
index 0000000..d057b2c
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschema.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXMLSCHEMA_H
+#define QXMLSCHEMA_H
+
+#include <QtCore/QSharedDataPointer>
+#include <QtCore/QUrl>
+#include <QtXmlPatterns/QXmlNamePool>
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(XmlPatterns)
+
+class QAbstractMessageHandler;
+class QAbstractUriResolver;
+class QIODevice;
+class QNetworkAccessManager;
+class QUrl;
+class QXmlNamePool;
+class QXmlSchemaPrivate;
+
+class Q_XMLPATTERNS_EXPORT QXmlSchema
+{
+ friend class QXmlSchemaValidatorPrivate;
+
+ public:
+ QXmlSchema();
+ QXmlSchema(const QXmlSchema &other);
+ ~QXmlSchema();
+
+ bool load(const QUrl &source);
+ bool load(QIODevice *source, const QUrl &documentUri = QUrl());
+ bool load(const QByteArray &data, const QUrl &documentUri = QUrl());
+
+ bool isValid() const;
+
+ QXmlNamePool namePool() const;
+ QUrl documentUri() const;
+
+ void setMessageHandler(QAbstractMessageHandler *handler);
+ QAbstractMessageHandler *messageHandler() const;
+
+ void setUriResolver(const QAbstractUriResolver *resolver);
+ const QAbstractUriResolver *uriResolver() const;
+
+ void setNetworkAccessManager(QNetworkAccessManager *networkmanager);
+ QNetworkAccessManager *networkAccessManager() const;
+
+ private:
+ QSharedDataPointer<QXmlSchemaPrivate> d;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/api/qxmlschema_p.cpp b/src/xmlpatterns/api/qxmlschema_p.cpp
new file mode 100644
index 0000000..7b96f82
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschema_p.cpp
@@ -0,0 +1,199 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qacceltreeresourceloader_p.h"
+#include "qxmlschema.h"
+#include "qxmlschema_p.h"
+
+#include <QtCore/QBuffer>
+#include <QtCore/QIODevice>
+#include <QtCore/QUrl>
+
+QXmlSchemaPrivate::QXmlSchemaPrivate(const QXmlNamePool &namePool)
+ : m_namePool(namePool)
+ , m_userMessageHandler(0)
+ , m_uriResolver(0)
+ , m_userNetworkAccessManager(0)
+ , m_schemaContext(new QPatternist::XsdSchemaContext(m_namePool.d))
+ , m_schemaParserContext(new QPatternist::XsdSchemaParserContext(m_namePool.d, m_schemaContext))
+ , m_schemaIsValid(false)
+{
+ m_networkAccessManager = new QPatternist::ReferenceCountedValue<QNetworkAccessManager>(new QNetworkAccessManager());
+ m_messageHandler = new QPatternist::ReferenceCountedValue<QAbstractMessageHandler>(new QPatternist::ColoringMessageHandler());
+}
+
+QXmlSchemaPrivate::QXmlSchemaPrivate(const QPatternist::XsdSchemaContext::Ptr &schemaContext)
+ : m_namePool(QXmlNamePool(schemaContext->namePool().data()))
+ , m_userMessageHandler(0)
+ , m_uriResolver(0)
+ , m_userNetworkAccessManager(0)
+ , m_schemaContext(schemaContext)
+ , m_schemaParserContext(new QPatternist::XsdSchemaParserContext(m_namePool.d, m_schemaContext))
+ , m_schemaIsValid(false)
+{
+ m_networkAccessManager = new QPatternist::ReferenceCountedValue<QNetworkAccessManager>(new QNetworkAccessManager());
+ m_messageHandler = new QPatternist::ReferenceCountedValue<QAbstractMessageHandler>(new QPatternist::ColoringMessageHandler());
+}
+
+QXmlSchemaPrivate::QXmlSchemaPrivate(const QXmlSchemaPrivate &other)
+ : QSharedData(other)
+{
+ m_namePool = other.m_namePool;
+ m_userMessageHandler = other.m_userMessageHandler;
+ m_uriResolver = other.m_uriResolver;
+ m_userNetworkAccessManager = other.m_userNetworkAccessManager;
+ m_messageHandler = other.m_messageHandler;
+ m_networkAccessManager = other.m_networkAccessManager;
+
+ m_schemaContext = other.m_schemaContext;
+ m_schemaParserContext = other.m_schemaParserContext;
+ m_schemaIsValid = other.m_schemaIsValid;
+ m_documentUri = other.m_documentUri;
+}
+
+void QXmlSchemaPrivate::load(const QUrl &source, const QString &targetNamespace)
+{
+ m_documentUri = QPatternist::XPathHelper::normalizeQueryURI(source);
+
+ m_schemaContext->setMessageHandler(messageHandler());
+ m_schemaContext->setUriResolver(uriResolver());
+ m_schemaContext->setNetworkAccessManager(networkAccessManager());
+
+ const QPatternist::AutoPtr<QNetworkReply> reply(QPatternist::AccelTreeResourceLoader::load(source, m_schemaContext->networkAccessManager(),
+ m_schemaContext, QPatternist::AccelTreeResourceLoader::ContinueOnError));
+ if (reply)
+ load(reply.data(), source, targetNamespace);
+}
+
+void QXmlSchemaPrivate::load(const QByteArray &data, const QUrl &documentUri, const QString &targetNamespace)
+{
+ QByteArray localData(data);
+
+ QBuffer buffer(&localData);
+ buffer.open(QIODevice::ReadOnly);
+
+ load(&buffer, documentUri, targetNamespace);
+}
+
+void QXmlSchemaPrivate::load(QIODevice *source, const QUrl &documentUri, const QString &targetNamespace)
+{
+ m_schemaParserContext = QPatternist::XsdSchemaParserContext::Ptr(new QPatternist::XsdSchemaParserContext(m_namePool.d, m_schemaContext));
+ m_schemaIsValid = false;
+
+ if (!source) {
+ qWarning("A null QIODevice pointer cannot be passed.");
+ return;
+ }
+
+ if (!source->isReadable()) {
+ qWarning("The device must be readable.");
+ return;
+ }
+
+ m_documentUri = QPatternist::XPathHelper::normalizeQueryURI(documentUri);
+ m_schemaContext->setMessageHandler(messageHandler());
+ m_schemaContext->setUriResolver(uriResolver());
+ m_schemaContext->setNetworkAccessManager(networkAccessManager());
+
+ QPatternist::XsdSchemaParser parser(m_schemaContext, m_schemaParserContext, source);
+ parser.setDocumentURI(documentUri);
+ parser.setTargetNamespace(targetNamespace);
+
+ try {
+ parser.parse();
+ m_schemaParserContext->resolver()->resolve();
+
+ m_schemaIsValid = true;
+ } catch (QPatternist::Exception exception) {
+ m_schemaIsValid = false;
+ }
+}
+
+bool QXmlSchemaPrivate::isValid() const
+{
+ return m_schemaIsValid;
+}
+
+QXmlNamePool QXmlSchemaPrivate::namePool() const
+{
+ return m_namePool;
+}
+
+QUrl QXmlSchemaPrivate::documentUri() const
+{
+ return m_documentUri;
+}
+
+void QXmlSchemaPrivate::setMessageHandler(QAbstractMessageHandler *handler)
+{
+ m_userMessageHandler = handler;
+}
+
+QAbstractMessageHandler *QXmlSchemaPrivate::messageHandler() const
+{
+ if (m_userMessageHandler)
+ return m_userMessageHandler;
+
+ return m_messageHandler.data()->value;
+}
+
+void QXmlSchemaPrivate::setUriResolver(const QAbstractUriResolver *resolver)
+{
+ m_uriResolver = resolver;
+}
+
+const QAbstractUriResolver *QXmlSchemaPrivate::uriResolver() const
+{
+ return m_uriResolver;
+}
+
+void QXmlSchemaPrivate::setNetworkAccessManager(QNetworkAccessManager *networkmanager)
+{
+ m_userNetworkAccessManager = networkmanager;
+}
+
+QNetworkAccessManager *QXmlSchemaPrivate::networkAccessManager() const
+{
+ if (m_userNetworkAccessManager)
+ return m_userNetworkAccessManager;
+
+ return m_networkAccessManager.data()->value;
+}
diff --git a/src/xmlpatterns/api/qxmlschema_p.h b/src/xmlpatterns/api/qxmlschema_p.h
new file mode 100644
index 0000000..b54d88f
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschema_p.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef QXMLSCHEMA_P_H
+#define QXMLSCHEMA_P_H
+
+#include "qabstractmessagehandler.h"
+#include "qabstracturiresolver.h"
+#include "qautoptr_p.h"
+#include "qcoloringmessagehandler_p.h"
+#include "qreferencecountedvalue_p.h"
+
+#include "qxsdschemacontext_p.h"
+#include "qxsdschemaparser_p.h"
+#include "qxsdschemaparsercontext_p.h"
+
+#include <QtCore/QSharedData>
+#include <QtNetwork/QNetworkAccessManager>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlSchemaPrivate : public QSharedData
+{
+ public:
+ QXmlSchemaPrivate(const QXmlNamePool &namePool);
+ QXmlSchemaPrivate(const QPatternist::XsdSchemaContext::Ptr &schemaContext);
+ QXmlSchemaPrivate(const QXmlSchemaPrivate &other);
+
+ void load(const QUrl &source, const QString &targetNamespace);
+ void load(QIODevice *source, const QUrl &documentUri, const QString &targetNamespace);
+ void load(const QByteArray &data, const QUrl &documentUri, const QString &targetNamespace);
+ bool isValid() const;
+ QXmlNamePool namePool() const;
+ QUrl documentUri() const;
+ void setMessageHandler(QAbstractMessageHandler *handler);
+ QAbstractMessageHandler *messageHandler() const;
+ void setUriResolver(const QAbstractUriResolver *resolver);
+ const QAbstractUriResolver *uriResolver() const;
+ void setNetworkAccessManager(QNetworkAccessManager *networkmanager);
+ QNetworkAccessManager *networkAccessManager() const;
+
+ QXmlNamePool m_namePool;
+ QAbstractMessageHandler* m_userMessageHandler;
+ const QAbstractUriResolver* m_uriResolver;
+ QNetworkAccessManager* m_userNetworkAccessManager;
+ QPatternist::ReferenceCountedValue<QAbstractMessageHandler>::Ptr m_messageHandler;
+ QPatternist::ReferenceCountedValue<QNetworkAccessManager>::Ptr m_networkAccessManager;
+
+ QPatternist::XsdSchemaContext::Ptr m_schemaContext;
+ QPatternist::XsdSchemaParserContext::Ptr m_schemaParserContext;
+ bool m_schemaIsValid;
+ QUrl m_documentUri;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/api/qxmlschemavalidator.cpp b/src/xmlpatterns/api/qxmlschemavalidator.cpp
new file mode 100644
index 0000000..d5596c5
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschemavalidator.cpp
@@ -0,0 +1,340 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxmlschemavalidator.h"
+#include "qxmlschemavalidator_p.h"
+
+#include "qacceltreeresourceloader_p.h"
+#include "qxmlschema.h"
+#include "qxmlschema_p.h"
+#include "qxsdvalidatinginstancereader_p.h"
+
+#include <QtCore/QBuffer>
+#include <QtCore/QIODevice>
+#include <QtCore/QUrl>
+
+/*!
+ \class QXmlSchemaValidator
+
+ \brief The QXmlSchemaValidator class validates XML instance documents against a W3C XML Schema.
+
+ \reentrant
+ \since 4.6
+ \ingroup xml-tools
+
+ The QXmlSchemaValidator class loads, parses an XML instance document and validates it
+ against a W3C XML Schema that has been compiled with \l{QXmlSchema}.
+
+ The following example shows how to load a XML Schema from a local
+ file, check whether it is a valid schema document and use it for validation
+ of an XML instance document:
+
+ \snippet doc/src/snippets/qxmlschemavalidator/main.cpp 3
+
+ \sa QXmlSchema, {xmlpatterns/schema}{XML Schema Validation Example}
+*/
+
+/*!
+ Constructs a schema validator.
+ The schema used for validation must be referenced in the XML instance document
+ via the \c xsi:schemaLocation or \c xsi:noNamespaceSchemaLocation attribute.
+ */
+QXmlSchemaValidator::QXmlSchemaValidator()
+ : d(new QXmlSchemaValidatorPrivate(QXmlSchema()))
+{
+}
+
+/*!
+ Constructs a schema validator that will use \a schema for validation.
+ If an empty \l {QXmlSchema} schema is passed to the validator, the schema used
+ for validation must be referenced in the XML instance document
+ via the \c xsi:schemaLocation or \c xsi:noNamespaceSchemaLocation attribute.
+ */
+QXmlSchemaValidator::QXmlSchemaValidator(const QXmlSchema &schema)
+ : d(new QXmlSchemaValidatorPrivate(schema))
+{
+}
+
+/*!
+ Destroys this QXmlSchemaValidator.
+ */
+QXmlSchemaValidator::~QXmlSchemaValidator()
+{
+ delete d;
+}
+
+/*!
+ Sets the \a schema that shall be used for further validation.
+ If the schema is empty, the schema used for validation must be referenced
+ in the XML instance document via the \c xsi:schemaLocation or
+ \c xsi:noNamespaceSchemaLocation attribute.
+ */
+void QXmlSchemaValidator::setSchema(const QXmlSchema &schema)
+{
+ d->setSchema(schema);
+}
+
+/*!
+ Validates the XML instance document read from \a data with the
+ given \a documentUri against the schema.
+
+ Returns \c true if the XML instance document is valid according to the
+ schema, \c false otherwise.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschemavalidator/main.cpp 2
+ */
+bool QXmlSchemaValidator::validate(const QByteArray &data, const QUrl &documentUri) const
+{
+ QByteArray localData(data);
+
+ QBuffer buffer(&localData);
+ buffer.open(QIODevice::ReadOnly);
+
+ return validate(&buffer, documentUri);
+}
+
+/*!
+ Validates the XML instance document read from \a source against the schema.
+
+ Returns \c true if the XML instance document is valid according to the
+ schema, \c false otherwise.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschemavalidator/main.cpp 0
+ */
+bool QXmlSchemaValidator::validate(const QUrl &source) const
+{
+ d->m_context->setMessageHandler(messageHandler());
+ d->m_context->setUriResolver(uriResolver());
+ d->m_context->setNetworkAccessManager(networkAccessManager());
+
+ const QPatternist::AutoPtr<QNetworkReply> reply(QPatternist::AccelTreeResourceLoader::load(source, d->m_context->networkAccessManager(),
+ d->m_context, QPatternist::AccelTreeResourceLoader::ContinueOnError));
+ if (reply)
+ return validate(reply.data(), source);
+ else
+ return false;
+}
+
+/*!
+ Validates the XML instance document read from \a source with the
+ given \a documentUri against the schema.
+
+ Returns \c true if the XML instance document is valid according to the
+ schema, \c false otherwise.
+
+ Example:
+
+ \snippet doc/src/snippets/qxmlschemavalidator/main.cpp 1
+ */
+bool QXmlSchemaValidator::validate(QIODevice *source, const QUrl &documentUri) const
+{
+ if (!source) {
+ qWarning("A null QIODevice pointer cannot be passed.");
+ return false;
+ }
+
+ if (!source->isReadable()) {
+ qWarning("The device must be readable.");
+ return false;
+ }
+
+ const QUrl normalizedUri = QPatternist::XPathHelper::normalizeQueryURI(documentUri);
+
+ d->m_context->setMessageHandler(messageHandler());
+ d->m_context->setUriResolver(uriResolver());
+ d->m_context->setNetworkAccessManager(networkAccessManager());
+
+ QPatternist::NetworkAccessDelegator::Ptr delegator(new QPatternist::NetworkAccessDelegator(d->m_context->networkAccessManager(),
+ d->m_context->networkAccessManager()));
+
+ QPatternist::AccelTreeResourceLoader loader(d->m_context->namePool(), delegator, QPatternist::AccelTreeBuilder<true>::SourceLocationsFeature);
+
+ QPatternist::Item item;
+ try {
+ item = loader.openDocument(source, normalizedUri, d->m_context);
+ } catch (QPatternist::Exception exception) {
+ return false;
+ }
+
+ QXmlNodeModelIndex index = item.asNode();
+ const QAbstractXmlNodeModel *model = item.asNode().model();
+
+ QPatternist::XsdValidatedXmlNodeModel *validatedModel = new QPatternist::XsdValidatedXmlNodeModel(model);
+
+ QPatternist::XsdValidatingInstanceReader reader(validatedModel, normalizedUri, d->m_context);
+ if (d->m_schema)
+ reader.addSchema(d->m_schema, d->m_schemaDocumentUri);
+ try {
+ reader.read();
+ } catch (QPatternist::Exception exception) {
+ return false;
+ }
+
+ return true;
+}
+
+/*!
+ Returns the name pool used by this QXmlSchemaValidator for constructing \l
+ {QXmlName} {names}. There is no setter for the name pool, because
+ mixing name pools causes errors due to name confusion.
+ */
+QXmlNamePool QXmlSchemaValidator::namePool() const
+{
+ return d->m_namePool;
+}
+
+/*!
+ Returns the schema that is used for validation.
+ */
+QXmlSchema QXmlSchemaValidator::schema() const
+{
+ return d->m_originalSchema;
+}
+
+/*!
+ Changes the \l {QAbstractMessageHandler}{message handler} for this
+ QXmlSchemaValidator to \a handler. The schema validator sends all parsing and
+ validation messages to this message handler. QXmlSchemaValidator does not take
+ ownership of \a handler.
+
+ Normally, the default message handler is sufficient. It writes
+ compile and validation messages to \e stderr. The default message
+ handler includes color codes if \e stderr can render colors.
+
+ When QXmlSchemaValidator calls QAbstractMessageHandler::message(),
+ the arguments are as follows:
+
+ \table
+ \header
+ \o message() argument
+ \o Semantics
+ \row
+ \o QtMsgType type
+ \o Only QtWarningMsg and QtFatalMsg are used. The former
+ identifies a warning, while the latter identifies an error.
+ \row
+ \o const QString & description
+ \o An XHTML document which is the actual message. It is translated
+ into the current language.
+ \row
+ \o const QUrl &identifier
+ \o Identifies the error with a URI, where the fragment is
+ the error code, and the rest of the URI is the error namespace.
+ \row
+ \o const QSourceLocation & sourceLocation
+ \o Identifies where the error occurred.
+ \endtable
+
+ */
+void QXmlSchemaValidator::setMessageHandler(QAbstractMessageHandler *handler)
+{
+ d->m_userMessageHandler = handler;
+}
+
+/*!
+ Returns the message handler that handles parsing and validation
+ messages for this QXmlSchemaValidator.
+ */
+QAbstractMessageHandler *QXmlSchemaValidator::messageHandler() const
+{
+ if (d->m_userMessageHandler)
+ return d->m_userMessageHandler;
+
+ return d->m_messageHandler.data()->value;
+}
+
+/*!
+ Sets the URI resolver to \a resolver. QXmlSchemaValidator does not take
+ ownership of \a resolver.
+
+ \sa uriResolver()
+ */
+void QXmlSchemaValidator::setUriResolver(const QAbstractUriResolver *resolver)
+{
+ d->m_uriResolver = resolver;
+}
+
+/*!
+ Returns the schema's URI resolver. If no URI resolver has been set,
+ QtXmlPatterns will use the URIs in instance documents as they are.
+
+ The URI resolver provides a level of abstraction, or \e{polymorphic
+ URIs}. A resolver can rewrite \e{logical} URIs to physical ones, or
+ it can translate obsolete or invalid URIs to valid ones.
+
+ When QtXmlPatterns calls QAbstractUriResolver::resolve() the
+ absolute URI is the URI mandated by the schema specification, and the
+ relative URI is the URI specified by the user.
+
+ \sa setUriResolver()
+ */
+const QAbstractUriResolver *QXmlSchemaValidator::uriResolver() const
+{
+ return d->m_uriResolver;
+}
+
+/*!
+ Sets the network manager to \a manager.
+ QXmlSchemaValidator does not take ownership of \a manager.
+
+ \sa networkAccessManager()
+ */
+void QXmlSchemaValidator::setNetworkAccessManager(QNetworkAccessManager *manager)
+{
+ d->m_userNetworkAccessManager = manager;
+}
+
+/*!
+ Returns the network manager, or 0 if it has not been set.
+
+ \sa setNetworkAccessManager()
+ */
+QNetworkAccessManager *QXmlSchemaValidator::networkAccessManager() const
+{
+ if (d->m_userNetworkAccessManager)
+ return d->m_userNetworkAccessManager;
+
+ return d->m_networkAccessManager.data()->value;
+}
diff --git a/src/xmlpatterns/api/qxmlschemavalidator.h b/src/xmlpatterns/api/qxmlschemavalidator.h
new file mode 100644
index 0000000..e6683a5
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschemavalidator.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QXMLSCHEMAVALIDATOR_H
+#define QXMLSCHEMAVALIDATOR_H
+
+#include <QtCore/QUrl>
+#include <QtXmlPatterns/QXmlNamePool>
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(XmlPatterns)
+
+class QAbstractMessageHandler;
+class QAbstractUriResolver;
+class QIODevice;
+class QNetworkAccessManager;
+class QUrl;
+class QXmlNamePool;
+class QXmlSchema;
+class QXmlSchemaValidatorPrivate;
+
+class Q_XMLPATTERNS_EXPORT QXmlSchemaValidator
+{
+ public:
+ QXmlSchemaValidator();
+ QXmlSchemaValidator(const QXmlSchema &schema);
+ ~QXmlSchemaValidator();
+
+ void setSchema(const QXmlSchema &schema);
+
+ bool validate(const QUrl &source) const;
+ bool validate(QIODevice *source, const QUrl &documentUri = QUrl()) const;
+ bool validate(const QByteArray &data, const QUrl &documentUri = QUrl()) const;
+
+ QXmlNamePool namePool() const;
+ QXmlSchema schema() const;
+
+ void setMessageHandler(QAbstractMessageHandler *handler);
+ QAbstractMessageHandler *messageHandler() const;
+
+ void setUriResolver(const QAbstractUriResolver *resolver);
+ const QAbstractUriResolver *uriResolver() const;
+
+ void setNetworkAccessManager(QNetworkAccessManager *networkmanager);
+ QNetworkAccessManager *networkAccessManager() const;
+
+ private:
+ QXmlSchemaValidatorPrivate* const d;
+
+ Q_DISABLE_COPY(QXmlSchemaValidator)
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/api/qxmlschemavalidator_p.h b/src/xmlpatterns/api/qxmlschemavalidator_p.h
new file mode 100644
index 0000000..fbf7b1c
--- /dev/null
+++ b/src/xmlpatterns/api/qxmlschemavalidator_p.h
@@ -0,0 +1,131 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef QXMLSCHEMAVALIDATOR_P_H
+#define QXMLSCHEMAVALIDATOR_P_H
+
+#include "qabstractmessagehandler.h"
+#include "qabstracturiresolver.h"
+#include "qautoptr_p.h"
+#include "qcoloringmessagehandler_p.h"
+#include "qxmlschema.h"
+#include "qxmlschema_p.h"
+
+#include "qxsdschemacontext_p.h"
+#include "qxsdschema_p.h"
+
+#include <QtNetwork/QNetworkAccessManager>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlSchemaValidatorPrivate
+{
+public:
+ QXmlSchemaValidatorPrivate(const QXmlSchema &schema)
+ : m_namePool(schema.namePool())
+ , m_userMessageHandler(0)
+ , m_uriResolver(0)
+ , m_userNetworkAccessManager(0)
+ {
+ setSchema(schema);
+
+ const QXmlSchemaPrivate *p = schema.d;
+
+ // initialize the environment properties with the ones from the schema
+
+ if (p->m_userNetworkAccessManager) // schema has user defined network access manager
+ m_userNetworkAccessManager = p->m_userNetworkAccessManager;
+ else
+ m_networkAccessManager = p->m_networkAccessManager;
+
+ if (p->m_userMessageHandler) // schema has user defined message handler
+ m_userMessageHandler = p->m_userMessageHandler;
+ else
+ m_messageHandler = p->m_messageHandler;
+
+ m_uriResolver = p->m_uriResolver;
+ }
+
+ void setSchema(const QXmlSchema &schema)
+ {
+ // use same name pool as the schema
+ m_namePool = schema.namePool();
+ m_schema = schema.d->m_schemaParserContext->schema();
+ m_schemaDocumentUri = schema.documentUri();
+
+ // create a new schema context
+ m_context = QPatternist::XsdSchemaContext::Ptr(new QPatternist::XsdSchemaContext(m_namePool.d));
+ m_context->m_schemaTypeFactory = schema.d->m_schemaContext->m_schemaTypeFactory;
+ m_context->m_builtinTypesFacetList = schema.d->m_schemaContext->m_builtinTypesFacetList;
+
+ m_originalSchema = schema;
+ }
+
+ QXmlNamePool m_namePool;
+ QAbstractMessageHandler* m_userMessageHandler;
+ const QAbstractUriResolver* m_uriResolver;
+ QNetworkAccessManager* m_userNetworkAccessManager;
+ QPatternist::ReferenceCountedValue<QAbstractMessageHandler>::Ptr m_messageHandler;
+ QPatternist::ReferenceCountedValue<QNetworkAccessManager>::Ptr m_networkAccessManager;
+
+ QXmlSchema m_originalSchema;
+ QPatternist::XsdSchemaContext::Ptr m_context;
+ QPatternist::XsdSchema::Ptr m_schema;
+ QUrl m_schemaDocumentUri;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/common.pri b/src/xmlpatterns/common.pri
index 2573a26..27253d8 100644
--- a/src/xmlpatterns/common.pri
+++ b/src/xmlpatterns/common.pri
@@ -10,6 +10,7 @@ INCLUDEPATH += $$PWD/acceltree \
$$PWD/iterators \
$$PWD/janitors \
$$PWD/parser \
+ $$PWD/schema \
$$PWD/type \
$$PWD/utils
diff --git a/src/xmlpatterns/data/data.pri b/src/xmlpatterns/data/data.pri
index 99591d4..ccfed42 100644
--- a/src/xmlpatterns/data/data.pri
+++ b/src/xmlpatterns/data/data.pri
@@ -1,8 +1,8 @@
HEADERS += $$PWD/qabstractdatetime_p.h \
$$PWD/qabstractduration_p.h \
$$PWD/qabstractfloatcasters_p.h \
- $$PWD/qabstractfloat_p.h \
$$PWD/qabstractfloatmathematician_p.h \
+ $$PWD/qabstractfloat_p.h \
$$PWD/qanyuri_p.h \
$$PWD/qatomiccaster_p.h \
$$PWD/qatomiccasters_p.h \
@@ -14,8 +14,8 @@ HEADERS += $$PWD/qabstractdatetime_p.h \
$$PWD/qbase64binary_p.h \
$$PWD/qboolean_p.h \
$$PWD/qcommonvalues_p.h \
+ $$PWD/qcomparisonfactory_p.h \
$$PWD/qdate_p.h \
- $$PWD/qschemadatetime_p.h \
$$PWD/qdaytimeduration_p.h \
$$PWD/qdecimal_p.h \
$$PWD/qderivedinteger_p.h \
@@ -24,19 +24,21 @@ HEADERS += $$PWD/qabstractdatetime_p.h \
$$PWD/qgday_p.h \
$$PWD/qgmonthday_p.h \
$$PWD/qgmonth_p.h \
- $$PWD/qgyear_p.h \
$$PWD/qgyearmonth_p.h \
+ $$PWD/qgyear_p.h \
$$PWD/qhexbinary_p.h \
$$PWD/qinteger_p.h \
$$PWD/qitem_p.h \
$$PWD/qnodebuilder_p.h \
- $$PWD/qschemanumeric_p.h \
$$PWD/qqnamevalue_p.h \
$$PWD/qresourceloader_p.h \
- $$PWD/qsorttuple.cpp \
+ $$PWD/qschemadatetime_p.h \
+ $$PWD/qschemanumeric_p.h \
$$PWD/qschematime_p.h \
+ $$PWD/qsorttuple.cpp \
$$PWD/quntypedatomic_p.h \
$$PWD/qvalidationerror_p.h \
+ $$PWD/qvaluefactory_p.h \
$$PWD/qyearmonthduration_p.h
SOURCES += $$PWD/qabstractdatetime.cpp \
@@ -53,8 +55,8 @@ SOURCES += $$PWD/qabstractdatetime.cpp \
$$PWD/qbase64binary.cpp \
$$PWD/qboolean.cpp \
$$PWD/qcommonvalues.cpp \
+ $$PWD/qcomparisonfactory.cpp \
$$PWD/qdate.cpp \
- $$PWD/qschemadatetime.cpp \
$$PWD/qdaytimeduration.cpp \
$$PWD/qdecimal.cpp \
$$PWD/qduration.cpp \
@@ -68,11 +70,13 @@ SOURCES += $$PWD/qabstractdatetime.cpp \
$$PWD/qitem.cpp \
$$PWD/qnodebuilder.cpp \
$$PWD/qnodemodel.cpp \
- $$PWD/qschemanumeric.cpp \
$$PWD/qqnamevalue.cpp \
$$PWD/qresourceloader.cpp \
- $$PWD/qsorttuple.cpp \
+ $$PWD/qschemadatetime.cpp \
+ $$PWD/qschemanumeric.cpp \
$$PWD/qschematime.cpp \
+ $$PWD/qsorttuple.cpp \
$$PWD/quntypedatomic.cpp \
$$PWD/qvalidationerror.cpp \
+ $$PWD/qvaluefactory.cpp \
$$PWD/qyearmonthduration.cpp
diff --git a/src/xmlpatterns/data/qcomparisonfactory.cpp b/src/xmlpatterns/data/qcomparisonfactory.cpp
new file mode 100644
index 0000000..79ff105
--- /dev/null
+++ b/src/xmlpatterns/data/qcomparisonfactory.cpp
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qatomiccomparators_p.h"
+#include "qatomicstring_p.h"
+#include "qcomparisonplatform_p.h"
+#include "qvaluefactory_p.h"
+
+#include "qcomparisonfactory_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/**
+ * @short Helper class for ComparisonFactory::fromLexical() which exposes
+ * CastingPlatform appropriately.
+ *
+ * @relates ComparisonFactory
+ */
+class PerformComparison : public ComparisonPlatform<PerformComparison, true>
+ , public SourceLocationReflection
+{
+public:
+ PerformComparison(const SourceLocationReflection *const sourceLocationReflection,
+ const AtomicComparator::Operator op) : m_sourceReflection(sourceLocationReflection)
+ , m_operator(op)
+ {
+ Q_ASSERT(m_sourceReflection);
+ }
+
+ bool operator()(const AtomicValue::Ptr &operand1,
+ const AtomicValue::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context)
+ {
+ const ItemType::Ptr asItemType((AtomicType::Ptr(type)));
+
+ /* One area where the Query Transform world differs from the Schema
+ * world is that @c xs:duration is not considedered comparable, because
+ * it's according to Schema is partially comparable. This means
+ * ComparisonPlatform::fetchComparator() flags it as impossible, and
+ * hence we need to override that.
+ *
+ * SchemaType::wxsTypeMatches() will return true for sub-types of @c
+ * xs:duration as well, but that's ok since AbstractDurationComparator
+ * works for them too. */
+ if(BuiltinTypes::xsDuration->wxsTypeMatches(type))
+ prepareComparison(AtomicComparator::Ptr(new AbstractDurationComparator()));
+ else if (BuiltinTypes::xsGYear->wxsTypeMatches(type) ||
+ BuiltinTypes::xsGYearMonth->wxsTypeMatches(type) ||
+ BuiltinTypes::xsGMonth->wxsTypeMatches(type) ||
+ BuiltinTypes::xsGMonthDay->wxsTypeMatches(type) ||
+ BuiltinTypes::xsGDay->wxsTypeMatches(type))
+ prepareComparison(AtomicComparator::Ptr(new AbstractDateTimeComparator()));
+ else
+ prepareComparison(fetchComparator(asItemType, asItemType, context));
+
+ return flexibleCompare(operand1, operand2, context);
+ }
+
+ const SourceLocationReflection *actualReflection() const
+ {
+ return m_sourceReflection;
+ }
+
+ AtomicComparator::Operator operatorID() const
+ {
+ return m_operator;
+ }
+
+private:
+ const SourceLocationReflection *const m_sourceReflection;
+ const AtomicComparator::Operator m_operator;
+};
+
+bool ComparisonFactory::compare(const AtomicValue::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const AtomicValue::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection)
+{
+ Q_ASSERT(operand1);
+ Q_ASSERT(operand2);
+ Q_ASSERT(context);
+ Q_ASSERT(sourceLocationReflection);
+ Q_ASSERT(type);
+ Q_ASSERT_X(type->category() == SchemaType::SimpleTypeAtomic, Q_FUNC_INFO,
+ "We can only compare atomic values.");
+
+ return PerformComparison(sourceLocationReflection, op)(operand1, operand2, type, context);
+}
+
+bool ComparisonFactory::constructAndCompare(const DerivedString<TypeString>::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const DerivedString<TypeString>::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection)
+{
+ Q_ASSERT(operand1);
+ Q_ASSERT(operand2);
+ Q_ASSERT(context);
+ Q_ASSERT(sourceLocationReflection);
+ Q_ASSERT(type);
+ Q_ASSERT_X(type->category() == SchemaType::SimpleTypeAtomic, Q_FUNC_INFO,
+ "We can only compare atomic values.");
+
+ const AtomicValue::Ptr value1 = ValueFactory::fromLexical(operand1->stringValue(), type, context, sourceLocationReflection);
+ const AtomicValue::Ptr value2 = ValueFactory::fromLexical(operand2->stringValue(), type, context, sourceLocationReflection);
+
+ return compare(value1, op, value2, type, context, sourceLocationReflection);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/data/qcomparisonfactory_p.h b/src/xmlpatterns/data/qcomparisonfactory_p.h
new file mode 100644
index 0000000..88c587e
--- /dev/null
+++ b/src/xmlpatterns/data/qcomparisonfactory_p.h
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_ComparisonFactory_H
+#define Patternist_ComparisonFactory_H
+
+#include "qatomiccomparator_p.h"
+#include "qderivedstring_p.h"
+#include "qitem_p.h"
+#include "qreportcontext_p.h"
+#include "qschematype_p.h"
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Provides compare(), which is a high-level helper function for
+ * comparing atomic values.
+ *
+ * This class wraps the helper class ComparisonPlatform with a more specific,
+ * high-level API.
+ *
+ * @see ComparisonPlatform
+ * @author Frans Englich <fenglich@trolltech.com>
+ * @ingroup Patternist_schema
+ */
+ class ComparisonFactory
+ {
+ public:
+ /**
+ * @short Returns the result of evaluating operator @p op applied to the atomic
+ * values @p operand1 and @p operand2.
+ *
+ * The caller guarantees that both values are of type @p type.
+ *
+ * ComparisonFactory does not take ownership of @p sourceLocationReflection.
+ */
+ static bool compare(const AtomicValue::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const AtomicValue::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection);
+
+ /**
+ * @short Returns the result of evaluating operator @p op applied to the atomic
+ * values @p operand1 and @p operand2.
+ *
+ * In opposite to compare() it converts the operands from string type
+ * to @p type and compares these constructed types.
+ *
+ * The caller guarantees that both values are of type @p type.
+ *
+ * ComparisonFactory does not take ownership of @p sourceLocationReflection.
+ */
+ static bool constructAndCompare(const DerivedString<TypeString>::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const DerivedString<TypeString>::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection);
+
+ private:
+ Q_DISABLE_COPY(ComparisonFactory)
+ };
+}
+
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/data/qitem_p.h b/src/xmlpatterns/data/qitem_p.h
index 1f50072..60c8510 100644
--- a/src/xmlpatterns/data/qitem_p.h
+++ b/src/xmlpatterns/data/qitem_p.h
@@ -128,6 +128,11 @@ namespace QPatternist
typedef QExplicitlySharedDataPointer<AtomicValue> Ptr;
/**
+ * A list if smart pointers wrapping AtomicValue instances.
+ */
+ typedef QList<AtomicValue::Ptr> List;
+
+ /**
* Determines whether this atomic value has an error. This is used
* for implementing casting.
*
diff --git a/src/xmlpatterns/data/qvaluefactory.cpp b/src/xmlpatterns/data/qvaluefactory.cpp
new file mode 100644
index 0000000..6c8fbec
--- /dev/null
+++ b/src/xmlpatterns/data/qvaluefactory.cpp
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qatomiccaster_p.h"
+#include "qatomicstring_p.h"
+#include "qcastingplatform_p.h"
+#include "qvaluefactory_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/**
+ * @short Helper class for ValueFactory::fromLexical() which exposes
+ * CastingPlatform appropriately.
+ *
+ * @relates ValueFactory
+ */
+class PerformValueConstruction : public CastingPlatform<PerformValueConstruction, false>
+ , public SourceLocationReflection
+{
+public:
+ PerformValueConstruction(const SourceLocationReflection *const sourceLocationReflection,
+ const SchemaType::Ptr &toType) : m_sourceReflection(sourceLocationReflection)
+ , m_targetType(AtomicType::Ptr(toType))
+ {
+ Q_ASSERT(m_sourceReflection);
+ }
+
+ AtomicValue::Ptr operator()(const AtomicValue::Ptr &lexicalValue,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context)
+ {
+ prepareCasting(context, BuiltinTypes::xsString);
+ return AtomicValue::Ptr(const_cast<AtomicValue *>(cast(lexicalValue, context).asAtomicValue()));
+ }
+
+ const SourceLocationReflection *actualReflection() const
+ {
+ return m_sourceReflection;
+ }
+
+ ItemType::Ptr targetType() const
+ {
+ return m_targetType;
+ }
+
+private:
+ const SourceLocationReflection *const m_sourceReflection;
+ const ItemType::Ptr m_targetType;
+};
+
+AtomicValue::Ptr ValueFactory::fromLexical(const QString &lexicalValue,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection)
+{
+ Q_ASSERT(context);
+ Q_ASSERT(type);
+ Q_ASSERT_X(type->category() == SchemaType::SimpleTypeAtomic, Q_FUNC_INFO,
+ "We can only construct for atomic values.");
+
+ return PerformValueConstruction(sourceLocationReflection, type)(AtomicString::fromValue(lexicalValue),
+ type,
+ context);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/data/qvaluefactory_p.h b/src/xmlpatterns/data/qvaluefactory_p.h
new file mode 100644
index 0000000..0efe247
--- /dev/null
+++ b/src/xmlpatterns/data/qvaluefactory_p.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_ValueFactory_H
+#define Patternist_ValueFactory_H
+
+#include "qitem_p.h"
+#include "qreportcontext_p.h"
+#include "qschematype_p.h"
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Provides fromLexical(), which allows instantiation of atomic
+ * values from arbitrary types.
+ *
+ * This class wraps the helper class CastingPlatform with a more specific,
+ * high-level API.
+ *
+ * @see CastingPlatform
+ * @author Frans Englich <fenglich@trolltech.com>
+ * @ingroup Patternist_schema
+ */
+ class ValueFactory
+ {
+ public:
+ /**
+ * @short Returns an AtomicValue of type @p type from the lexical space
+ * @p lexicalValue, and raise an error through @p context if that's
+ * impossible.
+ *
+ * ValueFactory does not take ownership of @p sourceLocationReflection.
+ */
+ static AtomicValue::Ptr fromLexical(const QString &lexicalValue,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection);
+
+ private:
+ Q_DISABLE_COPY(ValueFactory)
+ };
+}
+
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/environment/createReportContext.xsl b/src/xmlpatterns/environment/createReportContext.xsl
index 7ca96bf..5b754d2 100644
--- a/src/xmlpatterns/environment/createReportContext.xsl
+++ b/src/xmlpatterns/environment/createReportContext.xsl
@@ -242,6 +242,11 @@ namespace QPatternist
*/]]></xsl:text>
enum ErrorCode
{
+ /**
+ * XML Schema error code.
+ */
+ XSDError,
+
<!-- The order of the calls is significant. The templates takes into account
to avoid the last comma(extractXSLT20 does this). -->
<xsl:call-template name="extractXQuery10"/>
diff --git a/src/xmlpatterns/environment/qreportcontext.cpp b/src/xmlpatterns/environment/qreportcontext.cpp
index 34ef6ce..64afcdb 100644
--- a/src/xmlpatterns/environment/qreportcontext.cpp
+++ b/src/xmlpatterns/environment/qreportcontext.cpp
@@ -448,6 +448,7 @@ QString ReportContext::codeToString(const ReportContext::ErrorCode code)
case XTTE1545: result = "XTTE1545"; break;
case XTTE1550: result = "XTTE1550"; break;
case XTTE1555: result = "XTTE1555"; break;
+ case XSDError: result = "XSDError"; break;
}
Q_ASSERT_X(result, Q_FUNC_INFO, "Unknown enum value.");
diff --git a/src/xmlpatterns/environment/qreportcontext_p.h b/src/xmlpatterns/environment/qreportcontext_p.h
index ee78972..dbdf824 100644
--- a/src/xmlpatterns/environment/qreportcontext_p.h
+++ b/src/xmlpatterns/environment/qreportcontext_p.h
@@ -151,6 +151,10 @@ namespace QPatternist
*/
enum ErrorCode
{
+ /**
+ * XML Schema error code.
+ */
+ XSDError,
/**
* It is a static error if analysis of an expression relies on some
diff --git a/src/xmlpatterns/expr/qcastingplatform.cpp b/src/xmlpatterns/expr/qcastingplatform.cpp
index bc902f9..933d188 100644
--- a/src/xmlpatterns/expr/qcastingplatform.cpp
+++ b/src/xmlpatterns/expr/qcastingplatform.cpp
@@ -83,7 +83,7 @@ Item CastingPlatform<TSubClass, issueError>::cast(const Item &sourceValue,
else
{
bool castImpossible = false;
- const AtomicCaster::Ptr caster(locateCaster(sourceValue.type(), context, castImpossible));
+ const AtomicCaster::Ptr caster(locateCaster(sourceValue.type(), context, castImpossible, static_cast<const TSubClass *>(this), targetType()));
if(!issueError && castImpossible)
{
@@ -112,7 +112,7 @@ bool CastingPlatform<TSubClass, issueError>::prepareCasting(const ReportContext:
or numeric at compile time. We'll do lookup at runtime instead. */
bool castImpossible = false;
- m_caster = locateCaster(sourceType, context, castImpossible);
+ m_caster = locateCaster(sourceType, context, castImpossible, static_cast<const TSubClass *>(this), targetType());
return !castImpossible;
}
@@ -120,20 +120,22 @@ bool CastingPlatform<TSubClass, issueError>::prepareCasting(const ReportContext:
template <typename TSubClass, const bool issueError>
AtomicCaster::Ptr CastingPlatform<TSubClass, issueError>::locateCaster(const ItemType::Ptr &sourceType,
const ReportContext::Ptr &context,
- bool &castImpossible) const
+ bool &castImpossible,
+ const SourceLocationReflection *const location,
+ const ItemType::Ptr &targetType)
{
Q_ASSERT(sourceType);
- Q_ASSERT(targetType());
+ Q_ASSERT(targetType);
const AtomicCasterLocator::Ptr locator(static_cast<AtomicType *>(
- targetType().data())->casterLocator());
+ targetType.data())->casterLocator());
if(!locator)
{
if(issueError)
{
context->error(QtXmlPatterns::tr("No casting is possible with %1 as the target type.")
- .arg(formatType(context->namePool(), targetType())),
- ReportContext::XPTY0004, static_cast<const TSubClass *>(this));
+ .arg(formatType(context->namePool(), targetType)),
+ ReportContext::XPTY0004, location);
}
else
castImpossible = true;
@@ -141,15 +143,15 @@ AtomicCaster::Ptr CastingPlatform<TSubClass, issueError>::locateCaster(const Ite
return AtomicCaster::Ptr();
}
- const AtomicCaster::Ptr caster(static_cast<const AtomicType *>(sourceType.data())->accept(locator, static_cast<const TSubClass *>(this)));
+ const AtomicCaster::Ptr caster(static_cast<const AtomicType *>(sourceType.data())->accept(locator, location));
if(!caster)
{
if(issueError)
{
context->error(QtXmlPatterns::tr("It is not possible to cast from %1 to %2.")
.arg(formatType(context->namePool(), sourceType))
- .arg(formatType(context->namePool(), targetType())),
- ReportContext::XPTY0004, static_cast<const TSubClass *>(this));
+ .arg(formatType(context->namePool(), targetType)),
+ ReportContext::XPTY0004, location);
}
else
castImpossible = true;
diff --git a/src/xmlpatterns/expr/qcastingplatform_p.h b/src/xmlpatterns/expr/qcastingplatform_p.h
index 3aded3d..91f4a8c 100644
--- a/src/xmlpatterns/expr/qcastingplatform_p.h
+++ b/src/xmlpatterns/expr/qcastingplatform_p.h
@@ -52,16 +52,17 @@
#ifndef Patternist_CastingPlatform_H
#define Patternist_CastingPlatform_H
+#include "qatomiccasterlocator_p.h"
#include "qatomiccaster_p.h"
-#include "qqnamevalue_p.h"
#include "qatomicstring_p.h"
-#include "qvalidationerror_p.h"
-#include "qatomiccasterlocator_p.h"
#include "qatomictype_p.h"
#include "qbuiltintypes_p.h"
#include "qcommonsequencetypes_p.h"
-#include "qschematypefactory_p.h"
#include "qpatternistlocale_p.h"
+#include "qqnamevalue_p.h"
+#include "qschematypefactory_p.h"
+#include "qstaticcontext_p.h"
+#include "qvalidationerror_p.h"
QT_BEGIN_HEADER
@@ -101,6 +102,7 @@ namespace QPatternist
* function targetType() must be implemented such that CastingPlatform knows
* what type it shall cast to.
*
+ * @see ValueFactory
* @author Frans Englich <fenglich@trolltech.com>
* @ingroup Patternist_expressions
*/
@@ -167,9 +169,16 @@ namespace QPatternist
*
* @p castImpossible is not initialized. Initialize it to @c false.
*/
- AtomicCaster::Ptr locateCaster(const ItemType::Ptr &sourceType,
- const ReportContext::Ptr &context,
- bool &castImpossible) const;
+ static AtomicCaster::Ptr locateCaster(const ItemType::Ptr &sourceType,
+ const ReportContext::Ptr &context,
+ bool &castImpossible,
+ const SourceLocationReflection *const location,
+ const ItemType::Ptr &targetType);
+ private:
+ inline Item castWithCaster(const Item &sourceValue,
+ const AtomicCaster::Ptr &caster,
+ const DynamicContext::Ptr &context) const;
+
inline ItemType::Ptr targetType() const
{
diff --git a/src/xmlpatterns/expr/qexpressionfactory.cpp b/src/xmlpatterns/expr/qexpressionfactory.cpp
index e243037..0ddf3b1 100644
--- a/src/xmlpatterns/expr/qexpressionfactory.cpp
+++ b/src/xmlpatterns/expr/qexpressionfactory.cpp
@@ -81,9 +81,13 @@ Expression::Ptr ExpressionFactory::createExpression(const QString &expr,
const QUrl &queryURI,
const QXmlName &initialTemplateName)
{
- if(lang == QXmlQuery::XQuery10)
+ if(lang == QXmlQuery::XSLT20)
{
- return createExpression(Tokenizer::Ptr(new XQueryTokenizer(expr, queryURI)),
+ QByteArray query(expr.toUtf8());
+ QBuffer buffer(&query);
+ buffer.open(QIODevice::ReadOnly);
+
+ return createExpression(&buffer,
context,
lang,
requiredType,
@@ -92,12 +96,7 @@ Expression::Ptr ExpressionFactory::createExpression(const QString &expr,
}
else
{
- Q_ASSERT(lang == QXmlQuery::XSLT20);
- QByteArray query(expr.toUtf8());
- QBuffer buffer(&query);
- buffer.open(QIODevice::ReadOnly);
-
- return createExpression(&buffer,
+ return createExpression(Tokenizer::Ptr(new XQueryTokenizer(expr, queryURI)),
context,
lang,
requiredType,
@@ -118,16 +117,10 @@ Expression::Ptr ExpressionFactory::createExpression(QIODevice *const device,
Tokenizer::Ptr tokenizer;
- if(lang == QXmlQuery::XQuery10)
- {
-
- tokenizer = Tokenizer::Ptr(new XQueryTokenizer(QString::fromUtf8(device->readAll()), queryURI));
- }
- else
- {
- Q_ASSERT(lang == QXmlQuery::XSLT20);
+ if(lang == QXmlQuery::XSLT20)
tokenizer = Tokenizer::Ptr(new XSLTTokenizer(device, queryURI, context, context->namePool()));
- }
+ else
+ tokenizer = Tokenizer::Ptr(new XQueryTokenizer(QString::fromUtf8(device->readAll()), queryURI));
return createExpression(tokenizer, context, lang, requiredType, queryURI, initialTemplateName);
}
diff --git a/src/xmlpatterns/functions/qpatternplatform.cpp b/src/xmlpatterns/functions/qpatternplatform.cpp
index 74414f4..5339f28 100644
--- a/src/xmlpatterns/functions/qpatternplatform.cpp
+++ b/src/xmlpatterns/functions/qpatternplatform.cpp
@@ -168,8 +168,15 @@ void PatternPlatform::applyFlags(const Flags flags, QRegExp &patternP)
// TODO Apply the other flags, like 'x'.
}
+QRegExp PatternPlatform::parsePattern(const QString &pattern,
+ const ReportContext::Ptr &context) const
+{
+ return parsePattern(pattern, context, this);
+}
+
QRegExp PatternPlatform::parsePattern(const QString &patternP,
- const DynamicContext::Ptr &context) const
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const location)
{
if(patternP == QLatin1String("(.)\\3") ||
patternP == QLatin1String("\\3") ||
@@ -177,7 +184,7 @@ QRegExp PatternPlatform::parsePattern(const QString &patternP,
{
context->error(QLatin1String("We don't want to hang infinitely on K2-MatchesFunc-9, "
"10 and 11. See Trolltech task 148505."),
- ReportContext::FOER0000, this);
+ ReportContext::FOER0000, location);
return QRegExp();
}
@@ -189,14 +196,8 @@ QRegExp PatternPlatform::parsePattern(const QString &patternP,
* QChar::category(). */
rewrittenPattern.replace(QLatin1String("[\\i-[:]]"), QLatin1String("[a-zA-Z_]"));
rewrittenPattern.replace(QLatin1String("[\\c-[:]]"), QLatin1String("[a-zA-Z0-9_\\-\\.]"));
- rewrittenPattern.replace(QLatin1String("\\i"), QLatin1String("[a-zA-Z:_]"));
- rewrittenPattern.replace(QLatin1String("\\c"), QLatin1String("[a-zA-Z0-9:_\\-\\.]"));
- rewrittenPattern.replace(QLatin1String("\\p{L}"), QLatin1String("[a-zA-Z]"));
- rewrittenPattern.replace(QLatin1String("\\p{Lu}"), QLatin1String("[A-Z]"));
- rewrittenPattern.replace(QLatin1String("\\p{Ll}"), QLatin1String("[a-z]"));
- rewrittenPattern.replace(QLatin1String("\\p{Nd}"), QLatin1String("[0-9]"));
- QRegExp retval(rewrittenPattern);
+ QRegExp retval(rewrittenPattern, Qt::CaseSensitive, QRegExp::W3CXmlSchema11);
if(retval.isValid())
return retval;
@@ -204,7 +205,7 @@ QRegExp PatternPlatform::parsePattern(const QString &patternP,
{
context->error(QtXmlPatterns::tr("%1 is an invalid regular expression pattern: %2")
.arg(formatExpression(patternP), retval.errorString()),
- ReportContext::FORX0002, this);
+ ReportContext::FORX0002, location);
return QRegExp();
}
}
diff --git a/src/xmlpatterns/functions/qpatternplatform_p.h b/src/xmlpatterns/functions/qpatternplatform_p.h
index 3f4b18e..76f5332 100644
--- a/src/xmlpatterns/functions/qpatternplatform_p.h
+++ b/src/xmlpatterns/functions/qpatternplatform_p.h
@@ -122,6 +122,14 @@ namespace QPatternist
*/
inline int captureCount() const;
+ /**
+ * @short Parses pattern
+ */
+ static QRegExp parsePattern(const QString &pattern,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const location);
+
+
protected:
/**
* @short This constructor is protected, because this class is supposed to be sub-classed.
@@ -146,14 +154,18 @@ namespace QPatternist
};
typedef QFlags<PreCompiledPart> PreCompiledParts;
+ /**
+ * @short Calls the public parsePattern() function and passes in @c
+ * this as the location.
+ */
+ inline QRegExp parsePattern(const QString &pattern,
+ const ReportContext::Ptr &context) const;
+
Q_DISABLE_COPY(PatternPlatform)
Flags parseFlags(const QString &flags,
const DynamicContext::Ptr &context) const;
- QRegExp parsePattern(const QString &pattern,
- const DynamicContext::Ptr &context) const;
-
static void applyFlags(const Flags flags, QRegExp &pattern);
/**
diff --git a/src/xmlpatterns/parser/qquerytransformparser.cpp b/src/xmlpatterns/parser/qquerytransformparser.cpp
index cc6c82e..d80c09f 100644
--- a/src/xmlpatterns/parser/qquerytransformparser.cpp
+++ b/src/xmlpatterns/parser/qquerytransformparser.cpp
@@ -300,11 +300,18 @@ static inline QSourceLocation fromYYLTYPE(const YYLTYPE &sourceLocator,
}
/**
+ * @internal
+ * @relates QXmlQuery
+ */
+typedef QFlags<QXmlQuery::QueryLanguage> QueryLanguages;
+
+/**
* @short Flags invalid expressions and declarations in the currently
* parsed language.
*
- * Since this grammar is used for several languages: XQuery 1.0, XSL-T 2.0 and
- * XPath 2.0 inside XSL-T, it is the union of all the constructs in these
+ * Since this grammar is used for several languages: XQuery 1.0, XSL-T 2.0, and
+ * XPath 2.0 inside XSL-T, and field and selector patterns in W3C XML Schema's
+ * identity constraints, it is the union of all the constructs in these
* languages. However, when dealing with each language individually, we
* regularly need to disallow some expressions, such as direct element
* constructors when parsing XSL-T, or the typeswitch when parsing XPath.
@@ -315,19 +322,46 @@ static inline QSourceLocation fromYYLTYPE(const YYLTYPE &sourceLocator,
* instance the @c let clause, should not be flagged as an error, because it's
* used for internal purposes.
*
- * Hence, this function is called from each expression and declaration which is
- * unavailable in XPath.
+ * Hence, this function is called from each expression and declaration with @p
+ * allowedLanguages stating what languages it is allowed in.
*
* If @p isInternal is @c true, no error is raised. Otherwise, if the current
- * language is not XQuery, an error is raised.
+ * language is not in @p allowedLanguages, an error is raised.
*/
-static void disallowedConstruct(const ParserContext *const parseInfo,
- const YYLTYPE &sourceLocator,
- const bool isInternal = false)
+static void allowedIn(const QueryLanguages allowedLanguages,
+ const ParserContext *const parseInfo,
+ const YYLTYPE &sourceLocator,
+ const bool isInternal = false)
{
- if(!isInternal && parseInfo->languageAccent != QXmlQuery::XQuery10)
+ /* We treat XPath 2.0 as a subset of XSL-T 2.0, so if XPath 2.0 is allowed
+ * and XSL-T is the language, it's ok. */
+ if(!isInternal &&
+ (!allowedLanguages.testFlag(parseInfo->languageAccent) && !(allowedLanguages.testFlag(QXmlQuery::XPath20) && parseInfo->languageAccent == QXmlQuery::XSLT20)))
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("A construct was encountered which only is allowed in XQuery."),
+
+ QString langName;
+
+ switch(parseInfo->languageAccent)
+ {
+ case QXmlQuery::XPath20:
+ langName = QLatin1String("XPath 2.0");
+ break;
+ case QXmlQuery::XSLT20:
+ langName = QLatin1String("XSL-T 2.0");
+ break;
+ case QXmlQuery::XQuery10:
+ langName = QLatin1String("XQuery 1.0");
+ break;
+ case QXmlQuery::XmlSchema11IdentityConstraintSelector:
+ langName = QtXmlPatterns::tr("W3C XML Schema identity constraint selector");
+ break;
+ case QXmlQuery::XmlSchema11IdentityConstraintField:
+ langName = QtXmlPatterns::tr("W3C XML Schema identity constraint field");
+ break;
+ }
+
+ parseInfo->staticContext->error(QtXmlPatterns::tr("A construct was encountered "
+ "which is disallowed in the current language(%1).").arg(langName),
ReportContext::XPST0003,
fromYYLTYPE(sourceLocator, parseInfo));
@@ -1366,7 +1400,7 @@ typedef struct YYLTYPE
/* Copy the second part of user declarations. */
/* Line 221 of yacc.c. */
-#line 1289 "qquerytransformparser.cpp"
+#line 1323 "qquerytransformparser.cpp"
#ifdef short
# undef short
@@ -1850,54 +1884,54 @@ static const yytype_int16 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1341, 1341, 1342, 1344, 1345, 1376, 1377, 1393, 1491,
- 1493, 1499, 1501, 1508, 1514, 1520, 1527, 1530, 1534, 1538,
- 1558, 1572, 1576, 1570, 1639, 1643, 1660, 1663, 1665, 1670,
- 1671, 1675, 1676, 1680, 1684, 1688, 1690, 1691, 1693, 1695,
- 1741, 1755, 1760, 1765, 1766, 1768, 1783, 1798, 1808, 1823,
- 1827, 1832, 1846, 1850, 1855, 1869, 1874, 1879, 1884, 1889,
- 1905, 1928, 1936, 1937, 1938, 1940, 1957, 1958, 1960, 1961,
- 1963, 1964, 1966, 2021, 2025, 2031, 2034, 2039, 2053, 2057,
- 2063, 2062, 2171, 2174, 2180, 2201, 2207, 2211, 2213, 2218,
- 2228, 2229, 2234, 2235, 2244, 2314, 2325, 2326, 2330, 2335,
- 2404, 2405, 2409, 2414, 2458, 2459, 2464, 2471, 2477, 2478,
- 2479, 2480, 2481, 2482, 2488, 2493, 2499, 2502, 2507, 2513,
- 2519, 2523, 2548, 2549, 2553, 2557, 2551, 2598, 2601, 2596,
- 2617, 2618, 2619, 2622, 2626, 2634, 2633, 2647, 2646, 2655,
- 2656, 2657, 2659, 2667, 2678, 2681, 2683, 2688, 2695, 2702,
- 2708, 2728, 2733, 2739, 2742, 2744, 2745, 2752, 2758, 2762,
- 2767, 2768, 2771, 2775, 2770, 2784, 2788, 2783, 2796, 2799,
- 2803, 2798, 2812, 2816, 2811, 2824, 2826, 2854, 2853, 2865,
- 2873, 2864, 2884, 2885, 2888, 2892, 2897, 2902, 2901, 2917,
- 2922, 2923, 2928, 2929, 2934, 2935, 2936, 2937, 2939, 2940,
- 2945, 2946, 2951, 2952, 2954, 2955, 2960, 2961, 2962, 2963,
- 2965, 2966, 2971, 2972, 2977, 2978, 2980, 2984, 2989, 2990,
- 2996, 2997, 3002, 3003, 3008, 3009, 3014, 3015, 3020, 3024,
- 3029, 3030, 3031, 3033, 3038, 3039, 3040, 3041, 3042, 3043,
- 3045, 3050, 3051, 3052, 3053, 3054, 3055, 3057, 3062, 3063,
- 3064, 3066, 3080, 3081, 3082, 3084, 3100, 3104, 3109, 3110,
- 3112, 3117, 3118, 3120, 3126, 3130, 3136, 3139, 3140, 3144,
- 3153, 3158, 3162, 3163, 3168, 3167, 3182, 3189, 3188, 3203,
- 3211, 3211, 3220, 3222, 3225, 3230, 3232, 3236, 3302, 3305,
- 3311, 3314, 3323, 3327, 3331, 3336, 3337, 3342, 3343, 3346,
- 3345, 3375, 3377, 3378, 3380, 3394, 3395, 3396, 3397, 3398,
- 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3408, 3407, 3417,
- 3428, 3433, 3435, 3440, 3441, 3443, 3447, 3449, 3453, 3462,
- 3468, 3469, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481,
- 3491, 3492, 3497, 3501, 3506, 3511, 3516, 3521, 3525, 3530,
- 3535, 3540, 3569, 3573, 3580, 3582, 3586, 3588, 3589, 3590,
- 3624, 3633, 3622, 3874, 3878, 3898, 3901, 3907, 3912, 3917,
- 3923, 3926, 3936, 3943, 3947, 3953, 3967, 3973, 3990, 3995,
- 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4016, 4024, 4023,
- 4063, 4066, 4071, 4086, 4091, 4098, 4110, 4114, 4110, 4120,
- 4122, 4126, 4128, 4143, 4147, 4156, 4161, 4165, 4171, 4174,
- 4179, 4184, 4189, 4190, 4191, 4192, 4194, 4195, 4196, 4197,
- 4202, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4246, 4251,
- 4256, 4262, 4263, 4265, 4270, 4275, 4280, 4285, 4301, 4302,
- 4304, 4309, 4314, 4318, 4330, 4343, 4353, 4358, 4363, 4368,
- 4382, 4396, 4397, 4399, 4409, 4411, 4416, 4423, 4430, 4432,
- 4434, 4435, 4437, 4441, 4446, 4447, 4449, 4455, 4457, 4459,
- 4460, 4462, 4474
+ 0, 1375, 1375, 1376, 1378, 1379, 1410, 1411, 1427, 1525,
+ 1527, 1533, 1535, 1542, 1548, 1554, 1561, 1564, 1568, 1572,
+ 1592, 1606, 1610, 1604, 1673, 1677, 1694, 1697, 1699, 1704,
+ 1705, 1709, 1710, 1714, 1718, 1722, 1724, 1725, 1727, 1729,
+ 1775, 1789, 1794, 1799, 1800, 1802, 1817, 1832, 1842, 1857,
+ 1861, 1866, 1880, 1884, 1889, 1903, 1908, 1913, 1918, 1923,
+ 1939, 1962, 1970, 1971, 1972, 1974, 1991, 1992, 1994, 1995,
+ 1997, 1998, 2000, 2055, 2059, 2065, 2068, 2073, 2087, 2091,
+ 2097, 2096, 2205, 2208, 2214, 2235, 2241, 2245, 2247, 2252,
+ 2262, 2263, 2268, 2269, 2278, 2348, 2359, 2360, 2364, 2369,
+ 2438, 2439, 2443, 2448, 2492, 2493, 2498, 2505, 2511, 2512,
+ 2513, 2514, 2515, 2516, 2522, 2527, 2533, 2536, 2541, 2547,
+ 2553, 2557, 2582, 2583, 2587, 2591, 2585, 2632, 2635, 2630,
+ 2651, 2652, 2653, 2656, 2660, 2668, 2667, 2681, 2680, 2689,
+ 2690, 2691, 2693, 2701, 2712, 2715, 2717, 2722, 2729, 2736,
+ 2742, 2762, 2767, 2773, 2776, 2778, 2779, 2786, 2792, 2796,
+ 2801, 2802, 2805, 2809, 2804, 2819, 2823, 2818, 2831, 2834,
+ 2838, 2833, 2848, 2852, 2847, 2860, 2862, 2890, 2889, 2901,
+ 2909, 2900, 2920, 2921, 2924, 2928, 2933, 2938, 2937, 2953,
+ 2959, 2960, 2966, 2967, 2973, 2974, 2975, 2976, 2978, 2979,
+ 2985, 2986, 2992, 2993, 2995, 2996, 3002, 3003, 3004, 3005,
+ 3007, 3008, 3018, 3019, 3025, 3026, 3028, 3032, 3037, 3038,
+ 3045, 3046, 3052, 3053, 3059, 3060, 3066, 3067, 3073, 3077,
+ 3082, 3083, 3084, 3086, 3092, 3093, 3094, 3095, 3096, 3097,
+ 3099, 3104, 3105, 3106, 3107, 3108, 3109, 3111, 3116, 3117,
+ 3118, 3120, 3134, 3135, 3136, 3138, 3155, 3159, 3164, 3165,
+ 3167, 3172, 3173, 3175, 3181, 3185, 3191, 3194, 3195, 3199,
+ 3208, 3213, 3217, 3218, 3223, 3222, 3237, 3245, 3244, 3260,
+ 3268, 3268, 3277, 3279, 3282, 3287, 3289, 3293, 3359, 3362,
+ 3368, 3371, 3380, 3384, 3388, 3393, 3394, 3399, 3400, 3403,
+ 3402, 3432, 3434, 3435, 3437, 3481, 3482, 3483, 3484, 3485,
+ 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3495, 3494, 3505,
+ 3516, 3521, 3523, 3528, 3529, 3534, 3538, 3540, 3544, 3553,
+ 3560, 3561, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574,
+ 3584, 3585, 3590, 3595, 3601, 3607, 3612, 3617, 3622, 3628,
+ 3633, 3638, 3668, 3672, 3679, 3681, 3685, 3690, 3691, 3692,
+ 3726, 3735, 3724, 3976, 3980, 4000, 4003, 4009, 4014, 4019,
+ 4025, 4028, 4038, 4045, 4049, 4055, 4069, 4075, 4092, 4097,
+ 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4118, 4126, 4125,
+ 4165, 4168, 4173, 4188, 4193, 4200, 4212, 4216, 4212, 4222,
+ 4224, 4228, 4230, 4245, 4249, 4258, 4263, 4267, 4273, 4276,
+ 4281, 4286, 4291, 4292, 4293, 4294, 4296, 4297, 4298, 4299,
+ 4304, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4348, 4353,
+ 4358, 4364, 4365, 4367, 4372, 4377, 4382, 4387, 4403, 4404,
+ 4406, 4411, 4416, 4420, 4432, 4445, 4455, 4460, 4465, 4470,
+ 4484, 4498, 4499, 4501, 4511, 4513, 4518, 4525, 4532, 4534,
+ 4536, 4537, 4539, 4543, 4548, 4549, 4551, 4557, 4559, 4561,
+ 4565, 4570, 4582
};
#endif
@@ -3726,7 +3760,7 @@ yyreduce:
{
case 5:
/* Line 1269 of yacc.c. */
-#line 1346 "querytransformparser.ypp"
+#line 1380 "querytransformparser.ypp"
{
/* Suppress more compiler warnings about unused defines. */
@@ -3760,7 +3794,7 @@ yyreduce:
case 7:
/* Line 1269 of yacc.c. */
-#line 1378 "querytransformparser.ypp"
+#line 1412 "querytransformparser.ypp"
{
const QRegExp encNameRegExp(QLatin1String("[A-Za-z][A-Za-z0-9._\\-]*"));
@@ -3779,7 +3813,7 @@ yyreduce:
case 8:
/* Line 1269 of yacc.c. */
-#line 1394 "querytransformparser.ypp"
+#line 1428 "querytransformparser.ypp"
{
/* In XSL-T, we can have dangling variable references, so resolve them
* before we proceed with other steps, such as checking circularity. */
@@ -3880,7 +3914,7 @@ yyreduce:
case 10:
/* Line 1269 of yacc.c. */
-#line 1494 "querytransformparser.ypp"
+#line 1528 "querytransformparser.ypp"
{
// TODO add to namespace context
parseInfo->moduleNamespace = parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(3) - (6)].sval));
@@ -3889,9 +3923,9 @@ yyreduce:
case 12:
/* Line 1269 of yacc.c. */
-#line 1502 "querytransformparser.ypp"
+#line 1536 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
@@ -3900,7 +3934,7 @@ yyreduce:
case 13:
/* Line 1269 of yacc.c. */
-#line 1509 "querytransformparser.ypp"
+#line 1543 "querytransformparser.ypp"
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
@@ -3910,7 +3944,7 @@ yyreduce:
case 14:
/* Line 1269 of yacc.c. */
-#line 1515 "querytransformparser.ypp"
+#line 1549 "querytransformparser.ypp"
{
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Namespace declarations must occur before function, "
@@ -3920,9 +3954,9 @@ yyreduce:
case 15:
/* Line 1269 of yacc.c. */
-#line 1521 "querytransformparser.ypp"
+#line 1555 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Module imports must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE((yyloc), parseInfo));
@@ -3931,7 +3965,7 @@ yyreduce:
case 17:
/* Line 1269 of yacc.c. */
-#line 1531 "querytransformparser.ypp"
+#line 1565 "querytransformparser.ypp"
{
parseInfo->hasSecondPrologPart = true;
}
@@ -3939,7 +3973,7 @@ yyreduce:
case 18:
/* Line 1269 of yacc.c. */
-#line 1535 "querytransformparser.ypp"
+#line 1569 "querytransformparser.ypp"
{
parseInfo->hasSecondPrologPart = true;
}
@@ -3947,16 +3981,16 @@ yyreduce:
case 19:
/* Line 1269 of yacc.c. */
-#line 1539 "querytransformparser.ypp"
+#line 1573 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->hasSecondPrologPart = true;
}
break;
case 20:
/* Line 1269 of yacc.c. */
-#line 1562 "querytransformparser.ypp"
+#line 1596 "querytransformparser.ypp"
{
Template::Ptr temp(create(new Template(parseInfo->currentImportPrecedence, (yyvsp[(5) - (7)].sequenceType)), (yyloc), parseInfo));
@@ -3969,7 +4003,7 @@ yyreduce:
case 21:
/* Line 1269 of yacc.c. */
-#line 1572 "querytransformparser.ypp"
+#line 1606 "querytransformparser.ypp"
{
parseInfo->isParsingPattern = true;
}
@@ -3977,7 +4011,7 @@ yyreduce:
case 22:
/* Line 1269 of yacc.c. */
-#line 1576 "querytransformparser.ypp"
+#line 1610 "querytransformparser.ypp"
{
parseInfo->isParsingPattern = false;
}
@@ -3985,7 +4019,7 @@ yyreduce:
case 23:
/* Line 1269 of yacc.c. */
-#line 1585 "querytransformparser.ypp"
+#line 1619 "querytransformparser.ypp"
{
/* In this grammar branch, we're guaranteed to be a template rule, but
* may also be a named template. */
@@ -4042,7 +4076,7 @@ yyreduce:
case 24:
/* Line 1269 of yacc.c. */
-#line 1639 "querytransformparser.ypp"
+#line 1673 "querytransformparser.ypp"
{
(yyval.enums.Double) = std::numeric_limits<xsDouble>::quiet_NaN();
}
@@ -4050,7 +4084,7 @@ yyreduce:
case 25:
/* Line 1269 of yacc.c. */
-#line 1644 "querytransformparser.ypp"
+#line 1678 "querytransformparser.ypp"
{
const AtomicValue::Ptr val(Decimal::fromLexical((yyvsp[(2) - (2)].sval)));
if(val->hasError())
@@ -4069,7 +4103,7 @@ yyreduce:
case 26:
/* Line 1269 of yacc.c. */
-#line 1660 "querytransformparser.ypp"
+#line 1694 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName();
}
@@ -4077,7 +4111,7 @@ yyreduce:
case 28:
/* Line 1269 of yacc.c. */
-#line 1666 "querytransformparser.ypp"
+#line 1700 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (2)].qName);
}
@@ -4085,42 +4119,42 @@ yyreduce:
case 30:
/* Line 1269 of yacc.c. */
-#line 1672 "querytransformparser.ypp"
+#line 1706 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 32:
/* Line 1269 of yacc.c. */
-#line 1677 "querytransformparser.ypp"
+#line 1711 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 33:
/* Line 1269 of yacc.c. */
-#line 1681 "querytransformparser.ypp"
+#line 1715 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 34:
/* Line 1269 of yacc.c. */
-#line 1685 "querytransformparser.ypp"
+#line 1719 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 39:
/* Line 1269 of yacc.c. */
-#line 1696 "querytransformparser.ypp"
+#line 1730 "querytransformparser.ypp"
{
if(!(yyvsp[(6) - (7)].enums.Bool))
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if((yyvsp[(3) - (7)].sval) == QLatin1String("xmlns"))
{
@@ -4166,7 +4200,7 @@ yyreduce:
case 40:
/* Line 1269 of yacc.c. */
-#line 1742 "querytransformparser.ypp"
+#line 1776 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::BoundarySpaceDecl))
{
@@ -4183,7 +4217,7 @@ yyreduce:
case 41:
/* Line 1269 of yacc.c. */
-#line 1756 "querytransformparser.ypp"
+#line 1790 "querytransformparser.ypp"
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPStrip;
}
@@ -4191,7 +4225,7 @@ yyreduce:
case 42:
/* Line 1269 of yacc.c. */
-#line 1761 "querytransformparser.ypp"
+#line 1795 "querytransformparser.ypp"
{
(yyval.enums.boundarySpacePolicy) = StaticContext::BSPPreserve;
}
@@ -4199,7 +4233,7 @@ yyreduce:
case 45:
/* Line 1269 of yacc.c. */
-#line 1770 "querytransformparser.ypp"
+#line 1804 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultElementNamespace))
{
@@ -4216,7 +4250,7 @@ yyreduce:
case 46:
/* Line 1269 of yacc.c. */
-#line 1785 "querytransformparser.ypp"
+#line 1819 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DeclareDefaultFunctionNamespace))
{
@@ -4233,7 +4267,7 @@ yyreduce:
case 47:
/* Line 1269 of yacc.c. */
-#line 1799 "querytransformparser.ypp"
+#line 1833 "querytransformparser.ypp"
{
if((yyvsp[(3) - (5)].qName).prefix() == StandardPrefixes::empty)
{
@@ -4246,9 +4280,9 @@ yyreduce:
case 48:
/* Line 1269 of yacc.c. */
-#line 1809 "querytransformparser.ypp"
+#line 1843 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl))
{
parseInfo->staticContext->error(prologMessage("declare ordering"),
@@ -4264,7 +4298,7 @@ yyreduce:
case 49:
/* Line 1269 of yacc.c. */
-#line 1824 "querytransformparser.ypp"
+#line 1858 "querytransformparser.ypp"
{
(yyval.enums.orderingMode) = StaticContext::Ordered;
}
@@ -4272,7 +4306,7 @@ yyreduce:
case 50:
/* Line 1269 of yacc.c. */
-#line 1828 "querytransformparser.ypp"
+#line 1862 "querytransformparser.ypp"
{
(yyval.enums.orderingMode) = StaticContext::Unordered;
}
@@ -4280,7 +4314,7 @@ yyreduce:
case 51:
/* Line 1269 of yacc.c. */
-#line 1833 "querytransformparser.ypp"
+#line 1867 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::EmptyOrderDecl))
{
@@ -4297,7 +4331,7 @@ yyreduce:
case 52:
/* Line 1269 of yacc.c. */
-#line 1847 "querytransformparser.ypp"
+#line 1881 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = StaticContext::Least;
}
@@ -4305,7 +4339,7 @@ yyreduce:
case 53:
/* Line 1269 of yacc.c. */
-#line 1851 "querytransformparser.ypp"
+#line 1885 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = StaticContext::Greatest;
}
@@ -4313,7 +4347,7 @@ yyreduce:
case 54:
/* Line 1269 of yacc.c. */
-#line 1857 "querytransformparser.ypp"
+#line 1891 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::CopyNamespacesDecl))
{
@@ -4329,7 +4363,7 @@ yyreduce:
case 55:
/* Line 1269 of yacc.c. */
-#line 1870 "querytransformparser.ypp"
+#line 1904 "querytransformparser.ypp"
{
parseInfo->preserveNamespacesMode = true;
}
@@ -4337,7 +4371,7 @@ yyreduce:
case 56:
/* Line 1269 of yacc.c. */
-#line 1875 "querytransformparser.ypp"
+#line 1909 "querytransformparser.ypp"
{
parseInfo->preserveNamespacesMode = false;
}
@@ -4345,7 +4379,7 @@ yyreduce:
case 57:
/* Line 1269 of yacc.c. */
-#line 1880 "querytransformparser.ypp"
+#line 1914 "querytransformparser.ypp"
{
parseInfo->inheritNamespacesMode = true;
}
@@ -4353,7 +4387,7 @@ yyreduce:
case 58:
/* Line 1269 of yacc.c. */
-#line 1885 "querytransformparser.ypp"
+#line 1919 "querytransformparser.ypp"
{
parseInfo->inheritNamespacesMode = false;
}
@@ -4361,7 +4395,7 @@ yyreduce:
case 59:
/* Line 1269 of yacc.c. */
-#line 1890 "querytransformparser.ypp"
+#line 1924 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::DefaultCollationDecl))
{
@@ -4380,9 +4414,9 @@ yyreduce:
case 60:
/* Line 1269 of yacc.c. */
-#line 1906 "querytransformparser.ypp"
+#line 1940 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(3) - (5)].enums.Bool));
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc), (yyvsp[(3) - (5)].enums.Bool));
if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl))
{
parseInfo->staticContext->error(prologMessage("declare base-uri"),
@@ -4406,7 +4440,7 @@ yyreduce:
case 61:
/* Line 1269 of yacc.c. */
-#line 1929 "querytransformparser.ypp"
+#line 1963 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Import feature is not supported, "
"and therefore %1 declarations cannot occur.")
@@ -4417,7 +4451,7 @@ yyreduce:
case 65:
/* Line 1269 of yacc.c. */
-#line 1941 "querytransformparser.ypp"
+#line 1975 "querytransformparser.ypp"
{
if((yyvsp[(4) - (6)].sval).isEmpty())
{
@@ -4437,9 +4471,9 @@ yyreduce:
case 72:
/* Line 1269 of yacc.c. */
-#line 1968 "querytransformparser.ypp"
+#line 2002 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(3) - (9)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (9)].enums.Bool));
if(variableByName((yyvsp[(5) - (9)].qName), parseInfo))
{
parseInfo->staticContext->error(QtXmlPatterns::tr("A variable by name %1 has already "
@@ -4494,7 +4528,7 @@ yyreduce:
case 73:
/* Line 1269 of yacc.c. */
-#line 2022 "querytransformparser.ypp"
+#line 2056 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
@@ -4502,7 +4536,7 @@ yyreduce:
case 74:
/* Line 1269 of yacc.c. */
-#line 2026 "querytransformparser.ypp"
+#line 2060 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
@@ -4510,7 +4544,7 @@ yyreduce:
case 75:
/* Line 1269 of yacc.c. */
-#line 2031 "querytransformparser.ypp"
+#line 2065 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
@@ -4518,7 +4552,7 @@ yyreduce:
case 76:
/* Line 1269 of yacc.c. */
-#line 2035 "querytransformparser.ypp"
+#line 2069 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
@@ -4526,7 +4560,7 @@ yyreduce:
case 77:
/* Line 1269 of yacc.c. */
-#line 2040 "querytransformparser.ypp"
+#line 2074 "querytransformparser.ypp"
{
if(parseInfo->hasDeclaration(ParserContext::ConstructionDecl))
{
@@ -4543,7 +4577,7 @@ yyreduce:
case 78:
/* Line 1269 of yacc.c. */
-#line 2054 "querytransformparser.ypp"
+#line 2088 "querytransformparser.ypp"
{
(yyval.enums.constructionMode) = StaticContext::CMStrip;
}
@@ -4551,7 +4585,7 @@ yyreduce:
case 79:
/* Line 1269 of yacc.c. */
-#line 2058 "querytransformparser.ypp"
+#line 2092 "querytransformparser.ypp"
{
(yyval.enums.constructionMode) = StaticContext::CMPreserve;
}
@@ -4559,7 +4593,7 @@ yyreduce:
case 80:
/* Line 1269 of yacc.c. */
-#line 2063 "querytransformparser.ypp"
+#line 2097 "querytransformparser.ypp"
{
(yyval.enums.slot) = parseInfo->currentExpressionSlot() - (yyvsp[(6) - (7)].functionArguments).count();
}
@@ -4567,10 +4601,10 @@ yyreduce:
case 81:
/* Line 1269 of yacc.c. */
-#line 2067 "querytransformparser.ypp"
+#line 2101 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (11)].enums.Bool))
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(3) - (11)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(3) - (11)].enums.Bool));
/* If FunctionBody is null, it is 'external', otherwise the value is the body. */
const QXmlName::NamespaceCode ns((yyvsp[(4) - (11)].qName).namespaceURI());
@@ -4674,7 +4708,7 @@ yyreduce:
case 82:
/* Line 1269 of yacc.c. */
-#line 2171 "querytransformparser.ypp"
+#line 2205 "querytransformparser.ypp"
{
(yyval.functionArguments) = FunctionArgument::List();
}
@@ -4682,7 +4716,7 @@ yyreduce:
case 83:
/* Line 1269 of yacc.c. */
-#line 2175 "querytransformparser.ypp"
+#line 2209 "querytransformparser.ypp"
{
FunctionArgument::List l;
l.append((yyvsp[(1) - (1)].functionArgument));
@@ -4692,7 +4726,7 @@ yyreduce:
case 84:
/* Line 1269 of yacc.c. */
-#line 2181 "querytransformparser.ypp"
+#line 2215 "querytransformparser.ypp"
{
FunctionArgument::List::const_iterator it((yyvsp[(1) - (3)].functionArguments).constBegin());
const FunctionArgument::List::const_iterator end((yyvsp[(1) - (3)].functionArguments).constEnd());
@@ -4716,7 +4750,7 @@ yyreduce:
case 85:
/* Line 1269 of yacc.c. */
-#line 2202 "querytransformparser.ypp"
+#line 2236 "querytransformparser.ypp"
{
pushVariable((yyvsp[(2) - (3)].qName), (yyvsp[(3) - (3)].sequenceType), Expression::Ptr(), VariableDeclaration::FunctionArgument, (yyloc), parseInfo);
(yyval.functionArgument) = FunctionArgument::Ptr(new FunctionArgument((yyvsp[(2) - (3)].qName), (yyvsp[(3) - (3)].sequenceType)));
@@ -4725,7 +4759,7 @@ yyreduce:
case 86:
/* Line 1269 of yacc.c. */
-#line 2208 "querytransformparser.ypp"
+#line 2242 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
@@ -4733,7 +4767,7 @@ yyreduce:
case 88:
/* Line 1269 of yacc.c. */
-#line 2214 "querytransformparser.ypp"
+#line 2248 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
}
@@ -4741,7 +4775,7 @@ yyreduce:
case 91:
/* Line 1269 of yacc.c. */
-#line 2230 "querytransformparser.ypp"
+#line 2264 "querytransformparser.ypp"
{
(yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), CombineNodes::Union, (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
@@ -4749,7 +4783,7 @@ yyreduce:
case 93:
/* Line 1269 of yacc.c. */
-#line 2236 "querytransformparser.ypp"
+#line 2270 "querytransformparser.ypp"
{
/* We write this into a node test. The spec says, 5.5.3 The Meaning of a Pattern:
* "Similarly, / matches a document node, and only a document node,
@@ -4762,7 +4796,7 @@ yyreduce:
case 94:
/* Line 1269 of yacc.c. */
-#line 2245 "querytransformparser.ypp"
+#line 2279 "querytransformparser.ypp"
{
/* /axis::node-test
* =>
@@ -4836,7 +4870,7 @@ yyreduce:
case 95:
/* Line 1269 of yacc.c. */
-#line 2315 "querytransformparser.ypp"
+#line 2349 "querytransformparser.ypp"
{
/* //axis::node-test
* =>
@@ -4851,7 +4885,7 @@ yyreduce:
case 97:
/* Line 1269 of yacc.c. */
-#line 2327 "querytransformparser.ypp"
+#line 2361 "querytransformparser.ypp"
{
createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo);
}
@@ -4859,7 +4893,7 @@ yyreduce:
case 98:
/* Line 1269 of yacc.c. */
-#line 2331 "querytransformparser.ypp"
+#line 2365 "querytransformparser.ypp"
{
createIdPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo);
}
@@ -4867,7 +4901,7 @@ yyreduce:
case 99:
/* Line 1269 of yacc.c. */
-#line 2336 "querytransformparser.ypp"
+#line 2370 "querytransformparser.ypp"
{
const Expression::List ands((yyvsp[(1) - (1)].expr)->operands());
const FunctionSignature::Ptr signature((yyvsp[(1) - (1)].expr)->as<FunctionCall>()->signature());
@@ -4939,7 +4973,7 @@ yyreduce:
case 101:
/* Line 1269 of yacc.c. */
-#line 2406 "querytransformparser.ypp"
+#line 2440 "querytransformparser.ypp"
{
(yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisParent, (yylsp[(2) - (3)]), parseInfo);
}
@@ -4947,7 +4981,7 @@ yyreduce:
case 102:
/* Line 1269 of yacc.c. */
-#line 2410 "querytransformparser.ypp"
+#line 2444 "querytransformparser.ypp"
{
(yyval.expr) = createPatternPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), QXmlNodeModelIndex::AxisAncestor, (yylsp[(2) - (3)]), parseInfo);
}
@@ -4955,7 +4989,7 @@ yyreduce:
case 103:
/* Line 1269 of yacc.c. */
-#line 2415 "querytransformparser.ypp"
+#line 2449 "querytransformparser.ypp"
{
const Expression::Ptr expr(findAxisStep((yyvsp[(1) - (1)].expr)));
@@ -5002,7 +5036,7 @@ yyreduce:
case 105:
/* Line 1269 of yacc.c. */
-#line 2460 "querytransformparser.ypp"
+#line 2494 "querytransformparser.ypp"
{
(yyval.expr) = create(new ExpressionSequence((yyvsp[(1) - (1)].expressionList)), (yyloc), parseInfo);
}
@@ -5010,7 +5044,7 @@ yyreduce:
case 106:
/* Line 1269 of yacc.c. */
-#line 2465 "querytransformparser.ypp"
+#line 2499 "querytransformparser.ypp"
{
Expression::List l;
l.append((yyvsp[(1) - (3)].expr));
@@ -5021,7 +5055,7 @@ yyreduce:
case 107:
/* Line 1269 of yacc.c. */
-#line 2472 "querytransformparser.ypp"
+#line 2506 "querytransformparser.ypp"
{
(yyvsp[(1) - (3)].expressionList).append((yyvsp[(3) - (3)].expr));
(yyval.expressionList) = (yyvsp[(1) - (3)].expressionList);
@@ -5030,7 +5064,7 @@ yyreduce:
case 113:
/* Line 1269 of yacc.c. */
-#line 2483 "querytransformparser.ypp"
+#line 2517 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(3) - (4)].expressionList), parseInfo, (yyloc));
}
@@ -5038,7 +5072,7 @@ yyreduce:
case 114:
/* Line 1269 of yacc.c. */
-#line 2488 "querytransformparser.ypp"
+#line 2522 "querytransformparser.ypp"
{
QVector<QXmlName> result;
result.append(QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default));
@@ -5048,7 +5082,7 @@ yyreduce:
case 115:
/* Line 1269 of yacc.c. */
-#line 2494 "querytransformparser.ypp"
+#line 2528 "querytransformparser.ypp"
{
(yyval.qNameVector) = (yyvsp[(2) - (2)].qNameVector);
}
@@ -5056,7 +5090,7 @@ yyreduce:
case 116:
/* Line 1269 of yacc.c. */
-#line 2499 "querytransformparser.ypp"
+#line 2533 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::Default);
}
@@ -5064,7 +5098,7 @@ yyreduce:
case 117:
/* Line 1269 of yacc.c. */
-#line 2503 "querytransformparser.ypp"
+#line 2537 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (2)].qName);
}
@@ -5072,7 +5106,7 @@ yyreduce:
case 118:
/* Line 1269 of yacc.c. */
-#line 2508 "querytransformparser.ypp"
+#line 2542 "querytransformparser.ypp"
{
QVector<QXmlName> result;
result.append((yyvsp[(1) - (1)].qName));
@@ -5082,7 +5116,7 @@ yyreduce:
case 119:
/* Line 1269 of yacc.c. */
-#line 2514 "querytransformparser.ypp"
+#line 2548 "querytransformparser.ypp"
{
(yyvsp[(1) - (3)].qNameVector).append((yyvsp[(3) - (3)].qName));
(yyval.qNameVector) = (yyvsp[(1) - (3)].qNameVector);
@@ -5091,7 +5125,7 @@ yyreduce:
case 120:
/* Line 1269 of yacc.c. */
-#line 2520 "querytransformparser.ypp"
+#line 2554 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(1) - (1)].qName);
}
@@ -5099,7 +5133,7 @@ yyreduce:
case 121:
/* Line 1269 of yacc.c. */
-#line 2524 "querytransformparser.ypp"
+#line 2558 "querytransformparser.ypp"
{
if((yyvsp[(1) - (1)].sval) == QLatin1String("#current"))
(yyval.qName) = QXmlName(StandardNamespaces::InternalXSLT, StandardLocalNames::current);
@@ -5126,7 +5160,7 @@ yyreduce:
case 124:
/* Line 1269 of yacc.c. */
-#line 2553 "querytransformparser.ypp"
+#line 2587 "querytransformparser.ypp"
{
/* We're pushing the range variable here, not the positional. */
(yyval.expr) = pushVariable((yyvsp[(3) - (7)].qName), quantificationType((yyvsp[(4) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5135,7 +5169,7 @@ yyreduce:
case 125:
/* Line 1269 of yacc.c. */
-#line 2557 "querytransformparser.ypp"
+#line 2591 "querytransformparser.ypp"
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
@@ -5146,7 +5180,7 @@ yyreduce:
case 126:
/* Line 1269 of yacc.c. */
-#line 2564 "querytransformparser.ypp"
+#line 2598 "querytransformparser.ypp"
{
Q_ASSERT((yyvsp[(7) - (10)].expr));
Q_ASSERT((yyvsp[(10) - (10)].expr));
@@ -5182,7 +5216,7 @@ yyreduce:
case 127:
/* Line 1269 of yacc.c. */
-#line 2598 "querytransformparser.ypp"
+#line 2632 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (7)].qName), quantificationType((yyvsp[(4) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::RangeVariable, (yyloc), parseInfo);
}
@@ -5190,7 +5224,7 @@ yyreduce:
case 128:
/* Line 1269 of yacc.c. */
-#line 2601 "querytransformparser.ypp"
+#line 2635 "querytransformparser.ypp"
{
/* It is ok this appears after PositionalVar, because currentRangeSlot()
* uses a different "channel" than currentPositionSlot(), so they can't trash
@@ -5201,7 +5235,7 @@ yyreduce:
case 129:
/* Line 1269 of yacc.c. */
-#line 2608 "querytransformparser.ypp"
+#line 2642 "querytransformparser.ypp"
{
(yyval.expr) = create(new ForClause((yyvsp[(9) - (10)].enums.slot), (yyvsp[(7) - (10)].expr), (yyvsp[(10) - (10)].expr), (yyvsp[(5) - (10)].enums.slot)), (yyloc), parseInfo);
@@ -5214,7 +5248,7 @@ yyreduce:
case 133:
/* Line 1269 of yacc.c. */
-#line 2622 "querytransformparser.ypp"
+#line 2656 "querytransformparser.ypp"
{
(yyval.enums.slot) = -1;
}
@@ -5222,7 +5256,7 @@ yyreduce:
case 134:
/* Line 1269 of yacc.c. */
-#line 2627 "querytransformparser.ypp"
+#line 2661 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (3)].qName), CommonSequenceTypes::ExactlyOneInteger, Expression::Ptr(),
VariableDeclaration::PositionalVariable, (yyloc), parseInfo);
@@ -5232,7 +5266,7 @@ yyreduce:
case 135:
/* Line 1269 of yacc.c. */
-#line 2634 "querytransformparser.ypp"
+#line 2668 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(4) - (7)].qName), quantificationType((yyvsp[(5) - (7)].sequenceType)), (yyvsp[(7) - (7)].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);
}
@@ -5240,9 +5274,9 @@ yyreduce:
case 136:
/* Line 1269 of yacc.c. */
-#line 2638 "querytransformparser.ypp"
+#line 2672 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (9)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (9)].enums.Bool));
Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[(4) - (9)].qName));
(yyval.expr) = create(new LetClause((yyvsp[(8) - (9)].expr), (yyvsp[(9) - (9)].expr), parseInfo->variables.top()), (yyloc), parseInfo);
@@ -5252,13 +5286,13 @@ yyreduce:
case 137:
/* Line 1269 of yacc.c. */
-#line 2647 "querytransformparser.ypp"
+#line 2681 "querytransformparser.ypp"
{ (yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr), VariableDeclaration::ExpressionVariable, (yyloc), parseInfo);}
break;
case 138:
/* Line 1269 of yacc.c. */
-#line 2649 "querytransformparser.ypp"
+#line 2683 "querytransformparser.ypp"
{
Q_ASSERT(parseInfo->variables.top()->name == (yyvsp[(3) - (8)].qName));
(yyval.expr) = create(new LetClause((yyvsp[(7) - (8)].expr), (yyvsp[(8) - (8)].expr), parseInfo->variables.top()), (yyloc), parseInfo);
@@ -5268,7 +5302,7 @@ yyreduce:
case 142:
/* Line 1269 of yacc.c. */
-#line 2660 "querytransformparser.ypp"
+#line 2694 "querytransformparser.ypp"
{
if((yyvsp[(1) - (3)].orderSpecs).isEmpty())
(yyval.expr) = (yyvsp[(3) - (3)].expr);
@@ -5279,7 +5313,7 @@ yyreduce:
case 143:
/* Line 1269 of yacc.c. */
-#line 2668 "querytransformparser.ypp"
+#line 2702 "querytransformparser.ypp"
{
if((yyvsp[(3) - (5)].orderSpecs).isEmpty())
(yyval.expr) = create(new IfThenClause((yyvsp[(2) - (5)].expr), (yyvsp[(5) - (5)].expr), create(new EmptySequence, (yyloc), parseInfo)), (yyloc), parseInfo);
@@ -5292,7 +5326,7 @@ yyreduce:
case 144:
/* Line 1269 of yacc.c. */
-#line 2678 "querytransformparser.ypp"
+#line 2712 "querytransformparser.ypp"
{
(yyval.orderSpecs) = OrderSpecTransfer::List();
}
@@ -5300,7 +5334,7 @@ yyreduce:
case 146:
/* Line 1269 of yacc.c. */
-#line 2684 "querytransformparser.ypp"
+#line 2718 "querytransformparser.ypp"
{
(yyval.orderSpecs) = (yyvsp[(2) - (2)].orderSpecs);
}
@@ -5308,7 +5342,7 @@ yyreduce:
case 147:
/* Line 1269 of yacc.c. */
-#line 2689 "querytransformparser.ypp"
+#line 2723 "querytransformparser.ypp"
{
OrderSpecTransfer::List list;
list += (yyvsp[(1) - (3)].orderSpecs);
@@ -5319,7 +5353,7 @@ yyreduce:
case 148:
/* Line 1269 of yacc.c. */
-#line 2696 "querytransformparser.ypp"
+#line 2730 "querytransformparser.ypp"
{
OrderSpecTransfer::List list;
list.append((yyvsp[(1) - (1)].orderSpec));
@@ -5329,7 +5363,7 @@ yyreduce:
case 149:
/* Line 1269 of yacc.c. */
-#line 2703 "querytransformparser.ypp"
+#line 2737 "querytransformparser.ypp"
{
(yyval.orderSpec) = OrderSpecTransfer((yyvsp[(1) - (4)].expr), OrderBy::OrderSpec((yyvsp[(2) - (4)].enums.sortDirection), (yyvsp[(3) - (4)].enums.orderingEmptySequence)));
}
@@ -5337,7 +5371,7 @@ yyreduce:
case 150:
/* Line 1269 of yacc.c. */
-#line 2708 "querytransformparser.ypp"
+#line 2742 "querytransformparser.ypp"
{
/* Where does the specification state the default value is ascending?
*
@@ -5361,7 +5395,7 @@ yyreduce:
case 151:
/* Line 1269 of yacc.c. */
-#line 2729 "querytransformparser.ypp"
+#line 2763 "querytransformparser.ypp"
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Ascending;
}
@@ -5369,7 +5403,7 @@ yyreduce:
case 152:
/* Line 1269 of yacc.c. */
-#line 2734 "querytransformparser.ypp"
+#line 2768 "querytransformparser.ypp"
{
(yyval.enums.sortDirection) = OrderBy::OrderSpec::Descending;
}
@@ -5377,7 +5411,7 @@ yyreduce:
case 153:
/* Line 1269 of yacc.c. */
-#line 2739 "querytransformparser.ypp"
+#line 2773 "querytransformparser.ypp"
{
(yyval.enums.orderingEmptySequence) = parseInfo->staticContext->orderingEmptySequence();
}
@@ -5385,7 +5419,7 @@ yyreduce:
case 156:
/* Line 1269 of yacc.c. */
-#line 2746 "querytransformparser.ypp"
+#line 2780 "querytransformparser.ypp"
{
if(parseInfo->isXSLT())
resolveAndCheckCollation<ReportContext::XTDE1035>((yyvsp[(2) - (2)].sval), parseInfo, (yyloc));
@@ -5396,7 +5430,7 @@ yyreduce:
case 157:
/* Line 1269 of yacc.c. */
-#line 2753 "querytransformparser.ypp"
+#line 2787 "querytransformparser.ypp"
{
/* We do nothing. We don't use collations, and we have this non-terminal
* in order to accept expressions. */
@@ -5405,7 +5439,7 @@ yyreduce:
case 158:
/* Line 1269 of yacc.c. */
-#line 2759 "querytransformparser.ypp"
+#line 2793 "querytransformparser.ypp"
{
parseInfo->orderStability.push(OrderBy::StableOrder);
}
@@ -5413,7 +5447,7 @@ yyreduce:
case 159:
/* Line 1269 of yacc.c. */
-#line 2763 "querytransformparser.ypp"
+#line 2797 "querytransformparser.ypp"
{
parseInfo->orderStability.push(OrderBy::UnstableOrder);
}
@@ -5421,7 +5455,7 @@ yyreduce:
case 162:
/* Line 1269 of yacc.c. */
-#line 2771 "querytransformparser.ypp"
+#line 2805 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5430,14 +5464,15 @@ yyreduce:
case 163:
/* Line 1269 of yacc.c. */
-#line 2775 "querytransformparser.ypp"
+#line 2809 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 164:
/* Line 1269 of yacc.c. */
-#line 2777 "querytransformparser.ypp"
+#line 2811 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Some, (yyvsp[(6) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
@@ -5446,7 +5481,7 @@ yyreduce:
case 165:
/* Line 1269 of yacc.c. */
-#line 2784 "querytransformparser.ypp"
+#line 2819 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5455,13 +5490,13 @@ yyreduce:
case 166:
/* Line 1269 of yacc.c. */
-#line 2788 "querytransformparser.ypp"
+#line 2823 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 167:
/* Line 1269 of yacc.c. */
-#line 2790 "querytransformparser.ypp"
+#line 2825 "querytransformparser.ypp"
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Some, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
@@ -5471,7 +5506,7 @@ yyreduce:
case 169:
/* Line 1269 of yacc.c. */
-#line 2799 "querytransformparser.ypp"
+#line 2834 "querytransformparser.ypp"
{
pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5480,14 +5515,15 @@ yyreduce:
case 170:
/* Line 1269 of yacc.c. */
-#line 2803 "querytransformparser.ypp"
+#line 2838 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 171:
/* Line 1269 of yacc.c. */
-#line 2805 "querytransformparser.ypp"
+#line 2840 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Every, (yyvsp[(6) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
parseInfo->finalizePushedVariable();
@@ -5496,7 +5532,7 @@ yyreduce:
case 172:
/* Line 1269 of yacc.c. */
-#line 2812 "querytransformparser.ypp"
+#line 2848 "querytransformparser.ypp"
{
(yyval.expr) = pushVariable((yyvsp[(3) - (6)].qName), quantificationType((yyvsp[(4) - (6)].sequenceType)), (yyvsp[(6) - (6)].expr),
VariableDeclaration::RangeVariable, (yyloc), parseInfo);
@@ -5505,13 +5541,13 @@ yyreduce:
case 173:
/* Line 1269 of yacc.c. */
-#line 2816 "querytransformparser.ypp"
+#line 2852 "querytransformparser.ypp"
{(yyval.enums.slot) = parseInfo->staticContext->currentRangeSlot();}
break;
case 174:
/* Line 1269 of yacc.c. */
-#line 2818 "querytransformparser.ypp"
+#line 2854 "querytransformparser.ypp"
{
(yyval.expr) = create(new QuantifiedExpression((yyvsp[(8) - (9)].enums.slot),
QuantifiedExpression::Every, (yyvsp[(7) - (9)].expr), (yyvsp[(9) - (9)].expr)), (yyloc), parseInfo);
@@ -5521,7 +5557,7 @@ yyreduce:
case 176:
/* Line 1269 of yacc.c. */
-#line 2827 "querytransformparser.ypp"
+#line 2863 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
@@ -5529,7 +5565,7 @@ yyreduce:
case 177:
/* Line 1269 of yacc.c. */
-#line 2854 "querytransformparser.ypp"
+#line 2890 "querytransformparser.ypp"
{
parseInfo->typeswitchSource.push((yyvsp[(3) - (4)].expr));
}
@@ -5537,9 +5573,9 @@ yyreduce:
case 178:
/* Line 1269 of yacc.c. */
-#line 2858 "querytransformparser.ypp"
+#line 2894 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->typeswitchSource.pop();
(yyval.expr) = (yyvsp[(6) - (6)].expr);
}
@@ -5547,7 +5583,7 @@ yyreduce:
case 179:
/* Line 1269 of yacc.c. */
-#line 2865 "querytransformparser.ypp"
+#line 2901 "querytransformparser.ypp"
{
if(!(yyvsp[(2) - (3)].qName).isNull())
{
@@ -5559,7 +5595,7 @@ yyreduce:
case 180:
/* Line 1269 of yacc.c. */
-#line 2873 "querytransformparser.ypp"
+#line 2909 "querytransformparser.ypp"
{
/* The variable shouldn't be in-scope for other case branches. */
if(!(yyvsp[(2) - (6)].qName).isNull())
@@ -5569,7 +5605,7 @@ yyreduce:
case 181:
/* Line 1269 of yacc.c. */
-#line 2879 "querytransformparser.ypp"
+#line 2915 "querytransformparser.ypp"
{
const Expression::Ptr instanceOf(create(new InstanceOf(parseInfo->typeswitchSource.top(), (yyvsp[(3) - (8)].sequenceType)), (yyloc), parseInfo));
(yyval.expr) = create(new IfThenClause(instanceOf, (yyvsp[(6) - (8)].expr), (yyvsp[(8) - (8)].expr)), (yyloc), parseInfo);
@@ -5578,7 +5614,7 @@ yyreduce:
case 184:
/* Line 1269 of yacc.c. */
-#line 2888 "querytransformparser.ypp"
+#line 2924 "querytransformparser.ypp"
{
(yyval.qName) = QXmlName();
}
@@ -5586,7 +5622,7 @@ yyreduce:
case 185:
/* Line 1269 of yacc.c. */
-#line 2893 "querytransformparser.ypp"
+#line 2929 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(2) - (3)].qName);
}
@@ -5594,7 +5630,7 @@ yyreduce:
case 186:
/* Line 1269 of yacc.c. */
-#line 2898 "querytransformparser.ypp"
+#line 2934 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(3) - (3)].expr);
}
@@ -5602,7 +5638,7 @@ yyreduce:
case 187:
/* Line 1269 of yacc.c. */
-#line 2902 "querytransformparser.ypp"
+#line 2938 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (3)].qName).isNull())
{
@@ -5615,7 +5651,7 @@ yyreduce:
case 188:
/* Line 1269 of yacc.c. */
-#line 2911 "querytransformparser.ypp"
+#line 2947 "querytransformparser.ypp"
{
if(!(yyvsp[(3) - (6)].qName).isNull())
parseInfo->finalizePushedVariable();
@@ -5625,107 +5661,119 @@ yyreduce:
case 189:
/* Line 1269 of yacc.c. */
-#line 2918 "querytransformparser.ypp"
+#line 2954 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new IfThenClause((yyvsp[(3) - (8)].expr), (yyvsp[(6) - (8)].expr), (yyvsp[(8) - (8)].expr)), (yyloc), parseInfo);
}
break;
case 191:
/* Line 1269 of yacc.c. */
-#line 2924 "querytransformparser.ypp"
+#line 2961 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new OrExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 193:
/* Line 1269 of yacc.c. */
-#line 2930 "querytransformparser.ypp"
+#line 2968 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new AndExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 199:
/* Line 1269 of yacc.c. */
-#line 2941 "querytransformparser.ypp"
+#line 2980 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new RangeExpression((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 201:
/* Line 1269 of yacc.c. */
-#line 2947 "querytransformparser.ypp"
+#line 2987 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new ArithmeticExpression((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.mathOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 202:
/* Line 1269 of yacc.c. */
-#line 2951 "querytransformparser.ypp"
+#line 2992 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Add;}
break;
case 203:
/* Line 1269 of yacc.c. */
-#line 2952 "querytransformparser.ypp"
+#line 2993 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Substract;}
break;
case 205:
/* Line 1269 of yacc.c. */
-#line 2956 "querytransformparser.ypp"
+#line 2997 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new ArithmeticExpression((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.mathOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 206:
/* Line 1269 of yacc.c. */
-#line 2960 "querytransformparser.ypp"
+#line 3002 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Multiply;}
break;
case 207:
/* Line 1269 of yacc.c. */
-#line 2961 "querytransformparser.ypp"
+#line 3003 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Div;}
break;
case 208:
/* Line 1269 of yacc.c. */
-#line 2962 "querytransformparser.ypp"
+#line 3004 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::IDiv;}
break;
case 209:
/* Line 1269 of yacc.c. */
-#line 2963 "querytransformparser.ypp"
+#line 3005 "querytransformparser.ypp"
{(yyval.enums.mathOperator) = AtomicMathematician::Mod;}
break;
case 211:
/* Line 1269 of yacc.c. */
-#line 2967 "querytransformparser.ypp"
+#line 3009 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10
+ | QXmlQuery::XPath20
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XmlSchema11IdentityConstraintSelector),
+ parseInfo, (yyloc));
(yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), CombineNodes::Union, (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 213:
/* Line 1269 of yacc.c. */
-#line 2973 "querytransformparser.ypp"
+#line 3020 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CombineNodes((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.combinedNodeOp), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
break;
case 216:
/* Line 1269 of yacc.c. */
-#line 2981 "querytransformparser.ypp"
+#line 3029 "querytransformparser.ypp"
{
(yyval.enums.combinedNodeOp) = CombineNodes::Intersect;
}
@@ -5733,7 +5781,7 @@ yyreduce:
case 217:
/* Line 1269 of yacc.c. */
-#line 2985 "querytransformparser.ypp"
+#line 3033 "querytransformparser.ypp"
{
(yyval.enums.combinedNodeOp) = CombineNodes::Except;
}
@@ -5741,48 +5789,53 @@ yyreduce:
case 219:
/* Line 1269 of yacc.c. */
-#line 2991 "querytransformparser.ypp"
+#line 3039 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new InstanceOf((yyvsp[(1) - (4)].expr),
- SequenceType::Ptr((yyvsp[(4) - (4)].sequenceType))), (yyloc), parseInfo);
+ SequenceType::Ptr((yyvsp[(4) - (4)].sequenceType))), (yyloc), parseInfo);
}
break;
case 221:
/* Line 1269 of yacc.c. */
-#line 2998 "querytransformparser.ypp"
+#line 3047 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new TreatAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
}
break;
case 223:
/* Line 1269 of yacc.c. */
-#line 3004 "querytransformparser.ypp"
+#line 3054 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastableAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
}
break;
case 225:
/* Line 1269 of yacc.c. */
-#line 3010 "querytransformparser.ypp"
+#line 3061 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new CastAs((yyvsp[(1) - (4)].expr), (yyvsp[(4) - (4)].sequenceType)), (yyloc), parseInfo);
}
break;
case 227:
/* Line 1269 of yacc.c. */
-#line 3016 "querytransformparser.ypp"
+#line 3068 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new UnaryExpression((yyvsp[(1) - (2)].enums.mathOperator), (yyvsp[(2) - (2)].expr), parseInfo->staticContext), (yyloc), parseInfo);
}
break;
case 228:
/* Line 1269 of yacc.c. */
-#line 3021 "querytransformparser.ypp"
+#line 3074 "querytransformparser.ypp"
{
(yyval.enums.mathOperator) = AtomicMathematician::Add;
}
@@ -5790,7 +5843,7 @@ yyreduce:
case 229:
/* Line 1269 of yacc.c. */
-#line 3025 "querytransformparser.ypp"
+#line 3078 "querytransformparser.ypp"
{
(yyval.enums.mathOperator) = AtomicMathematician::Substract;
}
@@ -5798,51 +5851,52 @@ yyreduce:
case 233:
/* Line 1269 of yacc.c. */
-#line 3034 "querytransformparser.ypp"
+#line 3087 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new GeneralComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.valueOperator), (yyvsp[(3) - (3)].expr), parseInfo->isBackwardsCompat.top()), (yyloc), parseInfo);
}
break;
case 234:
/* Line 1269 of yacc.c. */
-#line 3038 "querytransformparser.ypp"
+#line 3092 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
break;
case 235:
/* Line 1269 of yacc.c. */
-#line 3039 "querytransformparser.ypp"
+#line 3093 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
break;
case 236:
/* Line 1269 of yacc.c. */
-#line 3040 "querytransformparser.ypp"
+#line 3094 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
break;
case 237:
/* Line 1269 of yacc.c. */
-#line 3041 "querytransformparser.ypp"
+#line 3095 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
break;
case 238:
/* Line 1269 of yacc.c. */
-#line 3042 "querytransformparser.ypp"
+#line 3096 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
break;
case 239:
/* Line 1269 of yacc.c. */
-#line 3043 "querytransformparser.ypp"
+#line 3097 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
break;
case 240:
/* Line 1269 of yacc.c. */
-#line 3046 "querytransformparser.ypp"
+#line 3100 "querytransformparser.ypp"
{
(yyval.expr) = create(new ValueComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.valueOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
@@ -5850,43 +5904,43 @@ yyreduce:
case 241:
/* Line 1269 of yacc.c. */
-#line 3050 "querytransformparser.ypp"
+#line 3104 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorEqual;}
break;
case 242:
/* Line 1269 of yacc.c. */
-#line 3051 "querytransformparser.ypp"
+#line 3105 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorNotEqual;}
break;
case 243:
/* Line 1269 of yacc.c. */
-#line 3052 "querytransformparser.ypp"
+#line 3106 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterOrEqual;}
break;
case 244:
/* Line 1269 of yacc.c. */
-#line 3053 "querytransformparser.ypp"
+#line 3107 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorGreaterThan;}
break;
case 245:
/* Line 1269 of yacc.c. */
-#line 3054 "querytransformparser.ypp"
+#line 3108 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessOrEqual;}
break;
case 246:
/* Line 1269 of yacc.c. */
-#line 3055 "querytransformparser.ypp"
+#line 3109 "querytransformparser.ypp"
{(yyval.enums.valueOperator) = AtomicComparator::OperatorLessThan;}
break;
case 247:
/* Line 1269 of yacc.c. */
-#line 3058 "querytransformparser.ypp"
+#line 3112 "querytransformparser.ypp"
{
(yyval.expr) = create(new NodeComparison((yyvsp[(1) - (3)].expr), (yyvsp[(2) - (3)].enums.nodeOperator), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
@@ -5894,27 +5948,27 @@ yyreduce:
case 248:
/* Line 1269 of yacc.c. */
-#line 3062 "querytransformparser.ypp"
+#line 3116 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Is;}
break;
case 249:
/* Line 1269 of yacc.c. */
-#line 3063 "querytransformparser.ypp"
+#line 3117 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Precedes;}
break;
case 250:
/* Line 1269 of yacc.c. */
-#line 3064 "querytransformparser.ypp"
+#line 3118 "querytransformparser.ypp"
{(yyval.enums.nodeOperator) = QXmlNodeModelIndex::Follows;}
break;
case 251:
/* Line 1269 of yacc.c. */
-#line 3067 "querytransformparser.ypp"
+#line 3121 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. "
"Hence, %1-expressions may not be used.")
.arg(formatKeyword("validate")),
@@ -5927,26 +5981,27 @@ yyreduce:
case 252:
/* Line 1269 of yacc.c. */
-#line 3080 "querytransformparser.ypp"
+#line 3134 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Strict;}
break;
case 253:
/* Line 1269 of yacc.c. */
-#line 3081 "querytransformparser.ypp"
+#line 3135 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Strict;}
break;
case 254:
/* Line 1269 of yacc.c. */
-#line 3082 "querytransformparser.ypp"
+#line 3136 "querytransformparser.ypp"
{(yyval.enums.validationMode) = Validate::Lax;}
break;
case 255:
/* Line 1269 of yacc.c. */
-#line 3085 "querytransformparser.ypp"
+#line 3139 "querytransformparser.ypp"
{
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
/* We don't support any pragmas, so we only do the
* necessary validation and use the fallback expression. */
@@ -5964,7 +6019,7 @@ yyreduce:
case 256:
/* Line 1269 of yacc.c. */
-#line 3101 "querytransformparser.ypp"
+#line 3156 "querytransformparser.ypp"
{
(yyval.expr).reset();
}
@@ -5972,7 +6027,7 @@ yyreduce:
case 257:
/* Line 1269 of yacc.c. */
-#line 3105 "querytransformparser.ypp"
+#line 3160 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (3)].expr);
}
@@ -5980,15 +6035,15 @@ yyreduce:
case 260:
/* Line 1269 of yacc.c. */
-#line 3113 "querytransformparser.ypp"
+#line 3168 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 263:
/* Line 1269 of yacc.c. */
-#line 3121 "querytransformparser.ypp"
+#line 3176 "querytransformparser.ypp"
{
/* This is "/step". That is, fn:root(self::node()) treat as document-node()/RelativePathExpr. */
(yyval.expr) = create(new Path(createRootExpression(parseInfo, (yyloc)), (yyvsp[(2) - (2)].expr)), (yyloc), parseInfo);
@@ -5997,7 +6052,7 @@ yyreduce:
case 264:
/* Line 1269 of yacc.c. */
-#line 3127 "querytransformparser.ypp"
+#line 3182 "querytransformparser.ypp"
{
(yyval.expr) = createSlashSlashPath(createRootExpression(parseInfo, (yyloc)), (yyvsp[(2) - (2)].expr), (yyloc), parseInfo);
}
@@ -6005,7 +6060,7 @@ yyreduce:
case 265:
/* Line 1269 of yacc.c. */
-#line 3131 "querytransformparser.ypp"
+#line 3186 "querytransformparser.ypp"
{
/* This is "/". That is, fn:root(self::node()) treat as document-node(). */
(yyval.expr) = createRootExpression(parseInfo, (yyloc));
@@ -6014,7 +6069,7 @@ yyreduce:
case 268:
/* Line 1269 of yacc.c. */
-#line 3141 "querytransformparser.ypp"
+#line 3196 "querytransformparser.ypp"
{
(yyval.expr) = create(new Path((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyvsp[(2) - (3)].enums.pathKind)), (yyloc), parseInfo);
}
@@ -6022,7 +6077,7 @@ yyreduce:
case 269:
/* Line 1269 of yacc.c. */
-#line 3145 "querytransformparser.ypp"
+#line 3200 "querytransformparser.ypp"
{
const Expression::Ptr orderBy(createReturnOrderBy((yyvsp[(4) - (7)].orderSpecs), (yyvsp[(6) - (7)].expr), parseInfo->orderStability.pop(), (yyloc), parseInfo));
@@ -6035,7 +6090,7 @@ yyreduce:
case 270:
/* Line 1269 of yacc.c. */
-#line 3154 "querytransformparser.ypp"
+#line 3209 "querytransformparser.ypp"
{
(yyval.expr) = createSlashSlashPath((yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr), (yyloc), parseInfo);
}
@@ -6043,7 +6098,7 @@ yyreduce:
case 271:
/* Line 1269 of yacc.c. */
-#line 3159 "querytransformparser.ypp"
+#line 3214 "querytransformparser.ypp"
{
(yyval.expr) = NodeSortExpression::wrapAround((yyvsp[(1) - (1)].expr), parseInfo->staticContext);
}
@@ -6051,7 +6106,7 @@ yyreduce:
case 273:
/* Line 1269 of yacc.c. */
-#line 3164 "querytransformparser.ypp"
+#line 3219 "querytransformparser.ypp"
{
(yyval.expr) = create(new CurrentItemStore((yyvsp[(2) - (2)].expr)), (yyloc), parseInfo);
}
@@ -6059,7 +6114,7 @@ yyreduce:
case 274:
/* Line 1269 of yacc.c. */
-#line 3168 "querytransformparser.ypp"
+#line 3223 "querytransformparser.ypp"
{
const xsDouble version = (yyvsp[(1) - (1)].sval).toDouble();
@@ -6071,7 +6126,7 @@ yyreduce:
case 275:
/* Line 1269 of yacc.c. */
-#line 3176 "querytransformparser.ypp"
+#line 3231 "querytransformparser.ypp"
{
if((yyvsp[(2) - (3)].enums.Double) < 2)
(yyval.expr) = createCompatStore((yyvsp[(3) - (3)].expr), (yyloc), parseInfo);
@@ -6082,8 +6137,9 @@ yyreduce:
case 276:
/* Line 1269 of yacc.c. */
-#line 3183 "querytransformparser.ypp"
+#line 3238 "querytransformparser.ypp"
{
+ allowedIn(QXmlQuery::XSLT20, parseInfo, (yyloc));
Q_ASSERT(!(yyvsp[(2) - (5)].sval).isEmpty());
(yyval.expr) = create(new StaticBaseURIStore((yyvsp[(2) - (5)].sval), (yyvsp[(4) - (5)].expr)), (yyloc), parseInfo);
}
@@ -6091,8 +6147,9 @@ yyreduce:
case 277:
/* Line 1269 of yacc.c. */
-#line 3189 "querytransformparser.ypp"
+#line 3245 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, (yyloc));
parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings());
const NamespaceResolver::Ptr resolver(new DelegatingNamespaceResolver(parseInfo->staticContext->namespaceBindings()));
resolver->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace((yyvsp[(5) - (6)].sval)),
@@ -6104,7 +6161,7 @@ yyreduce:
case 278:
/* Line 1269 of yacc.c. */
-#line 3199 "querytransformparser.ypp"
+#line 3256 "querytransformparser.ypp"
{
parseInfo->staticContext->setNamespaceBindings(parseInfo->resolvers.pop());
(yyval.expr) = (yyvsp[(8) - (9)].expr);
@@ -6113,7 +6170,7 @@ yyreduce:
case 279:
/* Line 1269 of yacc.c. */
-#line 3204 "querytransformparser.ypp"
+#line 3261 "querytransformparser.ypp"
{
(yyval.expr) = create(new CallTemplate((yyvsp[(2) - (5)].qName), parseInfo->templateWithParams), (yyloc), parseInfo);
parseInfo->templateWithParametersHandled();
@@ -6123,7 +6180,7 @@ yyreduce:
case 280:
/* Line 1269 of yacc.c. */
-#line 3211 "querytransformparser.ypp"
+#line 3268 "querytransformparser.ypp"
{
parseInfo->startParsingWithParam();
}
@@ -6131,7 +6188,7 @@ yyreduce:
case 281:
/* Line 1269 of yacc.c. */
-#line 3215 "querytransformparser.ypp"
+#line 3272 "querytransformparser.ypp"
{
parseInfo->endParsingWithParam();
}
@@ -6139,42 +6196,42 @@ yyreduce:
case 282:
/* Line 1269 of yacc.c. */
-#line 3220 "querytransformparser.ypp"
+#line 3277 "querytransformparser.ypp"
{
}
break;
case 283:
/* Line 1269 of yacc.c. */
-#line 3223 "querytransformparser.ypp"
+#line 3280 "querytransformparser.ypp"
{
}
break;
case 284:
/* Line 1269 of yacc.c. */
-#line 3226 "querytransformparser.ypp"
+#line 3283 "querytransformparser.ypp"
{
}
break;
case 285:
/* Line 1269 of yacc.c. */
-#line 3230 "querytransformparser.ypp"
+#line 3287 "querytransformparser.ypp"
{
}
break;
case 286:
/* Line 1269 of yacc.c. */
-#line 3233 "querytransformparser.ypp"
+#line 3290 "querytransformparser.ypp"
{
}
break;
case 287:
/* Line 1269 of yacc.c. */
-#line 3237 "querytransformparser.ypp"
+#line 3294 "querytransformparser.ypp"
{
/* Note, this grammar rule is invoked for @c xsl:param @em and @c
* xsl:with-param. */
@@ -6242,7 +6299,7 @@ yyreduce:
case 288:
/* Line 1269 of yacc.c. */
-#line 3302 "querytransformparser.ypp"
+#line 3359 "querytransformparser.ypp"
{
(yyval.enums.Bool) = false;
}
@@ -6250,7 +6307,7 @@ yyreduce:
case 289:
/* Line 1269 of yacc.c. */
-#line 3306 "querytransformparser.ypp"
+#line 3363 "querytransformparser.ypp"
{
(yyval.enums.Bool) = true;
}
@@ -6258,7 +6315,7 @@ yyreduce:
case 290:
/* Line 1269 of yacc.c. */
-#line 3311 "querytransformparser.ypp"
+#line 3368 "querytransformparser.ypp"
{
(yyval.expr) = Expression::Ptr();
}
@@ -6266,7 +6323,7 @@ yyreduce:
case 291:
/* Line 1269 of yacc.c. */
-#line 3315 "querytransformparser.ypp"
+#line 3372 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
@@ -6274,7 +6331,7 @@ yyreduce:
case 292:
/* Line 1269 of yacc.c. */
-#line 3324 "querytransformparser.ypp"
+#line 3381 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::RegularPath;
}
@@ -6282,7 +6339,7 @@ yyreduce:
case 293:
/* Line 1269 of yacc.c. */
-#line 3328 "querytransformparser.ypp"
+#line 3385 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::XSLTForEach;
}
@@ -6290,7 +6347,7 @@ yyreduce:
case 294:
/* Line 1269 of yacc.c. */
-#line 3332 "querytransformparser.ypp"
+#line 3389 "querytransformparser.ypp"
{
(yyval.enums.pathKind) = Path::ForApplyTemplate;
}
@@ -6298,7 +6355,7 @@ yyreduce:
case 296:
/* Line 1269 of yacc.c. */
-#line 3338 "querytransformparser.ypp"
+#line 3395 "querytransformparser.ypp"
{
(yyval.expr) = create(GenericPredicate::create((yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), parseInfo->staticContext, fromYYLTYPE((yyloc), parseInfo)), (yyloc), parseInfo);
}
@@ -6306,7 +6363,7 @@ yyreduce:
case 299:
/* Line 1269 of yacc.c. */
-#line 3346 "querytransformparser.ypp"
+#line 3403 "querytransformparser.ypp"
{
if((yyvsp[(1) - (1)].enums.axis) == QXmlNodeModelIndex::AxisAttribute)
parseInfo->nodeTestSource = BuiltinTypes::attribute;
@@ -6315,7 +6372,7 @@ yyreduce:
case 300:
/* Line 1269 of yacc.c. */
-#line 3351 "querytransformparser.ypp"
+#line 3408 "querytransformparser.ypp"
{
if((yyvsp[(3) - (3)].itemType))
{
@@ -6344,7 +6401,7 @@ yyreduce:
case 304:
/* Line 1269 of yacc.c. */
-#line 3381 "querytransformparser.ypp"
+#line 3438 "querytransformparser.ypp"
{
if((yyvsp[(1) - (2)].enums.axis) == QXmlNodeModelIndex::AxisNamespace)
{
@@ -6356,84 +6413,114 @@ yyreduce:
}
else
(yyval.enums.axis) = (yyvsp[(1) - (2)].enums.axis);
+
+ switch((yyvsp[(1) - (2)].enums.axis))
+ {
+ case QXmlNodeModelIndex::AxisAttribute:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XSLT20),
+ parseInfo, (yyloc));
+ break;
+ }
+ case QXmlNodeModelIndex::AxisChild:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XmlSchema11IdentityConstraintSelector
+ | QXmlQuery::XSLT20),
+ parseInfo, (yyloc));
+ break;
+ }
+ default:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XSLT20),
+ parseInfo, (yyloc));
+ }
+ }
}
break;
case 305:
/* Line 1269 of yacc.c. */
-#line 3394 "querytransformparser.ypp"
+#line 3481 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestorOrSelf ;}
break;
case 306:
/* Line 1269 of yacc.c. */
-#line 3395 "querytransformparser.ypp"
+#line 3482 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAncestor ;}
break;
case 307:
/* Line 1269 of yacc.c. */
-#line 3396 "querytransformparser.ypp"
+#line 3483 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisAttribute ;}
break;
case 308:
/* Line 1269 of yacc.c. */
-#line 3397 "querytransformparser.ypp"
+#line 3484 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisChild ;}
break;
case 309:
/* Line 1269 of yacc.c. */
-#line 3398 "querytransformparser.ypp"
+#line 3485 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendantOrSelf;}
break;
case 310:
/* Line 1269 of yacc.c. */
-#line 3399 "querytransformparser.ypp"
+#line 3486 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisDescendant ;}
break;
case 311:
/* Line 1269 of yacc.c. */
-#line 3400 "querytransformparser.ypp"
+#line 3487 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowing ;}
break;
case 312:
/* Line 1269 of yacc.c. */
-#line 3401 "querytransformparser.ypp"
+#line 3488 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPreceding ;}
break;
case 313:
/* Line 1269 of yacc.c. */
-#line 3402 "querytransformparser.ypp"
+#line 3489 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisFollowingSibling;}
break;
case 314:
/* Line 1269 of yacc.c. */
-#line 3403 "querytransformparser.ypp"
+#line 3490 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisPrecedingSibling;}
break;
case 315:
/* Line 1269 of yacc.c. */
-#line 3404 "querytransformparser.ypp"
+#line 3491 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisParent ;}
break;
case 316:
/* Line 1269 of yacc.c. */
-#line 3405 "querytransformparser.ypp"
+#line 3492 "querytransformparser.ypp"
{(yyval.enums.axis) = QXmlNodeModelIndex::AxisSelf ;}
break;
case 317:
/* Line 1269 of yacc.c. */
-#line 3408 "querytransformparser.ypp"
+#line 3495 "querytransformparser.ypp"
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
@@ -6441,8 +6528,9 @@ yyreduce:
case 318:
/* Line 1269 of yacc.c. */
-#line 3412 "querytransformparser.ypp"
+#line 3499 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20 | QXmlQuery::XmlSchema11IdentityConstraintField), parseInfo, (yyloc));
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(3) - (3)].itemType)), (yyloc), parseInfo);
parseInfo->restoreNodeTestSource();
@@ -6451,7 +6539,7 @@ yyreduce:
case 319:
/* Line 1269 of yacc.c. */
-#line 3418 "querytransformparser.ypp"
+#line 3506 "querytransformparser.ypp"
{
ItemType::Ptr nodeTest;
@@ -6466,7 +6554,7 @@ yyreduce:
case 320:
/* Line 1269 of yacc.c. */
-#line 3429 "querytransformparser.ypp"
+#line 3517 "querytransformparser.ypp"
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, (yyvsp[(1) - (1)].itemType)), (yyloc), parseInfo);
}
@@ -6474,15 +6562,23 @@ yyreduce:
case 322:
/* Line 1269 of yacc.c. */
-#line 3436 "querytransformparser.ypp"
+#line 3524 "querytransformparser.ypp"
{
(yyval.expr) = create(new AxisStep(QXmlNodeModelIndex::AxisParent, BuiltinTypes::node), (yyloc), parseInfo);
}
break;
+ case 324:
+/* Line 1269 of yacc.c. */
+#line 3530 "querytransformparser.ypp"
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
+ }
+ break;
+
case 325:
/* Line 1269 of yacc.c. */
-#line 3444 "querytransformparser.ypp"
+#line 3535 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(parseInfo->nodeTestSource, (yyvsp[(1) - (1)].qName));
}
@@ -6490,7 +6586,7 @@ yyreduce:
case 327:
/* Line 1269 of yacc.c. */
-#line 3450 "querytransformparser.ypp"
+#line 3541 "querytransformparser.ypp"
{
(yyval.itemType) = parseInfo->nodeTestSource;
}
@@ -6498,7 +6594,7 @@ yyreduce:
case 328:
/* Line 1269 of yacc.c. */
-#line 3454 "querytransformparser.ypp"
+#line 3545 "querytransformparser.ypp"
{
const NamePool::Ptr np(parseInfo->staticContext->namePool());
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -6511,8 +6607,9 @@ yyreduce:
case 329:
/* Line 1269 of yacc.c. */
-#line 3463 "querytransformparser.ypp"
+#line 3554 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(1) - (1)].sval));
(yyval.itemType) = LocalNameTest::create(parseInfo->nodeTestSource, c);
}
@@ -6520,15 +6617,16 @@ yyreduce:
case 331:
/* Line 1269 of yacc.c. */
-#line 3470 "querytransformparser.ypp"
+#line 3562 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(GenericPredicate::create((yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr), parseInfo->staticContext, fromYYLTYPE((yylsp[(4) - (4)]), parseInfo)), (yyloc), parseInfo);
}
break;
case 339:
/* Line 1269 of yacc.c. */
-#line 3482 "querytransformparser.ypp"
+#line 3575 "querytransformparser.ypp"
{
(yyval.expr) = create(new ApplyTemplate(parseInfo->modeFor((yyvsp[(2) - (5)].qName)),
parseInfo->templateWithParams,
@@ -6541,7 +6639,7 @@ yyreduce:
case 341:
/* Line 1269 of yacc.c. */
-#line 3493 "querytransformparser.ypp"
+#line 3586 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo);
}
@@ -6549,31 +6647,34 @@ yyreduce:
case 342:
/* Line 1269 of yacc.c. */
-#line 3498 "querytransformparser.ypp"
+#line 3591 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Double>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo);
}
break;
case 343:
/* Line 1269 of yacc.c. */
-#line 3502 "querytransformparser.ypp"
+#line 3596 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = createNumericLiteral<Numeric>((yyvsp[(1) - (1)].sval), (yyloc), parseInfo);
}
break;
case 344:
/* Line 1269 of yacc.c. */
-#line 3507 "querytransformparser.ypp"
+#line 3602 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = resolveVariable((yyvsp[(2) - (2)].qName), (yyloc), parseInfo, false);
}
break;
case 345:
/* Line 1269 of yacc.c. */
-#line 3512 "querytransformparser.ypp"
+#line 3608 "querytransformparser.ypp"
{
/* See: http://www.w3.org/TR/xpath20/#id-variables */
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(QString(), (yyvsp[(1) - (1)].sval));
@@ -6582,7 +6683,7 @@ yyreduce:
case 346:
/* Line 1269 of yacc.c. */
-#line 3517 "querytransformparser.ypp"
+#line 3613 "querytransformparser.ypp"
{
(yyval.qName) = (yyvsp[(1) - (1)].qName);
}
@@ -6590,23 +6691,25 @@ yyreduce:
case 347:
/* Line 1269 of yacc.c. */
-#line 3522 "querytransformparser.ypp"
+#line 3618 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = (yyvsp[(2) - (3)].expr);
}
break;
case 348:
/* Line 1269 of yacc.c. */
-#line 3526 "querytransformparser.ypp"
+#line 3623 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
(yyval.expr) = create(new EmptySequence, (yyloc), parseInfo);
}
break;
case 349:
/* Line 1269 of yacc.c. */
-#line 3531 "querytransformparser.ypp"
+#line 3629 "querytransformparser.ypp"
{
(yyval.expr) = create(new ContextItem(), (yyloc), parseInfo);
}
@@ -6614,7 +6717,7 @@ yyreduce:
case 350:
/* Line 1269 of yacc.c. */
-#line 3536 "querytransformparser.ypp"
+#line 3634 "querytransformparser.ypp"
{
(yyval.expr) = (yyvsp[(2) - (2)].expr);
}
@@ -6622,8 +6725,9 @@ yyreduce:
case 351:
/* Line 1269 of yacc.c. */
-#line 3541 "querytransformparser.ypp"
+#line 3639 "querytransformparser.ypp"
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
if(XPathHelper::isReservedNamespace((yyvsp[(1) - (4)].qName).namespaceURI()) || (yyvsp[(1) - (4)].qName).namespaceURI() == StandardNamespaces::InternalXSLT)
{ /* We got a call to a builtin function. */
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -6653,7 +6757,7 @@ yyreduce:
case 352:
/* Line 1269 of yacc.c. */
-#line 3569 "querytransformparser.ypp"
+#line 3668 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
}
@@ -6661,7 +6765,7 @@ yyreduce:
case 353:
/* Line 1269 of yacc.c. */
-#line 3574 "querytransformparser.ypp"
+#line 3673 "querytransformparser.ypp"
{
Expression::List list;
list.append((yyvsp[(1) - (1)].expr));
@@ -6671,15 +6775,15 @@ yyreduce:
case 355:
/* Line 1269 of yacc.c. */
-#line 3583 "querytransformparser.ypp"
+#line 3682 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc));
}
break;
case 360:
/* Line 1269 of yacc.c. */
-#line 3624 "querytransformparser.ypp"
+#line 3726 "querytransformparser.ypp"
{
(yyval.enums.tokenizerPosition) = parseInfo->tokenizer->commenceScanOnly();
parseInfo->scanOnlyStack.push(true);
@@ -6688,7 +6792,7 @@ yyreduce:
case 361:
/* Line 1269 of yacc.c. */
-#line 3633 "querytransformparser.ypp"
+#line 3735 "querytransformparser.ypp"
{
++parseInfo->elementConstructorDepth;
Expression::List constructors;
@@ -6836,7 +6940,7 @@ yyreduce:
case 362:
/* Line 1269 of yacc.c. */
-#line 3779 "querytransformparser.ypp"
+#line 3881 "querytransformparser.ypp"
{
/* We add the content constructor after the attribute constructors. This might result
* in nested ExpressionSequences, but it will be optimized away later on. */
@@ -6935,7 +7039,7 @@ yyreduce:
case 363:
/* Line 1269 of yacc.c. */
-#line 3875 "querytransformparser.ypp"
+#line 3977 "querytransformparser.ypp"
{
(yyval.expr) = create(new EmptySequence(), (yyloc), parseInfo);
}
@@ -6943,7 +7047,7 @@ yyreduce:
case 364:
/* Line 1269 of yacc.c. */
-#line 3879 "querytransformparser.ypp"
+#line 3981 "querytransformparser.ypp"
{
if(!(yyvsp[(4) - (5)].qName).isLexicallyEqual(parseInfo->tagStack.top()))
{
@@ -6965,7 +7069,7 @@ yyreduce:
case 365:
/* Line 1269 of yacc.c. */
-#line 3898 "querytransformparser.ypp"
+#line 4000 "querytransformparser.ypp"
{
(yyval.attributeHolders) = AttributeHolderVector();
}
@@ -6973,7 +7077,7 @@ yyreduce:
case 366:
/* Line 1269 of yacc.c. */
-#line 3902 "querytransformparser.ypp"
+#line 4004 "querytransformparser.ypp"
{
(yyvsp[(1) - (2)].attributeHolders).append((yyvsp[(2) - (2)].attributeHolder));
(yyval.attributeHolders) = (yyvsp[(1) - (2)].attributeHolders);
@@ -6982,7 +7086,7 @@ yyreduce:
case 367:
/* Line 1269 of yacc.c. */
-#line 3908 "querytransformparser.ypp"
+#line 4010 "querytransformparser.ypp"
{
(yyval.attributeHolder) = qMakePair((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].expr));
}
@@ -6990,7 +7094,7 @@ yyreduce:
case 368:
/* Line 1269 of yacc.c. */
-#line 3913 "querytransformparser.ypp"
+#line 4015 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc));
}
@@ -6998,7 +7102,7 @@ yyreduce:
case 369:
/* Line 1269 of yacc.c. */
-#line 3918 "querytransformparser.ypp"
+#line 4020 "querytransformparser.ypp"
{
(yyval.expr) = createDirAttributeValue((yyvsp[(2) - (3)].expressionList), parseInfo, (yyloc));
}
@@ -7006,7 +7110,7 @@ yyreduce:
case 370:
/* Line 1269 of yacc.c. */
-#line 3923 "querytransformparser.ypp"
+#line 4025 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
}
@@ -7014,7 +7118,7 @@ yyreduce:
case 371:
/* Line 1269 of yacc.c. */
-#line 3927 "querytransformparser.ypp"
+#line 4029 "querytransformparser.ypp"
{
Expression::Ptr content((yyvsp[(1) - (2)].expr));
@@ -7028,7 +7132,7 @@ yyreduce:
case 372:
/* Line 1269 of yacc.c. */
-#line 3937 "querytransformparser.ypp"
+#line 4039 "querytransformparser.ypp"
{
(yyvsp[(2) - (2)].expressionList).prepend(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (2)].sval))), (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[(2) - (2)].expressionList);
@@ -7037,7 +7141,7 @@ yyreduce:
case 373:
/* Line 1269 of yacc.c. */
-#line 3943 "querytransformparser.ypp"
+#line 4045 "querytransformparser.ypp"
{
(yyval.expressionList) = Expression::List();
parseInfo->isPreviousEnclosedExpr = false;
@@ -7046,7 +7150,7 @@ yyreduce:
case 374:
/* Line 1269 of yacc.c. */
-#line 3948 "querytransformparser.ypp"
+#line 4050 "querytransformparser.ypp"
{
(yyvsp[(1) - (2)].expressionList).append((yyvsp[(2) - (2)].expr));
(yyval.expressionList) = (yyvsp[(1) - (2)].expressionList);
@@ -7056,7 +7160,7 @@ yyreduce:
case 375:
/* Line 1269 of yacc.c. */
-#line 3954 "querytransformparser.ypp"
+#line 4056 "querytransformparser.ypp"
{
if(parseInfo->staticContext->boundarySpacePolicy() == StaticContext::BSPStrip &&
XPathHelper::isWhitespaceOnly((yyvsp[(2) - (2)].sval)))
@@ -7074,7 +7178,7 @@ yyreduce:
case 376:
/* Line 1269 of yacc.c. */
-#line 3968 "querytransformparser.ypp"
+#line 4070 "querytransformparser.ypp"
{
(yyvsp[(1) - (2)].expressionList).append(create(new TextNodeConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo));
(yyval.expressionList) = (yyvsp[(1) - (2)].expressionList);
@@ -7084,7 +7188,7 @@ yyreduce:
case 377:
/* Line 1269 of yacc.c. */
-#line 3974 "querytransformparser.ypp"
+#line 4076 "querytransformparser.ypp"
{
/* We insert a text node constructor that send an empty text node between
* the two enclosed expressions, in order to ensure that no space is inserted.
@@ -7104,7 +7208,7 @@ yyreduce:
case 378:
/* Line 1269 of yacc.c. */
-#line 3991 "querytransformparser.ypp"
+#line 4093 "querytransformparser.ypp"
{
(yyval.expr) = create(new CommentConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(2) - (2)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
@@ -7112,7 +7216,7 @@ yyreduce:
case 379:
/* Line 1269 of yacc.c. */
-#line 3996 "querytransformparser.ypp"
+#line 4098 "querytransformparser.ypp"
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
NCNameConstructor::validateTargetName<StaticContext::Ptr,
@@ -7128,9 +7232,9 @@ yyreduce:
case 387:
/* Line 1269 of yacc.c. */
-#line 4017 "querytransformparser.ypp"
+#line 4119 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
(yyval.expr) = create(new DocumentConstructor((yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
@@ -7138,7 +7242,7 @@ yyreduce:
case 388:
/* Line 1269 of yacc.c. */
-#line 4024 "querytransformparser.ypp"
+#line 4126 "querytransformparser.ypp"
{
/* This value is incremented before the action below is executed. */
++parseInfo->elementConstructorDepth;
@@ -7147,10 +7251,10 @@ yyreduce:
case 389:
/* Line 1269 of yacc.c. */
-#line 4029 "querytransformparser.ypp"
+#line 4131 "querytransformparser.ypp"
{
Q_ASSERT(5);
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (5)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (5)].enums.Bool));
Expression::Ptr effExpr;
@@ -7184,7 +7288,7 @@ yyreduce:
case 390:
/* Line 1269 of yacc.c. */
-#line 4063 "querytransformparser.ypp"
+#line 4165 "querytransformparser.ypp"
{
(yyval.enums.Bool) = false;
}
@@ -7192,7 +7296,7 @@ yyreduce:
case 391:
/* Line 1269 of yacc.c. */
-#line 4067 "querytransformparser.ypp"
+#line 4169 "querytransformparser.ypp"
{
(yyval.enums.Bool) = true;
}
@@ -7200,9 +7304,9 @@ yyreduce:
case 392:
/* Line 1269 of yacc.c. */
-#line 4075 "querytransformparser.ypp"
+#line 4177 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (4)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (4)].enums.Bool));
const Expression::Ptr name(create(new AttributeNameValidator((yyvsp[(3) - (4)].expr)), (yyloc), parseInfo));
@@ -7215,7 +7319,7 @@ yyreduce:
case 393:
/* Line 1269 of yacc.c. */
-#line 4087 "querytransformparser.ypp"
+#line 4189 "querytransformparser.ypp"
{
(yyval.expr) = create(new TextNodeConstructor(createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo);
}
@@ -7223,9 +7327,9 @@ yyreduce:
case 394:
/* Line 1269 of yacc.c. */
-#line 4092 "querytransformparser.ypp"
+#line 4194 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].enums.Bool));
(yyval.expr) = create(new CommentConstructor(createSimpleContent((yyvsp[(3) - (3)].expr), (yyloc), parseInfo)), (yyloc), parseInfo);
}
@@ -7233,9 +7337,9 @@ yyreduce:
case 395:
/* Line 1269 of yacc.c. */
-#line 4099 "querytransformparser.ypp"
+#line 4201 "querytransformparser.ypp"
{
- disallowedConstruct(parseInfo, (yyloc), (yyvsp[(2) - (3)].expr));
+ allowedIn(QXmlQuery::XQuery10, parseInfo, (yyloc), (yyvsp[(2) - (3)].expr));
if((yyvsp[(3) - (3)].expr))
{
@@ -7248,7 +7352,7 @@ yyreduce:
case 396:
/* Line 1269 of yacc.c. */
-#line 4110 "querytransformparser.ypp"
+#line 4212 "querytransformparser.ypp"
{
parseInfo->nodeTestSource = BuiltinTypes::attribute;
}
@@ -7256,7 +7360,7 @@ yyreduce:
case 397:
/* Line 1269 of yacc.c. */
-#line 4114 "querytransformparser.ypp"
+#line 4216 "querytransformparser.ypp"
{
parseInfo->restoreNodeTestSource();
}
@@ -7264,7 +7368,7 @@ yyreduce:
case 398:
/* Line 1269 of yacc.c. */
-#line 4117 "querytransformparser.ypp"
+#line 4219 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(2) - (3)].qName)))), (yyloc), parseInfo);
}
@@ -7272,7 +7376,7 @@ yyreduce:
case 400:
/* Line 1269 of yacc.c. */
-#line 4123 "querytransformparser.ypp"
+#line 4225 "querytransformparser.ypp"
{
(yyval.expr) = create(new Literal(toItem(QNameValue::fromValue(parseInfo->staticContext->namePool(), (yyvsp[(1) - (1)].qName)))), (yyloc), parseInfo);
}
@@ -7280,7 +7384,7 @@ yyreduce:
case 402:
/* Line 1269 of yacc.c. */
-#line 4129 "querytransformparser.ypp"
+#line 4231 "querytransformparser.ypp"
{
if(BuiltinTypes::xsQName->xdtTypeMatches((yyvsp[(1) - (1)].expr)->staticType()->itemType()))
(yyval.expr) = (yyvsp[(1) - (1)].expr);
@@ -7295,7 +7399,7 @@ yyreduce:
case 403:
/* Line 1269 of yacc.c. */
-#line 4144 "querytransformparser.ypp"
+#line 4246 "querytransformparser.ypp"
{
(yyval.expr) = create(new NCNameConstructor(create(new Literal(AtomicString::fromValue((yyvsp[(1) - (1)].sval))), (yyloc), parseInfo)), (yyloc), parseInfo);
}
@@ -7303,7 +7407,7 @@ yyreduce:
case 404:
/* Line 1269 of yacc.c. */
-#line 4148 "querytransformparser.ypp"
+#line 4250 "querytransformparser.ypp"
{
(yyval.expr) = create(new NCNameConstructor((yyvsp[(1) - (1)].expr)), (yyloc), parseInfo);
}
@@ -7311,7 +7415,7 @@ yyreduce:
case 405:
/* Line 1269 of yacc.c. */
-#line 4157 "querytransformparser.ypp"
+#line 4259 "querytransformparser.ypp"
{
(yyval.expr) = create(new ComputedNamespaceConstructor((yyvsp[(2) - (3)].expr), (yyvsp[(3) - (3)].expr)), (yyloc), parseInfo);
}
@@ -7319,7 +7423,7 @@ yyreduce:
case 406:
/* Line 1269 of yacc.c. */
-#line 4162 "querytransformparser.ypp"
+#line 4264 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (1)].itemType), Cardinality::exactlyOne());
}
@@ -7327,7 +7431,7 @@ yyreduce:
case 407:
/* Line 1269 of yacc.c. */
-#line 4166 "querytransformparser.ypp"
+#line 4268 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), Cardinality::zeroOrOne());
}
@@ -7335,7 +7439,7 @@ yyreduce:
case 408:
/* Line 1269 of yacc.c. */
-#line 4171 "querytransformparser.ypp"
+#line 4273 "querytransformparser.ypp"
{
(yyval.sequenceType) = CommonSequenceTypes::ZeroOrMoreItems;
}
@@ -7343,7 +7447,7 @@ yyreduce:
case 409:
/* Line 1269 of yacc.c. */
-#line 4175 "querytransformparser.ypp"
+#line 4277 "querytransformparser.ypp"
{
(yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType);
}
@@ -7351,7 +7455,7 @@ yyreduce:
case 410:
/* Line 1269 of yacc.c. */
-#line 4180 "querytransformparser.ypp"
+#line 4282 "querytransformparser.ypp"
{
(yyval.sequenceType) = makeGenericSequenceType((yyvsp[(1) - (2)].itemType), (yyvsp[(2) - (2)].cardinality));
}
@@ -7359,7 +7463,7 @@ yyreduce:
case 411:
/* Line 1269 of yacc.c. */
-#line 4185 "querytransformparser.ypp"
+#line 4287 "querytransformparser.ypp"
{
(yyval.sequenceType) = CommonSequenceTypes::Empty;
}
@@ -7367,31 +7471,31 @@ yyreduce:
case 412:
/* Line 1269 of yacc.c. */
-#line 4189 "querytransformparser.ypp"
+#line 4291 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::exactlyOne();}
break;
case 413:
/* Line 1269 of yacc.c. */
-#line 4190 "querytransformparser.ypp"
+#line 4292 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::oneOrMore();}
break;
case 414:
/* Line 1269 of yacc.c. */
-#line 4191 "querytransformparser.ypp"
+#line 4293 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::zeroOrMore();}
break;
case 415:
/* Line 1269 of yacc.c. */
-#line 4192 "querytransformparser.ypp"
+#line 4294 "querytransformparser.ypp"
{(yyval.cardinality) = Cardinality::zeroOrOne();}
break;
case 419:
/* Line 1269 of yacc.c. */
-#line 4198 "querytransformparser.ypp"
+#line 4300 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::item;
}
@@ -7399,7 +7503,7 @@ yyreduce:
case 420:
/* Line 1269 of yacc.c. */
-#line 4203 "querytransformparser.ypp"
+#line 4305 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(1) - (1)].qName)));
@@ -7435,7 +7539,7 @@ yyreduce:
case 428:
/* Line 1269 of yacc.c. */
-#line 4247 "querytransformparser.ypp"
+#line 4349 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::node;
}
@@ -7443,7 +7547,7 @@ yyreduce:
case 429:
/* Line 1269 of yacc.c. */
-#line 4252 "querytransformparser.ypp"
+#line 4354 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::document;
}
@@ -7451,7 +7555,7 @@ yyreduce:
case 430:
/* Line 1269 of yacc.c. */
-#line 4257 "querytransformparser.ypp"
+#line 4359 "querytransformparser.ypp"
{
// TODO support for document element testing
(yyval.itemType) = BuiltinTypes::document;
@@ -7460,7 +7564,7 @@ yyreduce:
case 433:
/* Line 1269 of yacc.c. */
-#line 4266 "querytransformparser.ypp"
+#line 4368 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::text;
}
@@ -7468,7 +7572,7 @@ yyreduce:
case 434:
/* Line 1269 of yacc.c. */
-#line 4271 "querytransformparser.ypp"
+#line 4373 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::comment;
}
@@ -7476,7 +7580,7 @@ yyreduce:
case 435:
/* Line 1269 of yacc.c. */
-#line 4276 "querytransformparser.ypp"
+#line 4378 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::pi;
}
@@ -7484,7 +7588,7 @@ yyreduce:
case 436:
/* Line 1269 of yacc.c. */
-#line 4281 "querytransformparser.ypp"
+#line 4383 "querytransformparser.ypp"
{
(yyval.itemType) = LocalNameTest::create(BuiltinTypes::pi, parseInfo->staticContext->namePool()->allocateLocalName((yyvsp[(3) - (4)].sval)));
}
@@ -7492,7 +7596,7 @@ yyreduce:
case 437:
/* Line 1269 of yacc.c. */
-#line 4286 "querytransformparser.ypp"
+#line 4388 "querytransformparser.ypp"
{
if(QXmlUtils::isNCName((yyvsp[(3) - (4)].sval)))
{
@@ -7511,7 +7615,7 @@ yyreduce:
case 440:
/* Line 1269 of yacc.c. */
-#line 4305 "querytransformparser.ypp"
+#line 4407 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::attribute;
}
@@ -7519,7 +7623,7 @@ yyreduce:
case 441:
/* Line 1269 of yacc.c. */
-#line 4310 "querytransformparser.ypp"
+#line 4412 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::attribute;
}
@@ -7527,7 +7631,7 @@ yyreduce:
case 442:
/* Line 1269 of yacc.c. */
-#line 4315 "querytransformparser.ypp"
+#line 4417 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::attribute, (yyvsp[(3) - (4)].qName));
}
@@ -7535,7 +7639,7 @@ yyreduce:
case 443:
/* Line 1269 of yacc.c. */
-#line 4319 "querytransformparser.ypp"
+#line 4421 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName)));
@@ -7551,7 +7655,7 @@ yyreduce:
case 444:
/* Line 1269 of yacc.c. */
-#line 4331 "querytransformparser.ypp"
+#line 4433 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (6)].qName)));
@@ -7567,7 +7671,7 @@ yyreduce:
case 445:
/* Line 1269 of yacc.c. */
-#line 4344 "querytransformparser.ypp"
+#line 4446 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7580,7 +7684,7 @@ yyreduce:
case 446:
/* Line 1269 of yacc.c. */
-#line 4354 "querytransformparser.ypp"
+#line 4456 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::element;
}
@@ -7588,7 +7692,7 @@ yyreduce:
case 447:
/* Line 1269 of yacc.c. */
-#line 4359 "querytransformparser.ypp"
+#line 4461 "querytransformparser.ypp"
{
(yyval.itemType) = BuiltinTypes::element;
}
@@ -7596,7 +7700,7 @@ yyreduce:
case 448:
/* Line 1269 of yacc.c. */
-#line 4364 "querytransformparser.ypp"
+#line 4466 "querytransformparser.ypp"
{
(yyval.itemType) = QNameTest::create(BuiltinTypes::element, (yyvsp[(3) - (4)].qName));
}
@@ -7604,7 +7708,7 @@ yyreduce:
case 449:
/* Line 1269 of yacc.c. */
-#line 4369 "querytransformparser.ypp"
+#line 4471 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName)));
@@ -7621,7 +7725,7 @@ yyreduce:
case 450:
/* Line 1269 of yacc.c. */
-#line 4383 "querytransformparser.ypp"
+#line 4485 "querytransformparser.ypp"
{
const SchemaType::Ptr t(parseInfo->staticContext->schemaDefinitions()->createSchemaType((yyvsp[(5) - (7)].qName)));
@@ -7638,7 +7742,7 @@ yyreduce:
case 453:
/* Line 1269 of yacc.c. */
-#line 4400 "querytransformparser.ypp"
+#line 4502 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("%1 is not in the in-scope attribute "
"declarations. Note that the schema import "
@@ -7651,7 +7755,7 @@ yyreduce:
case 455:
/* Line 1269 of yacc.c. */
-#line 4412 "querytransformparser.ypp"
+#line 4514 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::empty, (yyvsp[(1) - (1)].sval));
}
@@ -7659,7 +7763,7 @@ yyreduce:
case 457:
/* Line 1269 of yacc.c. */
-#line 4424 "querytransformparser.ypp"
+#line 4526 "querytransformparser.ypp"
{
if(parseInfo->nodeTestSource == BuiltinTypes::element)
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->namespaceBindings()->lookupNamespaceURI(StandardPrefixes::empty), (yyvsp[(1) - (1)].sval));
@@ -7670,7 +7774,7 @@ yyreduce:
case 462:
/* Line 1269 of yacc.c. */
-#line 4438 "querytransformparser.ypp"
+#line 4540 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(parseInfo->staticContext->defaultFunctionNamespace(), (yyvsp[(1) - (1)].sval));
}
@@ -7678,7 +7782,7 @@ yyreduce:
case 463:
/* Line 1269 of yacc.c. */
-#line 4442 "querytransformparser.ypp"
+#line 4544 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->allocateQName(StandardNamespaces::InternalXSLT, (yyvsp[(2) - (2)].sval));
}
@@ -7686,7 +7790,7 @@ yyreduce:
case 466:
/* Line 1269 of yacc.c. */
-#line 4450 "querytransformparser.ypp"
+#line 4552 "querytransformparser.ypp"
{
parseInfo->staticContext->error(QtXmlPatterns::tr("The name of an extension expression must be in "
"a namespace."),
@@ -7694,9 +7798,25 @@ yyreduce:
}
break;
+ case 469:
+/* Line 1269 of yacc.c. */
+#line 4562 "querytransformparser.ypp"
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
+ }
+ break;
+
+ case 470:
+/* Line 1269 of yacc.c. */
+#line 4566 "querytransformparser.ypp"
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, (yyloc));
+ }
+ break;
+
case 471:
/* Line 1269 of yacc.c. */
-#line 4463 "querytransformparser.ypp"
+#line 4571 "querytransformparser.ypp"
{
const ReflectYYLTYPE ryy((yyloc), parseInfo);
@@ -7712,7 +7832,7 @@ yyreduce:
case 472:
/* Line 1269 of yacc.c. */
-#line 4475 "querytransformparser.ypp"
+#line 4583 "querytransformparser.ypp"
{
(yyval.qName) = parseInfo->staticContext->namePool()->fromClarkName((yyvsp[(1) - (1)].sval));
}
@@ -7720,7 +7840,7 @@ yyreduce:
/* Line 1269 of yacc.c. */
-#line 7643 "qquerytransformparser.cpp"
+#line 7763 "qquerytransformparser.cpp"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -7938,7 +8058,7 @@ yyreturn:
/* Line 1486 of yacc.c. */
-#line 4479 "querytransformparser.ypp"
+#line 4587 "querytransformparser.ypp"
QString Tokenizer::tokenToString(const Token &token)
diff --git a/src/xmlpatterns/parser/qquerytransformparser_p.h b/src/xmlpatterns/parser/qquerytransformparser_p.h
index b33ca55..b85511c 100644
--- a/src/xmlpatterns/parser/qquerytransformparser_p.h
+++ b/src/xmlpatterns/parser/qquerytransformparser_p.h
@@ -49,6 +49,57 @@
//
// We mean it.
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
/* A Bison parser, made by GNU Bison 2.3a. */
/* Skeleton interface for Bison's Yacc-like parsers in C
@@ -104,6 +155,25 @@
# undef SELF
#endif
+/* These tokens are defined to nothing on Windows because they're
+ * used in their documentation parser, for use in things like:
+ *
+ * int foo(IN char* name, OUT char* path);
+ *
+ * Hence this un-break fix. Note that this file was auto generated. */
+#ifdef IN
+# undef IN
+#endif
+#ifdef INSTANCE
+# undef INSTANCE
+#endif
+#ifdef STRICT
+# undef STRICT
+#endif
+#ifdef SELF
+# undef SELF
+#endif
+
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
diff --git a/src/xmlpatterns/parser/querytransformparser.ypp b/src/xmlpatterns/parser/querytransformparser.ypp
index f67eb5d..5a7bcc3 100644
--- a/src/xmlpatterns/parser/querytransformparser.ypp
+++ b/src/xmlpatterns/parser/querytransformparser.ypp
@@ -227,11 +227,18 @@ static inline QSourceLocation fromYYLTYPE(const YYLTYPE &sourceLocator,
}
/**
+ * @internal
+ * @relates QXmlQuery
+ */
+typedef QFlags<QXmlQuery::QueryLanguage> QueryLanguages;
+
+/**
* @short Flags invalid expressions and declarations in the currently
* parsed language.
*
- * Since this grammar is used for several languages: XQuery 1.0, XSL-T 2.0 and
- * XPath 2.0 inside XSL-T, it is the union of all the constructs in these
+ * Since this grammar is used for several languages: XQuery 1.0, XSL-T 2.0, and
+ * XPath 2.0 inside XSL-T, and field and selector patterns in W3C XML Schema's
+ * identity constraints, it is the union of all the constructs in these
* languages. However, when dealing with each language individually, we
* regularly need to disallow some expressions, such as direct element
* constructors when parsing XSL-T, or the typeswitch when parsing XPath.
@@ -242,19 +249,46 @@ static inline QSourceLocation fromYYLTYPE(const YYLTYPE &sourceLocator,
* instance the @c let clause, should not be flagged as an error, because it's
* used for internal purposes.
*
- * Hence, this function is called from each expression and declaration which is
- * unavailable in XPath.
+ * Hence, this function is called from each expression and declaration with @p
+ * allowedLanguages stating what languages it is allowed in.
*
* If @p isInternal is @c true, no error is raised. Otherwise, if the current
- * language is not XQuery, an error is raised.
+ * language is not in @p allowedLanguages, an error is raised.
*/
-static void disallowedConstruct(const ParserContext *const parseInfo,
- const YYLTYPE &sourceLocator,
- const bool isInternal = false)
+static void allowedIn(const QueryLanguages allowedLanguages,
+ const ParserContext *const parseInfo,
+ const YYLTYPE &sourceLocator,
+ const bool isInternal = false)
{
- if(!isInternal && parseInfo->languageAccent != QXmlQuery::XQuery10)
+ /* We treat XPath 2.0 as a subset of XSL-T 2.0, so if XPath 2.0 is allowed
+ * and XSL-T is the language, it's ok. */
+ if(!isInternal &&
+ (!allowedLanguages.testFlag(parseInfo->languageAccent) && !(allowedLanguages.testFlag(QXmlQuery::XPath20) && parseInfo->languageAccent == QXmlQuery::XSLT20)))
{
- parseInfo->staticContext->error(QtXmlPatterns::tr("A construct was encountered which only is allowed in XQuery."),
+
+ QString langName;
+
+ switch(parseInfo->languageAccent)
+ {
+ case QXmlQuery::XPath20:
+ langName = QLatin1String("XPath 2.0");
+ break;
+ case QXmlQuery::XSLT20:
+ langName = QLatin1String("XSL-T 2.0");
+ break;
+ case QXmlQuery::XQuery10:
+ langName = QLatin1String("XQuery 1.0");
+ break;
+ case QXmlQuery::XmlSchema11IdentityConstraintSelector:
+ langName = QtXmlPatterns::tr("W3C XML Schema identity constraint selector");
+ break;
+ case QXmlQuery::XmlSchema11IdentityConstraintField:
+ langName = QtXmlPatterns::tr("W3C XML Schema identity constraint field");
+ break;
+ }
+
+ parseInfo->staticContext->error(QtXmlPatterns::tr("A construct was encountered "
+ "which is disallowed in the current language(%1).").arg(langName),
ReportContext::XPST0003,
fromYYLTYPE(sourceLocator, parseInfo));
@@ -1560,7 +1594,7 @@ Prolog: /* Empty. */
/* First part. */
| Prolog DefaultNamespaceDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("A default namespace declaration must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE(@$, parseInfo));
@@ -1579,7 +1613,7 @@ Prolog: /* Empty. */
}
| Prolog Import
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
if(parseInfo->hasSecondPrologPart)
parseInfo->staticContext->error(QtXmlPatterns::tr("Module imports must occur before function, "
"variable, and option declarations."), ReportContext::XPST0003, fromYYLTYPE(@$, parseInfo));
@@ -1597,7 +1631,7 @@ Prolog: /* Empty. */
}
| Prolog OptionDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
parseInfo->hasSecondPrologPart = true;
}
@@ -1730,20 +1764,20 @@ TemplateName: NAME ElementName
Setter: BoundarySpaceDecl /* [7] */
| DefaultCollationDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
| BaseURIDecl
| ConstructionDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
| OrderingModeDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
| EmptyOrderDecl
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
| CopyNamespacesDecl
@@ -1755,7 +1789,7 @@ Separator: SEMI_COLON
NamespaceDecl: DECLARE NAMESPACE NCNAME G_EQ URILiteral IsInternal Separator /* [10] */
{
if(!$6)
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
if($3 == QLatin1String("xmlns"))
{
@@ -1867,7 +1901,7 @@ OptionDecl: DECLARE OPTION ElementName StringLiteral Separator
OrderingModeDecl: DECLARE ORDERING OrderingMode Separator /* [14] */
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
if(parseInfo->hasDeclaration(ParserContext::OrderingModeDecl))
{
parseInfo->staticContext->error(prologMessage("declare ordering"),
@@ -1964,7 +1998,7 @@ DefaultCollationDecl: DECLARE DEFAULT COLLATION StringLiteral Separator
BaseURIDecl: DECLARE BASEURI IsInternal URILiteral Separator /* [20] */
{
- disallowedConstruct(parseInfo, @$, $3);
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, @$, $3);
if(parseInfo->hasDeclaration(ParserContext::BaseURIDecl))
{
parseInfo->staticContext->error(prologMessage("declare base-uri"),
@@ -2026,7 +2060,7 @@ FileLocation: URILiteral
VarDecl: DECLARE VARIABLE IsInternal DOLLAR VarName TypeDeclaration
VariableValue OptionalDefaultValue Separator /* [24] */
{
- disallowedConstruct(parseInfo, @$, $3);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $3);
if(variableByName($5, parseInfo))
{
parseInfo->staticContext->error(QtXmlPatterns::tr("A variable by name %1 has already "
@@ -2126,7 +2160,7 @@ FunctionDecl: DECLARE FUNCTION IsInternal FunctionName LPAREN ParamList RPAREN
TypeDeclaration FunctionBody Separator /* [26] */
{
if(!$3)
- disallowedConstruct(parseInfo, @$, $3);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $3);
/* If FunctionBody is null, it is 'external', otherwise the value is the body. */
const QXmlName::NamespaceCode ns($4.namespaceURI());
@@ -2696,7 +2730,7 @@ LetClause: LET IsInternal DOLLAR VarName TypeDeclaration ASSIGN ExprSingle
}
LetTail /* [36] */
{
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
Q_ASSERT(parseInfo->variables.top()->name == $4);
$$ = create(new LetClause($<expr>8, $9, parseInfo->variables.top()), @$, parseInfo);
@@ -2835,6 +2869,7 @@ SomeQuantificationExpr: SOME DOLLAR VarName TypeDeclaration IN ExprSingle
{$<enums.slot>$ = parseInfo->staticContext->currentRangeSlot();}
SomeQuantificationTail /* [X] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new QuantifiedExpression($<enums.slot>8,
QuantifiedExpression::Some, $<expr>6, $9), @$, parseInfo);
parseInfo->finalizePushedVariable();
@@ -2863,6 +2898,7 @@ EveryQuantificationExpr: EVERY DOLLAR VarName TypeDeclaration IN ExprSingle
{$<enums.slot>$ = parseInfo->staticContext->currentRangeSlot();}
EveryQuantificationTail /* [X] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new QuantifiedExpression($<enums.slot>8,
QuantifiedExpression::Every, $<expr>6, $9), @$, parseInfo);
parseInfo->finalizePushedVariable();
@@ -2916,7 +2952,7 @@ TypeswitchExpr: TYPESWITCH LPAREN Expr RPAREN
}
CaseClause /* [43] */
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
parseInfo->typeswitchSource.pop();
$$ = $6;
}
@@ -2976,18 +3012,21 @@ CaseDefault: DEFAULT RETURN ExprSingle
IfExpr: IF LPAREN Expr RPAREN THEN ExprSingle ELSE ExprSingle /* [45] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new IfThenClause($3, $6, $8), @$, parseInfo);
}
OrExpr: AndExpr /* [46] */
| OrExpr OR AndExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new OrExpression($1, $3), @$, parseInfo);
}
AndExpr: ComparisonExpr /* [47] */
| AndExpr AND ComparisonExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new AndExpression($1, $3), @$, parseInfo);
}
@@ -2999,12 +3038,14 @@ ComparisonExpr: RangeExpr
RangeExpr: AdditiveExpr /* [49] */
| AdditiveExpr TO AdditiveExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new RangeExpression($1, $3), @$, parseInfo);
}
AdditiveExpr: MultiplicativeExpr /* [50] */
| AdditiveExpr AdditiveOperator MultiplicativeExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new ArithmeticExpression($1, $2, $3), @$, parseInfo);
}
@@ -3014,6 +3055,7 @@ AdditiveOperator: PLUS {$$ = AtomicMathematician::Add;}
MultiplicativeExpr: UnionExpr /* [51] */
| MultiplicativeExpr MultiplyOperator UnionExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new ArithmeticExpression($1, $2, $3), @$, parseInfo);
}
@@ -3025,12 +3067,18 @@ MultiplyOperator: STAR {$$ = AtomicMathematician::Multiply;}
UnionExpr: IntersectExceptExpr /* [52] */
| UnionExpr UnionOperator IntersectExceptExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10
+ | QXmlQuery::XPath20
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XmlSchema11IdentityConstraintSelector),
+ parseInfo, @$);
$$ = create(new CombineNodes($1, CombineNodes::Union, $3), @$, parseInfo);
}
IntersectExceptExpr: InstanceOfExpr /* [53] */
| IntersectExceptExpr IntersectOperator InstanceOfExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new CombineNodes($1, $2, $3), @$, parseInfo);
}
@@ -3049,31 +3097,36 @@ IntersectOperator: INTERSECT
InstanceOfExpr: TreatExpr /* [54] */
| TreatExpr INSTANCE OF SequenceType
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new InstanceOf($1,
- SequenceType::Ptr($4)), @$, parseInfo);
+ SequenceType::Ptr($4)), @$, parseInfo);
}
TreatExpr: CastableExpr /* [55] */
| CastableExpr TREAT AS SequenceType
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new TreatAs($1, $4), @$, parseInfo);
}
CastableExpr: CastExpr /* [56] */
| CastExpr CASTABLE AS SingleType
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new CastableAs($1, $4), @$, parseInfo);
}
CastExpr: UnaryExpr /* [57] */
| UnaryExpr CAST AS SingleType
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new CastAs($1, $4), @$, parseInfo);
}
UnaryExpr: ValueExpr /* [58] */
| UnaryOperator UnaryExpr
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new UnaryExpression($1, $2, parseInfo->staticContext), @$, parseInfo);
}
@@ -3092,6 +3145,7 @@ ValueExpr: ValidateExpr
GeneralComp: RangeExpr GeneralComparisonOperator RangeExpr /* [60] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new GeneralComparison($1, $2, $3, parseInfo->isBackwardsCompat.top()), @$, parseInfo);
}
@@ -3125,7 +3179,7 @@ NodeOperator: IS {$$ = QXmlNodeModelIndex::Is;}
ValidateExpr: ValidationMode EnclosedExpr /* [63] */
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
parseInfo->staticContext->error(QtXmlPatterns::tr("The Schema Validation Feature is not supported. "
"Hence, %1-expressions may not be used.")
.arg(formatKeyword("validate")),
@@ -3143,6 +3197,7 @@ ValidationMode: VALIDATE {$$ = Validate::Strict;}
ExtensionExpr: Pragmas EnclosedOptionalExpr /* [65] */
{
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
/* We don't support any pragmas, so we only do the
* necessary validation and use the fallback expression. */
@@ -3171,7 +3226,7 @@ Pragmas: Pragmas Pragma
Pragma: PRAGMA_START PragmaName PragmaContents PRAGMA_END /* [66] */
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
PragmaContents: /* empty */ /* [67] */
@@ -3241,12 +3296,14 @@ StepExpr: FilteredAxisStep
}
| BASEURI StringLiteral CURLY_LBRACE Expr CURLY_RBRACE /* [X] */
{
+ allowedIn(QXmlQuery::XSLT20, parseInfo, @$);
Q_ASSERT(!$2.isEmpty());
$$ = create(new StaticBaseURIStore($2, $4), @$, parseInfo);
}
| DECLARE NAMESPACE NCNAME G_EQ STRING_LITERAL CURLY_LBRACE /* [X] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20), parseInfo, @$);
parseInfo->resolvers.push(parseInfo->staticContext->namespaceBindings());
const NamespaceResolver::Ptr resolver(new DelegatingNamespaceResolver(parseInfo->staticContext->namespaceBindings()));
resolver->addBinding(QXmlName(parseInfo->staticContext->namePool()->allocateNamespace($5),
@@ -3449,6 +3506,36 @@ Axis: AxisToken COLONCOLON
}
else
$$ = $1;
+
+ switch($1)
+ {
+ case QXmlNodeModelIndex::AxisAttribute:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XSLT20),
+ parseInfo, @$);
+ break;
+ }
+ case QXmlNodeModelIndex::AxisChild:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XmlSchema11IdentityConstraintField
+ | QXmlQuery::XmlSchema11IdentityConstraintSelector
+ | QXmlQuery::XSLT20),
+ parseInfo, @$);
+ break;
+ }
+ default:
+ {
+ allowedIn(QueryLanguages( QXmlQuery::XPath20
+ | QXmlQuery::XQuery10
+ | QXmlQuery::XSLT20),
+ parseInfo, @$);
+ }
+ }
}
AxisToken: ANCESTOR_OR_SELF {$$ = QXmlNodeModelIndex::AxisAncestorOrSelf ;}
@@ -3470,6 +3557,7 @@ AbbrevForwardStep: AT_SIGN
}
NodeTest /* [72] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XSLT20 | QXmlQuery::XmlSchema11IdentityConstraintField), parseInfo, @$);
$$ = create(new AxisStep(QXmlNodeModelIndex::AxisAttribute, $3), @$, parseInfo);
parseInfo->restoreNodeTestSource();
@@ -3499,6 +3587,9 @@ AbbrevReverseStep: DOTDOT
NodeTest: NameTest /* [78] */
| KindTest
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
+ }
NameTest: ElementName /* [79] */
{
@@ -3521,6 +3612,7 @@ WildCard: STAR
}
| ANY_PREFIX
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
const QXmlName::LocalNameCode c = parseInfo->staticContext->namePool()->allocateLocalName($1);
$$ = LocalNameTest::create(parseInfo->nodeTestSource, c);
}
@@ -3528,6 +3620,7 @@ WildCard: STAR
FilterExpr: PrimaryExpr /* [81] */
| FilterExpr LBRACKET Expr RBRACKET
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(GenericPredicate::create($1, $3, parseInfo->staticContext, fromYYLTYPE(@4, parseInfo)), @$, parseInfo);
}
@@ -3556,15 +3649,18 @@ Literal: NumericLiteral
NumericLiteral: XPATH2_NUMBER /* [86] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = createNumericLiteral<Double>($1, @$, parseInfo);
}
| NUMBER
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = createNumericLiteral<Numeric>($1, @$, parseInfo);
}
VarRef: DOLLAR VarName /* [87] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = resolveVariable($2, @$, parseInfo, false);
}
@@ -3580,10 +3676,12 @@ VarName: NCNAME
ParenthesizedExpr: LPAREN Expr RPAREN /* [89] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = $2;
}
| LPAREN RPAREN
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
$$ = create(new EmptySequence, @$, parseInfo);
}
@@ -3599,6 +3697,7 @@ OrderingExpr: OrderingMode EnclosedExpr
FunctionCallExpr: FunctionName LPAREN FunctionArguments RPAREN /* [93] */
{
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
if(XPathHelper::isReservedNamespace($1.namespaceURI()) || $1.namespaceURI() == StandardNamespaces::InternalXSLT)
{ /* We got a call to a builtin function. */
const ReflectYYLTYPE ryy(@$, parseInfo);
@@ -3641,9 +3740,12 @@ FunctionArguments: /* empty */
Constructor: DirectConstructor /* [94] */
{
- disallowedConstruct(parseInfo, @$);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$);
}
| ComputedConstructor
+/* The reason we cannot call alloweIn() as the action for ComputedConstructor,
+ * is that we use the computed constructors for XSL-T, and therefore generate
+ * INTERNAL tokens. */
DirectConstructor: DirElemConstructor /* [95] */
| DirCommentConstructor
@@ -4075,7 +4177,7 @@ ComputedConstructor: CompDocConstructor
CompDocConstructor: DOCUMENT IsInternal EnclosedExpr /* [110] */
{
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
$$ = create(new DocumentConstructor($3), @$, parseInfo);
}
@@ -4088,7 +4190,7 @@ CompElemConstructor: ELEMENT IsInternal CompElementName
EnclosedOptionalExpr /* [111] */
{
Q_ASSERT(5);
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
Expression::Ptr effExpr;
@@ -4133,7 +4235,7 @@ CompAttrConstructor: ATTRIBUTE
CompAttributeName
EnclosedOptionalExpr /* [113] */
{
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
const Expression::Ptr name(create(new AttributeNameValidator($3), @$, parseInfo));
@@ -4150,14 +4252,14 @@ CompTextConstructor: TEXT IsInternal EnclosedExpr
CompCommentConstructor: COMMENT IsInternal EnclosedExpr /* [115] */
{
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
$$ = create(new CommentConstructor(createSimpleContent($3, @$, parseInfo)), @$, parseInfo);
}
CompPIConstructor: PROCESSING_INSTRUCTION CompPIName EnclosedOptionalExpr /* [116] */
{
- disallowedConstruct(parseInfo, @$, $2);
+ allowedIn(QXmlQuery::XQuery10, parseInfo, @$, $2);
if($3)
{
@@ -4517,7 +4619,13 @@ PragmaName: NCNAME
URILiteral: StringLiteral /* [140] */
StringLiteral: STRING_LITERAL /* [144] */
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
+ }
| XPATH2_STRING_LITERAL
+ {
+ allowedIn(QueryLanguages(QXmlQuery::XQuery10 | QXmlQuery::XPath20), parseInfo, @$);
+ }
QName: QNAME /* [154] */
{
diff --git a/src/xmlpatterns/schema/.gitignore b/src/xmlpatterns/schema/.gitignore
new file mode 100644
index 0000000..2b29f27
--- /dev/null
+++ b/src/xmlpatterns/schema/.gitignore
@@ -0,0 +1 @@
+tests
diff --git a/src/xmlpatterns/schema/builtinschemas.qrc b/src/xmlpatterns/schema/builtinschemas.qrc
new file mode 100644
index 0000000..fb43d78
--- /dev/null
+++ b/src/xmlpatterns/schema/builtinschemas.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file alias="http://www.w3.org/XML/1998/namespace">schemas/xml.xsd</file>
+</qresource>
+</RCC>
diff --git a/src/xmlpatterns/schema/doc/All_diagram.dot b/src/xmlpatterns/schema/doc/All_diagram.dot
new file mode 100644
index 0000000..3352b723
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/All_diagram.dot
@@ -0,0 +1,13 @@
+digraph All {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Alternative_diagram.dot b/src/xmlpatterns/schema/doc/Alternative_diagram.dot
new file mode 100644
index 0000000..2119c49
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Alternative_diagram.dot
@@ -0,0 +1,11 @@
+digraph Alternative {
+ mindist = 2.0
+ 1 -> 3 [label="complexType"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 2 -> 3 [label="complexType"]
+ 2 -> 3 [label="simpleType"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Annotation_diagram.dot b/src/xmlpatterns/schema/doc/Annotation_diagram.dot
new file mode 100644
index 0000000..260b6f7
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Annotation_diagram.dot
@@ -0,0 +1,9 @@
+digraph Annotation {
+ mindist = 2.0
+ 1 -> 2 [label="appinfo"]
+ 1 -> 2 [label="documentation"]
+ 2 -> 2 [label="appinfo"]
+ 2 -> 2 [label="documentation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/AnyAttribute_diagram.dot b/src/xmlpatterns/schema/doc/AnyAttribute_diagram.dot
new file mode 100644
index 0000000..d252ebd
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/AnyAttribute_diagram.dot
@@ -0,0 +1,6 @@
+digraph AnyAttribute {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Any_diagram.dot b/src/xmlpatterns/schema/doc/Any_diagram.dot
new file mode 100644
index 0000000..f54063f
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Any_diagram.dot
@@ -0,0 +1,6 @@
+digraph Any {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Assert_diagram.dot b/src/xmlpatterns/schema/doc/Assert_diagram.dot
new file mode 100644
index 0000000..7093bef
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Assert_diagram.dot
@@ -0,0 +1,6 @@
+digraph Assert {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Choice_diagram.dot b/src/xmlpatterns/schema/doc/Choice_diagram.dot
new file mode 100644
index 0000000..7b32016
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Choice_diagram.dot
@@ -0,0 +1,22 @@
+digraph Choice {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="group"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="group"]
+ 2 -> 3 [label="sequence"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="choice"]
+ 3 -> 3 [label="group"]
+ 3 -> 3 [label="sequence"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/ComplexContentExtension_diagram.dot b/src/xmlpatterns/schema/doc/ComplexContentExtension_diagram.dot
new file mode 100644
index 0000000..6131612
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/ComplexContentExtension_diagram.dot
@@ -0,0 +1,47 @@
+digraph ComplexContentExtension {
+ mindist = 2.0
+ 1 -> 4 [label="choice"]
+ 1 -> 4 [label="group"]
+ 1 -> 4 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 4 [label="sequence"]
+ 1 -> 6 [label="anyAttribute"]
+ 1 -> 7 [label="assert"]
+ 1 -> 3 [label="openContent"]
+ 1 -> 5 [label="attribute"]
+ 1 -> 5 [label="attributeGroup"]
+ 2 -> 4 [label="choice"]
+ 2 -> 4 [label="group"]
+ 2 -> 4 [label="all"]
+ 2 -> 4 [label="sequence"]
+ 2 -> 6 [label="anyAttribute"]
+ 2 -> 7 [label="assert"]
+ 2 -> 3 [label="openContent"]
+ 2 -> 5 [label="attribute"]
+ 2 -> 5 [label="attributeGroup"]
+ 3 -> 4 [label="choice"]
+ 3 -> 4 [label="group"]
+ 3 -> 4 [label="all"]
+ 3 -> 4 [label="sequence"]
+ 3 -> 6 [label="anyAttribute"]
+ 3 -> 7 [label="assert"]
+ 3 -> 5 [label="attribute"]
+ 3 -> 5 [label="attributeGroup"]
+ 4 -> 6 [label="anyAttribute"]
+ 4 -> 7 [label="assert"]
+ 4 -> 5 [label="attribute"]
+ 4 -> 5 [label="attributeGroup"]
+ 5 -> 6 [label="anyAttribute"]
+ 5 -> 7 [label="assert"]
+ 5 -> 5 [label="attribute"]
+ 5 -> 5 [label="attributeGroup"]
+ 6 -> 7 [label="assert"]
+ 7 -> 7 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+ 7 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/ComplexContentRestriction_diagram.dot b/src/xmlpatterns/schema/doc/ComplexContentRestriction_diagram.dot
new file mode 100644
index 0000000..bfda892
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/ComplexContentRestriction_diagram.dot
@@ -0,0 +1,47 @@
+digraph ComplexContentRestriction {
+ mindist = 2.0
+ 1 -> 4 [label="choice"]
+ 1 -> 4 [label="group"]
+ 1 -> 4 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 4 [label="sequence"]
+ 1 -> 6 [label="anyAttribute"]
+ 1 -> 7 [label="assert"]
+ 1 -> 3 [label="openContent"]
+ 1 -> 5 [label="attribute"]
+ 1 -> 5 [label="attributeGroup"]
+ 2 -> 4 [label="choice"]
+ 2 -> 4 [label="group"]
+ 2 -> 4 [label="all"]
+ 2 -> 4 [label="sequence"]
+ 2 -> 6 [label="anyAttribute"]
+ 2 -> 7 [label="assert"]
+ 2 -> 3 [label="openContent"]
+ 2 -> 5 [label="attribute"]
+ 2 -> 5 [label="attributeGroup"]
+ 3 -> 4 [label="choice"]
+ 3 -> 4 [label="group"]
+ 3 -> 4 [label="all"]
+ 3 -> 4 [label="sequence"]
+ 3 -> 6 [label="anyAttribute"]
+ 3 -> 7 [label="assert"]
+ 3 -> 5 [label="attribute"]
+ 3 -> 5 [label="attributeGroup"]
+ 4 -> 6 [label="anyAttribute"]
+ 4 -> 7 [label="assert"]
+ 4 -> 5 [label="attribute"]
+ 4 -> 5 [label="attributeGroup"]
+ 5 -> 6 [label="anyAttribute"]
+ 5 -> 7 [label="assert"]
+ 5 -> 5 [label="attribute"]
+ 5 -> 5 [label="attributeGroup"]
+ 6 -> 7 [label="assert"]
+ 7 -> 7 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+ 7 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/ComplexContent_diagram.dot b/src/xmlpatterns/schema/doc/ComplexContent_diagram.dot
new file mode 100644
index 0000000..949c27e
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/ComplexContent_diagram.dot
@@ -0,0 +1,11 @@
+digraph ComplexContent {
+ mindist = 2.0
+ 1 -> 3 [label="restriction"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="extension"]
+ 2 -> 3 [label="restriction"]
+ 2 -> 3 [label="extension"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/DefaultOpenContent_diagram.dot b/src/xmlpatterns/schema/doc/DefaultOpenContent_diagram.dot
new file mode 100644
index 0000000..61e7d14
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/DefaultOpenContent_diagram.dot
@@ -0,0 +1,9 @@
+digraph DefaultOpenContent {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="any"]
+ 2 -> 3 [label="any"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/EnumerationFacet_diagram.dot b/src/xmlpatterns/schema/doc/EnumerationFacet_diagram.dot
new file mode 100644
index 0000000..91be76b
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/EnumerationFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph EnumerationFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Field_diagram.dot b/src/xmlpatterns/schema/doc/Field_diagram.dot
new file mode 100644
index 0000000..1c597b3
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Field_diagram.dot
@@ -0,0 +1,6 @@
+digraph Field {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/FractionDigitsFacet_diagram.dot b/src/xmlpatterns/schema/doc/FractionDigitsFacet_diagram.dot
new file mode 100644
index 0000000..5e098b3
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/FractionDigitsFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph FractionDigitsFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/GlobalAttribute_diagram.dot b/src/xmlpatterns/schema/doc/GlobalAttribute_diagram.dot
new file mode 100644
index 0000000..25a1a43
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/GlobalAttribute_diagram.dot
@@ -0,0 +1,9 @@
+digraph GlobalAttribute {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 2 -> 3 [label="simpleType"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/GlobalComplexType_diagram.dot b/src/xmlpatterns/schema/doc/GlobalComplexType_diagram.dot
new file mode 100644
index 0000000..05e40b7
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/GlobalComplexType_diagram.dot
@@ -0,0 +1,52 @@
+digraph GlobalComplexType {
+ mindist = 2.0
+ 1 -> 5 [label="choice"]
+ 1 -> 3 [label="complexContent"]
+ 1 -> 5 [label="group"]
+ 1 -> 5 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 5 [label="sequence"]
+ 1 -> 3 [label="simpleContent"]
+ 1 -> 7 [label="anyAttribute"]
+ 1 -> 8 [label="assert"]
+ 1 -> 4 [label="openContent"]
+ 1 -> 6 [label="attribute"]
+ 1 -> 6 [label="attributeGroup"]
+ 2 -> 5 [label="choice"]
+ 2 -> 3 [label="complexContent"]
+ 2 -> 5 [label="group"]
+ 2 -> 5 [label="all"]
+ 2 -> 5 [label="sequence"]
+ 2 -> 3 [label="simpleContent"]
+ 2 -> 7 [label="anyAttribute"]
+ 2 -> 8 [label="assert"]
+ 2 -> 4 [label="openContent"]
+ 2 -> 6 [label="attribute"]
+ 2 -> 6 [label="attributeGroup"]
+ 4 -> 5 [label="choice"]
+ 4 -> 5 [label="group"]
+ 4 -> 5 [label="all"]
+ 4 -> 5 [label="sequence"]
+ 4 -> 7 [label="anyAttribute"]
+ 4 -> 8 [label="assert"]
+ 4 -> 6 [label="attribute"]
+ 4 -> 6 [label="attributeGroup"]
+ 5 -> 7 [label="anyAttribute"]
+ 5 -> 8 [label="assert"]
+ 5 -> 6 [label="attribute"]
+ 5 -> 6 [label="attributeGroup"]
+ 6 -> 7 [label="anyAttribute"]
+ 6 -> 8 [label="assert"]
+ 6 -> 6 [label="attribute"]
+ 6 -> 6 [label="attributeGroup"]
+ 7 -> 8 [label="assert"]
+ 8 -> 8 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+ 7 [shape=doublecircle, style=filled, color=green]
+ 8 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/GlobalElement_diagram.dot b/src/xmlpatterns/schema/doc/GlobalElement_diagram.dot
new file mode 100644
index 0000000..20447a7
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/GlobalElement_diagram.dot
@@ -0,0 +1,32 @@
+digraph GlobalElement {
+ mindist = 2.0
+ 1 -> 3 [label="complexType"]
+ 1 -> 4 [label="alternative"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 5 [label="key"]
+ 1 -> 3 [label="simpleType"]
+ 1 -> 5 [label="keyref"]
+ 1 -> 5 [label="unique"]
+ 2 -> 3 [label="complexType"]
+ 2 -> 4 [label="alternative"]
+ 2 -> 5 [label="key"]
+ 2 -> 3 [label="simpleType"]
+ 2 -> 5 [label="keyref"]
+ 2 -> 5 [label="unique"]
+ 3 -> 4 [label="alternative"]
+ 3 -> 5 [label="key"]
+ 3 -> 5 [label="keyref"]
+ 3 -> 5 [label="unique"]
+ 4 -> 4 [label="alternative"]
+ 4 -> 5 [label="key"]
+ 4 -> 5 [label="keyref"]
+ 4 -> 5 [label="unique"]
+ 5 -> 5 [label="key"]
+ 5 -> 5 [label="keyref"]
+ 5 -> 5 [label="unique"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/GlobalSimpleType_diagram.dot b/src/xmlpatterns/schema/doc/GlobalSimpleType_diagram.dot
new file mode 100644
index 0000000..ccb7f54
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/GlobalSimpleType_diagram.dot
@@ -0,0 +1,13 @@
+digraph GlobalSimpleType {
+ mindist = 2.0
+ 1 -> 3 [label="restriction"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="list"]
+ 1 -> 3 [label="union"]
+ 2 -> 3 [label="restriction"]
+ 2 -> 3 [label="list"]
+ 2 -> 3 [label="union"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Import_diagram.dot b/src/xmlpatterns/schema/doc/Import_diagram.dot
new file mode 100644
index 0000000..3484bc3
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Import_diagram.dot
@@ -0,0 +1,6 @@
+digraph Import {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Include_diagram.dot b/src/xmlpatterns/schema/doc/Include_diagram.dot
new file mode 100644
index 0000000..357e4c9
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Include_diagram.dot
@@ -0,0 +1,6 @@
+digraph Include {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/KeyRef_diagram.dot b/src/xmlpatterns/schema/doc/KeyRef_diagram.dot
new file mode 100644
index 0000000..ff425b9
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/KeyRef_diagram.dot
@@ -0,0 +1,12 @@
+digraph KeyRef {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="selector"]
+ 2 -> 3 [label="selector"]
+ 3 -> 4 [label="field"]
+ 4 -> 4 [label="field"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=circle, style=filled, color=red]
+ 4 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Key_diagram.dot b/src/xmlpatterns/schema/doc/Key_diagram.dot
new file mode 100644
index 0000000..bbc09cd
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Key_diagram.dot
@@ -0,0 +1,12 @@
+digraph Key {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="selector"]
+ 2 -> 3 [label="selector"]
+ 3 -> 4 [label="field"]
+ 4 -> 4 [label="field"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=circle, style=filled, color=red]
+ 4 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LengthFacet_diagram.dot b/src/xmlpatterns/schema/doc/LengthFacet_diagram.dot
new file mode 100644
index 0000000..1f9205b
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LengthFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph LengthFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/List_diagram.dot b/src/xmlpatterns/schema/doc/List_diagram.dot
new file mode 100644
index 0000000..44cc698
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/List_diagram.dot
@@ -0,0 +1,9 @@
+digraph List {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 2 -> 3 [label="simpleType"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalAll_diagram.dot b/src/xmlpatterns/schema/doc/LocalAll_diagram.dot
new file mode 100644
index 0000000..88f1b61
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalAll_diagram.dot
@@ -0,0 +1,13 @@
+digraph LocalAll {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalAttribute_diagram.dot b/src/xmlpatterns/schema/doc/LocalAttribute_diagram.dot
new file mode 100644
index 0000000..b01f0cf
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalAttribute_diagram.dot
@@ -0,0 +1,9 @@
+digraph LocalAttribute {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 2 -> 3 [label="simpleType"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalChoice_diagram.dot b/src/xmlpatterns/schema/doc/LocalChoice_diagram.dot
new file mode 100644
index 0000000..b16c47f
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalChoice_diagram.dot
@@ -0,0 +1,22 @@
+digraph LocalChoice {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="group"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="group"]
+ 2 -> 3 [label="sequence"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="choice"]
+ 3 -> 3 [label="group"]
+ 3 -> 3 [label="sequence"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalComplexType_diagram.dot b/src/xmlpatterns/schema/doc/LocalComplexType_diagram.dot
new file mode 100644
index 0000000..92c54b7
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalComplexType_diagram.dot
@@ -0,0 +1,52 @@
+digraph LocalComplexType {
+ mindist = 2.0
+ 1 -> 5 [label="choice"]
+ 1 -> 3 [label="complexContent"]
+ 1 -> 5 [label="group"]
+ 1 -> 5 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 5 [label="sequence"]
+ 1 -> 3 [label="simpleContent"]
+ 1 -> 7 [label="anyAttribute"]
+ 1 -> 8 [label="assert"]
+ 1 -> 4 [label="openContent"]
+ 1 -> 6 [label="attribute"]
+ 1 -> 6 [label="attributeGroup"]
+ 2 -> 5 [label="choice"]
+ 2 -> 3 [label="complexContent"]
+ 2 -> 5 [label="group"]
+ 2 -> 5 [label="all"]
+ 2 -> 5 [label="sequence"]
+ 2 -> 3 [label="simpleContent"]
+ 2 -> 7 [label="anyAttribute"]
+ 2 -> 8 [label="assert"]
+ 2 -> 4 [label="openContent"]
+ 2 -> 6 [label="attribute"]
+ 2 -> 6 [label="attributeGroup"]
+ 4 -> 5 [label="choice"]
+ 4 -> 5 [label="group"]
+ 4 -> 5 [label="all"]
+ 4 -> 5 [label="sequence"]
+ 4 -> 7 [label="anyAttribute"]
+ 4 -> 8 [label="assert"]
+ 4 -> 6 [label="attribute"]
+ 4 -> 6 [label="attributeGroup"]
+ 5 -> 7 [label="anyAttribute"]
+ 5 -> 8 [label="assert"]
+ 5 -> 6 [label="attribute"]
+ 5 -> 6 [label="attributeGroup"]
+ 6 -> 7 [label="anyAttribute"]
+ 6 -> 8 [label="assert"]
+ 6 -> 6 [label="attribute"]
+ 6 -> 6 [label="attributeGroup"]
+ 7 -> 8 [label="assert"]
+ 8 -> 8 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+ 7 [shape=doublecircle, style=filled, color=green]
+ 8 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalElement_diagram.dot b/src/xmlpatterns/schema/doc/LocalElement_diagram.dot
new file mode 100644
index 0000000..397397a
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalElement_diagram.dot
@@ -0,0 +1,32 @@
+digraph LocalElement {
+ mindist = 2.0
+ 1 -> 3 [label="complexType"]
+ 1 -> 4 [label="alternative"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 5 [label="key"]
+ 1 -> 3 [label="simpleType"]
+ 1 -> 5 [label="keyref"]
+ 1 -> 5 [label="unique"]
+ 2 -> 3 [label="complexType"]
+ 2 -> 4 [label="alternative"]
+ 2 -> 5 [label="key"]
+ 2 -> 3 [label="simpleType"]
+ 2 -> 5 [label="keyref"]
+ 2 -> 5 [label="unique"]
+ 3 -> 4 [label="alternative"]
+ 3 -> 5 [label="key"]
+ 3 -> 5 [label="keyref"]
+ 3 -> 5 [label="unique"]
+ 4 -> 4 [label="alternative"]
+ 4 -> 5 [label="key"]
+ 4 -> 5 [label="keyref"]
+ 4 -> 5 [label="unique"]
+ 5 -> 5 [label="key"]
+ 5 -> 5 [label="keyref"]
+ 5 -> 5 [label="unique"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalSequence_diagram.dot b/src/xmlpatterns/schema/doc/LocalSequence_diagram.dot
new file mode 100644
index 0000000..0dc7f39
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalSequence_diagram.dot
@@ -0,0 +1,22 @@
+digraph LocalSequence {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="group"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="group"]
+ 2 -> 3 [label="sequence"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="choice"]
+ 3 -> 3 [label="group"]
+ 3 -> 3 [label="sequence"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/LocalSimpleType_diagram.dot b/src/xmlpatterns/schema/doc/LocalSimpleType_diagram.dot
new file mode 100644
index 0000000..ac13305
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/LocalSimpleType_diagram.dot
@@ -0,0 +1,13 @@
+digraph LocalSimpleType {
+ mindist = 2.0
+ 1 -> 3 [label="restriction"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="list"]
+ 1 -> 3 [label="union"]
+ 2 -> 3 [label="restriction"]
+ 2 -> 3 [label="list"]
+ 2 -> 3 [label="union"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MaxExclusiveFacet_diagram.dot b/src/xmlpatterns/schema/doc/MaxExclusiveFacet_diagram.dot
new file mode 100644
index 0000000..28364f7
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MaxExclusiveFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MaxExclusiveFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MaxInclusiveFacet_diagram.dot b/src/xmlpatterns/schema/doc/MaxInclusiveFacet_diagram.dot
new file mode 100644
index 0000000..9e2c265
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MaxInclusiveFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MaxInclusiveFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MaxLengthFacet_diagram.dot b/src/xmlpatterns/schema/doc/MaxLengthFacet_diagram.dot
new file mode 100644
index 0000000..d565217
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MaxLengthFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MaxLengthFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MinExclusiveFacet_diagram.dot b/src/xmlpatterns/schema/doc/MinExclusiveFacet_diagram.dot
new file mode 100644
index 0000000..d3b3f1f
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MinExclusiveFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MinExclusiveFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MinInclusiveFacet_diagram.dot b/src/xmlpatterns/schema/doc/MinInclusiveFacet_diagram.dot
new file mode 100644
index 0000000..e5ca65d
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MinInclusiveFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MinInclusiveFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/MinLengthFacet_diagram.dot b/src/xmlpatterns/schema/doc/MinLengthFacet_diagram.dot
new file mode 100644
index 0000000..1dcced4
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/MinLengthFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph MinLengthFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/NamedAttributeGroup_diagram.dot b/src/xmlpatterns/schema/doc/NamedAttributeGroup_diagram.dot
new file mode 100644
index 0000000..1754f67
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/NamedAttributeGroup_diagram.dot
@@ -0,0 +1,17 @@
+digraph NamedAttributeGroup {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 4 [label="anyAttribute"]
+ 1 -> 3 [label="attribute"]
+ 1 -> 3 [label="attributeGroup"]
+ 2 -> 4 [label="anyAttribute"]
+ 2 -> 3 [label="attribute"]
+ 2 -> 3 [label="attributeGroup"]
+ 3 -> 4 [label="anyAttribute"]
+ 3 -> 3 [label="attribute"]
+ 3 -> 3 [label="attributeGroup"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/NamedGroup_diagram.dot b/src/xmlpatterns/schema/doc/NamedGroup_diagram.dot
new file mode 100644
index 0000000..6d9a289
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/NamedGroup_diagram.dot
@@ -0,0 +1,13 @@
+digraph NamedGroup {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="all"]
+ 2 -> 3 [label="sequence"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Notation_diagram.dot b/src/xmlpatterns/schema/doc/Notation_diagram.dot
new file mode 100644
index 0000000..951f26a
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Notation_diagram.dot
@@ -0,0 +1,6 @@
+digraph Notation {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Override_diagram.dot b/src/xmlpatterns/schema/doc/Override_diagram.dot
new file mode 100644
index 0000000..448451a
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Override_diagram.dot
@@ -0,0 +1,21 @@
+digraph Override {
+ mindist = 2.0
+ 1 -> 2 [label="group"]
+ 1 -> 2 [label="complexType"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 2 [label="simpleType"]
+ 1 -> 2 [label="element"]
+ 1 -> 2 [label="notation"]
+ 1 -> 2 [label="attribute"]
+ 1 -> 2 [label="attributeGroup"]
+ 2 -> 2 [label="group"]
+ 2 -> 2 [label="complexType"]
+ 2 -> 2 [label="annotation"]
+ 2 -> 2 [label="simpleType"]
+ 2 -> 2 [label="element"]
+ 2 -> 2 [label="notation"]
+ 2 -> 2 [label="attribute"]
+ 2 -> 2 [label="attributeGroup"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/PatternFacet_diagram.dot b/src/xmlpatterns/schema/doc/PatternFacet_diagram.dot
new file mode 100644
index 0000000..794d74c
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/PatternFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph PatternFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Redefine_diagram.dot b/src/xmlpatterns/schema/doc/Redefine_diagram.dot
new file mode 100644
index 0000000..ba4871d
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Redefine_diagram.dot
@@ -0,0 +1,15 @@
+digraph Redefine {
+ mindist = 2.0
+ 1 -> 2 [label="group"]
+ 1 -> 2 [label="complexType"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 2 [label="simpleType"]
+ 1 -> 2 [label="attributeGroup"]
+ 2 -> 2 [label="group"]
+ 2 -> 2 [label="complexType"]
+ 2 -> 2 [label="annotation"]
+ 2 -> 2 [label="simpleType"]
+ 2 -> 2 [label="attributeGroup"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/ReferredAttributeGroup_diagram.dot b/src/xmlpatterns/schema/doc/ReferredAttributeGroup_diagram.dot
new file mode 100644
index 0000000..fd08872
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/ReferredAttributeGroup_diagram.dot
@@ -0,0 +1,6 @@
+digraph ReferredAttributeGroup {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/ReferredGroup_diagram.dot b/src/xmlpatterns/schema/doc/ReferredGroup_diagram.dot
new file mode 100644
index 0000000..c32f69f
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/ReferredGroup_diagram.dot
@@ -0,0 +1,13 @@
+digraph ReferredGroup {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="all"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="all"]
+ 2 -> 3 [label="sequence"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Schema_diagram.dot b/src/xmlpatterns/schema/doc/Schema_diagram.dot
new file mode 100644
index 0000000..7d39337
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Schema_diagram.dot
@@ -0,0 +1,66 @@
+digraph Schema {
+ mindist = 2.0
+ 1 -> 5 [label="group"]
+ 1 -> 5 [label="complexType"]
+ 1 -> 2 [label="import"]
+ 1 -> 2 [label="include"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="defaultOpenContent"]
+ 1 -> 5 [label="simpleType"]
+ 1 -> 5 [label="element"]
+ 1 -> 5 [label="notation"]
+ 1 -> 2 [label="override"]
+ 1 -> 5 [label="attribute"]
+ 1 -> 5 [label="attributeGroup"]
+ 1 -> 2 [label="redefine"]
+ 2 -> 5 [label="group"]
+ 2 -> 5 [label="complexType"]
+ 2 -> 2 [label="import"]
+ 2 -> 2 [label="include"]
+ 2 -> 2 [label="annotation"]
+ 2 -> 3 [label="defaultOpenContent"]
+ 2 -> 5 [label="simpleType"]
+ 2 -> 5 [label="element"]
+ 2 -> 5 [label="notation"]
+ 2 -> 2 [label="override"]
+ 2 -> 5 [label="attribute"]
+ 2 -> 5 [label="attributeGroup"]
+ 2 -> 2 [label="redefine"]
+ 3 -> 5 [label="group"]
+ 3 -> 5 [label="complexType"]
+ 3 -> 4 [label="annotation"]
+ 3 -> 5 [label="simpleType"]
+ 3 -> 5 [label="element"]
+ 3 -> 5 [label="notation"]
+ 3 -> 5 [label="attribute"]
+ 3 -> 5 [label="attributeGroup"]
+ 4 -> 5 [label="group"]
+ 4 -> 5 [label="complexType"]
+ 4 -> 5 [label="simpleType"]
+ 4 -> 5 [label="element"]
+ 4 -> 5 [label="notation"]
+ 4 -> 5 [label="attribute"]
+ 4 -> 5 [label="attributeGroup"]
+ 5 -> 5 [label="group"]
+ 5 -> 5 [label="complexType"]
+ 5 -> 6 [label="annotation"]
+ 5 -> 5 [label="simpleType"]
+ 5 -> 5 [label="element"]
+ 5 -> 5 [label="notation"]
+ 5 -> 5 [label="attribute"]
+ 5 -> 5 [label="attributeGroup"]
+ 6 -> 5 [label="group"]
+ 6 -> 5 [label="complexType"]
+ 6 -> 6 [label="annotation"]
+ 6 -> 5 [label="simpleType"]
+ 6 -> 5 [label="element"]
+ 6 -> 5 [label="notation"]
+ 6 -> 5 [label="attribute"]
+ 6 -> 5 [label="attributeGroup"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Selector_diagram.dot b/src/xmlpatterns/schema/doc/Selector_diagram.dot
new file mode 100644
index 0000000..f3e93dc
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Selector_diagram.dot
@@ -0,0 +1,6 @@
+digraph Selector {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Sequence_diagram.dot b/src/xmlpatterns/schema/doc/Sequence_diagram.dot
new file mode 100644
index 0000000..9172744
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Sequence_diagram.dot
@@ -0,0 +1,22 @@
+digraph Sequence {
+ mindist = 2.0
+ 1 -> 3 [label="choice"]
+ 1 -> 3 [label="group"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="sequence"]
+ 1 -> 3 [label="any"]
+ 1 -> 3 [label="element"]
+ 2 -> 3 [label="choice"]
+ 2 -> 3 [label="group"]
+ 2 -> 3 [label="sequence"]
+ 2 -> 3 [label="any"]
+ 2 -> 3 [label="element"]
+ 3 -> 3 [label="choice"]
+ 3 -> 3 [label="group"]
+ 3 -> 3 [label="sequence"]
+ 3 -> 3 [label="any"]
+ 3 -> 3 [label="element"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/SimpleContentExtension_diagram.dot b/src/xmlpatterns/schema/doc/SimpleContentExtension_diagram.dot
new file mode 100644
index 0000000..3ceebfd
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/SimpleContentExtension_diagram.dot
@@ -0,0 +1,23 @@
+digraph SimpleContentExtension {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 4 [label="anyAttribute"]
+ 1 -> 5 [label="assert"]
+ 1 -> 3 [label="attribute"]
+ 1 -> 3 [label="attributeGroup"]
+ 2 -> 4 [label="anyAttribute"]
+ 2 -> 5 [label="assert"]
+ 2 -> 3 [label="attribute"]
+ 2 -> 3 [label="attributeGroup"]
+ 3 -> 4 [label="anyAttribute"]
+ 3 -> 5 [label="assert"]
+ 3 -> 3 [label="attribute"]
+ 3 -> 3 [label="attributeGroup"]
+ 4 -> 5 [label="assert"]
+ 5 -> 5 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/SimpleContentRestriction_diagram.dot b/src/xmlpatterns/schema/doc/SimpleContentRestriction_diagram.dot
new file mode 100644
index 0000000..75b0b71
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/SimpleContentRestriction_diagram.dot
@@ -0,0 +1,87 @@
+digraph SimpleContentRestriction {
+ mindist = 2.0
+ 1 -> 3 [label="simpleType"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 4 [label="length"]
+ 1 -> 6 [label="anyAttribute"]
+ 1 -> 4 [label="maxExclusive"]
+ 1 -> 4 [label="totalDigits"]
+ 1 -> 4 [label="maxInclusive"]
+ 1 -> 4 [label="maxLength"]
+ 1 -> 7 [label="assert"]
+ 1 -> 4 [label="assertion"]
+ 1 -> 5 [label="attribute"]
+ 1 -> 4 [label="minExclusive"]
+ 1 -> 5 [label="attributeGroup"]
+ 1 -> 4 [label="minInclusive"]
+ 1 -> 4 [label="minLength"]
+ 1 -> 4 [label="whiteSpace"]
+ 1 -> 4 [label="pattern"]
+ 1 -> 4 [label="enumeration"]
+ 1 -> 4 [label="fractionDigits"]
+ 2 -> 3 [label="simpleType"]
+ 2 -> 4 [label="length"]
+ 2 -> 6 [label="anyAttribute"]
+ 2 -> 4 [label="maxExclusive"]
+ 2 -> 4 [label="totalDigits"]
+ 2 -> 4 [label="maxInclusive"]
+ 2 -> 4 [label="maxLength"]
+ 2 -> 7 [label="assert"]
+ 2 -> 4 [label="assertion"]
+ 2 -> 5 [label="attribute"]
+ 2 -> 4 [label="minExclusive"]
+ 2 -> 5 [label="attributeGroup"]
+ 2 -> 4 [label="minInclusive"]
+ 2 -> 4 [label="minLength"]
+ 2 -> 4 [label="whiteSpace"]
+ 2 -> 4 [label="pattern"]
+ 2 -> 4 [label="enumeration"]
+ 2 -> 4 [label="fractionDigits"]
+ 3 -> 4 [label="fractionDigits"]
+ 3 -> 4 [label="minLength"]
+ 3 -> 4 [label="whiteSpace"]
+ 3 -> 6 [label="anyAttribute"]
+ 3 -> 4 [label="length"]
+ 3 -> 7 [label="assert"]
+ 3 -> 4 [label="maxExclusive"]
+ 3 -> 4 [label="enumeration"]
+ 3 -> 4 [label="assertion"]
+ 3 -> 4 [label="maxInclusive"]
+ 3 -> 5 [label="attribute"]
+ 3 -> 4 [label="maxLength"]
+ 3 -> 4 [label="pattern"]
+ 3 -> 4 [label="totalDigits"]
+ 3 -> 5 [label="attributeGroup"]
+ 3 -> 4 [label="minExclusive"]
+ 3 -> 4 [label="minInclusive"]
+ 4 -> 4 [label="fractionDigits"]
+ 4 -> 4 [label="minLength"]
+ 4 -> 4 [label="whiteSpace"]
+ 4 -> 6 [label="anyAttribute"]
+ 4 -> 4 [label="length"]
+ 4 -> 7 [label="assert"]
+ 4 -> 4 [label="maxExclusive"]
+ 4 -> 4 [label="enumeration"]
+ 4 -> 4 [label="assertion"]
+ 4 -> 4 [label="maxInclusive"]
+ 4 -> 5 [label="attribute"]
+ 4 -> 4 [label="maxLength"]
+ 4 -> 4 [label="pattern"]
+ 4 -> 4 [label="totalDigits"]
+ 4 -> 5 [label="attributeGroup"]
+ 4 -> 4 [label="minExclusive"]
+ 4 -> 4 [label="minInclusive"]
+ 5 -> 6 [label="anyAttribute"]
+ 5 -> 7 [label="assert"]
+ 5 -> 5 [label="attribute"]
+ 5 -> 5 [label="attributeGroup"]
+ 6 -> 7 [label="assert"]
+ 7 -> 7 [label="assert"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+ 5 [shape=doublecircle, style=filled, color=green]
+ 6 [shape=doublecircle, style=filled, color=green]
+ 7 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/SimpleContent_diagram.dot b/src/xmlpatterns/schema/doc/SimpleContent_diagram.dot
new file mode 100644
index 0000000..c996329
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/SimpleContent_diagram.dot
@@ -0,0 +1,11 @@
+digraph SimpleContent {
+ mindist = 2.0
+ 1 -> 3 [label="restriction"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="extension"]
+ 2 -> 3 [label="restriction"]
+ 2 -> 3 [label="extension"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/SimpleRestriction_diagram.dot b/src/xmlpatterns/schema/doc/SimpleRestriction_diagram.dot
new file mode 100644
index 0000000..09cb041
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/SimpleRestriction_diagram.dot
@@ -0,0 +1,62 @@
+digraph SimpleRestriction {
+ mindist = 2.0
+ 1 -> 4 [label="fractionDigits"]
+ 1 -> 4 [label="minLength"]
+ 1 -> 4 [label="whiteSpace"]
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 1 -> 4 [label="length"]
+ 1 -> 4 [label="maxExclusive"]
+ 1 -> 4 [label="enumeration"]
+ 1 -> 4 [label="assertion"]
+ 1 -> 4 [label="maxInclusive"]
+ 1 -> 4 [label="maxLength"]
+ 1 -> 4 [label="pattern"]
+ 1 -> 4 [label="totalDigits"]
+ 1 -> 4 [label="minExclusive"]
+ 1 -> 4 [label="minInclusive"]
+ 2 -> 4 [label="fractionDigits"]
+ 2 -> 4 [label="minLength"]
+ 2 -> 4 [label="whiteSpace"]
+ 2 -> 3 [label="simpleType"]
+ 2 -> 4 [label="length"]
+ 2 -> 4 [label="maxExclusive"]
+ 2 -> 4 [label="enumeration"]
+ 2 -> 4 [label="assertion"]
+ 2 -> 4 [label="maxInclusive"]
+ 2 -> 4 [label="maxLength"]
+ 2 -> 4 [label="pattern"]
+ 2 -> 4 [label="totalDigits"]
+ 2 -> 4 [label="minExclusive"]
+ 2 -> 4 [label="minInclusive"]
+ 3 -> 4 [label="fractionDigits"]
+ 3 -> 4 [label="minLength"]
+ 3 -> 4 [label="whiteSpace"]
+ 3 -> 4 [label="length"]
+ 3 -> 4 [label="maxExclusive"]
+ 3 -> 4 [label="enumeration"]
+ 3 -> 4 [label="assertion"]
+ 3 -> 4 [label="maxInclusive"]
+ 3 -> 4 [label="maxLength"]
+ 3 -> 4 [label="pattern"]
+ 3 -> 4 [label="totalDigits"]
+ 3 -> 4 [label="minExclusive"]
+ 3 -> 4 [label="minInclusive"]
+ 4 -> 4 [label="fractionDigits"]
+ 4 -> 4 [label="minLength"]
+ 4 -> 4 [label="whiteSpace"]
+ 4 -> 4 [label="length"]
+ 4 -> 4 [label="maxExclusive"]
+ 4 -> 4 [label="enumeration"]
+ 4 -> 4 [label="assertion"]
+ 4 -> 4 [label="maxInclusive"]
+ 4 -> 4 [label="maxLength"]
+ 4 -> 4 [label="pattern"]
+ 4 -> 4 [label="totalDigits"]
+ 4 -> 4 [label="minExclusive"]
+ 4 -> 4 [label="minInclusive"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+ 4 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/TotalDigitsFacet_diagram.dot b/src/xmlpatterns/schema/doc/TotalDigitsFacet_diagram.dot
new file mode 100644
index 0000000..0ef4cd6
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/TotalDigitsFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph TotalDigitsFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Union_diagram.dot b/src/xmlpatterns/schema/doc/Union_diagram.dot
new file mode 100644
index 0000000..d6c1865
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Union_diagram.dot
@@ -0,0 +1,10 @@
+digraph Union {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="simpleType"]
+ 2 -> 3 [label="simpleType"]
+ 3 -> 3 [label="simpleType"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+ 3 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/Unique_diagram.dot b/src/xmlpatterns/schema/doc/Unique_diagram.dot
new file mode 100644
index 0000000..5b1d098
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/Unique_diagram.dot
@@ -0,0 +1,12 @@
+digraph Unique {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 -> 3 [label="selector"]
+ 2 -> 3 [label="selector"]
+ 3 -> 4 [label="field"]
+ 4 -> 4 [label="field"]
+ 1 [shape=circle, style=filled, color=blue]
+ 2 [shape=circle, style=filled, color=red]
+ 3 [shape=circle, style=filled, color=red]
+ 4 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/WhiteSpaceFacet_diagram.dot b/src/xmlpatterns/schema/doc/WhiteSpaceFacet_diagram.dot
new file mode 100644
index 0000000..596403c
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/WhiteSpaceFacet_diagram.dot
@@ -0,0 +1,6 @@
+digraph WhiteSpaceFacet {
+ mindist = 2.0
+ 1 -> 2 [label="annotation"]
+ 1 [shape=doublecircle, style=filled, color=blue]
+ 2 [shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/doc/legend.dot b/src/xmlpatterns/schema/doc/legend.dot
new file mode 100644
index 0000000..4f5792e
--- /dev/null
+++ b/src/xmlpatterns/schema/doc/legend.dot
@@ -0,0 +1,7 @@
+digraph {
+ size="5,4"
+ 1 [label=" start state ", shape=circle, style=filled, color=blue]
+ 2 [label="start/end state", shape=doublecircle, style=filled, color=blue]
+ 3 [label=" internal state", shape=circle, style=filled, color=red]
+ 4 [label=" end state ", shape=doublecircle, style=filled, color=green]
+}
diff --git a/src/xmlpatterns/schema/qnamespacesupport.cpp b/src/xmlpatterns/schema/qnamespacesupport.cpp
new file mode 100644
index 0000000..dc76a6f
--- /dev/null
+++ b/src/xmlpatterns/schema/qnamespacesupport.cpp
@@ -0,0 +1,160 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#include "qnamespacesupport_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+NamespaceSupport::NamespaceSupport()
+{
+}
+
+NamespaceSupport::NamespaceSupport(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+{
+ // the XML namespace
+ m_ns.insert(StandardPrefixes::xml, StandardNamespaces::xml);
+}
+
+void NamespaceSupport::setPrefix(const QXmlName::PrefixCode prefixCode, const QXmlName::NamespaceCode namespaceCode)
+{
+ m_ns.insert(prefixCode, namespaceCode);
+}
+
+void NamespaceSupport::setPrefixes(const QXmlStreamNamespaceDeclarations &declarations)
+{
+ for (int i = 0; i < declarations.count(); i++) {
+ const QXmlStreamNamespaceDeclaration declaration = declarations.at(i);
+
+ const QXmlName::PrefixCode prefixCode = m_namePool->allocatePrefix(declaration.prefix().toString());
+ const QXmlName::NamespaceCode namespaceCode = m_namePool->allocateNamespace(declaration.namespaceUri().toString());
+ m_ns.insert(prefixCode, namespaceCode);
+ }
+}
+
+void NamespaceSupport::setTargetNamespace(const QXmlName::NamespaceCode namespaceCode)
+{
+ m_ns.insert(0, namespaceCode);
+}
+
+QXmlName::PrefixCode NamespaceSupport::prefix(const QXmlName::NamespaceCode namespaceCode) const
+{
+ NamespaceHash::const_iterator itc, it = m_ns.constBegin();
+ while ((itc=it) != m_ns.constEnd()) {
+ ++it;
+ if (*itc == namespaceCode)
+ return itc.key();
+ }
+ return 0;
+}
+
+QXmlName::NamespaceCode NamespaceSupport::uri(const QXmlName::PrefixCode prefixCode) const
+{
+ return m_ns.value(prefixCode);
+}
+
+bool NamespaceSupport::processName(const QString& qname, NameType type, QXmlName &name) const
+{
+ int len = qname.size();
+ const QChar *data = qname.constData();
+ for (int pos = 0; pos < len; ++pos) {
+ if (data[pos] == QLatin1Char(':')) {
+ const QXmlName::PrefixCode prefixCode = m_namePool->allocatePrefix(qname.left(pos));
+ if (!m_ns.contains(prefixCode))
+ return false;
+ const QXmlName::NamespaceCode namespaceCode = uri(prefixCode);
+ const QXmlName::LocalNameCode localNameCode = m_namePool->allocateLocalName(qname.mid(pos + 1));
+ name = QXmlName(namespaceCode, localNameCode, prefixCode);
+ return true;
+ }
+ }
+
+ // there was no ':'
+ QXmlName::NamespaceCode namespaceCode = 0;
+ // attributes don't take default namespace
+ if (type == ElementName && !m_ns.isEmpty()) {
+ namespaceCode = m_ns.value(0); // get default namespace
+ }
+
+ const QXmlName::LocalNameCode localNameCode = m_namePool->allocateLocalName(qname);
+ name = QXmlName(namespaceCode, localNameCode, 0);
+
+ return true;
+}
+
+void NamespaceSupport::pushContext()
+{
+ m_nsStack.push(m_ns);
+}
+
+void NamespaceSupport::popContext()
+{
+ m_ns.clear();
+ if(!m_nsStack.isEmpty())
+ m_ns = m_nsStack.pop();
+}
+
+QList<QXmlName> NamespaceSupport::namespaceBindings() const
+{
+ QList<QXmlName> bindings;
+
+ QHashIterator<QXmlName::PrefixCode, QXmlName::NamespaceCode> it(m_ns);
+ while (it.hasNext()) {
+ it.next();
+ bindings.append(QXmlName(it.value(), StandardLocalNames::empty, it.key()));
+ }
+
+ return bindings;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qnamespacesupport_p.h b/src/xmlpatterns/schema/qnamespacesupport_p.h
new file mode 100644
index 0000000..1f8f955
--- /dev/null
+++ b/src/xmlpatterns/schema/qnamespacesupport_p.h
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_NamespaceSupport_H
+#define Patternist_NamespaceSupport_H
+
+#include "qnamepool_p.h"
+
+#include <QtCore/QExplicitlySharedDataPointer>
+#include <QtCore/QHash>
+#include <QtCore/QSet>
+#include <QtCore/QStack>
+#include <QtCore/QXmlStreamNamespaceDeclarations>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class for handling nested namespace declarations.
+ *
+ * This class is mostly an adaption of QXmlNamespaceSupport to the NamePool
+ * mechanism used in XmlPatterns.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class NamespaceSupport
+ {
+ public:
+ /**
+ * Describes whether the name to process is an attribute or element.
+ */
+ enum NameType
+ {
+ AttributeName, ///< An attribute name to process.
+ ElementName ///< An element name to process.
+ };
+
+ /**
+ * Creates an empty namespace support object.
+ */
+ NamespaceSupport();
+
+ /**
+ * Creates a new namespace support object.
+ *
+ * @param namePool The name pool where all processed names are stored in.
+ */
+ NamespaceSupport(const NamePool::Ptr &namePool);
+
+ /**
+ * Adds a new prefix-to-namespace binding.
+ *
+ * @param prefixCode The name pool code for the prefix.
+ * @param namespaceCode The name pool code for the namespace.
+ */
+ void setPrefix(const QXmlName::PrefixCode prefixCode, const QXmlName::NamespaceCode namespaceCode);
+
+ /**
+ * Adds the prefix-to-namespace bindings from @p declarations to
+ * the namespace support.
+ */
+ void setPrefixes(const QXmlStreamNamespaceDeclarations &declarations);
+
+ /**
+ * Sets the name pool code of the target namespace of the schema the
+ * namespace support works on.
+ */
+ void setTargetNamespace(const QXmlName::NamespaceCode code);
+
+ /**
+ * Returns the prefix code for the given namespace @p code.
+ */
+ QXmlName::PrefixCode prefix(const QXmlName::NamespaceCode code) const;
+
+ /**
+ * Returns the namespace code for the given prefix @p code.
+ */
+ QXmlName::NamespaceCode uri(const QXmlName::PrefixCode code) const;
+
+ /**
+ * Converts the given @p qualifiedName to a resolved QXmlName @p name according
+ * to the current namespace mapping.
+ *
+ * @param qualifiedName The full qualified name.
+ * @param type The type of name processing.
+ * @param name The resolved QXmlName.
+ *
+ * @returns @c true if the name could be processed correctly or @c false if the
+ * namespace prefix is unknown.
+ */
+ bool processName(const QString &qualifiedName, NameType type, QXmlName &name) const;
+
+ /**
+ * Pushes the current namespace mapping onto the stack.
+ */
+ void pushContext();
+
+ /**
+ * Pops the current namespace mapping from the stack.
+ */
+ void popContext();
+
+ /**
+ * Returns the list of namespace bindings.
+ */
+ QList<QXmlName> namespaceBindings() const;
+
+ private:
+ typedef QHash<QXmlName::PrefixCode, QXmlName::NamespaceCode> NamespaceHash;
+
+ NamePool::Ptr m_namePool;
+ QStack<NamespaceHash> m_nsStack;
+ NamespaceHash m_ns;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdalternative.cpp b/src/xmlpatterns/schema/qxsdalternative.cpp
new file mode 100644
index 0000000..6e4a7ab
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdalternative.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdalternative_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAlternative::setTest(const XsdXPathExpression::Ptr &test)
+{
+ m_test = test;
+}
+
+XsdXPathExpression::Ptr XsdAlternative::test() const
+{
+ return m_test;
+}
+
+void XsdAlternative::setType(const SchemaType::Ptr &type)
+{
+ m_type = type;
+}
+
+SchemaType::Ptr XsdAlternative::type() const
+{
+ return m_type;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdalternative_p.h b/src/xmlpatterns/schema/qxsdalternative_p.h
new file mode 100644
index 0000000..2b1c75d
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdalternative_p.h
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAlternative_H
+#define Patternist_XsdAlternative_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qschematype_p.h"
+#include "qxsdannotated_p.h"
+#include "qxsdxpathexpression_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD alternative object.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAlternative : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAlternative> Ptr;
+ typedef QList<XsdAlternative::Ptr> List;
+
+ /**
+ * Sets the xpath @p test of the alternative.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#tac-test">Test Definition</a>
+ */
+ void setTest(const XsdXPathExpression::Ptr &test);
+
+ /**
+ * Returns the xpath test of the alternative.
+ */
+ XsdXPathExpression::Ptr test() const;
+
+ /**
+ * Sets the @p type of the alternative.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#tac-type_definition">Type Definition</a>
+ */
+ void setType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the type of the alternative.
+ */
+ SchemaType::Ptr type() const;
+
+ private:
+ XsdXPathExpression::Ptr m_test;
+ SchemaType::Ptr m_type;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdannotated.cpp b/src/xmlpatterns/schema/qxsdannotated.cpp
new file mode 100644
index 0000000..6674180
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdannotated.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdannotated_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAnnotated::addAnnotation(const XsdAnnotation::Ptr &annotation)
+{
+ m_annotations.append(annotation);
+}
+
+void XsdAnnotated::addAnnotations(const XsdAnnotation::List &annotations)
+{
+ m_annotations << annotations;
+}
+
+XsdAnnotation::List XsdAnnotated::annotations() const
+{
+ return m_annotations;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdannotated_p.h b/src/xmlpatterns/schema/qxsdannotated_p.h
new file mode 100644
index 0000000..18f0612
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdannotated_p.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAnnotated_H
+#define Patternist_XsdAnnotated_H
+
+#include "qxsdannotation_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Base class for all XSD components with annotation content.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAnnotated
+ {
+ public:
+ /**
+ * Adds a new @p annotation to the component.
+ */
+ void addAnnotation(const XsdAnnotation::Ptr &annotation);
+
+ /**
+ * Adds a list of new @p annotations to the component.
+ */
+ void addAnnotations(const XsdAnnotation::List &annotations);
+
+ /**
+ * Returns the list of all annotations of the component.
+ */
+ XsdAnnotation::List annotations() const;
+
+ private:
+ XsdAnnotation::List m_annotations;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdannotation.cpp b/src/xmlpatterns/schema/qxsdannotation.cpp
new file mode 100644
index 0000000..37ec09f
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdannotation.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdannotation_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAnnotation::setId(const DerivedString<TypeID>::Ptr &id)
+{
+ m_id = id;
+}
+
+DerivedString<TypeID>::Ptr XsdAnnotation::id() const
+{
+ return m_id;
+}
+
+void XsdAnnotation::addApplicationInformation(const XsdApplicationInformation::Ptr &information)
+{
+ m_applicationInformation.append(information);
+}
+
+XsdApplicationInformation::List XsdAnnotation::applicationInformation() const
+{
+ return m_applicationInformation;
+}
+
+void XsdAnnotation::addDocumentation(const XsdDocumentation::Ptr &documentation)
+{
+ m_documentations.append(documentation);
+}
+
+XsdDocumentation::List XsdAnnotation::documentation() const
+{
+ return m_documentations;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdannotation_p.h b/src/xmlpatterns/schema/qxsdannotation_p.h
new file mode 100644
index 0000000..1f2cd14
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdannotation_p.h
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAnnotation_H
+#define Patternist_XsdAnnotation_H
+
+#include "qderivedstring_p.h"
+#include "qxsdapplicationinformation_p.h"
+#include "qxsddocumentation_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD annotation object.
+ *
+ * This class represents the <em>annotation</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cAnnotations">here</a>.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAnnotation : public NamedSchemaComponent
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAnnotation> Ptr;
+ typedef QList<XsdAnnotation::Ptr> List;
+
+ /**
+ * Sets the @p id of the annotation.
+ */
+ void setId(const DerivedString<TypeID>::Ptr &id);
+
+ /**
+ * Returns the @p id of the annotation.
+ */
+ DerivedString<TypeID>::Ptr id() const;
+
+ /**
+ * Adds an application @p information to the annotation.
+ *
+ * The application information is meant to be interpreted by
+ * a software system, e.g. other parts of the XML processor pipeline.
+ */
+ void addApplicationInformation(const XsdApplicationInformation::Ptr &information);
+
+ /**
+ * Returns the list of all application information of the annotation.
+ */
+ XsdApplicationInformation::List applicationInformation() const;
+
+ /**
+ * Adds a @p documentation to the annotation.
+ *
+ * The documentation is meant to be read by human being, e.g. additional
+ * constraints or information about schema components.
+ */
+ void addDocumentation(const XsdDocumentation::Ptr &documentation);
+
+ /**
+ * Returns the list of all documentations of the annotation.
+ */
+ XsdDocumentation::List documentation() const;
+
+ private:
+ DerivedString<TypeID>::Ptr m_id;
+ XsdApplicationInformation::List m_applicationInformation;
+ XsdDocumentation::List m_documentations;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdapplicationinformation.cpp b/src/xmlpatterns/schema/qxsdapplicationinformation.cpp
new file mode 100644
index 0000000..3b4da24
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdapplicationinformation.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdapplicationinformation_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdApplicationInformation::setSource(const AnyURI::Ptr &source)
+{
+ m_source = source;
+}
+
+AnyURI::Ptr XsdApplicationInformation::source() const
+{
+ return m_source;
+}
+
+void XsdApplicationInformation::setContent(const QString &content)
+{
+ m_content = content;
+}
+
+QString XsdApplicationInformation::content() const
+{
+ return m_content;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdapplicationinformation_p.h b/src/xmlpatterns/schema/qxsdapplicationinformation_p.h
new file mode 100644
index 0000000..224b511
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdapplicationinformation_p.h
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdApplicationInformation_H
+#define Patternist_XsdApplicationInformation_H
+
+#include "qanytype_p.h"
+#include "qanyuri_p.h"
+#include "qnamedschemacomponent_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD appinfo object.
+ *
+ * This class represents the <em>appinfo</em> component of an <em>annotation</em> object
+ * of a XML schema as described <a href="http://www.w3.org/TR/xmlschema11-1/#cAnnotations">here</a>.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdApplicationInformation : public NamedSchemaComponent
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdApplicationInformation> Ptr;
+ typedef QList<XsdApplicationInformation::Ptr> List;
+
+ /**
+ * Sets the @p source of the application information.
+ *
+ * The source points to an URL that contains more
+ * information.
+ */
+ void setSource(const AnyURI::Ptr &source);
+
+ /**
+ * Returns the source of the application information.
+ */
+ AnyURI::Ptr source() const;
+
+ /**
+ * Sets the @p content of the application information.
+ *
+ * The content can be of abritrary type.
+ */
+ void setContent(const QString &content);
+
+ /**
+ * Returns the content of the application information.
+ */
+ QString content() const;
+
+ private:
+ AnyURI::Ptr m_source;
+ QString m_content;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdassertion.cpp b/src/xmlpatterns/schema/qxsdassertion.cpp
new file mode 100644
index 0000000..5a97385
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdassertion.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdassertion_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAssertion::setTest(const XsdXPathExpression::Ptr &test)
+{
+ m_test = test;
+}
+
+XsdXPathExpression::Ptr XsdAssertion::test() const
+{
+ return m_test;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdassertion_p.h b/src/xmlpatterns/schema/qxsdassertion_p.h
new file mode 100644
index 0000000..58f6073
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdassertion_p.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAssertion_H
+#define Patternist_XsdAssertion_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+#include "qxsdxpathexpression_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD assertion object.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#cAssertions">Assertion Definition</a>
+ */
+ class XsdAssertion : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAssertion> Ptr;
+ typedef QList<XsdAssertion::Ptr> List;
+
+ /**
+ * Sets the @p test of the assertion.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#as-test">Test Definition</a>
+ */
+ void setTest(const XsdXPathExpression::Ptr &test);
+
+ /**
+ * Returns the test of the assertion.
+ */
+ XsdXPathExpression::Ptr test() const;
+
+ private:
+ XsdXPathExpression::Ptr m_test;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdattribute.cpp b/src/xmlpatterns/schema/qxsdattribute.cpp
new file mode 100644
index 0000000..bf640e7
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattribute.cpp
@@ -0,0 +1,130 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdattribute_p.h"
+#include "qxsdcomplextype_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+
+void XsdAttribute::Scope::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdAttribute::Scope::Variety XsdAttribute::Scope::variety() const
+{
+ return m_variety;
+}
+
+void XsdAttribute::Scope::setParent(const NamedSchemaComponent::Ptr &parent)
+{
+ m_parent = parent;
+}
+
+NamedSchemaComponent::Ptr XsdAttribute::Scope::parent() const
+{
+ return m_parent;
+}
+
+void XsdAttribute::ValueConstraint::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdAttribute::ValueConstraint::Variety XsdAttribute::ValueConstraint::variety() const
+{
+ return m_variety;
+}
+
+void XsdAttribute::ValueConstraint::setValue(const QString &value)
+{
+ m_value = value;
+}
+
+QString XsdAttribute::ValueConstraint::value() const
+{
+ return m_value;
+}
+
+void XsdAttribute::ValueConstraint::setLexicalForm(const QString &form)
+{
+ m_lexicalForm = form;
+}
+
+QString XsdAttribute::ValueConstraint::lexicalForm() const
+{
+ return m_lexicalForm;
+}
+
+void XsdAttribute::setType(const AnySimpleType::Ptr &type)
+{
+ m_type = type;
+}
+
+AnySimpleType::Ptr XsdAttribute::type() const
+{
+ return m_type;
+}
+
+void XsdAttribute::setScope(const Scope::Ptr &scope)
+{
+ m_scope = scope;
+}
+
+XsdAttribute::Scope::Ptr XsdAttribute::scope() const
+{
+ return m_scope;
+}
+
+void XsdAttribute::setValueConstraint(const ValueConstraint::Ptr &constraint)
+{
+ m_valueConstraint = constraint;
+}
+
+XsdAttribute::ValueConstraint::Ptr XsdAttribute::valueConstraint() const
+{
+ return m_valueConstraint;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdattribute_p.h b/src/xmlpatterns/schema/qxsdattribute_p.h
new file mode 100644
index 0000000..e0ff854
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattribute_p.h
@@ -0,0 +1,246 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAttribute_H
+#define Patternist_XsdAttribute_H
+
+#include "qanysimpletype_p.h"
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD attribute object.
+ *
+ * This class represents the <em>attribute</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cAttribute_Declarations">here</a>.
+ *
+ * It contains information from either a top-level attribute declaration (as child of
+ * a <em>schema</em> object) or of a local attribute declaration (as child of <em>complexType</em>
+ * or <em>attributeGroup</em> object without a 'ref' attribute).
+ *
+ * All other occurrences of the <em>attribute</em> object are represented by the XsdAttributeUse class.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSAttributeDeclaration">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAttribute : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAttribute> Ptr;
+ typedef QList<XsdAttribute::Ptr> List;
+
+ /**
+ * @short Describes the scope of an attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#sc_a">Scope Definition</a>
+ */
+ class Scope : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<Scope> Ptr;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#ad-scope">scope</a> of an attribute.
+ */
+ enum Variety
+ {
+ Global, ///< The attribute is defined globally as child of the <em>schema</em> object.
+ Local ///< The attribute is defined locally as child of a complex type or attribute group definition.
+ };
+
+ /**
+ * Sets the @p variety of the attribute scope.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#sc_a-variety">Variety Definition</a>
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the attribute scope.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p parent complex type or attribute group definition of the attribute scope.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#sc_a-parent">Parent Definition</a>
+ */
+ void setParent(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * Returns the parent complex type or attribute group definition of the attribute scope.
+ */
+ NamedSchemaComponent::Ptr parent() const;
+
+ private:
+ Variety m_variety;
+ NamedSchemaComponent::Ptr m_parent;
+ };
+
+
+ /**
+ * @short Describes the value constraint of an attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_a">Value Constraint Definition</a>
+ */
+ class ValueConstraint : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<ValueConstraint> Ptr;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#ad-value_constraint">value constraint</a> of an attribute.
+ */
+ enum Variety
+ {
+ Default, ///< The attribute has a default value set.
+ Fixed ///< The attribute has a fixed value set.
+ };
+
+ /**
+ * Sets the @p variety of the attribute value constraint.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_a-variety">Variety Definition</a>
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the attribute value constraint.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p value of the constraint.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_a-value">Value Definition</a>
+ */
+ void setValue(const QString &value);
+
+ /**
+ * Returns the value of the constraint.
+ */
+ QString value() const;
+
+ /**
+ * Sets the lexical @p form of the constraint.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_a-lexical_form">Lexical Form Definition</a>
+ */
+ void setLexicalForm(const QString &form);
+
+ /**
+ * Returns the lexical form of the constraint.
+ */
+ QString lexicalForm() const;
+
+ private:
+ Variety m_variety;
+ QString m_value;
+ QString m_lexicalForm;
+ };
+
+ /**
+ * Sets the simple @p type definition of the attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ad-type_definition">Simple Type Definition</a>
+ */
+ void setType(const AnySimpleType::Ptr &type);
+
+ /**
+ * Returns the simple type definition of the attribute.
+ */
+ AnySimpleType::Ptr type() const;
+
+ /**
+ * Sets the @p scope of the attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ad-scope">Scope Definition</a>
+ */
+ void setScope(const Scope::Ptr &scope);
+
+ /**
+ * Returns the scope of the attribute.
+ */
+ Scope::Ptr scope() const;
+
+ /**
+ * Sets the value @p constraint of the attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ad-value_constraint">Value Constraint Definition</a>
+ */
+ void setValueConstraint(const ValueConstraint::Ptr &constraint);
+
+ /**
+ * Returns the value constraint of the attribute.
+ */
+ ValueConstraint::Ptr valueConstraint() const;
+
+ private:
+ AnySimpleType::Ptr m_type;
+ Scope::Ptr m_scope;
+ ValueConstraint::Ptr m_valueConstraint;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdattributegroup.cpp b/src/xmlpatterns/schema/qxsdattributegroup.cpp
new file mode 100644
index 0000000..b6549eb
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributegroup.cpp
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdattributegroup_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAttributeGroup::setAttributeUses(const XsdAttributeUse::List &attributeUses)
+{
+ m_attributeUses = attributeUses;
+}
+
+void XsdAttributeGroup::addAttributeUse(const XsdAttributeUse::Ptr &attributeUse)
+{
+ m_attributeUses.append(attributeUse);
+}
+
+XsdAttributeUse::List XsdAttributeGroup::attributeUses() const
+{
+ return m_attributeUses;
+}
+
+void XsdAttributeGroup::setWildcard(const XsdWildcard::Ptr &wildcard)
+{
+ m_wildcard = wildcard;
+}
+
+XsdWildcard::Ptr XsdAttributeGroup::wildcard() const
+{
+ return m_wildcard;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdattributegroup_p.h b/src/xmlpatterns/schema/qxsdattributegroup_p.h
new file mode 100644
index 0000000..4fe9c37
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributegroup_p.h
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAttributeGroup_H
+#define Patternist_XsdAttributeGroup_H
+
+#include "qxsdannotated_p.h"
+#include "qxsdattributeuse_p.h"
+#include "qxsdwildcard_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents the XSD attributeGroup object.
+ *
+ * This class represents the <em>attributeGroup</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cAttribute_Group_Definitions">here</a>.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSAttributeGroup">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAttributeGroup : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAttributeGroup> Ptr;
+ typedef QList<XsdAttributeGroup::Ptr> List;
+
+ /**
+ * Sets the list of attribute @p uses that are defined in the attribute group.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#agd-attribute_uses">Attribute Uses</a>
+ */
+ void setAttributeUses(const XsdAttributeUse::List &uses);
+
+ /**
+ * Adds a new attribute @p use to the attribute group.
+ */
+ void addAttributeUse(const XsdAttributeUse::Ptr &use);
+
+ /**
+ * Returns the list of all attribute uses of the attribute group.
+ */
+ XsdAttributeUse::List attributeUses() const;
+
+ /**
+ * Sets the attribute @p wildcard of the attribute group.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#agd-attribute_wildcard">Attribute Wildcard</a>
+ */
+ void setWildcard(const XsdWildcard::Ptr &wildcard);
+
+ /**
+ * Returns the attribute wildcard of the attribute group.
+ */
+ XsdWildcard::Ptr wildcard() const;
+
+ private:
+ XsdAttributeUse::List m_attributeUses;
+ XsdWildcard::Ptr m_wildcard;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdattributereference.cpp b/src/xmlpatterns/schema/qxsdattributereference.cpp
new file mode 100644
index 0000000..6e5809c
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributereference.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdattributereference_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+bool XsdAttributeReference::isAttributeUse() const
+{
+ return false;
+}
+
+bool XsdAttributeReference::isReference() const
+{
+ return true;
+}
+
+void XsdAttributeReference::setType(Type type)
+{
+ m_type = type;
+}
+
+XsdAttributeReference::Type XsdAttributeReference::type() const
+{
+ return m_type;
+}
+
+void XsdAttributeReference::setReferenceName(const QXmlName &referenceName)
+{
+ m_referenceName = referenceName;
+}
+
+QXmlName XsdAttributeReference::referenceName() const
+{
+ return m_referenceName;
+}
+
+void XsdAttributeReference::setSourceLocation(const QSourceLocation &location)
+{
+ m_sourceLocation = location;
+}
+
+QSourceLocation XsdAttributeReference::sourceLocation() const
+{
+ return m_sourceLocation;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdattributereference_p.h b/src/xmlpatterns/schema/qxsdattributereference_p.h
new file mode 100644
index 0000000..6500109
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributereference_p.h
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAttributeReference_H
+#define Patternist_XsdAttributeReference_H
+
+#include "qxsdattributeuse_p.h"
+
+#include <QtXmlPatterns/QSourceLocation>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class for attribute reference resolving.
+ *
+ * For easy resolving of attribute references, we have this class
+ * that can be used as a place holder for the real attribute use
+ * object it is referring to.
+ * So whenever the parser detects an attribute reference, it creates
+ * a XsdAttributeReference and returns it instead of the XsdAttributeUse.
+ * During a later phase, the resolver will look for all XsdAttributeReferences
+ * in the schema and will replace them with their referring XsdAttributeUse
+ * objects.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAttributeReference : public XsdAttributeUse
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAttributeReference> Ptr;
+
+ /**
+ * Describes the type of the attribute reference.
+ */
+ enum Type
+ {
+ AttributeUse, ///< The reference points to an attribute use.
+ AttributeGroup ///< The reference points to an attribute group.
+ };
+
+ /**
+ * Always returns false, used to avoid dynamic casts.
+ */
+ virtual bool isAttributeUse() const;
+
+ /**
+ * Always returns true, used to avoid dynamic casts.
+ */
+ virtual bool isReference() const;
+
+ /**
+ * Sets the @p type of the attribute reference.
+ */
+ void setType(Type type);
+
+ /**
+ * Returns the type of the attribute reference.
+ */
+ Type type() const;
+
+ /**
+ * Sets the @p name of the attribute or attribute group the
+ * attribute reference refers to.
+ */
+ void setReferenceName(const QXmlName &name);
+
+ /**
+ * Returns the name of the attribute or attribute group the
+ * attribute reference refers to.
+ */
+ QXmlName referenceName() const;
+
+ /**
+ * Sets the source @p location where the reference is located.
+ */
+ void setSourceLocation(const QSourceLocation &location);
+
+ /**
+ * Returns the source location where the reference is located.
+ */
+ QSourceLocation sourceLocation() const;
+
+ private:
+ Type m_type;
+ QXmlName m_referenceName;
+ QSourceLocation m_sourceLocation;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdattributeterm.cpp b/src/xmlpatterns/schema/qxsdattributeterm.cpp
new file mode 100644
index 0000000..6463e35
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributeterm.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdattributeterm_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+bool XsdAttributeTerm::isAttributeUse() const
+{
+ return false;
+}
+
+bool XsdAttributeTerm::isReference() const
+{
+ return false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdattributeterm_p.h b/src/xmlpatterns/schema/qxsdattributeterm_p.h
new file mode 100644
index 0000000..6e49cfc
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributeterm_p.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAttributeTerm_H
+#define Patternist_XsdAttributeTerm_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A base class for all attribute types.
+ *
+ * For easy resolving of attribute references, we use this as
+ * common base class for XsdAttribute and XsdAttributeReference.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAttributeTerm : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAttributeTerm> Ptr;
+
+ /**
+ * Returns @c true if the term is an attribute use, @c false otherwise.
+ */
+ virtual bool isAttributeUse() const;
+
+ /**
+ * Returns @c true if the term is an attribute use reference, @c false otherwise.
+ *
+ * @note The reference term is only used internally as helper during type resolving.
+ */
+ virtual bool isReference() const;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdattributeuse.cpp b/src/xmlpatterns/schema/qxsdattributeuse.cpp
new file mode 100644
index 0000000..0f7ed9f
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributeuse.cpp
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdattributeuse_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdAttributeUse::ValueConstraint::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdAttributeUse::ValueConstraint::Variety XsdAttributeUse::ValueConstraint::variety() const
+{
+ return m_variety;
+}
+
+void XsdAttributeUse::ValueConstraint::setValue(const QString &value)
+{
+ m_value = value;
+}
+
+QString XsdAttributeUse::ValueConstraint::value() const
+{
+ return m_value;
+}
+
+void XsdAttributeUse::ValueConstraint::setLexicalForm(const QString &form)
+{
+ m_lexicalForm = form;
+}
+
+QString XsdAttributeUse::ValueConstraint::lexicalForm() const
+{
+ return m_lexicalForm;
+}
+
+XsdAttributeUse::ValueConstraint::Ptr XsdAttributeUse::ValueConstraint::fromAttributeValueConstraint(const XsdAttribute::ValueConstraint::Ptr &constraint)
+{
+ XsdAttributeUse::ValueConstraint::Ptr newConstraint(new XsdAttributeUse::ValueConstraint());
+ switch (constraint->variety()) {
+ case XsdAttribute::ValueConstraint::Fixed: newConstraint->setVariety(Fixed); break;
+ case XsdAttribute::ValueConstraint::Default: newConstraint->setVariety(Default); break;
+ }
+ newConstraint->setValue(constraint->value());
+ newConstraint->setLexicalForm(constraint->lexicalForm());
+
+ return newConstraint;
+}
+
+XsdAttributeUse::XsdAttributeUse()
+ : m_useType(OptionalUse)
+{
+}
+
+bool XsdAttributeUse::isAttributeUse() const
+{
+ return true;
+}
+
+void XsdAttributeUse::setUseType(UseType type)
+{
+ m_useType = type;
+}
+
+XsdAttributeUse::UseType XsdAttributeUse::useType() const
+{
+ return m_useType;
+}
+
+bool XsdAttributeUse::isRequired() const
+{
+ return (m_useType == RequiredUse);
+}
+
+void XsdAttributeUse::setAttribute(const XsdAttribute::Ptr &attribute)
+{
+ m_attribute = attribute;
+}
+
+XsdAttribute::Ptr XsdAttributeUse::attribute() const
+{
+ return m_attribute;
+}
+
+void XsdAttributeUse::setValueConstraint(const ValueConstraint::Ptr &constraint)
+{
+ m_valueConstraint = constraint;
+}
+
+XsdAttributeUse::ValueConstraint::Ptr XsdAttributeUse::valueConstraint() const
+{
+ return m_valueConstraint;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdattributeuse_p.h b/src/xmlpatterns/schema/qxsdattributeuse_p.h
new file mode 100644
index 0000000..bf2eac5
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdattributeuse_p.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdAttributeUse_H
+#define Patternist_XsdAttributeUse_H
+
+#include "qxsdattribute_p.h"
+#include "qxsdattributeterm_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD attribute use object.
+ *
+ * This class represents the <em>attribute use</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cAttributeUse">here</a>.
+ *
+ * It contains information from a local attribute declaration (as child of <em>complexType</em>
+ * or <em>attributeGroup</em> object).
+ *
+ * All other occurrences of the <em>attribute</em> object are represented by the XsdAttribute class.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSAttributeUse">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdAttributeUse : public XsdAttributeTerm
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdAttributeUse> Ptr;
+ typedef QList<XsdAttributeUse::Ptr> List;
+
+ /**
+ * Describes the value constraint of an attribute use.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_au">Value Constraint Definition</a>
+ */
+ class ValueConstraint : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<ValueConstraint> Ptr;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#au-value_constraint">value constraint</a> of an attribute use.
+ */
+ enum Variety
+ {
+ Default, ///< The attribute use has a default value set.
+ Fixed ///< The attribute use has a fixed value set.
+ };
+
+ /**
+ * Sets the @p variety of the attribute use value constraint.
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the attribute use value constraint.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p value of the constraint.
+ */
+ void setValue(const QString &value);
+
+ /**
+ * Returns the value of the constraint.
+ */
+ QString value() const;
+
+ /**
+ * Sets the lexical @p form of the constraint.
+ */
+ void setLexicalForm(const QString &form);
+
+ /**
+ * Returns the lexical form of the constraint.
+ */
+ QString lexicalForm() const;
+
+ /**
+ * Creates a new value constraint from a XsdAttribute::ValueConstraint.
+ */
+ static ValueConstraint::Ptr fromAttributeValueConstraint(const XsdAttribute::ValueConstraint::Ptr &constraint);
+
+ private:
+ Variety m_variety;
+ QString m_value;
+ QString m_lexicalForm;
+ };
+
+ /**
+ * Describes the use type of the attribute use.
+ */
+ enum UseType
+ {
+ OptionalUse, ///< The attribute can be there but doesn't need to.
+ RequiredUse, ///< The attribute must be there.
+ ProhibitedUse ///< The attribute is not allowed to be there.
+ };
+
+ /**
+ * Creates a new attribute use object.
+ */
+ XsdAttributeUse();
+
+ /**
+ * Always returns true, used to avoid dynamic casts.
+ */
+ virtual bool isAttributeUse() const;
+
+ /**
+ * Sets the use @p type of the attribute use.
+ *
+ * @see UseType
+ */
+ void setUseType(UseType type);
+
+ /**
+ * Returns the use type of the attribute use.
+ */
+ UseType useType() const;
+
+ /**
+ * Returns whether the attribute use is required.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#au-required">Required Definition</a>
+ */
+ bool isRequired() const;
+
+ /**
+ * Sets the @p attribute the attribute use is referring to.
+ * That is either a local definition as child of a complexType
+ * or attributeGroup object, or a reference defined by the
+ * 'ref' attribute.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#au-attribute_declaration">Attribute Declaration</a>
+ */
+ void setAttribute(const XsdAttribute::Ptr &attribute);
+
+ /**
+ * Returns the attribute the attribute use is referring to.
+ */
+ XsdAttribute::Ptr attribute() const;
+
+ /**
+ * Sets the value @p constraint of the attribute use.
+ *
+ * @see http://www.w3.org/TR/xmlschema11-1/#vc_au
+ */
+ void setValueConstraint(const ValueConstraint::Ptr &constraint);
+
+ /**
+ * Returns the value constraint of the attribute use.
+ */
+ ValueConstraint::Ptr valueConstraint() const;
+
+ private:
+ UseType m_useType;
+ XsdAttribute::Ptr m_attribute;
+ ValueConstraint::Ptr m_valueConstraint;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdcomplextype.cpp b/src/xmlpatterns/schema/qxsdcomplextype.cpp
new file mode 100644
index 0000000..6f5a240
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdcomplextype.cpp
@@ -0,0 +1,231 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdcomplextype_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdComplexType::OpenContent::setMode(Mode mode)
+{
+ m_mode = mode;
+}
+
+XsdComplexType::OpenContent::Mode XsdComplexType::OpenContent::mode() const
+{
+ return m_mode;
+}
+
+void XsdComplexType::OpenContent::setWildcard(const XsdWildcard::Ptr &wildcard)
+{
+ m_wildcard = wildcard;
+}
+
+XsdWildcard::Ptr XsdComplexType::OpenContent::wildcard() const
+{
+ return m_wildcard;
+}
+
+void XsdComplexType::ContentType::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdComplexType::ContentType::Variety XsdComplexType::ContentType::variety() const
+{
+ return m_variety;
+}
+
+void XsdComplexType::ContentType::setParticle(const XsdParticle::Ptr &particle)
+{
+ m_particle = particle;
+}
+
+XsdParticle::Ptr XsdComplexType::ContentType::particle() const
+{
+ return m_particle;
+}
+
+void XsdComplexType::ContentType::setOpenContent(const OpenContent::Ptr &content)
+{
+ m_openContent = content;
+}
+
+XsdComplexType::OpenContent::Ptr XsdComplexType::ContentType::openContent() const
+{
+ return m_openContent;
+}
+
+void XsdComplexType::ContentType::setSimpleType(const AnySimpleType::Ptr &type)
+{
+ m_simpleType = type;
+}
+
+AnySimpleType::Ptr XsdComplexType::ContentType::simpleType() const
+{
+ return m_simpleType;
+}
+
+
+XsdComplexType::XsdComplexType()
+ : m_isAbstract(false)
+ , m_contentType(new ContentType())
+{
+ m_contentType->setVariety(ContentType::Empty);
+}
+
+void XsdComplexType::setIsAbstract(bool abstract)
+{
+ m_isAbstract = abstract;
+}
+
+bool XsdComplexType::isAbstract() const
+{
+ return m_isAbstract;
+}
+
+QString XsdComplexType::displayName(const NamePool::Ptr &np) const
+{
+ return np->displayName(name(np));
+}
+
+void XsdComplexType::setWxsSuperType(const SchemaType::Ptr &type)
+{
+ m_superType = type;
+}
+
+SchemaType::Ptr XsdComplexType::wxsSuperType() const
+{
+ return m_superType;
+}
+
+void XsdComplexType::setContext(const NamedSchemaComponent::Ptr &component)
+{
+ m_context = component;
+}
+
+NamedSchemaComponent::Ptr XsdComplexType::context() const
+{
+ return m_context;
+}
+
+void XsdComplexType::setContentType(const ContentType::Ptr &type)
+{
+ m_contentType = type;
+}
+
+XsdComplexType::ContentType::Ptr XsdComplexType::contentType() const
+{
+ return m_contentType;
+}
+
+void XsdComplexType::setAttributeUses(const XsdAttributeUse::List &attributeUses)
+{
+ m_attributeUses = attributeUses;
+}
+
+void XsdComplexType::addAttributeUse(const XsdAttributeUse::Ptr &attributeUse)
+{
+ m_attributeUses.append(attributeUse);
+}
+
+XsdAttributeUse::List XsdComplexType::attributeUses() const
+{
+ return m_attributeUses;
+}
+
+void XsdComplexType::setAttributeWildcard(const XsdWildcard::Ptr &wildcard)
+{
+ m_attributeWildcard = wildcard;
+}
+
+XsdWildcard::Ptr XsdComplexType::attributeWildcard() const
+{
+ return m_attributeWildcard;
+}
+
+XsdComplexType::TypeCategory XsdComplexType::category() const
+{
+ return ComplexType;
+}
+
+void XsdComplexType::setDerivationMethod(DerivationMethod method)
+{
+ m_derivationMethod = method;
+}
+
+XsdComplexType::DerivationMethod XsdComplexType::derivationMethod() const
+{
+ return m_derivationMethod;
+}
+
+void XsdComplexType::setProhibitedSubstitutions(const BlockingConstraints &substitutions)
+{
+ m_prohibitedSubstitutions = substitutions;
+}
+
+XsdComplexType::BlockingConstraints XsdComplexType::prohibitedSubstitutions() const
+{
+ return m_prohibitedSubstitutions;
+}
+
+void XsdComplexType::setAssertions(const XsdAssertion::List &assertions)
+{
+ m_assertions = assertions;
+}
+
+void XsdComplexType::addAssertion(const XsdAssertion::Ptr &assertion)
+{
+ m_assertions.append(assertion);
+}
+
+XsdAssertion::List XsdComplexType::assertions() const
+{
+ return m_assertions;
+}
+
+bool XsdComplexType::isDefinedBySchema() const
+{
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdcomplextype_p.h b/src/xmlpatterns/schema/qxsdcomplextype_p.h
new file mode 100644
index 0000000..4333d24
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdcomplextype_p.h
@@ -0,0 +1,404 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdComplexType_H
+#define Patternist_XsdComplexType_H
+
+#include "qanytype_p.h"
+#include "qxsdassertion_p.h"
+#include "qxsdattributeuse_p.h"
+#include "qxsdparticle_p.h"
+#include "qxsdsimpletype_p.h"
+#include "qxsduserschematype_p.h"
+#include "qxsdwildcard_p.h"
+
+#include <QtCore/QSet>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD complexType object.
+ *
+ * This class represents the <em>complexType</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#Complex_Type_Definitions">here</a>.
+ *
+ * It contains information from either a top-level complex type declaration (as child of a <em>schema</em> object)
+ * or a local complex type declaration (as descendant of an <em>element</em> object).
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSComplexType">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdComplexType : public XsdUserSchemaType<AnyType>
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdComplexType> Ptr;
+
+ /**
+ * @short Describes the open content object of a complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ct-open_content">Open Content Definition</a>
+ */
+ class OpenContent : public QSharedData, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<OpenContent> Ptr;
+
+ /**
+ * Describes the mode of the open content.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#oc-mode">Mode Definition</a>
+ */
+ enum Mode
+ {
+ None,
+ Interleave,
+ Suffix
+ };
+
+ /**
+ * Sets the @p mode of the open content.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#oc-mode">Mode Definition</a>
+ */
+ void setMode(Mode mode);
+
+ /**
+ * Returns the mode of the open content.
+ */
+ Mode mode() const;
+
+ /**
+ * Sets the @p wildcard of the open content.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#oc-wildcard">Wildcard Definition</a>
+ */
+ void setWildcard(const XsdWildcard::Ptr &wildcard);
+
+ /**
+ * Returns the wildcard of the open content.
+ */
+ XsdWildcard::Ptr wildcard() const;
+
+ private:
+ Mode m_mode;
+ XsdWildcard::Ptr m_wildcard;
+ };
+
+ /**
+ * @short Describes the content type of a complex type.
+ */
+ class ContentType : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<ContentType> Ptr;
+
+ /**
+ * Describes the variety of the content type.
+ */
+ enum Variety
+ {
+ Empty = 0, ///< The complex type has no further content.
+ Simple, ///< The complex type has only simple type content (e.g. text, number etc.)
+ ElementOnly, ///< The complex type has further elements or attributes but no text as content.
+ Mixed ///< The complex type has further elements or attributes and text as content.
+ };
+
+ /**
+ * Sets the @p variety of the content type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ct-variety">Variety Definition</a>
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the content type.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p particle object of the content type.
+ *
+ * The content type has only a particle object if
+ * its variety is ElementOnly or Mixed.
+ *
+ * @see XsdParticle
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ct-particle">Particle Declaration</a>
+ */
+ void setParticle(const XsdParticle::Ptr &particle);
+
+ /**
+ * Returns the particle object of the content type,
+ * or an empty pointer if its variety is neither
+ * ElementOnly nor Mixed.
+ */
+ XsdParticle::Ptr particle() const;
+
+ /**
+ * Sets the open @p content object of the content type.
+ *
+ * The content type has only an open content object if
+ * its variety is ElementOnly or Mixed.
+ *
+ * @see OpenContent
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ct-open_content">Open Content Declaration</a>
+ */
+ void setOpenContent(const OpenContent::Ptr &content);
+
+ /**
+ * Returns the open content object of the content type,
+ * or an empty pointer if its variety is neither
+ * ElementOnly nor Mixed.
+ */
+ OpenContent::Ptr openContent() const;
+
+ /**
+ * Sets the simple @p type object of the content type.
+ *
+ * The content type has only a simple type object if
+ * its variety is Simple.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ct-simple_type_definition">Simple Type Definition</a>
+ */
+ void setSimpleType(const AnySimpleType::Ptr &type);
+
+ /**
+ * Returns the simple type object of the content type,
+ * or an empty pointer if its variety is not Simple.
+ */
+ AnySimpleType::Ptr simpleType() const;
+
+ private:
+ Variety m_variety;
+ XsdParticle::Ptr m_particle;
+ OpenContent::Ptr m_openContent;
+ XsdSimpleType::Ptr m_simpleType;
+ };
+
+
+ /**
+ * Creates a complex type object with empty content.
+ */
+ XsdComplexType();
+
+ /**
+ * Destroys the complex type object.
+ */
+ ~XsdComplexType() {};
+
+ /**
+ * Returns the display name of the complex type.
+ *
+ * The display name can be used to show the type name
+ * to the user.
+ *
+ * @param namePool The name pool where the type name is stored in.
+ */
+ virtual QString displayName(const NamePool::Ptr &namePool) const;
+
+ /**
+ * Sets the base type of the complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-base_type_definition">Base Type Definition</a>
+ */
+ void setWxsSuperType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the base type of the complex type.
+ */
+ virtual SchemaType::Ptr wxsSuperType() const;
+
+ /**
+ * Sets the context @p component of the complex type.
+ *
+ * The component is either an element declaration or a complex type definition.
+ */
+ void setContext(const NamedSchemaComponent::Ptr &component);
+
+ /**
+ * Returns the context component of the complex type.
+ */
+ NamedSchemaComponent::Ptr context() const;
+
+ /**
+ * Sets the derivation @p method of the complex type.
+ *
+ * The derivation method depends on whether the complex
+ * type object has an extension or restriction object as child.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-derivation_method">Derivation Method Definition</a>
+ * @see DerivationMethod
+ */
+ void setDerivationMethod(DerivationMethod method);
+
+ /**
+ * Returns the derivation method of the complex type.
+ */
+ virtual DerivationMethod derivationMethod() const;
+
+ /**
+ * Sets whether the complex type is @p abstract.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-abstract">Abstract Definition</a>
+ */
+ void setIsAbstract(bool abstract);
+
+ /**
+ * Returns whether the complex type is abstract.
+ */
+ virtual bool isAbstract() const;
+
+ /**
+ * Sets the list of all attribute @p uses of the complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-attribute_uses">Attribute Uses Declaration</a>
+ */
+ void setAttributeUses(const XsdAttributeUse::List &uses);
+
+ /**
+ * Adds a new attribute @p use to the complex type.
+ */
+ void addAttributeUse(const XsdAttributeUse::Ptr &use);
+
+ /**
+ * Returns the list of all attribute uses of the complex type.
+ */
+ XsdAttributeUse::List attributeUses() const;
+
+ /**
+ * Sets the attribute @p wildcard of the complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-attribute_wildcard">Attribute Wildcard Declaration</a>
+ */
+ void setAttributeWildcard(const XsdWildcard::Ptr &wildcard);
+
+ /**
+ * Returns the attribute wildcard of the complex type.
+ */
+ XsdWildcard::Ptr attributeWildcard() const;
+
+ /**
+ * Always returns SchemaType::ComplexType
+ */
+ virtual TypeCategory category() const;
+
+ /**
+ * Sets the content @p type of the complex type.
+ *
+ * @see ContentType
+ */
+ void setContentType(const ContentType::Ptr &type);
+
+ /**
+ * Returns the content type of the complex type.
+ */
+ ContentType::Ptr contentType() const;
+
+ /**
+ * Sets the prohibited @p substitutions of the complex type.
+ *
+ * Only ExtensionConstraint and RestrictionConstraint are allowed.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-prohibited_substitutions">Prohibited Substitutions Definition</a>
+ */
+ void setProhibitedSubstitutions(const BlockingConstraints &substitutions);
+
+ /**
+ * Returns the prohibited substitutions of the complex type.
+ */
+ BlockingConstraints prohibitedSubstitutions() const;
+
+ /**
+ * Sets the @p assertions of the complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-assertions">Assertions Definition</a>
+ */
+ void setAssertions(const XsdAssertion::List &assertions);
+
+ /**
+ * Adds an @p assertion to the complex type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ctd-assertions">Assertions Definition</a>
+ */
+ void addAssertion(const XsdAssertion::Ptr &assertion);
+
+ /**
+ * Returns the assertions of the complex type.
+ */
+ XsdAssertion::List assertions() const;
+
+ /**
+ * Always returns @c true.
+ */
+ virtual bool isDefinedBySchema() const;
+
+ private:
+ SchemaType::Ptr m_superType;
+ NamedSchemaComponent::Ptr m_context;
+ DerivationMethod m_derivationMethod;
+ bool m_isAbstract;
+ XsdAttributeUse::List m_attributeUses;
+ XsdWildcard::Ptr m_attributeWildcard;
+ ContentType::Ptr m_contentType;
+ BlockingConstraints m_prohibitedSubstitutions;
+ XsdAssertion::List m_assertions;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsddocumentation.cpp b/src/xmlpatterns/schema/qxsddocumentation.cpp
new file mode 100644
index 0000000..b2490f6
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsddocumentation.cpp
@@ -0,0 +1,86 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsddocumentation_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdDocumentation::XsdDocumentation()
+{
+}
+
+XsdDocumentation::~XsdDocumentation()
+{
+}
+
+void XsdDocumentation::setSource(const AnyURI::Ptr &source)
+{
+ m_source = source;
+}
+
+AnyURI::Ptr XsdDocumentation::source() const
+{
+ return m_source;
+}
+
+void XsdDocumentation::setLanguage(const DerivedString<TypeLanguage>::Ptr &language)
+{
+ m_language = language;
+}
+
+DerivedString<TypeLanguage>::Ptr XsdDocumentation::language() const
+{
+ return m_language;
+}
+
+void XsdDocumentation::setContent(const QString &content)
+{
+ m_content = content;
+}
+
+QString XsdDocumentation::content() const
+{
+ return m_content;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsddocumentation_p.h b/src/xmlpatterns/schema/qxsddocumentation_p.h
new file mode 100644
index 0000000..35463da
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsddocumentation_p.h
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdDocumentation_H
+#define Patternist_XsdDocumentation_H
+
+#include "qanytype_p.h"
+#include "qanyuri_p.h"
+#include "qderivedstring_p.h"
+#include "qnamedschemacomponent_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD documentation object.
+ *
+ * This class represents the <em>documentation</em> component of an <em>annotation</em> object
+ * of a XML schema as described <a href="http://www.w3.org/TR/xmlschema11-1/#cAnnotations">here</a>.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdDocumentation : public NamedSchemaComponent
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdDocumentation> Ptr;
+ typedef QList<XsdDocumentation::Ptr> List;
+
+ /**
+ * Creates a new documentation object.
+ */
+ XsdDocumentation();
+
+ /**
+ * Destroys the documentation object.
+ */
+ ~XsdDocumentation();
+
+ /**
+ * Sets the @p source of the documentation.
+ *
+ * The source points to an URL that contains more
+ * information.
+ */
+ void setSource(const AnyURI::Ptr &source);
+
+ /**
+ * Returns the source of the documentation.
+ */
+ AnyURI::Ptr source() const;
+
+ /**
+ * Sets the @p language of the documentation.
+ */
+ void setLanguage(const DerivedString<TypeLanguage>::Ptr &language);
+
+ /**
+ * Returns the language of the documentation.
+ */
+ DerivedString<TypeLanguage>::Ptr language() const;
+
+ /**
+ * Sets the @p content of the documentation.
+ *
+ * The content can be of abritrary type.
+ */
+ void setContent(const QString &content);
+
+ /**
+ * Returns the content of the documentation.
+ */
+ QString content() const;
+
+ private:
+ AnyURI::Ptr m_source;
+ DerivedString<TypeLanguage>::Ptr m_language;
+ QString m_content;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdelement.cpp b/src/xmlpatterns/schema/qxsdelement.cpp
new file mode 100644
index 0000000..c344799
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdelement.cpp
@@ -0,0 +1,244 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdelement_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdElement::Scope::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdElement::Scope::Variety XsdElement::Scope::variety() const
+{
+ return m_variety;
+}
+
+void XsdElement::Scope::setParent(const NamedSchemaComponent::Ptr &parent)
+{
+ m_parent = parent;
+}
+
+NamedSchemaComponent::Ptr XsdElement::Scope::parent() const
+{
+ return m_parent;
+}
+
+void XsdElement::ValueConstraint::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdElement::ValueConstraint::Variety XsdElement::ValueConstraint::variety() const
+{
+ return m_variety;
+}
+
+void XsdElement::ValueConstraint::setValue(const QString &value)
+{
+ m_value = value;
+}
+
+QString XsdElement::ValueConstraint::value() const
+{
+ return m_value;
+}
+
+void XsdElement::ValueConstraint::setLexicalForm(const QString &form)
+{
+ m_lexicalForm = form;
+}
+
+QString XsdElement::ValueConstraint::lexicalForm() const
+{
+ return m_lexicalForm;
+}
+
+void XsdElement::TypeTable::addAlternative(const XsdAlternative::Ptr &alternative)
+{
+ m_alternatives.append(alternative);
+}
+
+XsdAlternative::List XsdElement::TypeTable::alternatives() const
+{
+ return m_alternatives;
+}
+
+void XsdElement::TypeTable::setDefaultTypeDefinition(const XsdAlternative::Ptr &type)
+{
+ m_defaultTypeDefinition = type;
+}
+
+XsdAlternative::Ptr XsdElement::TypeTable::defaultTypeDefinition() const
+{
+ return m_defaultTypeDefinition;
+}
+
+
+XsdElement::XsdElement()
+ : m_isAbstract(false)
+{
+}
+
+bool XsdElement::isElement() const
+{
+ return true;
+}
+
+void XsdElement::setType(const SchemaType::Ptr &type)
+{
+ m_type = type;
+}
+
+SchemaType::Ptr XsdElement::type() const
+{
+ return m_type;
+}
+
+void XsdElement::setScope(const Scope::Ptr &scope)
+{
+ m_scope = scope;
+}
+
+XsdElement::Scope::Ptr XsdElement::scope() const
+{
+ return m_scope;
+}
+
+void XsdElement::setValueConstraint(const ValueConstraint::Ptr &constraint)
+{
+ m_valueConstraint = constraint;
+}
+
+XsdElement::ValueConstraint::Ptr XsdElement::valueConstraint() const
+{
+ return m_valueConstraint;
+}
+
+void XsdElement::setTypeTable(const TypeTable::Ptr &table)
+{
+ m_typeTable = table;
+}
+
+XsdElement::TypeTable::Ptr XsdElement::typeTable() const
+{
+ return m_typeTable;
+}
+
+void XsdElement::setIsAbstract(bool abstract)
+{
+ m_isAbstract = abstract;
+}
+
+bool XsdElement::isAbstract() const
+{
+ return m_isAbstract;
+}
+
+void XsdElement::setIsNillable(bool nillable)
+{
+ m_isNillable = nillable;
+}
+
+bool XsdElement::isNillable() const
+{
+ return m_isNillable;
+}
+
+void XsdElement::setDisallowedSubstitutions(const BlockingConstraints &substitutions)
+{
+ m_disallowedSubstitutions = substitutions;
+}
+
+XsdElement::BlockingConstraints XsdElement::disallowedSubstitutions() const
+{
+ return m_disallowedSubstitutions;
+}
+
+void XsdElement::setSubstitutionGroupExclusions(const SchemaType::DerivationConstraints &exclusions)
+{
+ m_substitutionGroupExclusions = exclusions;
+}
+
+SchemaType::DerivationConstraints XsdElement::substitutionGroupExclusions() const
+{
+ return m_substitutionGroupExclusions;
+}
+
+void XsdElement::setIdentityConstraints(const XsdIdentityConstraint::List &constraints)
+{
+ m_identityConstraints = constraints;
+}
+
+void XsdElement::addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint)
+{
+ m_identityConstraints.append(constraint);
+}
+
+XsdIdentityConstraint::List XsdElement::identityConstraints() const
+{
+ return m_identityConstraints;
+}
+
+void XsdElement::setSubstitutionGroupAffiliations(const XsdElement::List &affiliations)
+{
+ m_substitutionGroupAffiliations = affiliations;
+}
+
+XsdElement::List XsdElement::substitutionGroupAffiliations() const
+{
+ return m_substitutionGroupAffiliations;
+}
+
+void XsdElement::addSubstitutionGroup(const XsdElement::Ptr &element)
+{
+ m_substitutionGroups.insert(element);
+}
+
+XsdElement::List XsdElement::substitutionGroups() const
+{
+ return m_substitutionGroups.toList();
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdelement_p.h b/src/xmlpatterns/schema/qxsdelement_p.h
new file mode 100644
index 0000000..70ecb7e
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdelement_p.h
@@ -0,0 +1,403 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdElement_H
+#define Patternist_XsdElement_H
+
+#include "qschemacomponent_p.h"
+#include "qschematype_p.h"
+#include "qxsdalternative_p.h"
+#include "qxsdidentityconstraint_p.h"
+#include "qxsdcomplextype_p.h"
+
+#include <QtCore/QList>
+#include <QtCore/QSet>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD element object.
+ *
+ * This class represents the <em>element</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cElement_Declarations">here</a>.
+ *
+ * It contains information from either a top-level element declaration (as child of a <em>schema</em> object)
+ * or a local element declaration (as descendant of an <em>complexType</em> object).
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSElementDecl">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdElement : public XsdTerm
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdElement> Ptr;
+ typedef QList<XsdElement::Ptr> List;
+
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#ed-value_constraint">constraint type</a> of the element.
+ */
+ enum ConstraintType
+ {
+ NoneConstraint, ///< The value of the element has no constraints.
+ DefaultConstraint, ///< The element has a default value set.
+ FixedConstraint ///< The element has a fixed value set.
+ };
+
+ /**
+ * Describes the scope of an element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#sc_e">Scope Definition</a>
+ */
+ class Scope : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<Scope> Ptr;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#ad-scope">scope</a> of an attribute.
+ */
+ enum Variety
+ {
+ Global, ///< The element is defined globally as child of the <em>schema</em> object.
+ Local ///< The element is defined locally as child of a complex type or model group definition.
+ };
+
+ /**
+ * Sets the @p variety of the element scope.
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the element scope.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p parent complex type or model group definition of the element scope.
+ */
+ void setParent(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * Returns the parent complex type or model group definition of the element scope.
+ */
+ NamedSchemaComponent::Ptr parent() const;
+
+ private:
+ Variety m_variety;
+ NamedSchemaComponent::Ptr m_parent;
+ };
+
+ /**
+ * Describes a type table of an element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#tt">Type Table Definition</a>
+ */
+ class TypeTable : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<TypeTable> Ptr;
+
+ /**
+ * Adds an @p alternative to the type table.
+ */
+ void addAlternative(const XsdAlternative::Ptr &alternative);
+
+ /**
+ * Returns the alternatives of the type table.
+ */
+ XsdAlternative::List alternatives() const;
+
+ /**
+ * Sets the default @p type definition.
+ */
+ void setDefaultTypeDefinition(const XsdAlternative::Ptr &type);
+
+ /**
+ * Returns the default type definition.
+ */
+ XsdAlternative::Ptr defaultTypeDefinition() const;
+
+ private:
+ XsdAlternative::List m_alternatives;
+ XsdAlternative::Ptr m_defaultTypeDefinition;
+ };
+
+
+ /**
+ * Describes the value constraint of an element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#vc_e">Value Constraint Definition</a>
+ */
+ class ValueConstraint : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<ValueConstraint> Ptr;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#ed-value_constraint">value constraint</a> of an element.
+ */
+ enum Variety
+ {
+ Default, ///< The element has a default value set.
+ Fixed ///< The element has a fixed value set.
+ };
+
+ /**
+ * Sets the @p variety of the element value constraint.
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the element value constraint.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the @p value of the constraint.
+ */
+ void setValue(const QString &value);
+
+ /**
+ * Returns the value of the constraint.
+ */
+ QString value() const;
+
+ /**
+ * Sets the lexical @p form of the constraint.
+ */
+ void setLexicalForm(const QString &form);
+
+ /**
+ * Returns the lexical form of the constraint.
+ */
+ QString lexicalForm() const;
+
+ private:
+ Variety m_variety;
+ QString m_value;
+ QString m_lexicalForm;
+ };
+
+ /**
+ * Creates a new element object.
+ */
+ XsdElement();
+
+ /**
+ * Always returns @c true, used to avoid dynamic casts.
+ */
+ virtual bool isElement() const;
+
+ /**
+ * Sets the @p type of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-type_definition">Type Definition</a>
+ */
+ void setType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the type of the element.
+ */
+ SchemaType::Ptr type() const;
+
+ /**
+ * Sets the @p scope of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-scope">Scope Definition</a>
+ */
+ void setScope(const Scope::Ptr &scope);
+
+ /**
+ * Returns the scope of the element.
+ */
+ Scope::Ptr scope() const;
+
+ /**
+ * Sets the value @p constraint of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-value_constraint">Value Constraint Definition</a>
+ */
+ void setValueConstraint(const ValueConstraint::Ptr &constraint);
+
+ /**
+ * Returns the value constraint of the element.
+ */
+ ValueConstraint::Ptr valueConstraint() const;
+
+ /**
+ * Sets the type table of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-type_table">Type Table Definition</a>
+ */
+ void setTypeTable(const TypeTable::Ptr &table);
+
+ /**
+ * Returns the type table of the element.
+ */
+ TypeTable::Ptr typeTable() const;
+
+ /**
+ * Sets whether the element is @p abstract.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-abstract">Abstract Definition</a>
+ */
+ void setIsAbstract(bool abstract);
+
+ /**
+ * Returns whether the element is abstract.
+ */
+ bool isAbstract() const;
+
+ /**
+ * Sets whether the element is @p nillable.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-nillable">Nillable Definition</a>
+ */
+ void setIsNillable(bool nillable);
+
+ /**
+ * Returns whether the element is nillable.
+ */
+ bool isNillable() const;
+
+ /**
+ * Sets the disallowed @p substitutions of the element.
+ *
+ * Only ExtensionConstraint, RestrictionConstraint and SubstitutionConstraint are allowed.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-disallowed_substitutions">Disallowed Substitutions Definition</a>
+ */
+ void setDisallowedSubstitutions(const BlockingConstraints &substitutions);
+
+ /**
+ * Returns the disallowed substitutions of the element.
+ */
+ BlockingConstraints disallowedSubstitutions() const;
+
+ /**
+ * Sets the substitution group @p exclusions of the element.
+ *
+ * Only SchemaType::ExtensionConstraint and SchemaType::RestrictionConstraint are allowed.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-substitution_group_exclusions">Substitution Group Exclusions Definition</a>
+ */
+ void setSubstitutionGroupExclusions(const SchemaType::DerivationConstraints &exclusions);
+
+ /**
+ * Returns the substitution group exclusions of the element.
+ */
+ SchemaType::DerivationConstraints substitutionGroupExclusions() const;
+
+ /**
+ * Sets the identity @p constraints of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-identity-constraint_definitions">Identity Constraint Definition</a>
+ */
+ void setIdentityConstraints(const XsdIdentityConstraint::List &constraints);
+
+ /**
+ * Adds a new identity @p constraint to the element.
+ */
+ void addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint);
+
+ /**
+ * Returns a list of all identity constraints of the element.
+ */
+ XsdIdentityConstraint::List identityConstraints() const;
+
+ /**
+ * Sets the substitution group @p affiliations of the element.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#ed-substituion_group_affiliations">Substitution Group Affiliations</a>
+ */
+ void setSubstitutionGroupAffiliations(const XsdElement::List &affiliations);
+
+ /**
+ * Returns the substitution group affiliations of the element.
+ */
+ XsdElement::List substitutionGroupAffiliations() const;
+
+ /**
+ * Adds a substitution group to the element.
+ */
+ void addSubstitutionGroup(const XsdElement::Ptr &elements);
+
+ /**
+ * Returns the substitution groups of the element.
+ */
+ XsdElement::List substitutionGroups() const;
+
+ private:
+ SchemaType::Ptr m_type;
+ Scope::Ptr m_scope;
+ ValueConstraint::Ptr m_valueConstraint;
+ TypeTable::Ptr m_typeTable;
+ bool m_isAbstract;
+ bool m_isNillable;
+ BlockingConstraints m_disallowedSubstitutions;
+ SchemaType::DerivationConstraints m_substitutionGroupExclusions;
+ XsdIdentityConstraint::List m_identityConstraints;
+ XsdElement::List m_substitutionGroupAffiliations;
+ QSet<XsdElement::Ptr> m_substitutionGroups;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdfacet.cpp b/src/xmlpatterns/schema/qxsdfacet.cpp
new file mode 100644
index 0000000..b49d530
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdfacet.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdfacet_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdFacet::XsdFacet()
+ : m_type(None)
+{
+}
+
+void XsdFacet::setType(Type type)
+{
+ m_type = type;
+}
+
+XsdFacet::Type XsdFacet::type() const
+{
+ return m_type;
+}
+
+void XsdFacet::setValue(const AtomicValue::Ptr &value)
+{
+ m_value = value;
+}
+
+AtomicValue::Ptr XsdFacet::value() const
+{
+ return m_value;
+}
+
+void XsdFacet::setMultiValue(const AtomicValue::List &value)
+{
+ m_multiValue = value;
+}
+
+AtomicValue::List XsdFacet::multiValue() const
+{
+ return m_multiValue;
+}
+
+void XsdFacet::setAssertions(const XsdAssertion::List &assertions)
+{
+ m_assertions = assertions;
+}
+
+XsdAssertion::List XsdFacet::assertions() const
+{
+ return m_assertions;
+}
+
+void XsdFacet::setFixed(bool fixed)
+{
+ m_fixed = fixed;
+}
+
+bool XsdFacet::fixed() const
+{
+ return m_fixed;
+}
+
+QString XsdFacet::typeName(Type type)
+{
+ switch (type) {
+ case Length: return QLatin1String("length"); break;
+ case MinimumLength: return QLatin1String("minLength"); break;
+ case MaximumLength: return QLatin1String("maxLength"); break;
+ case Pattern: return QLatin1String("pattern"); break;
+ case WhiteSpace: return QLatin1String("whiteSpace"); break;
+ case MaximumInclusive: return QLatin1String("maxInclusive"); break;
+ case MaximumExclusive: return QLatin1String("maxExclusive"); break;
+ case MinimumInclusive: return QLatin1String("minInclusive"); break;
+ case MinimumExclusive: return QLatin1String("minExclusive"); break;
+ case TotalDigits: return QLatin1String("totalDigits"); break;
+ case FractionDigits: return QLatin1String("fractionDigits"); break;
+ case Enumeration: return QLatin1String("enumeration"); break;
+ case Assertion: return QLatin1String("assertion"); break;
+ case None: // fall through
+ default: return QLatin1String("none"); break;
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdfacet_p.h b/src/xmlpatterns/schema/qxsdfacet_p.h
new file mode 100644
index 0000000..fe845d0
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdfacet_p.h
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdFacet_H
+#define Patternist_XsdFacet_H
+
+#include "qitem_p.h"
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+#include "qxsdassertion_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD facet object.
+ *
+ * This class represents one of the following XML schema objects:
+ *
+ * <ul>
+ * <li><em>length</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-length">Definition</a></li>
+ * <li><em>minLength</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-minLength">Definition</a></li>
+ * <li><em>maxLength</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxLength">Definition</a></li>
+ * <li><em>pattern</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-pattern">Definition</a></li>
+ * <li><em>whiteSpace</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace">Definition</a></li>
+ * <li><em>maxInclusive</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxInclusive">Definition</a></li>
+ * <li><em>maxExclusive</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-maxExclusive">Definition</a></li>
+ * <li><em>minInclusive</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-minInclusive">Definition</a></li>
+ * <li><em>minExclusive</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-minExclusive">Definition</a></li>
+ * <li><em>totalDigits</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-totalDigits">Definition</a></li>
+ * <li><em>fractionDigits</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-fractionDigits">Definition</a></li>
+ * <li><em>enumeration</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-enumeration">Definition</a></li>
+ * <li><em>assertion</em> <a href="http://www.w3.org/TR/xmlschema-2/#rf-assertion">Definition</a></li>
+ * </ul>
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSFacet">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdFacet : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdFacet> Ptr;
+
+ /**
+ * Describes the type of the facet.
+ */
+ enum Type
+ {
+ None = 0, ///< An invalid facet.
+ Length = 1 << 0, ///< Match the exact length (<a href="http://www.w3.org/TR/xmlschema-2/#rf-length">Length Definition</a>)
+ MinimumLength = 1 << 1, ///< Match the minimum length (<a href="http://www.w3.org/TR/xmlschema-2/#rf-minLength">Minimum Length Definition</a>)
+ MaximumLength = 1 << 2, ///< Match the maximum length (<a href="http://www.w3.org/TR/xmlschema-2/#rf-maxLength">Maximum Length Definition</a>)
+ Pattern = 1 << 3, ///< Match a regular expression (<a href="http://www.w3.org/TR/xmlschema-2/#rf-pattern">Pattern Definition</a>)
+ WhiteSpace = 1 << 4, ///< Match a whitespace rule (<a href="http://www.w3.org/TR/xmlschema-2/#rf-whiteSpace">White Space Definition</a>)
+ MaximumInclusive = 1 << 5, ///< Match a maximum inclusive (<a href="http://www.w3.org/TR/xmlschema-2/#rf-maxInclusive">Maximum Inclusive Definition</a>)
+ MaximumExclusive = 1 << 6, ///< Match a maximum exclusive (<a href="http://www.w3.org/TR/xmlschema-2/#rf-maxExclusive">Maximum Exclusive Definition</a>)
+ MinimumInclusive = 1 << 7, ///< Match a minimum inclusive (<a href="http://www.w3.org/TR/xmlschema-2/#rf-minInclusive">Minimum Inclusive Definition</a>)
+ MinimumExclusive = 1 << 8, ///< Match a minimum exclusive (<a href="http://www.w3.org/TR/xmlschema-2/#rf-minExclusive">Minimum Exclusive Definition</a>)
+ TotalDigits = 1 << 9, ///< Match some integer digits (<a href="http://www.w3.org/TR/xmlschema-2/#rf-totalDigits">Total Digits Definition</a>)
+ FractionDigits = 1 << 10, ///< Match some double digits (<a href="http://www.w3.org/TR/xmlschema-2/#rf-fractionDigits">Fraction Digits Definition</a>)
+ Enumeration = 1 << 11, ///< Match an enumeration (<a href="http://www.w3.org/TR/xmlschema-2/#rf-enumeration">Enumeration Definition</a>)
+ Assertion = 1 << 12, ///< Match an assertion (<a href="http://www.w3.org/TR/xmlschema-2/#rf-assertion">Assertion Definition</a>)
+ };
+ typedef QHash<XsdFacet::Type, XsdFacet::Ptr> Hash;
+ typedef QHashIterator<XsdFacet::Type, XsdFacet::Ptr> HashIterator;
+
+ /**
+ * Creates a new facet object of type None.
+ */
+ XsdFacet();
+
+ /**
+ * Sets the @p type of the facet.
+ *
+ * @see Type
+ */
+ void setType(Type type);
+
+ /**
+ * Returns the type of the facet.
+ */
+ Type type() const;
+
+ /**
+ * Sets the @p value of the facet.
+ *
+ * Depending on the type of the facet the
+ * value can be a string, interger, double etc.
+ *
+ * @note This method should be used for all types of facets
+ * except Pattern, Enumeration and Assertion.
+ */
+ void setValue(const AtomicValue::Ptr &value);
+
+ /**
+ * Returns the value of the facet or an empty pointer if facet
+ * type is Pattern, Enumeration or Assertion.
+ */
+ AtomicValue::Ptr value() const;
+
+ /**
+ * Sets the @p value of the facet.
+ *
+ * @note This method should be used for if the type of the
+ * facet is Pattern or Enumeration.
+ */
+ void setMultiValue(const AtomicValue::List &value);
+
+ /**
+ * Returns the value of the facet or an empty pointer if facet
+ * type is not of type Pattern or Enumeration.
+ */
+ AtomicValue::List multiValue() const;
+
+ /**
+ * Sets the @p assertions of the facet.
+ *
+ * @note This method should be used if the type of the
+ * facet is Assertion.
+ */
+ void setAssertions(const XsdAssertion::List &assertions);
+
+ /**
+ * Returns the assertions of the facet or an empty pointer if facet
+ * type is not of type Assertion.
+ */
+ XsdAssertion::List assertions() const;
+
+ /**
+ * Sets whether the facet is @p fixed.
+ *
+ * All facets except pattern, enumeration and assertion can be fixed.
+ */
+ void setFixed(bool fixed);
+
+ /**
+ * Returns whether the facet is fixed.
+ */
+ bool fixed() const;
+
+ /**
+ * Returns the textual description of the facet @p type.
+ */
+ static QString typeName(Type type);
+
+ private:
+ Type m_type;
+ AtomicValue::Ptr m_value;
+ AtomicValue::List m_multiValue;
+ XsdAssertion::List m_assertions;
+ bool m_fixed;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdidcache.cpp b/src/xmlpatterns/schema/qxsdidcache.cpp
new file mode 100644
index 0000000..2d4adc9
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidcache.cpp
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdidcache_p.h"
+
+#include <QtCore/QReadLocker>
+#include <QtCore/QWriteLocker>
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdIdCache::addId(const QString &id)
+{
+ const QWriteLocker locker(&m_lock);
+ Q_ASSERT(!m_ids.contains(id));
+
+ m_ids.insert(id);
+}
+
+bool XsdIdCache::hasId(const QString &id) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_ids.contains(id);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdidcache_p.h b/src/xmlpatterns/schema/qxsdidcache_p.h
new file mode 100644
index 0000000..c81e4dc
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidcache_p.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdIdCache_H
+#define Patternist_XsdIdCache_H
+
+#include "qschemacomponent_p.h"
+
+#include <QtCore/QExplicitlySharedDataPointer>
+#include <QtCore/QReadWriteLock>
+#include <QtCore/QSet>
+#include <QtCore/QString>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Helper class for keeping track of all existing IDs in a schema.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdIdCache : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdIdCache> Ptr;
+
+ /**
+ * Adds an @p id to the id cache.
+ */
+ void addId(const QString &id);
+
+ /**
+ * Returns whether the id cache contains the given @p id already.
+ */
+ bool hasId(const QString &id) const;
+
+ private:
+ QSet<QString> m_ids;
+ mutable QReadWriteLock m_lock;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdidchelper.cpp b/src/xmlpatterns/schema/qxsdidchelper.cpp
new file mode 100644
index 0000000..0442f26
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidchelper.cpp
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdidchelper_p.h"
+
+#include "qderivedstring_p.h"
+#include "qxsdschemahelper_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+FieldNode::FieldNode()
+{
+}
+
+FieldNode::FieldNode(const QXmlItem &item, const QString &data, const SchemaType::Ptr &type)
+ : m_item(item)
+ , m_data(data)
+ , m_type(type)
+{
+}
+
+bool FieldNode::isEmpty() const
+{
+ return m_item.isNull();
+}
+
+bool FieldNode::isEqualTo(const FieldNode &other, const NamePool::Ptr &namePool, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const
+{
+ if (m_type != other.m_type)
+ return false;
+
+ const DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(namePool, m_data);
+ const DerivedString<TypeString>::Ptr otherString = DerivedString<TypeString>::fromLexical(namePool, other.m_data);
+
+ return XsdSchemaHelper::constructAndCompare(string, AtomicComparator::OperatorEqual, otherString, m_type, context, reflection);
+}
+
+QXmlItem FieldNode::item() const
+{
+ return m_item;
+}
+
+TargetNode::TargetNode(const QXmlItem &item)
+ : m_item(item)
+{
+}
+
+QXmlItem TargetNode::item() const
+{
+ return m_item;
+}
+
+QVector<QXmlItem> TargetNode::fieldItems() const
+{
+ QVector<QXmlItem> items;
+
+ for (int i = 0; i < m_fields.count(); ++i)
+ items.append(m_fields.at(i).item());
+
+ return items;
+}
+
+int TargetNode::emptyFieldsCount() const
+{
+ int counter = 0;
+ for (int i = 0; i < m_fields.count(); ++i) {
+ if (m_fields.at(i).isEmpty())
+ ++counter;
+ }
+
+ return counter;
+}
+
+bool TargetNode::fieldsAreEqual(const TargetNode &other, const NamePool::Ptr &namePool, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const
+{
+ if (m_fields.count() != other.m_fields.count())
+ return false;
+
+ for (int i = 0; i < m_fields.count(); ++i) {
+ if (!m_fields.at(i).isEqualTo(other.m_fields.at(i), namePool, context, reflection))
+ return false;
+ }
+
+ return true;
+}
+
+void TargetNode::addField(const QXmlItem &item, const QString &data, const SchemaType::Ptr &type)
+{
+ m_fields.append(FieldNode(item, data, type));
+}
+
+bool TargetNode::operator==(const TargetNode &other) const
+{
+ return (m_item.toNodeModelIndex() == other.m_item.toNodeModelIndex());
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdidchelper_p.h b/src/xmlpatterns/schema/qxsdidchelper_p.h
new file mode 100644
index 0000000..d25d713
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidchelper_p.h
@@ -0,0 +1,186 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdIdcHelper_H
+#define Patternist_XsdIdcHelper_H
+
+#include "qreportcontext_p.h"
+#include "qschematype_p.h"
+
+#include <QtXmlPatterns/QXmlItem>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+
+ /**
+ * @short A helper class for validating identity constraints.
+ *
+ * This class represents a field node from the key-sequence as defined in
+ * the validation rules at http://www.w3.org/TR/xmlschema11-1/#d0e32243.
+ */
+ class FieldNode
+ {
+ public:
+ /**
+ * Creates an empty field node.
+ */
+ FieldNode();
+
+ /**
+ * Creates a field node that is bound to a xml node.
+ *
+ * @param item The xml node the field is bound to.
+ * @param data The string content of that field.
+ * @param type The type that is bound to that field.
+ */
+ FieldNode(const QXmlItem &item, const QString &data, const SchemaType::Ptr &type);
+
+ /**
+ * Returns whether this field is empty.
+ *
+ * A field can be empty, if the xpath expression selects an absent attribute
+ * or element.
+ */
+ bool isEmpty() const;
+
+ /**
+ * Returns whether this field is equal to the @p other field.
+ *
+ * Equal means that both have the same type and there content is equal in the
+ * types value space.
+ */
+ bool isEqualTo(const FieldNode &other, const NamePool::Ptr &namePool, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const;
+
+ /**
+ * Returns the xml node item the field is bound to.
+ */
+ QXmlItem item() const;
+
+ private:
+ QXmlItem m_item;
+ QString m_data;
+ SchemaType::Ptr m_type;
+ };
+
+ /**
+ * @short A helper class for validating identity constraints.
+ *
+ * This class represents a target or qualified node from the target or qualified
+ * node set as defined in the validation rules at http://www.w3.org/TR/xmlschema11-1/#d0e32243.
+ *
+ * A target node is part of the qualified node set, if all of its fields are not empty.
+ */
+ class TargetNode
+ {
+ public:
+ /**
+ * Defines a set of target nodes.
+ */
+ typedef QSet<TargetNode> Set;
+
+ /**
+ * Creates a new target node that is bound to the xml node @p item.
+ */
+ explicit TargetNode(const QXmlItem &item);
+
+ /**
+ * Returns the xml node item the target node is bound to.
+ */
+ QXmlItem item() const;
+
+ /**
+ * Returns all xml node items, the fields of that target node are bound to.
+ */
+ QVector<QXmlItem> fieldItems() const;
+
+ /**
+ * Returns the number of fields that are empty.
+ */
+ int emptyFieldsCount() const;
+
+ /**
+ * Returns whether the target node has the same fields as the @p other target node.
+ */
+ bool fieldsAreEqual(const TargetNode &other, const NamePool::Ptr &namePool, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const;
+
+ /**
+ * Adds a new field to the target node with the given values.
+ */
+ void addField(const QXmlItem &item, const QString &data, const SchemaType::Ptr &type);
+
+ /**
+ * Returns whether the target node is equal to the @p other target node.
+ */
+ bool operator==(const TargetNode &other) const;
+
+ private:
+ QXmlItem m_item;
+ QVector<FieldNode> m_fields;
+ };
+
+ /**
+ * Creates a hash value for the given target @p node.
+ */
+ inline uint qHash(const QPatternist::TargetNode &node)
+ {
+ return qHash(node.item().toNodeModelIndex());
+ }
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdidentityconstraint.cpp b/src/xmlpatterns/schema/qxsdidentityconstraint.cpp
new file mode 100644
index 0000000..eec1235
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidentityconstraint.cpp
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdidentityconstraint_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdIdentityConstraint::setCategory(Category category)
+{
+ m_category = category;
+}
+
+XsdIdentityConstraint::Category XsdIdentityConstraint::category() const
+{
+ return m_category;
+}
+
+void XsdIdentityConstraint::setSelector(const XsdXPathExpression::Ptr &selector)
+{
+ m_selector = selector;
+}
+
+XsdXPathExpression::Ptr XsdIdentityConstraint::selector() const
+{
+ return m_selector;
+}
+
+void XsdIdentityConstraint::setFields(const XsdXPathExpression::List &fields)
+{
+ m_fields = fields;
+}
+
+void XsdIdentityConstraint::addField(const XsdXPathExpression::Ptr &field)
+{
+ m_fields.append(field);
+}
+
+XsdXPathExpression::List XsdIdentityConstraint::fields() const
+{
+ return m_fields;
+}
+
+void XsdIdentityConstraint::setReferencedKey(const XsdIdentityConstraint::Ptr &referencedKey)
+{
+ m_referencedKey = referencedKey;
+}
+
+XsdIdentityConstraint::Ptr XsdIdentityConstraint::referencedKey() const
+{
+ return m_referencedKey;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdidentityconstraint_p.h b/src/xmlpatterns/schema/qxsdidentityconstraint_p.h
new file mode 100644
index 0000000..712ea98
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdidentityconstraint_p.h
@@ -0,0 +1,173 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdIdentityConstraint_H
+#define Patternist_XsdIdentityConstraint_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+#include "qxsdxpathexpression_p.h"
+
+#include <QtCore/QStringList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD identity constraint object.
+ *
+ * This class represents the <em>identity constraint</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cIdentity-constraint_Definitions">here</a>.
+ *
+ * It contains information from either a <em>key</em> object, a <em>keyref</em> object or an
+ * <em>unique</em> object.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSIdentityConstraint">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdIdentityConstraint : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdIdentityConstraint> Ptr;
+ typedef QList<XsdIdentityConstraint::Ptr> List;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#icd-identity-constraint_category">category</a> of the identity constraint.
+ */
+ enum Category
+ {
+ Key = 1, ///< The constraint is a key constraint
+ KeyReference, ///< The constraint is a keyref constraint
+ Unique ///< The constraint is an unique constraint
+ };
+
+ /**
+ * Sets the @p category of the identity constraint.
+ *
+ * @see Category
+ */
+ void setCategory(Category category);
+
+ /**
+ * Returns the category of the identity constraint.
+ */
+ Category category() const;
+
+ /**
+ * Sets the @p selector of the identity constraint.
+ *
+ * The selector is a restricted XPath 1.0 expression,
+ * that selects a set of nodes.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#icd-selector"></a>
+ */
+ void setSelector(const XsdXPathExpression::Ptr &selector);
+
+ /**
+ * Returns the selector of the identity constraint.
+ */
+ XsdXPathExpression::Ptr selector() const;
+
+ /**
+ * Sets the @p fields of the identity constraint.
+ *
+ * Each field is a restricted XPath 1.0 expression,
+ * that selects a set of nodes.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#icd-fields"></a>
+ */
+ void setFields(const XsdXPathExpression::List &fields);
+
+ /**
+ * Adds a new @p field to the identity constraint.
+ */
+ void addField(const XsdXPathExpression::Ptr &field);
+
+ /**
+ * Returns all fields of the identity constraint.
+ */
+ XsdXPathExpression::List fields() const;
+
+ /**
+ * Sets the referenced @p key of the identity constraint.
+ *
+ * The key points to a identity constraint of type Key or Unique.
+ *
+ * The identity constraint has only a referenced key if its
+ * type is KeyReference.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#icd-referenced_key"></a>
+ */
+ void setReferencedKey(const XsdIdentityConstraint::Ptr &key);
+
+ /**
+ * Returns the referenced key of the identity constraint or an empty
+ * pointer if its type is not KeyReference.
+ */
+ XsdIdentityConstraint::Ptr referencedKey() const;
+
+ private:
+ Category m_category;
+ XsdXPathExpression::Ptr m_selector;
+ XsdXPathExpression::List m_fields;
+ XsdIdentityConstraint::Ptr m_referencedKey;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdinstancereader.cpp b/src/xmlpatterns/schema/qxsdinstancereader.cpp
new file mode 100644
index 0000000..9d2dc60
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdinstancereader.cpp
@@ -0,0 +1,196 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdinstancereader_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdInstanceReader::XsdInstanceReader(const QAbstractXmlNodeModel *model, const XsdSchemaContext::Ptr &context)
+ : m_context(context)
+ , m_model(model->iterate(model->root(QXmlNodeModelIndex()), QXmlNodeModelIndex::AxisChild))
+{
+}
+
+bool XsdInstanceReader::atEnd() const
+{
+ return (m_model.current() == AbstractXmlPullProvider::EndOfInput);
+}
+
+void XsdInstanceReader::readNext()
+{
+ m_model.next();
+
+ if (m_model.current() == AbstractXmlPullProvider::StartElement) {
+ m_cachedAttributes = m_model.attributes();
+ m_cachedAttributeItems = m_model.attributeItems();
+ m_cachedSourceLocation = m_model.sourceLocation();
+ m_cachedItem = QXmlItem(m_model.index());
+ }
+}
+
+bool XsdInstanceReader::isStartElement() const
+{
+ return (m_model.current() == AbstractXmlPullProvider::StartElement);
+}
+
+bool XsdInstanceReader::isEndElement() const
+{
+ return (m_model.current() == AbstractXmlPullProvider::EndElement);
+}
+
+bool XsdInstanceReader::hasChildText() const
+{
+ const QXmlNodeModelIndex index = m_model.index();
+ QXmlNodeModelIndex::Iterator::Ptr it = index.model()->iterate(index, QXmlNodeModelIndex::AxisChild);
+
+ QXmlNodeModelIndex currentIndex = it->next();
+ while (!currentIndex.isNull()) {
+ if (currentIndex.kind() == QXmlNodeModelIndex::Text)
+ return true;
+
+ currentIndex = it->next();
+ }
+
+ return false;
+}
+
+bool XsdInstanceReader::hasChildElement() const
+{
+ const QXmlNodeModelIndex index = m_model.index();
+ QXmlNodeModelIndex::Iterator::Ptr it = index.model()->iterate(index, QXmlNodeModelIndex::AxisChild);
+
+ QXmlNodeModelIndex currentIndex = it->next();
+ while (!currentIndex.isNull()) {
+ if (currentIndex.kind() == QXmlNodeModelIndex::Element)
+ return true;
+
+ currentIndex = it->next();
+ }
+
+ return false;
+}
+
+QXmlName XsdInstanceReader::name() const
+{
+ return m_model.name();
+}
+
+QXmlName XsdInstanceReader::convertToQName(const QString &name) const
+{
+ const int pos = name.indexOf(QLatin1Char(':'));
+
+ QXmlName::PrefixCode prefixCode = 0;
+ QXmlName::NamespaceCode namespaceCode;
+ QXmlName::LocalNameCode localNameCode;
+ if (pos != -1) {
+ prefixCode = m_context->namePool()->allocatePrefix(name.left(pos));
+ namespaceCode = m_cachedItem.toNodeModelIndex().namespaceForPrefix(prefixCode);
+ localNameCode = m_context->namePool()->allocateLocalName(name.mid(pos + 1));
+ } else {
+ prefixCode = StandardPrefixes::empty;
+ namespaceCode = m_cachedItem.toNodeModelIndex().namespaceForPrefix(prefixCode);
+ if (namespaceCode == -1)
+ namespaceCode = StandardNamespaces::empty;
+ localNameCode = m_context->namePool()->allocateLocalName(name);
+ }
+
+ return QXmlName(namespaceCode, localNameCode, prefixCode);
+}
+
+bool XsdInstanceReader::hasAttribute(const QXmlName &name) const
+{
+ return m_cachedAttributes.contains(name);
+}
+
+QString XsdInstanceReader::attribute(const QXmlName &name) const
+{
+ Q_ASSERT(m_cachedAttributes.contains(name));
+
+ return m_cachedAttributes.value(name);
+}
+
+QSet<QXmlName> XsdInstanceReader::attributeNames() const
+{
+ return m_cachedAttributes.keys().toSet();
+}
+
+QString XsdInstanceReader::text() const
+{
+ const QXmlNodeModelIndex index = m_model.index();
+ QXmlNodeModelIndex::Iterator::Ptr it = index.model()->iterate(index, QXmlNodeModelIndex::AxisChild);
+
+ QString result;
+
+ QXmlNodeModelIndex currentIndex = it->next();
+ while (!currentIndex.isNull()) {
+ if (currentIndex.kind() == QXmlNodeModelIndex::Text) {
+ result.append(Item(currentIndex).stringValue());
+ }
+
+ currentIndex = it->next();
+ }
+
+ return result;
+}
+
+QXmlItem XsdInstanceReader::item() const
+{
+ return m_cachedItem;
+}
+
+QXmlItem XsdInstanceReader::attributeItem(const QXmlName &name) const
+{
+ return m_cachedAttributeItems.value(name);
+}
+
+QSourceLocation XsdInstanceReader::sourceLocation() const
+{
+ return m_cachedSourceLocation;
+}
+
+QVector<QXmlName> XsdInstanceReader::namespaceBindings(const QXmlNodeModelIndex &index) const
+{
+ return index.namespaceBindings();
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdinstancereader_p.h b/src/xmlpatterns/schema/qxsdinstancereader_p.h
new file mode 100644
index 0000000..1896ad9
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdinstancereader_p.h
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdInstanceReader_H
+#define Patternist_XsdInstanceReader_H
+
+#include "qabstractxmlnodemodel.h"
+#include "qpullbridge_p.h"
+#include "qxsdschemacontext_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short The schema instance reader.
+ *
+ * This class reads in a xml instance document from a QAbstractXmlNodeModel
+ * and provides a QXmlStreamReader like interface with some additional context
+ * information.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdInstanceReader
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdInstanceReader> Ptr;
+
+ /**
+ * Creates a new instance reader that will read the data from
+ * the given @p model.
+ *
+ * @param model The model the data are read from.
+ * @param context The context that is used for error reporting etc.
+ */
+ XsdInstanceReader(const QAbstractXmlNodeModel *model, const XsdSchemaContext::Ptr &context);
+
+ protected:
+ /**
+ * Returns @c true if the end of the document is reached, @c false otherwise.
+ */
+ bool atEnd() const;
+
+ /**
+ * Reads the next node from the document.
+ */
+ void readNext();
+
+ /**
+ * Returns whether the current node is a start element.
+ */
+ bool isStartElement() const;
+
+ /**
+ * Returns whether the current node is an end element.
+ */
+ bool isEndElement() const;
+
+ /**
+ * Returns whether the current node has a text node among its children.
+ */
+ bool hasChildText() const;
+
+ /**
+ * Returns whether the current node has an element node among its children.
+ */
+ bool hasChildElement() const;
+
+ /**
+ * Returns the name of the current node.
+ */
+ QXmlName name() const;
+
+ /**
+ * Returns whether the current node has an attribute with the given @p name.
+ */
+ bool hasAttribute(const QXmlName &name) const;
+
+ /**
+ * Returns the attribute with the given @p name of the current node.
+ */
+ QString attribute(const QXmlName &name) const;
+
+ /**
+ * Returns the list of attribute names of the current node.
+ */
+ QSet<QXmlName> attributeNames() const;
+
+ /**
+ * Returns the concatenated text of all direct child text nodes.
+ */
+ QString text() const;
+
+ /**
+ * Converts a qualified name into a QXmlName according to the namespace
+ * mappings of the current node.
+ */
+ QXmlName convertToQName(const QString &name) const;
+
+ /**
+ * Returns a source location object for the current position.
+ */
+ QSourceLocation sourceLocation() const;
+
+ /**
+ * Returns the QXmlItem for the current position.
+ */
+ QXmlItem item() const;
+
+ /**
+ * Returns the QXmlItem for the attribute with the given @p name at the current position.
+ */
+ QXmlItem attributeItem(const QXmlName &name) const;
+
+ /**
+ * Returns the namespace bindings for the given node model @p index.
+ */
+ QVector<QXmlName> namespaceBindings(const QXmlNodeModelIndex &index) const;
+
+ /**
+ * The shared schema context.
+ */
+ XsdSchemaContext::Ptr m_context;
+
+ private:
+ PullBridge m_model;
+ QHash<QXmlName, QString> m_cachedAttributes;
+ QHash<QXmlName, QXmlItem> m_cachedAttributeItems;
+ QSourceLocation m_cachedSourceLocation;
+ QXmlItem m_cachedItem;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdmodelgroup.cpp b/src/xmlpatterns/schema/qxsdmodelgroup.cpp
new file mode 100644
index 0000000..a791284
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdmodelgroup.cpp
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdmodelgroup_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdModelGroup::XsdModelGroup()
+ : m_compositor(SequenceCompositor)
+{
+}
+
+bool XsdModelGroup::isModelGroup() const
+{
+ return true;
+}
+
+void XsdModelGroup::setCompositor(ModelCompositor compositor)
+{
+ m_compositor = compositor;
+}
+
+XsdModelGroup::ModelCompositor XsdModelGroup::compositor() const
+{
+ return m_compositor;
+}
+
+void XsdModelGroup::setParticles(const XsdParticle::List &particles)
+{
+ m_particles = particles;
+}
+
+XsdParticle::List XsdModelGroup::particles() const
+{
+ return m_particles;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdmodelgroup_p.h b/src/xmlpatterns/schema/qxsdmodelgroup_p.h
new file mode 100644
index 0000000..eae46b0
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdmodelgroup_p.h
@@ -0,0 +1,139 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdModelGroup_H
+#define Patternist_XsdModelGroup_H
+
+#include "qxsdparticle_p.h"
+#include "qxsdterm_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+template<typename N> class QList;
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD model group object.
+ *
+ * This class represents the <em>model group</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cModel_Group_Definitions">here</a>.
+ *
+ * It contains information from either a <em>sequence</em> object, a <em>choice</em> object or an
+ * <em>all</em> object.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSModelGroup">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdModelGroup : public XsdTerm
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdModelGroup> Ptr;
+ typedef QList<XsdModelGroup::Ptr> List;
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#mg-compositor">compositor</a> of the model group.
+ */
+ enum ModelCompositor
+ {
+ SequenceCompositor, ///< The model group is a sequence.
+ ChoiceCompositor, ///< The model group is a choice.
+ AllCompositor ///< The model group contains elements only.
+ };
+
+ /**
+ * Creates a new model group object.
+ */
+ XsdModelGroup();
+
+ /**
+ * Returns always @c true, used to avoid dynamic casts.
+ */
+ virtual bool isModelGroup() const;
+
+ /**
+ * Sets the @p compositor of the model group.
+ *
+ * @see ModelCompositor
+ */
+ void setCompositor(ModelCompositor compositor);
+
+ /**
+ * Returns the compositor of the model group.
+ */
+ ModelCompositor compositor() const;
+
+ /**
+ * Sets the list of @p particles of the model group.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#mg-particles">Particles Definition</a>
+ */
+ void setParticles(const XsdParticle::List &particles);
+
+ /**
+ * Returns the list of particles of the model group.
+ */
+ XsdParticle::List particles() const;
+
+ private:
+ ModelCompositor m_compositor;
+ XsdParticle::List m_particles;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdnotation.cpp b/src/xmlpatterns/schema/qxsdnotation.cpp
new file mode 100644
index 0000000..6c1d7c0
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdnotation.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdnotation_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdNotation::setPublicId(const DerivedString<TypeToken>::Ptr &id)
+{
+ m_publicId = id;
+}
+
+DerivedString<TypeToken>::Ptr XsdNotation::publicId() const
+{
+ return m_publicId;
+}
+
+void XsdNotation::setSystemId(const AnyURI::Ptr &id)
+{
+ m_systemId = id;
+}
+
+AnyURI::Ptr XsdNotation::systemId() const
+{
+ return m_systemId;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdnotation_p.h b/src/xmlpatterns/schema/qxsdnotation_p.h
new file mode 100644
index 0000000..6af3f0c
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdnotation_p.h
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdNotation_H
+#define Patternist_XsdNotation_H
+
+#include "qanyuri_p.h"
+#include "qderivedstring_p.h"
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD notation object, which should not
+ * be confused with the atomic type @c xs:NOTATION.
+ *
+ * This class represents the <em>notation</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cNotation_Declarations">here</a>.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#XS-NotationDecl">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdNotation : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdNotation> Ptr;
+ typedef QList<XsdNotation::Ptr> List;
+
+ /**
+ * Sets the public @p identifier of the notation.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#nd-public_identifier">Public Identifier Definition</a>
+ */
+ void setPublicId(const DerivedString<TypeToken>::Ptr &identifier);
+
+ /**
+ * Returns the public identifier of the notation.
+ */
+ DerivedString<TypeToken>::Ptr publicId() const;
+
+ /**
+ * Sets the system @p identifier of the notation.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#nd-system_identifier">System Identifier Definition</a>
+ */
+ void setSystemId(const AnyURI::Ptr &identifier);
+
+ /**
+ * Returns the system identifier of the notation.
+ */
+ AnyURI::Ptr systemId() const;
+
+ private:
+ DerivedString<TypeToken>::Ptr m_publicId;
+ AnyURI::Ptr m_systemId;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdparticle.cpp b/src/xmlpatterns/schema/qxsdparticle.cpp
new file mode 100644
index 0000000..3e5be44
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdparticle.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdparticle_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdParticle::XsdParticle()
+ : m_minimumOccurs(1)
+ , m_maximumOccurs(1)
+ , m_maximumOccursUnbounded(false)
+{
+}
+
+void XsdParticle::setMinimumOccurs(unsigned int occurs)
+{
+ m_minimumOccurs = occurs;
+}
+
+unsigned int XsdParticle::minimumOccurs() const
+{
+ return m_minimumOccurs;
+}
+
+void XsdParticle::setMaximumOccurs(unsigned int occurs)
+{
+ m_maximumOccurs = occurs;
+}
+
+unsigned int XsdParticle::maximumOccurs() const
+{
+ return m_maximumOccurs;
+}
+
+void XsdParticle::setMaximumOccursUnbounded(bool unbounded)
+{
+ m_maximumOccursUnbounded = unbounded;
+}
+
+bool XsdParticle::maximumOccursUnbounded() const
+{
+ return m_maximumOccursUnbounded;
+}
+
+void XsdParticle::setTerm(const XsdTerm::Ptr &term)
+{
+ m_term = term;
+}
+
+XsdTerm::Ptr XsdParticle::term() const
+{
+ return m_term;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdparticle_p.h b/src/xmlpatterns/schema/qxsdparticle_p.h
new file mode 100644
index 0000000..491cb47
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdparticle_p.h
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdParticle_H
+#define Patternist_XsdParticle_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qxsdterm_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD particle object.
+ *
+ * This class represents the <em>particle</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#cParticles">here</a>.
+ *
+ * It contains information about the number of occurrence and a reference to
+ * either an <em>element</em> object, a <em>group</em> object or an <em>any</em> object.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSParticle">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdParticle : public NamedSchemaComponent
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdParticle> Ptr;
+ typedef QList<XsdParticle::Ptr> List;
+
+ /**
+ * Creates a new particle object.
+ */
+ XsdParticle();
+
+ /**
+ * Sets the minimum @p occurrence of the particle.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#p-min_occurs">Minimum Occurrence Definition</a>
+ */
+ void setMinimumOccurs(unsigned int occurrence);
+
+ /**
+ * Returns the minimum occurrence of the particle.
+ */
+ unsigned int minimumOccurs() const;
+
+ /**
+ * Sets the maximum @p occurrence of the particle.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#p-max_occurs">Maximum Occurrence Definition</a>
+ */
+ void setMaximumOccurs(unsigned int occurrence);
+
+ /**
+ * Returns the maximum occurrence of the particle.
+ *
+ * @note This value has only a meaning if maximumOccursUnbounded is @c false.
+ */
+ unsigned int maximumOccurs() const;
+
+ /**
+ * Sets whether the maximum occurrence of the particle is unbounded.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#p-max_occurs">Maximum Occurrence Definition</a>
+ */
+ void setMaximumOccursUnbounded(bool unbounded);
+
+ /**
+ * Returns whether the maximum occurrence of the particle is unbounded.
+ */
+ bool maximumOccursUnbounded() const;
+
+ /**
+ * Sets the @p term of the particle.
+ *
+ * The term can be an element, a model group or an element wildcard.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#p-term">Term Definition</a>
+ */
+ void setTerm(const XsdTerm::Ptr &term);
+
+ /**
+ * Returns the term of the particle.
+ */
+ XsdTerm::Ptr term() const;
+
+ private:
+ unsigned int m_minimumOccurs;
+ unsigned int m_maximumOccurs;
+ bool m_maximumOccursUnbounded;
+ XsdTerm::Ptr m_term;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdparticlechecker.cpp b/src/xmlpatterns/schema/qxsdparticlechecker.cpp
new file mode 100644
index 0000000..fa26b8b
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdparticlechecker.cpp
@@ -0,0 +1,540 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdparticlechecker_p.h"
+
+#include "qxsdelement_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdschemahelper_p.h"
+#include "qxsdstatemachine_p.h"
+#include "qxsdstatemachinebuilder_p.h"
+#include "qxsdtypechecker_p.h"
+
+#include <QtCore/QFile>
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+namespace QPatternist
+{
+ /**
+ * This template specialization is picked up by XsdStateMachine and allows us
+ * to print nice edge labels.
+ */
+ template <>
+ QString XsdStateMachine<XsdTerm::Ptr>::transitionTypeToString(XsdTerm::Ptr term) const
+ {
+ if (!term)
+ return QLatin1String("(empty)");
+
+ if (term->isElement()) {
+ return XsdElement::Ptr(term)->displayName(m_namePool);
+ } else if (term->isWildcard()) {
+ const XsdWildcard::Ptr wildcard(term);
+ return QLatin1String("(wildcard)");
+ } else {
+ return QString();
+ }
+ }
+}
+
+/**
+ * This method is used by the isUPAConform method to check whether @p term and @p otherTerm
+ * are the same resp. match each other.
+ */
+static bool termMatches(const XsdTerm::Ptr &term, const XsdTerm::Ptr &otherTerm, const NamePool::Ptr &namePool)
+{
+ if (term->isElement()) {
+ const XsdElement::Ptr element(term);
+
+ if (otherTerm->isElement()) {
+ // both, the term and the other term are elements
+
+ const XsdElement::Ptr otherElement(otherTerm);
+
+ // if they have the same name they match
+ if (element->name(namePool) == otherElement->name(namePool))
+ return true;
+
+ } else if (otherTerm->isWildcard()) {
+ // the term is an element and the other term a wildcard
+
+ const XsdWildcard::Ptr wildcard(otherTerm);
+
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ QXmlName name = element->name(namePool);
+ if (name.namespaceURI() == StandardNamespaces::empty)
+ name.setNamespaceURI(namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+
+ // if the wildcards namespace constraint allows the elements name, they match
+ if (XsdSchemaHelper::wildcardAllowsExpandedName(name, wildcard, namePool))
+ return true;
+ }
+ } else if (term->isWildcard()) {
+ const XsdWildcard::Ptr wildcard(term);
+
+ if (otherTerm->isElement()) {
+ // the term is a wildcard and the other term an element
+
+ const XsdElement::Ptr otherElement(otherTerm);
+
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ QXmlName name = otherElement->name(namePool);
+ if (name.namespaceURI() == StandardNamespaces::empty)
+ name.setNamespaceURI(namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+
+ // if the wildcards namespace constraint allows the elements name, they match
+ if (XsdSchemaHelper::wildcardAllowsExpandedName(name, wildcard, namePool))
+ return true;
+
+ } else if (otherTerm->isWildcard()) {
+ // both, the term and the other term are wildcards
+
+ const XsdWildcard::Ptr otherWildcard(otherTerm);
+
+ // check if the range of the wildcard overlaps.
+ const XsdWildcard::Ptr intersectionWildcard = XsdSchemaHelper::wildcardIntersection(wildcard, otherWildcard);
+ if (!intersectionWildcard ||
+ (intersectionWildcard && !(intersectionWildcard->namespaceConstraint()->variety() != XsdWildcard::NamespaceConstraint::Not && intersectionWildcard->namespaceConstraint()->namespaces().isEmpty())))
+ return true;
+ }
+ }
+
+ return false;
+}
+
+/**
+ * This method is used by the subsumes algorithm to check whether the @p derivedTerm is validly derived from the @p baseTerm.
+ *
+ * @param baseTerm The term of the base component (type or group).
+ * @param derivedTerm The term of the derived component (type or group).
+ * @param particles A hash to map the passed base and derived term to the particles they belong to.
+ * @param context The schema context.
+ * @param errorMsg The error message in the case that an error occurs.
+ */
+static bool derivedTermValid(const XsdTerm::Ptr &baseTerm, const XsdTerm::Ptr &derivedTerm, const QHash<XsdTerm::Ptr, XsdParticle::Ptr> &particles, const XsdSchemaContext::Ptr &context, QString &errorMsg)
+{
+ const NamePool::Ptr namePool(context->namePool());
+
+ // find the particles where the base and derived term belongs to
+ const XsdParticle::Ptr baseParticle = particles.value(baseTerm);
+ const XsdParticle::Ptr derivedParticle = particles.value(derivedTerm);
+
+ // check that an empty particle can not be derived from a non-empty particle
+ if (derivedParticle && baseParticle) {
+ if (XsdSchemaHelper::isParticleEmptiable(derivedParticle) && !XsdSchemaHelper::isParticleEmptiable(baseParticle)) {
+ errorMsg = QtXmlPatterns::tr("empty particle cannot be derived from non-empty particle");
+ return false;
+ }
+ }
+
+ if (baseTerm->isElement()) {
+ const XsdElement::Ptr element(baseTerm);
+
+ if (derivedTerm->isElement()) {
+ // if both terms are elements
+
+ const XsdElement::Ptr derivedElement(derivedTerm);
+
+ // check names are equal
+ if (element->name(namePool) != derivedElement->name(namePool)) {
+ errorMsg = QtXmlPatterns::tr("derived particle is missing element %1").arg(formatKeyword(element->displayName(namePool)));
+ return false;
+ }
+
+ // check value constraints are equal (if available)
+ if (element->valueConstraint() && element->valueConstraint()->variety() == XsdElement::ValueConstraint::Fixed) {
+ if (!derivedElement->valueConstraint()) {
+ errorMsg = QtXmlPatterns::tr("derived element %1 is missing value constraint as defined in base particle").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+
+ if (derivedElement->valueConstraint()->variety() != XsdElement::ValueConstraint::Fixed) {
+ errorMsg = QtXmlPatterns::tr("derived element %1 has weaker value constraint than base particle").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+
+ const QSourceLocation dummyLocation(QUrl(QLatin1String("http://dummy.org")), 1, 1);
+ const XsdTypeChecker checker(context, QVector<QXmlName>(), dummyLocation);
+ if (!checker.valuesAreEqual(element->valueConstraint()->value(), derivedElement->valueConstraint()->value(), derivedElement->type())) {
+ errorMsg = QtXmlPatterns::tr("fixed value constraint of element %1 differs from value constraint in base particle").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+ }
+
+ // check that a derived element can not be nillable if the base element is not nillable
+ if (!element->isNillable() && derivedElement->isNillable()) {
+ errorMsg = QtXmlPatterns::tr("derived element %1 cannot be nillable as base element is not nillable").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+
+ // check that the constraints of the derived element are more strict then the constraints of the base element
+ const XsdElement::BlockingConstraints baseConstraints = element->disallowedSubstitutions();
+ const XsdElement::BlockingConstraints derivedConstraints = derivedElement->disallowedSubstitutions();
+ if (((baseConstraints & XsdElement::RestrictionConstraint) && !(derivedConstraints & XsdElement::RestrictionConstraint)) ||
+ ((baseConstraints & XsdElement::ExtensionConstraint) && !(derivedConstraints & XsdElement::ExtensionConstraint)) ||
+ ((baseConstraints & XsdElement::SubstitutionConstraint) && !(derivedConstraints & XsdElement::SubstitutionConstraint))) {
+ errorMsg = QtXmlPatterns::tr("block constraints of derived element %1 must not be more weaker than in the base element").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+
+ // if the type of both elements is the same we can stop testing here
+ if (element->type()->name(namePool) == derivedElement->type()->name(namePool))
+ return true;
+
+ // check that the type of the derived element can validly derived from the type of the base element
+ if (derivedElement->type()->isSimpleType()) {
+ if (!XsdSchemaHelper::isSimpleDerivationOk(derivedElement->type(), element->type(), SchemaType::DerivationConstraints())) {
+ errorMsg = QtXmlPatterns::tr("simple type of derived element %1 cannot be validly derived from base element").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+ } else if (derivedElement->type()->isComplexType()) {
+ if (!XsdSchemaHelper::isComplexDerivationOk(derivedElement->type(), element->type(), SchemaType::DerivationConstraints())) {
+ errorMsg = QtXmlPatterns::tr("complex type of derived element %1 cannot be validly derived from base element").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+ }
+
+ // if both, derived and base element, have a complex type that contains a particle itself, apply the subsumes algorithm
+ // recursive on their particles
+ if (element->type()->isComplexType() && derivedElement->type()->isComplexType()) {
+ if (element->type()->isDefinedBySchema() && derivedElement->type()->isDefinedBySchema()) {
+ const XsdComplexType::Ptr baseType(element->type());
+ const XsdComplexType::Ptr derivedType(derivedElement->type());
+ if ((baseType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly ||
+ baseType->contentType()->variety() == XsdComplexType::ContentType::Mixed) &&
+ (derivedType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly ||
+ derivedType->contentType()->variety() == XsdComplexType::ContentType::Mixed)) {
+
+ return XsdParticleChecker::subsumes(baseType->contentType()->particle(), derivedType->contentType()->particle(), context, errorMsg);
+ }
+ }
+ }
+
+ return true;
+ } else if (derivedTerm->isWildcard()) {
+ // derive a wildcard from an element is not allowed
+ errorMsg = QtXmlPatterns::tr("element %1 is missing in derived particle").arg(formatKeyword(element->displayName(namePool)));
+ return false;
+ }
+ } else if (baseTerm->isWildcard()) {
+ const XsdWildcard::Ptr wildcard(baseTerm);
+
+ if (derivedTerm->isElement()) {
+ // the base term is a wildcard and derived term an element
+
+ const XsdElement::Ptr derivedElement(derivedTerm);
+
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ QXmlName name = derivedElement->name(namePool);
+ if (name.namespaceURI() == StandardNamespaces::empty)
+ name.setNamespaceURI(namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+
+ // check that name of the element is allowed by the wildcards namespace constraint
+ if (!XsdSchemaHelper::wildcardAllowsExpandedName(name, wildcard, namePool)) {
+ errorMsg = QtXmlPatterns::tr("element %1 does not match namespace constraint of wildcard in base particle").arg(formatKeyword(derivedElement->displayName(namePool)));
+ return false;
+ }
+
+ } else if (derivedTerm->isWildcard()) {
+ // both, derived and base term are wildcards
+
+ const XsdWildcard::Ptr derivedWildcard(derivedTerm);
+
+ // check that the derived wildcard is a valid subset of the base wildcard
+ if (!XsdSchemaHelper::isWildcardSubset(derivedWildcard, wildcard)) {
+ errorMsg = QtXmlPatterns::tr("wildcard in derived particle is not a valid subset of wildcard in base particle");
+ return false;
+ }
+
+ if (!XsdSchemaHelper::checkWildcardProcessContents(wildcard, derivedWildcard)) {
+ errorMsg = QtXmlPatterns::tr("processContent of wildcard in derived particle is weaker than wildcard in base particle");
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ return false;
+}
+
+typedef QHash<QXmlName, XsdElement::Ptr> ElementHash;
+
+/**
+ * Internal helper method that checks if the given @p particle contains an element with the
+ * same name and type twice.
+ */
+static bool hasDuplicatedElementsInternal(const XsdParticle::Ptr &particle, const NamePool::Ptr &namePool, ElementHash &hash, XsdElement::Ptr &conflictingElement)
+{
+ const XsdTerm::Ptr term = particle->term();
+ if (term->isElement()) {
+ const XsdElement::Ptr mainElement(term);
+ XsdElement::List substGroups = mainElement->substitutionGroups();
+ if (substGroups.isEmpty())
+ substGroups << mainElement;
+
+ for (int i = 0; i < substGroups.count(); ++i) {
+ const XsdElement::Ptr element = substGroups.at(i);
+ if (hash.contains(element->name(namePool))) {
+ if (element->type()->name(namePool) != hash.value(element->name(namePool))->type()->name(namePool)) {
+ conflictingElement = element;
+ return true;
+ }
+ } else {
+ hash.insert(element->name(namePool), element);
+ }
+ }
+ } else if (term->isModelGroup()) {
+ const XsdModelGroup::Ptr group(term);
+ const XsdParticle::List particles = group->particles();
+ for (int i = 0; i < particles.count(); ++i) {
+ if (hasDuplicatedElementsInternal(particles.at(i), namePool, hash, conflictingElement))
+ return true;
+ }
+ }
+
+ return false;
+}
+
+bool XsdParticleChecker::hasDuplicatedElements(const XsdParticle::Ptr &particle, const NamePool::Ptr &namePool, XsdElement::Ptr &conflictingElement)
+{
+ ElementHash hash;
+ return hasDuplicatedElementsInternal(particle, namePool, hash, conflictingElement);
+}
+
+bool XsdParticleChecker::isUPAConform(const XsdParticle::Ptr &particle, const NamePool::Ptr &namePool)
+{
+ /**
+ * The algorithm is implemented like described in http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html#S2.2
+ */
+
+ // create a state machine for the given particle
+ XsdStateMachine<XsdTerm::Ptr> stateMachine(namePool);
+
+ XsdStateMachineBuilder builder(&stateMachine, namePool);
+ const XsdStateMachine<XsdTerm::Ptr>::StateId endState = builder.reset();
+ const XsdStateMachine<XsdTerm::Ptr>::StateId startState = builder.buildParticle(particle, endState);
+ builder.addStartState(startState);
+
+/*
+ static int counter = 0;
+ {
+ QFile file(QString("/tmp/file_upa%1.dot").arg(counter));
+ file.open(QIODevice::WriteOnly);
+ stateMachine.outputGraph(&file, "Base");
+ file.close();
+ }
+ ::system(QString("dot -Tpng /tmp/file_upa%1.dot -o/tmp/file_upa%1.png").arg(counter).toLatin1().data());
+*/
+ const XsdStateMachine<XsdTerm::Ptr> dfa = stateMachine.toDFA();
+/*
+ {
+ QFile file(QString("/tmp/file_upa%1dfa.dot").arg(counter));
+ file.open(QIODevice::WriteOnly);
+ dfa.outputGraph(&file, "Base");
+ file.close();
+ }
+ ::system(QString("dot -Tpng /tmp/file_upa%1dfa.dot -o/tmp/file_upa%1dfa.png").arg(counter).toLatin1().data());
+*/
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> states = dfa.states();
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > > transitions = dfa.transitions();
+
+ // the basic idea of that algorithm is to iterate over all states of that machine and check that no two edges
+ // that match on the same term leave a state, so for a given term it should always be obvious which edge to take
+ QHashIterator<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> stateIt(states);
+ while (stateIt.hasNext()) { // iterate over all states
+ stateIt.next();
+
+ // fetch all transitions the current state allows
+ const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > currentTransitions = transitions.value(stateIt.key());
+ QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > transitionIt(currentTransitions);
+ while (transitionIt.hasNext()) { // iterate over all transitions
+ transitionIt.next();
+
+ if (transitionIt.value().size() > 1) {
+ // we have one state with two edges leaving it, that means
+ // the XsdTerm::Ptr exists twice, that is an error
+ return false;
+ }
+
+ QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > innerTransitionIt(currentTransitions);
+ while (innerTransitionIt.hasNext()) { // iterate over all transitions again, as we have to compare all transitions with all
+ innerTransitionIt.next();
+
+ if (transitionIt.key() == innerTransitionIt.key()) // do no compare with ourself
+ continue;
+
+ // use the helper method termMatches to check if both term matches
+ if (termMatches(transitionIt.key(), innerTransitionIt.key(), namePool))
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
+bool XsdParticleChecker::subsumes(const XsdParticle::Ptr &particle, const XsdParticle::Ptr &derivedParticle, const XsdSchemaContext::Ptr &context, QString &errorMsg)
+{
+ /**
+ * The algorithm is implemented like described in http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html#S2.3
+ */
+
+ const NamePool::Ptr namePool(context->namePool());
+
+ XsdStateMachine<XsdTerm::Ptr> baseStateMachine(namePool);
+ XsdStateMachine<XsdTerm::Ptr> derivedStateMachine(namePool);
+
+ // build up state machines for both particles
+ {
+ XsdStateMachineBuilder builder(&baseStateMachine, namePool);
+ const XsdStateMachine<XsdTerm::Ptr>::StateId endState = builder.reset();
+ const XsdStateMachine<XsdTerm::Ptr>::StateId startState = builder.buildParticle(particle, endState);
+ builder.addStartState(startState);
+
+ baseStateMachine = baseStateMachine.toDFA();
+ }
+ {
+ XsdStateMachineBuilder builder(&derivedStateMachine, namePool);
+ const XsdStateMachine<XsdTerm::Ptr>::StateId endState = builder.reset();
+ const XsdStateMachine<XsdTerm::Ptr>::StateId startState = builder.buildParticle(derivedParticle, endState);
+ builder.addStartState(startState);
+
+ derivedStateMachine = derivedStateMachine.toDFA();
+ }
+
+ QHash<XsdTerm::Ptr, XsdParticle::Ptr> particlesHash = XsdStateMachineBuilder::particleLookupMap(particle);
+ particlesHash.unite(XsdStateMachineBuilder::particleLookupMap(derivedParticle));
+
+/*
+ static int counter = 0;
+ {
+ QFile file(QString("/tmp/file_base%1.dot").arg(counter));
+ file.open(QIODevice::WriteOnly);
+ baseStateMachine.outputGraph(&file, QLatin1String("Base"));
+ file.close();
+ }
+ {
+ QFile file(QString("/tmp/file_derived%1.dot").arg(counter));
+ file.open(QIODevice::WriteOnly);
+ derivedStateMachine.outputGraph(&file, QLatin1String("Base"));
+ file.close();
+ }
+ ::system(QString("dot -Tpng /tmp/file_base%1.dot -o/tmp/file_base%1.png").arg(counter).toLatin1().data());
+ ::system(QString("dot -Tpng /tmp/file_derived%1.dot -o/tmp/file_derived%1.png").arg(counter).toLatin1().data());
+*/
+
+ const XsdStateMachine<XsdTerm::Ptr>::StateId baseStartState = baseStateMachine.startState();
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> baseStates = baseStateMachine.states();
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > > baseTransitions = baseStateMachine.transitions();
+
+ const XsdStateMachine<XsdTerm::Ptr>::StateId derivedStartState = derivedStateMachine.startState();
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> derivedStates = derivedStateMachine.states();
+ const QHash<XsdStateMachine<XsdTerm::Ptr>::StateId, QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > > derivedTransitions = derivedStateMachine.transitions();
+
+ // @see http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html#S2.3.1
+
+ // define working set
+ QList<QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> > workSet;
+ QList<QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> > processedSet;
+
+ // 1) fill working set initially with start states
+ workSet.append(qMakePair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId>(baseStartState, derivedStartState));
+ processedSet.append(qMakePair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId>(baseStartState, derivedStartState));
+
+ while (!workSet.isEmpty()) { // while there are state sets to process
+
+ // 3) dequeue on state set
+ const QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> set = workSet.takeFirst();
+
+ const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > derivedTrans = derivedTransitions.value(set.second);
+ QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > derivedIt(derivedTrans);
+
+ const QHash<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > baseTrans = baseTransitions.value(set.first);
+
+ while (derivedIt.hasNext()) {
+ derivedIt.next();
+
+ bool found = false;
+ QHashIterator<XsdTerm::Ptr, QVector<XsdStateMachine<XsdTerm::Ptr>::StateId> > baseIt(baseTrans);
+ while (baseIt.hasNext()) {
+ baseIt.next();
+ if (derivedTermValid(baseIt.key(), derivedIt.key(), particlesHash, context, errorMsg)) {
+ const QPair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId> endSet =
+ qMakePair<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateId>(baseIt.value().first(), derivedIt.value().first());
+ if (!processedSet.contains(endSet) && !workSet.contains(endSet)) {
+ workSet.append(endSet);
+ processedSet.append(endSet);
+ }
+
+ found = true;
+ }
+ }
+
+ if (!found) {
+ return false;
+ }
+ }
+ }
+
+ // 5)
+ QHashIterator<XsdStateMachine<XsdTerm::Ptr>::StateId, XsdStateMachine<XsdTerm::Ptr>::StateType> it(derivedStates);
+ while (it.hasNext()) {
+ it.next();
+
+ if (it.value() == XsdStateMachine<XsdTerm::Ptr>::EndState || it.value() == XsdStateMachine<XsdTerm::Ptr>::StartEndState) {
+ for (int i = 0; i < processedSet.count(); ++i) {
+ if (processedSet.at(i).second == it.key() &&
+ (baseStates.value(processedSet.at(i).first) != XsdStateMachine<XsdTerm::Ptr>::EndState &&
+ baseStates.value(processedSet.at(i).first) != XsdStateMachine<XsdTerm::Ptr>::StartEndState)) {
+ errorMsg = QtXmlPatterns::tr("derived particle allows content that is not allowed in the base particle");
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdparticlechecker_p.h b/src/xmlpatterns/schema/qxsdparticlechecker_p.h
new file mode 100644
index 0000000..739eca0
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdparticlechecker_p.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdParticleChecker_H
+#define Patternist_XsdParticleChecker_H
+
+#include "qxsdelement_p.h"
+#include "qxsdparticle_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdwildcard_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class to check validity of particles.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdParticleChecker
+ {
+ public:
+ /**
+ * Checks whether the given @p particle has two or more element
+ * declarations with the same name but different type definitions.
+ */
+ static bool hasDuplicatedElements(const XsdParticle::Ptr &particle, const NamePool::Ptr &namePool, XsdElement::Ptr &conflictingElement);
+
+ /**
+ * Checks whether the given @p particle is valid according the
+ * UPA (http://www.w3.org/TR/xmlschema-1/#cos-nonambig) constraint.
+ */
+ static bool isUPAConform(const XsdParticle::Ptr &particle, const NamePool::Ptr &namePool);
+
+ /**
+ * Checks whether the given @p particle subsumes the given @p derivedParticle.
+ * (http://www.w3.org/TR/xmlschema-1/#cos-particle-restrict)
+ */
+ static bool subsumes(const XsdParticle::Ptr &particle, const XsdParticle::Ptr &derivedParticle, const XsdSchemaContext::Ptr &context, QString &errorMsg);
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdreference.cpp b/src/xmlpatterns/schema/qxsdreference.cpp
new file mode 100644
index 0000000..e7fc409
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdreference.cpp
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdreference_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+bool XsdReference::isReference() const
+{
+ return true;
+}
+
+void XsdReference::setType(Type type)
+{
+ m_type = type;
+}
+
+XsdReference::Type XsdReference::type() const
+{
+ return m_type;
+}
+
+void XsdReference::setReferenceName(const QXmlName &referenceName)
+{
+ m_referenceName = referenceName;
+}
+
+QXmlName XsdReference::referenceName() const
+{
+ return m_referenceName;
+}
+
+void XsdReference::setSourceLocation(const QSourceLocation &location)
+{
+ m_sourceLocation = location;
+}
+
+QSourceLocation XsdReference::sourceLocation() const
+{
+ return m_sourceLocation;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdreference_p.h b/src/xmlpatterns/schema/qxsdreference_p.h
new file mode 100644
index 0000000..d6a1693
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdreference_p.h
@@ -0,0 +1,145 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdReference_H
+#define Patternist_XsdReference_H
+
+#include "qxsdterm_p.h"
+
+#include <QtXmlPatterns/QSourceLocation>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class for element and group reference resolving.
+ *
+ * For easy resolving of element and group references, we have this class
+ * that can be used as a place holder for the real element or group
+ * object it is referring to.
+ * So whenever the parser detects an element or group reference, it creates
+ * a XsdReference and returns it instead of the XsdElement or XsdModelGroup.
+ * During a later phase, the resolver will look for all XsdReferences
+ * in the schema and will replace them with their referring XsdElement or
+ * XsdModelGroup objects.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdReference : public XsdTerm
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdReference> Ptr;
+
+ /**
+ * Describes the type of the reference.
+ */
+ enum Type
+ {
+ Element, ///< The reference points to an element.
+ ModelGroup ///< The reference points to a model group.
+ };
+
+ /**
+ * Returns always @c true, used to avoid dynamic casts.
+ */
+ virtual bool isReference() const;
+
+ /**
+ * Sets the @p type of the reference.
+ *
+ * @see Type
+ */
+ void setType(Type type);
+
+ /**
+ * Returns the type of the reference.
+ */
+ Type type() const;
+
+ /**
+ * Sets the @p name of the referenced object.
+ *
+ * The name can either be a top-level element declaration
+ * or a top-level group declaration.
+ */
+ void setReferenceName(const QXmlName &ame);
+
+ /**
+ * Returns the name of the referenced object.
+ */
+ QXmlName referenceName() const;
+
+ /**
+ * Sets the source @p location where the reference is located.
+ */
+ void setSourceLocation(const QSourceLocation &location);
+
+ /**
+ * Returns the source location where the reference is located.
+ */
+ QSourceLocation sourceLocation() const;
+
+ private:
+ Type m_type;
+ QXmlName m_referenceName;
+ QSourceLocation m_sourceLocation;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschema.cpp b/src/xmlpatterns/schema/qxsdschema.cpp
new file mode 100644
index 0000000..b9b9e99
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschema.cpp
@@ -0,0 +1,272 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschema_p.h"
+
+#include <QtCore/QReadLocker>
+#include <QtCore/QWriteLocker>
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchema::XsdSchema(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+{
+}
+
+XsdSchema::~XsdSchema()
+{
+}
+
+NamePool::Ptr XsdSchema::namePool() const
+{
+ return m_namePool;
+}
+
+void XsdSchema::setTargetNamespace(const QString &targetNamespace)
+{
+ m_targetNamespace = targetNamespace;
+}
+
+QString XsdSchema::targetNamespace() const
+{
+ return m_targetNamespace;
+}
+
+void XsdSchema::addElement(const XsdElement::Ptr &element)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_elements.insert(element->name(m_namePool), element);
+}
+
+XsdElement::Ptr XsdSchema::element(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_elements.value(name);
+}
+
+XsdElement::List XsdSchema::elements() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_elements.values();
+}
+
+void XsdSchema::addAttribute(const XsdAttribute::Ptr &attribute)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_attributes.insert(attribute->name(m_namePool), attribute);
+}
+
+XsdAttribute::Ptr XsdSchema::attribute(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_attributes.value(name);
+}
+
+XsdAttribute::List XsdSchema::attributes() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_attributes.values();
+}
+
+void XsdSchema::addType(const SchemaType::Ptr &type)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_types.insert(type->name(m_namePool), type);
+}
+
+SchemaType::Ptr XsdSchema::type(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_types.value(name);
+}
+
+SchemaType::List XsdSchema::types() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_types.values();
+}
+
+XsdSimpleType::List XsdSchema::simpleTypes() const
+{
+ QReadLocker locker(&m_lock);
+
+ XsdSimpleType::List retval;
+
+ const SchemaType::List types = m_types.values();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isSimpleType() && types.at(i)->isDefinedBySchema())
+ retval.append(types.at(i));
+ }
+
+ return retval;
+}
+
+XsdComplexType::List XsdSchema::complexTypes() const
+{
+ QReadLocker locker(&m_lock);
+
+ XsdComplexType::List retval;
+
+ const SchemaType::List types = m_types.values();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isComplexType() && types.at(i)->isDefinedBySchema())
+ retval.append(types.at(i));
+ }
+
+ return retval;
+}
+
+void XsdSchema::addAnonymousType(const SchemaType::Ptr &type)
+{
+ const QWriteLocker locker(&m_lock);
+
+ // search for not used anonymous type name
+ QXmlName typeName = type->name(m_namePool);
+ while (m_anonymousTypes.contains(typeName)) {
+ typeName = m_namePool->allocateQName(QString(), QLatin1String("merged_") + m_namePool->stringForLocalName(typeName.localName()), QString());
+ }
+
+ m_anonymousTypes.insert(typeName, type);
+}
+
+SchemaType::List XsdSchema::anonymousTypes() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_anonymousTypes.values();
+}
+
+void XsdSchema::addAttributeGroup(const XsdAttributeGroup::Ptr &group)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_attributeGroups.insert(group->name(m_namePool), group);
+}
+
+XsdAttributeGroup::Ptr XsdSchema::attributeGroup(const QXmlName name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_attributeGroups.value(name);
+}
+
+XsdAttributeGroup::List XsdSchema::attributeGroups() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_attributeGroups.values();
+}
+
+void XsdSchema::addElementGroup(const XsdModelGroup::Ptr &group)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_elementGroups.insert(group->name(m_namePool), group);
+}
+
+XsdModelGroup::Ptr XsdSchema::elementGroup(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_elementGroups.value(name);
+}
+
+XsdModelGroup::List XsdSchema::elementGroups() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_elementGroups.values();
+}
+
+void XsdSchema::addNotation(const XsdNotation::Ptr &notation)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_notations.insert(notation->name(m_namePool), notation);
+}
+
+XsdNotation::Ptr XsdSchema::notation(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_notations.value(name);
+}
+
+XsdNotation::List XsdSchema::notations() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_notations.values();
+}
+
+void XsdSchema::addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint)
+{
+ const QWriteLocker locker(&m_lock);
+
+ m_identityConstraints.insert(constraint->name(m_namePool), constraint);
+}
+
+XsdIdentityConstraint::Ptr XsdSchema::identityConstraint(const QXmlName &name) const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_identityConstraints.value(name);
+}
+
+XsdIdentityConstraint::List XsdSchema::identityConstraints() const
+{
+ const QReadLocker locker(&m_lock);
+
+ return m_identityConstraints.values();
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschema_p.h b/src/xmlpatterns/schema/qxsdschema_p.h
new file mode 100644
index 0000000..9954f56
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschema_p.h
@@ -0,0 +1,301 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchema_H
+#define Patternist_XsdSchema_H
+
+#include "qschematype_p.h"
+#include "qxsdannotated_p.h"
+#include "qxsdattribute_p.h"
+#include "qxsdattributegroup_p.h"
+#include "qxsdcomplextype_p.h"
+#include "qxsdelement_p.h"
+#include "qxsdidentityconstraint_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdnotation_p.h"
+#include "qxsdsimpletype_p.h"
+
+#include <QtCore/QHash>
+#include <QtCore/QReadWriteLock>
+
+/**
+ * @defgroup Patternist_schema XML Schema Processing
+ */
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD schema object.
+ *
+ * The class provides access to all components of a parsed XSD.
+ *
+ * @note In the documentation of this class objects, which are direct
+ * children of the <em>schema</em> object, are called top-level objects.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSModel">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchema : public QSharedData, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdSchema> Ptr;
+ typedef QList<XsdSchema::Ptr> List;
+
+ /**
+ * Creates a new schema object.
+ *
+ * @param namePool The namepool that should be used for names of
+ * all schema components.
+ */
+ XsdSchema(const NamePool::Ptr &namePool);
+
+ /**
+ * Destroys the schema object.
+ */
+ ~XsdSchema();
+
+ /**
+ * Returns the namepool that is used for names of
+ * all schema components.
+ */
+ NamePool::Ptr namePool() const;
+
+ /**
+ * Sets the @p targetNamespace of the schema.
+ */
+ void setTargetNamespace(const QString &targetNamespace);
+
+ /**
+ * Returns the target namespace of the schema.
+ */
+ QString targetNamespace() const;
+
+ /**
+ * Adds a new top-level @p element to the schema.
+ *
+ * @param element The new element.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-element">Element Declaration</a>
+ */
+ void addElement(const XsdElement::Ptr &element);
+
+ /**
+ * Returns the top-level element of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ XsdElement::Ptr element(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all top-level elements.
+ */
+ XsdElement::List elements() const;
+
+ /**
+ * Adds a new top-level @p attribute to the schema.
+ *
+ * @param attribute The new attribute.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-attribute">Attribute Declaration</a>
+ */
+ void addAttribute(const XsdAttribute::Ptr &attribute);
+
+ /**
+ * Returns the top-level attribute of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ XsdAttribute::Ptr attribute(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all top-level attributes.
+ */
+ XsdAttribute::List attributes() const;
+
+ /**
+ * Adds a new top-level @p type to the schema.
+ * That can be a simple or a complex type.
+ *
+ * @param type The new type.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-datatype">Simple Type Declaration</a>
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-type">Complex Type Declaration</a>
+ */
+ void addType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the top-level type of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ SchemaType::Ptr type(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all top-level types.
+ */
+ SchemaType::List types() const;
+
+ /**
+ * Returns the list of all top-level simple types.
+ */
+ XsdSimpleType::List simpleTypes() const;
+
+ /**
+ * Returns the list of all top-level complex types.
+ */
+ XsdComplexType::List complexTypes() const;
+
+ /**
+ * Adds an anonymous @p type to the schema.
+ * Anonymous types have no name and are declared
+ * locally inside an element object.
+ *
+ * @param type The new anonymous type.
+ */
+ void addAnonymousType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the list of all anonymous types.
+ */
+ SchemaType::List anonymousTypes() const;
+
+ /**
+ * Adds a new top-level attribute @p group to the schema.
+ *
+ * @param group The new attribute group.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-attributeGroup">Attribute Group Declaration</a>
+ */
+ void addAttributeGroup(const XsdAttributeGroup::Ptr &group);
+
+ /**
+ * Returns the top-level attribute group of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ XsdAttributeGroup::Ptr attributeGroup(const QXmlName name) const;
+
+ /**
+ * Returns the list of all top-level attribute groups.
+ */
+ XsdAttributeGroup::List attributeGroups() const;
+
+ /**
+ * Adds a new top-level element @p group to the schema.
+ *
+ * @param group The new element group.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-namedModelGroup">Element Group Declaration</a>
+ */
+ void addElementGroup(const XsdModelGroup::Ptr &group);
+
+ /**
+ * Returns the top-level element group of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ XsdModelGroup::Ptr elementGroup(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all top-level element groups.
+ */
+ XsdModelGroup::List elementGroups() const;
+
+ /**
+ * Adds a new top-level @p notation to the schema.
+ *
+ * @param notation The new notation.
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#declare-notation">Notation Declaration</a>
+ */
+ void addNotation(const XsdNotation::Ptr &notation);
+
+ /**
+ * Returns the top-level notation of the schema with
+ * the given @p name or an empty pointer if none exist.
+ */
+ XsdNotation::Ptr notation(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all top-level notations.
+ */
+ XsdNotation::List notations() const;
+
+ /**
+ * Adds a new identity @p constraint to the schema.
+ */
+ void addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint);
+
+ /**
+ * Returns the identity constraint with the given @p name
+ * or an empty pointer if none exist.
+ */
+ XsdIdentityConstraint::Ptr identityConstraint(const QXmlName &name) const;
+
+ /**
+ * Returns the list of all identity constraints in this schema.
+ */
+ XsdIdentityConstraint::List identityConstraints() const;
+
+ private:
+ NamePool::Ptr m_namePool;
+ QString m_targetNamespace;
+ QHash<QXmlName, XsdElement::Ptr> m_elements;
+ QHash<QXmlName, XsdAttribute::Ptr> m_attributes;
+ QHash<QXmlName, SchemaType::Ptr> m_types;
+ QHash<QXmlName, SchemaType::Ptr> m_anonymousTypes;
+ QHash<QXmlName, XsdAttributeGroup::Ptr> m_attributeGroups;
+ QHash<QXmlName, XsdModelGroup::Ptr> m_elementGroups;
+ QHash<QXmlName, XsdNotation::Ptr> m_notations;
+ QHash<QXmlName, XsdIdentityConstraint::Ptr> m_identityConstraints;
+ mutable QReadWriteLock m_lock;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemachecker.cpp b/src/xmlpatterns/schema/qxsdschemachecker.cpp
new file mode 100644
index 0000000..42cfff6
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemachecker.cpp
@@ -0,0 +1,2061 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemachecker_p.h"
+
+#include "qderivedinteger_p.h"
+#include "qderivedstring_p.h"
+#include "qpatternplatform_p.h"
+#include "qqnamevalue_p.h"
+#include "qsourcelocationreflection_p.h"
+#include "qvaluefactory_p.h"
+#include "qxsdattributereference_p.h"
+#include "qxsdparticlechecker_p.h"
+#include "qxsdreference_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdschemahelper_p.h"
+#include "qxsdschemaparsercontext_p.h"
+#include "qxsdschematypesfactory_p.h"
+#include "qxsdtypechecker_p.h"
+
+#include "qxsdschemachecker_helper.cpp"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaChecker::XsdSchemaChecker(const QExplicitlySharedDataPointer<XsdSchemaContext> &context, const XsdSchemaParserContext *parserContext)
+ : m_context(context)
+ , m_namePool(parserContext->namePool())
+ , m_schema(parserContext->schema())
+{
+ setupAllowedAtomicFacets();
+}
+
+XsdSchemaChecker::~XsdSchemaChecker()
+{
+}
+
+/*
+ * This method is called after the resolver has set the base type for every
+ * type and information about deriavtion and 'is simple type vs. is complex type'
+ * are available.
+ */
+void XsdSchemaChecker::basicCheck()
+{
+ // first check that there is no circular inheritance, only the
+ // wxsSuperType is used here
+ checkBasicCircularInheritances();
+
+ // check the basic constraints like simple type can not inherit from complex type etc.
+ checkBasicSimpleTypeConstraints();
+ checkBasicComplexTypeConstraints();
+}
+
+void XsdSchemaChecker::check()
+{
+ checkCircularInheritances();
+ checkInheritanceRestrictions();
+ checkSimpleDerivationRestrictions();
+ checkSimpleTypeConstraints();
+ checkComplexTypeConstraints();
+ checkDuplicatedAttributeUses();
+
+ checkElementConstraints();
+ checkAttributeConstraints();
+ checkAttributeUseConstraints();
+// checkElementDuplicates();
+}
+
+void XsdSchemaChecker::addComponentLocationHash(const ComponentLocationHash &hash)
+{
+ m_componentLocationHash.unite(hash);
+}
+
+/**
+ * Checks whether the @p otherType is the same as @p myType or if one of its
+ * ancestors is the same as @p myType.
+ */
+static bool matchesType(const SchemaType::Ptr &myType, const SchemaType::Ptr &otherType, QSet<SchemaType::Ptr> visitedTypes)
+{
+ bool retval = false;
+
+ if (otherType) {
+ if (visitedTypes.contains(otherType)) {
+ return true;
+ } else {
+ visitedTypes.insert(otherType);
+ }
+ // simple types can have different varieties, so we have to check each of them
+ if (otherType->isSimpleType()) {
+ const XsdSimpleType::Ptr simpleType = otherType;
+ if (simpleType->category() == XsdSimpleType::SimpleTypeAtomic) {
+ // for atomic type we use the same test as in SchemaType::wxsTypeMatches
+ retval = (myType == simpleType ? true : matchesType(myType, simpleType->wxsSuperType(), visitedTypes));
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeList) {
+ // for list type we test against the itemType property
+ retval = (myType == simpleType->itemType() ? true : matchesType(myType, simpleType->itemType()->wxsSuperType(), visitedTypes));
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ // for union type we test against each member type
+ const XsdSimpleType::List members = simpleType->memberTypes();
+ for (int i = 0; i < members.count(); ++i) {
+ if (myType == members.at(i) ? true : matchesType(myType, members.at(i)->wxsSuperType(), visitedTypes)) {
+ retval = true;
+ break;
+ }
+ }
+ } else {
+ // reached xsAnySimple type whichs category is None
+ retval = false;
+ }
+ } else {
+ // if no simple type we handle it like in SchemaType::wxsTypeMatches
+ retval = (myType == otherType ? true : matchesType(myType, otherType->wxsSuperType(), visitedTypes));
+ }
+ } else // if otherType is null it doesn't match
+ retval = false;
+
+ return retval;
+}
+
+/**
+ * Checks whether there is a circular inheritance for the union inheritance.
+ */
+static bool hasCircularUnionInheritance(const XsdSimpleType::Ptr &type, const SchemaType::Ptr &otherType, NamePool::Ptr &namePool)
+{
+ if (type == otherType) {
+ return true;
+ }
+
+ if (!otherType->isSimpleType() || !otherType->isDefinedBySchema()) {
+ return false;
+ }
+
+ const XsdSimpleType::Ptr simpleOtherType = otherType;
+
+ if (simpleOtherType->category() == XsdSimpleType::SimpleTypeUnion) {
+ const XsdSimpleType::List memberTypes = simpleOtherType->memberTypes();
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ if (otherType->wxsSuperType() == type) {
+ return true;
+ }
+ if (hasCircularUnionInheritance(type, memberTypes.at(i), namePool)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+static inline bool wxsTypeMatches(const SchemaType::Ptr &type, const SchemaType::Ptr &otherType, QSet<SchemaType::Ptr> &visitedTypes, SchemaType::Ptr &conflictingType)
+{
+ if (!otherType)
+ return false;
+
+ if (visitedTypes.contains(otherType)) { // inheritance loop detected
+ conflictingType = otherType;
+ return true;
+ } else {
+ visitedTypes.insert(otherType);
+ }
+
+ if (type == otherType)
+ return true;
+
+ return wxsTypeMatches(type, otherType->wxsSuperType(), visitedTypes, conflictingType);
+}
+
+void XsdSchemaChecker::checkBasicCircularInheritances()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+ const QSourceLocation location = sourceLocationForType(type);
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 3)
+
+ // check normal base type inheritance
+ QSet<SchemaType::Ptr> visitedTypes;
+ SchemaType::Ptr conflictingType;
+
+ if (wxsTypeMatches(type, type->wxsSuperType(), visitedTypes, conflictingType)) {
+ if (conflictingType)
+ m_context->error(QtXmlPatterns::tr("%1 has inheritance loop in its base type %2")
+ .arg(formatType(m_namePool, type))
+ .arg(formatType(m_namePool, conflictingType)),
+ XsdSchemaContext::XSDError, location);
+ else
+ m_context->error(QtXmlPatterns::tr("circular inheritance of base type %1").arg(formatType(m_namePool, type)), XsdSchemaContext::XSDError, location);
+
+ return;
+ }
+ }
+}
+
+void XsdSchemaChecker::checkCircularInheritances()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+ const QSourceLocation location = sourceLocationForType(type);
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 3)
+
+ // check normal base type inheritance
+ QSet<SchemaType::Ptr> visitedTypes;
+ if (matchesType(type, type->wxsSuperType(), visitedTypes)) {
+ m_context->error(QtXmlPatterns::tr("circular inheritance of base type %1").arg(formatType(m_namePool, type)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // check union member inheritance
+ if (type->isSimpleType() && type->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleType = type;
+ if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ const XsdSimpleType::List memberTypes = simpleType->memberTypes();
+ for (int j = 0; j < memberTypes.count(); ++j) {
+ if (hasCircularUnionInheritance(simpleType, memberTypes.at(j), m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("circular inheritance of union %1").arg(formatType(m_namePool, type)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkInheritanceRestrictions()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+ const QSourceLocation location = sourceLocationForType(type);
+
+ // check inheritance restrictions given by final property of base class
+ const SchemaType::Ptr baseType = type->wxsSuperType();
+ if (baseType->isDefinedBySchema()) {
+ if ((type->derivationMethod() == SchemaType::DerivationRestriction) && (baseType->derivationConstraints() & SchemaType::RestrictionConstraint)) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by restriction as the latter defines it as final")
+ .arg(formatType(m_namePool, type))
+ .arg(formatType(m_namePool, baseType)), XsdSchemaContext::XSDError, location);
+ return;
+ } else if ((type->derivationMethod() == SchemaType::DerivationExtension) && (baseType->derivationConstraints() & SchemaType::ExtensionConstraint)) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by extension as the latter defines it as final")
+ .arg(formatType(m_namePool, type))
+ .arg(formatType(m_namePool, baseType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkBasicSimpleTypeConstraints()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (!type->isSimpleType())
+ continue;
+
+ const XsdSimpleType::Ptr simpleType = type;
+
+ const QSourceLocation location = sourceLocation(simpleType);
+
+ // check inheritance restrictions of simple type defined by schema constraints
+ const SchemaType::Ptr baseType = simpleType->wxsSuperType();
+
+ if (baseType->isComplexType() && (simpleType->name(m_namePool) != BuiltinTypes::xsAnySimpleType->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("base type of simple type %1 cannot be complex type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, baseType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (baseType == BuiltinTypes::xsAnyType) {
+ if (type->name(m_namePool) != BuiltinTypes::xsAnySimpleType->name(m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 cannot have direct base type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, BuiltinTypes::xsAnyType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkSimpleTypeConstraints()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (!type->isSimpleType())
+ continue;
+
+ const XsdSimpleType::Ptr simpleType = type;
+
+ const QSourceLocation location = sourceLocation(simpleType);
+
+ if (simpleType->category() == XsdSimpleType::None) {
+ // additional checks
+ // check that no user defined type has xs:AnySimpleType as base type (except xs:AnyAtomicType)
+ if (simpleType->wxsSuperType()->name(m_namePool) == BuiltinTypes::xsAnySimpleType->name(m_namePool)) {
+ if (simpleType->name(m_namePool) != BuiltinTypes::xsAnyAtomicType->name(m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 is not allowed to have base type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleType->wxsSuperType())),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ // check that no user defined type has xs:AnyAtomicType as base type
+ if (simpleType->wxsSuperType()->name(m_namePool) == BuiltinTypes::xsAnyAtomicType->name(m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 is not allowed to have base type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleType->wxsSuperType())),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e37310
+ if (simpleType->category() == XsdSimpleType::SimpleTypeAtomic) {
+ // 1.1
+ if ((simpleType->wxsSuperType()->category() != XsdSimpleType::SimpleTypeAtomic) && (simpleType->name(m_namePool) != BuiltinTypes::xsAnyAtomicType->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 can only have simple atomic type as base type")
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ }
+ // 1.2
+ if (simpleType->wxsSuperType()->derivationConstraints() & SchemaType::RestrictionConstraint) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 cannot derive from %2 as the latter defines restriction as final")
+ .arg(formatType(m_namePool, simpleType->wxsSuperType()))
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ }
+
+ // 1.3
+ // checked by checkConstrainingFacets already
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeList) {
+ const AnySimpleType::Ptr itemType = simpleType->itemType();
+
+ // 2.1 or @see http://www.w3.org/TR/xmlschema-2/#cos-list-of-atomic
+ if (itemType->category() != SchemaType::SimpleTypeAtomic && itemType->category() != SchemaType::SimpleTypeUnion) {
+ m_context->error(QtXmlPatterns::tr("variety of item type of %1 must be either atomic or union").arg(formatType(m_namePool, simpleType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.1 second part
+ if (itemType->category() == SchemaType::SimpleTypeUnion && itemType->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleItemType = itemType;
+ const AnySimpleType::List memberTypes = simpleItemType->memberTypes();
+ for (int j = 0; j < memberTypes.count(); ++j) {
+ if (memberTypes.at(j)->category() != SchemaType::SimpleTypeAtomic) {
+ m_context->error(QtXmlPatterns::tr("variety of member types of %1 must be atomic").arg(formatType(m_namePool, simpleItemType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+
+ // 2.2.1
+ if (simpleType->wxsSuperType()->name(m_namePool) == BuiltinTypes::xsAnySimpleType->name(m_namePool)) {
+ if (itemType->isSimpleType() && itemType->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleItemType = itemType;
+
+ // 2.2.1.1
+ if (simpleItemType->derivationConstraints() & XsdSimpleType::ListConstraint) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by list as the latter defines it as final")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleItemType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2.1.2
+ const XsdFacet::Hash facets = simpleType->facets();
+ XsdFacet::HashIterator it(facets);
+
+ bool invalidFacetFound = false;
+ while (it.hasNext()) {
+ it.next();
+ if (it.key() != XsdFacet::WhiteSpace) {
+ invalidFacetFound = true;
+ break;
+ }
+ }
+
+ if (invalidFacetFound) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 is only allowed to have %2 facet")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatKeyword("whiteSpace")),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ } else { // 2.2.2
+ // 2.2.2.1
+ if (simpleType->wxsSuperType()->category() != XsdSimpleType::SimpleTypeList) {
+ m_context->error(QtXmlPatterns::tr("base type of simple type %1 must have variety of type list").arg(formatType(m_namePool, simpleType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2.2.2
+ if (simpleType->wxsSuperType()->derivationConstraints() & SchemaType::RestrictionConstraint) {
+ m_context->error(QtXmlPatterns::tr("base type of simple type %1 has defined derivation by restriction as final").arg(formatType(m_namePool, simpleType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2.2.3
+ if (!XsdSchemaHelper::isSimpleDerivationOk(itemType, XsdSimpleType::Ptr(simpleType->wxsSuperType())->itemType(), SchemaType::DerivationConstraints())) {
+ m_context->error(QtXmlPatterns::tr("item type of base type does not match item type of %1").arg(formatType(m_namePool, simpleType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2.2.4
+ const XsdFacet::Hash facets = simpleType->facets();
+ XsdFacet::HashIterator it(facets);
+
+ bool invalidFacetFound = false;
+ XsdFacet::Type invalidFacetType = XsdFacet::None;
+ while (it.hasNext()) {
+ it.next();
+ const XsdFacet::Type facetType = it.key();
+ if (facetType != XsdFacet::Length &&
+ facetType != XsdFacet::MinimumLength &&
+ facetType != XsdFacet::MaximumLength &&
+ facetType != XsdFacet::WhiteSpace &&
+ facetType != XsdFacet::Pattern &&
+ facetType != XsdFacet::Enumeration) {
+ invalidFacetType = facetType;
+ invalidFacetFound = true;
+ break;
+ }
+ }
+
+ if (invalidFacetFound) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 contains not allowed facet type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatKeyword(XsdFacet::typeName(invalidFacetType))),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2.2.5
+ // TODO: check value constraints
+ }
+
+
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ const AnySimpleType::List memberTypes = simpleType->memberTypes();
+
+ if (simpleType->wxsSuperType()->name(m_namePool) == BuiltinTypes::xsAnySimpleType->name(m_namePool)) { // 3.1.1
+ // 3.3.1.1
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ const AnySimpleType::Ptr memberType = memberTypes.at(i);
+
+ if (memberType->derivationConstraints() & XsdSimpleType::UnionConstraint) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by union as the latter defines it as final")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, memberType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+
+ // 3.3.1.2
+ if (!simpleType->facets().isEmpty()) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to have any facets")
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ } else {
+ // 3.1.2.1
+ if (simpleType->wxsSuperType()->category() != SchemaType::SimpleTypeUnion) {
+ m_context->error(QtXmlPatterns::tr("base type %1 of simple type %2 must have variety of union")
+ .arg(formatType(m_namePool, simpleType->wxsSuperType()))
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 3.1.2.2
+ if (simpleType->wxsSuperType()->derivationConstraints() & SchemaType::DerivationRestriction) {
+ m_context->error(QtXmlPatterns::tr("base type %1 of simple type %2 is not allowed to have restriction in %3 attribute")
+ .arg(formatType(m_namePool, simpleType->wxsSuperType()))
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatAttribute("final")),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ //3.1.2.3
+ if (simpleType->wxsSuperType()->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleBaseType(simpleType->wxsSuperType());
+
+ AnySimpleType::List baseMemberTypes = simpleBaseType->memberTypes();
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ const AnySimpleType::Ptr memberType = memberTypes.at(i);
+ const AnySimpleType::Ptr baseMemberType = baseMemberTypes.at(i);
+
+ if (!XsdSchemaHelper::isSimpleDerivationOk(memberType, baseMemberType, SchemaType::DerivationConstraints())) {
+ m_context->error(QtXmlPatterns::tr("member type %1 cannot be derived from member type %2 of %3's base type %4")
+ .arg(formatType(m_namePool, memberType))
+ .arg(formatType(m_namePool, baseMemberType))
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleBaseType)),
+ XsdSchemaContext::XSDError, location);
+ }
+ }
+ }
+
+ // 3.1.2.4
+ const XsdFacet::Hash facets = simpleType->facets();
+ XsdFacet::HashIterator it(facets);
+
+ bool invalidFacetFound = false;
+ XsdFacet::Type invalidFacetType = XsdFacet::None;
+ while (it.hasNext()) {
+ it.next();
+ const XsdFacet::Type facetType = it.key();
+ if (facetType != XsdFacet::Pattern &&
+ facetType != XsdFacet::Enumeration) {
+ invalidFacetType = facetType;
+ invalidFacetFound = true;
+ break;
+ }
+ }
+
+ if (invalidFacetFound) {
+ m_context->error(QtXmlPatterns::tr("simple type %1 contains not allowed facet type %2")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatKeyword(XsdFacet::typeName(invalidFacetType))),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 3.1.2.5
+ // TODO: check value constraints
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkBasicComplexTypeConstraints()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (!type->isComplexType() || !type->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = type;
+
+ const QSourceLocation location = sourceLocation(complexType);
+
+ // check inheritance restrictions of complex type defined by schema constraints
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 2)
+ if (baseType->isSimpleType() && (complexType->derivationMethod() != XsdComplexType::DerivationExtension)) {
+ m_context->error(QtXmlPatterns::tr("derivation method of %1 must be extension because the base type %2 is a simple type")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+}
+
+void XsdSchemaChecker::checkComplexTypeConstraints()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (!type->isComplexType() || !type->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = type;
+
+ const QSourceLocation location = sourceLocation(complexType);
+
+ if (complexType->contentType()->particle()) {
+ XsdElement::Ptr duplicatedElement;
+ if (XsdParticleChecker::hasDuplicatedElements(complexType->contentType()->particle(), m_namePool, duplicatedElement)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 has duplicated element %2 in its content model")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatKeyword(duplicatedElement->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (!XsdParticleChecker::isUPAConform(complexType->contentType()->particle(), m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 has non-deterministic content")
+ .arg(formatType(m_namePool, complexType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+
+ // check inheritance restrictions of complex type defined by schema constraints
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-ct-extends
+ if (complexType->derivationMethod() == XsdComplexType::DerivationExtension) {
+ if (baseType->isComplexType() && baseType->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexBaseType = baseType;
+
+ // we can skip 1.1 here, as it is tested in checkInheritanceRestrictions() already
+
+ // 1.2 and 1.3
+ QString errorMsg;
+ if (!XsdSchemaHelper::isValidAttributeUsesExtension(complexType->attributeUses(), complexBaseType->attributeUses(),
+ complexType->attributeWildcard(), complexBaseType->attributeWildcard(), m_context, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 1.4
+ bool validContentType = false;
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple && complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (complexType->contentType()->simpleType() == complexBaseType->contentType()->simpleType()) {
+ validContentType = true; // 1.4.1
+ }
+ } else if (complexType->contentType()->variety() == XsdComplexType::ContentType::Empty && complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Empty) {
+ validContentType = true; // 1.4.2
+ } else { // 1.4.3
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly || complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed) { // 1.4.3.1
+ if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Empty) {
+ validContentType = true; // 1.4.3.2.1
+ } else { // 1.4.3.2.2
+ if (complexType->contentType()->particle()) { // our own check
+ if ((complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly && complexBaseType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly) ||
+ (complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed && complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed)) { // 1.4.3.2.2.1
+ if (isValidParticleExtension(complexType->contentType()->particle(), complexBaseType->contentType()->particle())) {
+ validContentType = true; // 1.4.3.2.2.2
+ }
+ }
+ }
+ // 1.4.3.2.2.3 and 1.4.3.2.2.4 handle 'open content' that we do not support yet
+ }
+ }
+ }
+
+ // 1.5 WTF?!?
+
+ if (!validContentType) {
+ m_context->error(QtXmlPatterns::tr("content model of complex type %1 is not a valid extension of content model of %2")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, complexBaseType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ } else if (baseType->isSimpleType()) {
+ // 2.1
+ if (complexType->contentType()->variety() != XsdComplexType::ContentType::Simple) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 must have simple content")
+ .arg(formatType(m_namePool, complexType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (complexType->contentType()->simpleType() != baseType) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 must have the same simple type as its base class %2")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // 2.2 tested in checkInheritanceRestrictions() already
+ }
+ } else if (complexType->derivationMethod() == XsdComplexType::DerivationRestriction) {
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e21402
+ const SchemaType::Ptr baseType(complexType->wxsSuperType());
+
+ bool derivationOk = false;
+ QString errorMsg;
+
+ // we can partly skip 1 here, as it is tested in checkInheritanceRestrictions() already
+ if (baseType->isComplexType()) {
+
+ // 2.1
+ if (baseType->name(m_namePool) == BuiltinTypes::xsAnyType->name(m_namePool)) {
+ derivationOk = true;
+ }
+
+ if (baseType->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexBaseType(baseType);
+
+ // 2.2.1
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ // 2.2.2.1
+ if (XsdSchemaHelper::isSimpleDerivationOk(complexType->contentType()->simpleType(), complexBaseType->contentType()->simpleType(), SchemaType::DerivationConstraints()))
+ derivationOk = true;
+
+ // 2.2.2.2
+ if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed) {
+ if (XsdSchemaHelper::isParticleEmptiable(complexBaseType->contentType()->particle()))
+ derivationOk = true;
+ }
+ }
+
+ // 2.3.1
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Empty) {
+ // 2.3.2.1
+ if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Empty)
+ derivationOk = true;
+
+ // 2.3.2.2
+ if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly || complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed) {
+ if (XsdSchemaHelper::isParticleEmptiable(complexBaseType->contentType()->particle()))
+ derivationOk = true;
+ }
+ }
+
+ // 2.4.1.1
+ if (((complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly) &&
+ (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly || complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed)) ||
+ // 2.4.1.2
+ (complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed && complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed)) {
+
+ // 2.4.2
+ if (XsdParticleChecker::subsumes(complexBaseType->contentType()->particle(), complexType->contentType()->particle(), m_context, errorMsg))
+ derivationOk = true;
+ }
+ }
+ }
+
+ if (!derivationOk) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 cannot be derived from base type %2%3")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType))
+ .arg(errorMsg.isEmpty() ? QString() : QLatin1String(": ") + errorMsg),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (baseType->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexBaseType(baseType);
+
+ QString errorMsg;
+ if (!XsdSchemaHelper::isValidAttributeUsesRestriction(complexType->attributeUses(), complexBaseType->attributeUses(),
+ complexType->attributeWildcard(), complexBaseType->attributeWildcard(), m_context, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+
+ // check that complex type with simple content is not allowed to inherit from
+ // built in complex type xs:AnyType
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (baseType->name(m_namePool) == BuiltinTypes::xsAnyType->name(m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 with simple content cannot be derived from complex base type %2")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkSimpleDerivationRestrictions()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (type->isComplexType())
+ continue;
+
+ if (type->category() != SchemaType::SimpleTypeList && type->category() != SchemaType::SimpleTypeUnion)
+ continue;
+
+ const XsdSimpleType::Ptr simpleType = type;
+ const QSourceLocation location = sourceLocation(simpleType);
+
+ // check all simple types derived by list
+ if (simpleType->category() == XsdSimpleType::SimpleTypeList) {
+ const AnySimpleType::Ptr itemType = simpleType->itemType();
+
+ if (itemType->isComplexType()) {
+ m_context->error(QtXmlPatterns::tr("item type of simple type %1 cannot be a complex type")
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+
+ if (itemType->isSimpleType() && itemType->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleItemType = itemType;
+ if (simpleItemType->derivationConstraints() & XsdSimpleType::ListConstraint) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by list as the latter defines it as final")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleItemType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#cos-list-of-atomic
+ if (itemType->category() != SchemaType::SimpleTypeAtomic && itemType->category() != SchemaType::SimpleTypeUnion) {
+ m_context->error(QtXmlPatterns::tr("variety of item type of %1 must be either atomic or union").arg(formatType(m_namePool, simpleType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (itemType->category() == SchemaType::SimpleTypeUnion && itemType->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleItemType = itemType;
+ const AnySimpleType::List memberTypes = simpleItemType->memberTypes();
+ for (int j = 0; j < memberTypes.count(); ++j) {
+ if (memberTypes.at(j)->category() != SchemaType::SimpleTypeAtomic) {
+ m_context->error(QtXmlPatterns::tr("variety of member types of %1 must be atomic").arg(formatType(m_namePool, simpleItemType)), XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+ }
+
+ // check all simple types derived by union
+ if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ const AnySimpleType::List memberTypes = simpleType->memberTypes();
+
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ const AnySimpleType::Ptr memberType = memberTypes.at(i);
+
+ if (memberType->isComplexType()) {
+ m_context->error(QtXmlPatterns::tr("member type of simple type %1 cannot be a complex type")
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#cos-no-circular-unions
+ if (simpleType->name(m_namePool) == memberType->name(m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to have a member type with the same name as itself")
+ .arg(formatType(m_namePool, simpleType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+
+ if (memberType->isSimpleType() && memberType->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleMemberType = memberType;
+ if (simpleMemberType->derivationConstraints() & XsdSimpleType::UnionConstraint) {
+ m_context->error(QtXmlPatterns::tr("%1 is not allowed to derive from %2 by union as the latter defines it as final")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatType(m_namePool, simpleMemberType)),
+ XsdSchemaContext::XSDError, location);
+ return;
+ }
+ }
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkConstrainingFacets()
+{
+ // first the global simple types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (!(types.at(i)->isSimpleType()) || !(types.at(i)->isDefinedBySchema()))
+ continue;
+
+ const XsdSimpleType::Ptr simpleType = types.at(i);
+ checkConstrainingFacets(simpleType->facets(), simpleType);
+ }
+
+ // and afterwards all anonymous simple types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (!(anonymousTypes.at(i)->isSimpleType()) || !(anonymousTypes.at(i)->isDefinedBySchema()))
+ continue;
+
+ const XsdSimpleType::Ptr simpleType = anonymousTypes.at(i);
+ checkConstrainingFacets(simpleType->facets(), simpleType);
+ }
+}
+
+void XsdSchemaChecker::checkConstrainingFacets(const XsdFacet::Hash &facets, const XsdSimpleType::Ptr &simpleType)
+{
+ if (facets.isEmpty())
+ return;
+
+ SchemaType::Ptr comparableBaseType;
+ if (!simpleType->wxsSuperType()->isDefinedBySchema())
+ comparableBaseType = simpleType->wxsSuperType();
+ else
+ comparableBaseType = simpleType->primitiveType();
+
+ const XsdSchemaSourceLocationReflection reflection(sourceLocation(simpleType));
+
+ // start checks
+ if (facets.contains(XsdFacet::Length)) {
+ const XsdFacet::Ptr lengthFacet = facets.value(XsdFacet::Length);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr lengthValue = lengthFacet->value();
+
+ // @see http://www.w3.org/TR/xmlschema-2/#length-minLength-maxLength
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ const XsdFacet::Ptr minLengthFacet = facets.value(XsdFacet::MinimumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr minLengthValue = minLengthFacet->value();
+
+ bool foundSuperMinimumLength = false;
+ SchemaType::Ptr baseType = simpleType->wxsSuperType();
+ while (baseType) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(baseType);
+ if (baseFacets.contains(XsdFacet::MinimumLength) && !baseFacets.contains(XsdFacet::Length)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr superValue(baseFacets.value(XsdFacet::MinimumLength)->value());
+ if (minLengthValue->toInteger() == superValue->toInteger()) {
+ foundSuperMinimumLength = true;
+ break;
+ }
+ }
+
+ baseType = baseType->wxsSuperType();
+ }
+
+ if ((minLengthValue->toInteger() > lengthValue->toInteger()) || !foundSuperMinimumLength) {
+ m_context->error(QtXmlPatterns::tr("%1 facet collides with %2 facet")
+ .arg(formatKeyword("length"))
+ .arg(formatKeyword("minLength")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#length-minLength-maxLength
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const XsdFacet::Ptr maxLengthFacet = facets.value(XsdFacet::MaximumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr maxLengthValue = maxLengthFacet->value();
+
+ bool foundSuperMaximumLength = false;
+ SchemaType::Ptr baseType = simpleType->wxsSuperType();
+ while (baseType) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(baseType);
+ if (baseFacets.contains(XsdFacet::MaximumLength) && !baseFacets.contains(XsdFacet::Length)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr superValue(baseFacets.value(XsdFacet::MaximumLength)->value());
+ if (maxLengthValue->toInteger() == superValue->toInteger()) {
+ foundSuperMaximumLength = true;
+ break;
+ }
+ }
+
+ baseType = baseType->wxsSuperType();
+ }
+
+ if ((maxLengthValue->toInteger() < lengthValue->toInteger()) || !foundSuperMaximumLength) {
+ m_context->error(QtXmlPatterns::tr("%1 facet collides with %2 facet")
+ .arg(formatKeyword("length"))
+ .arg(formatKeyword("maxLength")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#length-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::Length)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr baseValue = baseFacets.value(XsdFacet::Length)->value();
+ if (lengthValue->toInteger() != baseValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must have the same value as %2 facet of base type")
+ .arg(formatKeyword("length"))
+ .arg(formatKeyword("length")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ const XsdFacet::Ptr minLengthFacet = facets.value(XsdFacet::MinimumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr minLengthValue = minLengthFacet->value();
+
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const XsdFacet::Ptr maxLengthFacet = facets.value(XsdFacet::MaximumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr maxLengthValue = maxLengthFacet->value();
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minLength-less-than-equal-to-maxLength
+ if (maxLengthValue->toInteger() < minLengthValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet collides with %2 facet")
+ .arg(formatKeyword("minLength"))
+ .arg(formatKeyword("maxLength")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minLength-valid-restriction
+ //TODO: check parent facets
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minLength-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MinimumLength)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr baseValue = baseFacets.value(XsdFacet::MinimumLength)->value();
+ if (minLengthValue->toInteger() < baseValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be equal or greater than %2 facet of base type")
+ .arg(formatKeyword("minLength"))
+ .arg(formatKeyword("minLength")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const XsdFacet::Ptr maxLengthFacet = facets.value(XsdFacet::MaximumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr maxLengthValue = maxLengthFacet->value();
+
+ // @see http://www.w3.org/TR/xmlschema-2/#maxLength-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MaximumLength)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr baseValue(baseFacets.value(XsdFacet::MaximumLength)->value());
+ if (maxLengthValue->toInteger() > baseValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("maxLength"))
+ .arg(formatKeyword("maxLength")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ // we keep the patterns in separated facets
+ // @see http://www.w3.org/TR/xmlschema-2/#src-multiple-patterns
+
+ // @see http://www.w3.org/TR/xmlschema-2/#cvc-pattern-valid
+ const XsdFacet::Ptr patternFacet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = patternFacet->multiValue();
+
+ for (int i = 0; i < multiValue.count(); ++i) {
+ const DerivedString<TypeString>::Ptr value = multiValue.at(i);
+ const QRegExp exp = PatternPlatform::parsePattern(value->stringValue(), m_context, &reflection);
+ if (!exp.isValid()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet contains invalid regular expression").arg(formatKeyword("pattern")), XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ // @see http://www.w3.org/TR/xmlschema-2/#src-multiple-enumerations
+
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+
+ if (BuiltinTypes::xsNOTATION->wxsTypeMatches(simpleType)) {
+ const AtomicValue::List notationNames = facet->multiValue();
+ for (int k = 0; k < notationNames.count(); ++k) {
+ const QNameValue::Ptr notationName = notationNames.at(k);
+ if (!m_schema->notation(notationName->qName())) {
+ m_context->error(QtXmlPatterns::tr("unknown notation %1 used in %2 facet")
+ .arg(formatKeyword(m_namePool, notationName->qName()))
+ .arg(formatKeyword("enumeration")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ }
+ }
+ } else if (BuiltinTypes::xsQName->wxsTypeMatches(simpleType)) {
+ } else {
+ const XsdTypeChecker checker(m_context, QVector<QXmlName>(), sourceLocation(simpleType));
+
+ const AnySimpleType::Ptr baseType = simpleType->wxsSuperType();
+ const XsdFacet::Hash baseFacets = XsdTypeChecker::mergedFacetsForType(baseType, m_context);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ for (int k = 0; k < multiValue.count(); ++k) {
+ const QString stringValue = multiValue.at(k)->as<DerivedString<TypeString> >()->stringValue();
+ const QString actualValue = XsdTypeChecker::normalizedValue(stringValue, baseFacets);
+
+ QString errorMsg;
+ if (!checker.isValidString(actualValue, baseType, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet contains invalid value %2: %3")
+ .arg(formatKeyword("enumeration"))
+ .arg(formatData(stringValue))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::WhiteSpace)) {
+ const XsdFacet::Ptr whiteSpaceFacet = facets.value(XsdFacet::WhiteSpace);
+ const DerivedString<TypeString>::Ptr whiteSpaceValue = whiteSpaceFacet->value();
+
+ // @see http://www.w3.org/TR/xmlschema-2/#whiteSpace-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::WhiteSpace)) {
+ const QString value = whiteSpaceValue->stringValue();
+ const QString baseValue = DerivedString<TypeString>::Ptr(baseFacets.value(XsdFacet::WhiteSpace)->value())->stringValue();
+ if (value == XsdSchemaToken::toString(XsdSchemaToken::Replace) || value == XsdSchemaToken::toString(XsdSchemaToken::Preserve)) {
+ if (baseValue == XsdSchemaToken::toString(XsdSchemaToken::Collapse)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet cannot be %2 or %3 if %4 facet of base type is %5")
+ .arg(formatKeyword("whiteSpace"))
+ .arg(formatData("replace"))
+ .arg(formatData("preserve"))
+ .arg(formatKeyword("whiteSpace"))
+ .arg(formatData("collapse")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ if (value == XsdSchemaToken::toString(XsdSchemaToken::Preserve) && baseValue == XsdSchemaToken::toString(XsdSchemaToken::Replace)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet cannot be %2 if %3 facet of base type is %4")
+ .arg(formatKeyword("whiteSpace"))
+ .arg(formatData("preserve"))
+ .arg(formatKeyword("whiteSpace"))
+ .arg(formatData("replace")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr maxFacet = facets.value(XsdFacet::MaximumInclusive);
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minInclusive-less-than-equal-to-maxInclusive
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr minFacet = facets.value(XsdFacet::MinimumInclusive);
+
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterThan, maxFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#maxInclusive-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorGreaterThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("maxInclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorGreaterOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than %2 facet of base type")
+ .arg(formatKeyword("maxInclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr maxFacet = facets.value(XsdFacet::MaximumExclusive);
+
+ // @see http://www.w3.org/TR/xmlschema-2/#maxInclusive-maxExclusive
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet and %2 facet cannot appear together")
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minExclusive-less-than-equal-to-maxExclusive
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr minFacet = facets.value(XsdFacet::MinimumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterThan, maxFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#maxExclusive-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorGreaterThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorGreaterThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MinimumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorLessOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be greater than %2 facet of base type")
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("minInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MinimumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(maxFacet->value(), AtomicComparator::OperatorLessOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be greater than %2 facet of base type")
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("minExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr minFacet = facets.value(XsdFacet::MinimumExclusive);
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minInclusive-minExclusive
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet and %2 facet cannot appear together")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("minInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minExclusive-less-than-maxInclusive
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr maxFacet = facets.value(XsdFacet::MaximumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterOrEqual, maxFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than %2 facet")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minExclusive-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MinimumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorLessThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be greater than or equal to %2 facet of base type")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("minExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than %2 facet of base type")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr minFacet = facets.value(XsdFacet::MinimumInclusive);
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minInclusive-less-than-maxExclusive
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr maxFacet = facets.value(XsdFacet::MaximumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterOrEqual, maxFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than %2 facet")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#minInclusive-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MinimumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorLessThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be greater than or equal to %2 facet of base type")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("minInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MinimumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorLessOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be greater than %2 facet of base type")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("minExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumInclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterThan, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("maxInclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ if (baseFacets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::MaximumExclusive);
+ if (comparableBaseType) {
+ if (XsdSchemaHelper::constructAndCompare(minFacet->value(), AtomicComparator::OperatorGreaterOrEqual, baseFacet->value(), comparableBaseType, m_context, &reflection)) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than %2 facet of base type")
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("maxExclusive")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr totalDigitsFacet = facets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr totalDigitsValue = totalDigitsFacet->value();
+
+ // @see http://www.w3.org/TR/xmlschema-2/#totalDigits-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr baseValue = baseFacet->value();
+
+ if (totalDigitsValue->toInteger() > baseValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("totalDigits"))
+ .arg(formatKeyword("totalDigits")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ if (facets.contains(XsdFacet::FractionDigits)) {
+ const XsdFacet::Ptr fractionDigitsFacet = facets.value(XsdFacet::FractionDigits);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr fractionDigitsValue = fractionDigitsFacet->value();
+
+ // http://www.w3.org/TR/xmlschema-2/#fractionDigits-totalDigits
+ if (facets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr totalDigitsFacet = facets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr totalDigitsValue = totalDigitsFacet->value();
+
+ if (fractionDigitsValue->toInteger() > totalDigitsValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet")
+ .arg(formatKeyword("fractionDigits"))
+ .arg(formatKeyword("totalDigits")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#fractionDigits-valid-restriction
+ if (simpleType->derivationMethod() == XsdSimpleType::DerivationRestriction) {
+ const XsdFacet::Hash baseFacets = m_context->facetsForType(simpleType->wxsSuperType());
+ if (baseFacets.contains(XsdFacet::FractionDigits)) {
+ const XsdFacet::Ptr baseFacet = baseFacets.value(XsdFacet::FractionDigits);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr baseValue = baseFacet->value();
+
+ if (fractionDigitsValue->toInteger() > baseValue->toInteger()) {
+ m_context->error(QtXmlPatterns::tr("%1 facet must be less than or equal to %2 facet of base type")
+ .arg(formatKeyword("fractionDigits"))
+ .arg(formatKeyword("fractionDigits")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+
+
+ // check whether facets are allowed for simple types variety
+ if (simpleType->wxsSuperType()->category() == SchemaType::SimpleTypeAtomic) {
+ if (simpleType->primitiveType()) {
+ const QXmlName primitiveTypeName = simpleType->primitiveType()->name(m_namePool);
+ if (m_allowedAtomicFacets.contains(primitiveTypeName)) {
+ const QSet<XsdFacet::Type> allowedFacets = m_allowedAtomicFacets.value(primitiveTypeName);
+ QSet<XsdFacet::Type> availableFacets = facets.keys().toSet();
+
+ if (!availableFacets.subtract(allowedFacets).isEmpty()) {
+ m_context->error(QtXmlPatterns::tr("simple type contains not allowed facet %1")
+ .arg(formatKeyword(XsdFacet::typeName(availableFacets.toList().first()))),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ } else if (simpleType->wxsSuperType()->category() == SchemaType::SimpleTypeList) {
+ if (facets.contains(XsdFacet::MaximumInclusive) || facets.contains(XsdFacet::MinimumInclusive) ||
+ facets.contains(XsdFacet::MaximumExclusive) || facets.contains(XsdFacet::MinimumExclusive) ||
+ facets.contains(XsdFacet::TotalDigits) || facets.contains(XsdFacet::FractionDigits))
+ {
+ m_context->error(QtXmlPatterns::tr("%1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list")
+ .arg(formatKeyword("maxInclusive"))
+ .arg(formatKeyword("maxExclusive"))
+ .arg(formatKeyword("minInclusive"))
+ .arg(formatKeyword("minExclusive"))
+ .arg(formatKeyword("totalDigits"))
+ .arg(formatKeyword("fractionDigits")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ }
+ } else if (simpleType->wxsSuperType()->category() == SchemaType::SimpleTypeUnion) {
+ if (facets.contains(XsdFacet::MaximumInclusive) || facets.contains(XsdFacet::MinimumInclusive) ||
+ facets.contains(XsdFacet::MaximumExclusive) || facets.contains(XsdFacet::MinimumExclusive) ||
+ facets.contains(XsdFacet::TotalDigits) || facets.contains(XsdFacet::FractionDigits) ||
+ facets.contains(XsdFacet::MinimumLength) || facets.contains(XsdFacet::MaximumLength) ||
+ facets.contains(XsdFacet::Length) || facets.contains(XsdFacet::WhiteSpace))
+ {
+ m_context->error(QtXmlPatterns::tr("only %1 and %2 facets are allowed when derived by union")
+ .arg(formatKeyword("pattern"))
+ .arg(formatKeyword("enumeration")),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ }
+ }
+
+ // check whether value of facet matches the value space of the simple types base type
+ const SchemaType::Ptr baseType = simpleType->wxsSuperType();
+ if (!baseType->isDefinedBySchema()) {
+ const XsdSchemaSourceLocationReflection reflection(sourceLocation(simpleType));
+
+ XsdFacet::HashIterator it(facets);
+ while (it.hasNext()) {
+ it.next();
+ const XsdFacet::Ptr facet = it.value();
+ if (facet->type() == XsdFacet::MaximumInclusive ||
+ facet->type() == XsdFacet::MaximumExclusive ||
+ facet->type() == XsdFacet::MinimumInclusive ||
+ facet->type() == XsdFacet::MinimumExclusive) {
+ const DerivedString<TypeString>::Ptr stringValue = facet->value();
+ const AtomicValue::Ptr value = ValueFactory::fromLexical(stringValue->stringValue(), baseType, m_context, &reflection);
+ if (value->hasError()) {
+ m_context->error(QtXmlPatterns::tr("%1 contains %2 facet with invalid data: %3")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatKeyword(XsdFacet::typeName(facet->type())))
+ .arg(formatData(stringValue->stringValue())),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+
+ // @see http://www.w3.org/TR/xmlschema-2/#enumeration-valid-restriction
+ if (facet->type() == XsdFacet::Enumeration && baseType != BuiltinTypes::xsNOTATION) {
+ const AtomicValue::List multiValue = facet->multiValue();
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString stringValue = DerivedString<TypeString>::Ptr(multiValue.at(j))->stringValue();
+ const AtomicValue::Ptr value = ValueFactory::fromLexical(stringValue, baseType, m_context, &reflection);
+ if (value->hasError()) {
+ m_context->error(QtXmlPatterns::tr("%1 contains %2 facet with invalid data: %3")
+ .arg(formatType(m_namePool, simpleType))
+ .arg(formatKeyword(XsdFacet::typeName(XsdFacet::Enumeration)))
+ .arg(formatData(stringValue)),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+ }
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkDuplicatedAttributeUses()
+{
+ // first all global attribute groups
+ const XsdAttributeGroup::List attributeGroups = m_schema->attributeGroups();
+ for (int i = 0; i < attributeGroups.count(); ++i) {
+ const XsdAttributeGroup::Ptr attributeGroup = attributeGroups.at(i);
+ const XsdAttributeUse::List uses = attributeGroup->attributeUses();
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 4)
+ XsdAttribute::Ptr conflictingAttribute;
+ if (hasDuplicatedAttributeUses(uses, conflictingAttribute)) {
+ m_context->error(QtXmlPatterns::tr("attribute group %1 contains attribute %2 twice")
+ .arg(formatKeyword(attributeGroup->displayName(m_namePool)))
+ .arg(formatKeyword(conflictingAttribute->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(attributeGroup));
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 5)
+ if (hasMultipleIDAttributeUses(uses)) {
+ m_context->error(QtXmlPatterns::tr("attribute group %1 contains two different attributes that both have types derived from %2")
+ .arg(formatKeyword(attributeGroup->displayName(m_namePool)))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(attributeGroup));
+ return;
+ }
+
+ if (hasConstraintIDAttributeUse(uses, conflictingAttribute)) {
+ m_context->error(QtXmlPatterns::tr("attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3")
+ .arg(formatKeyword(attributeGroup->displayName(m_namePool)))
+ .arg(formatKeyword(conflictingAttribute->displayName(m_namePool)))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(attributeGroup));
+ return;
+ }
+ }
+
+ // then the global and anonymous complex types
+ SchemaType::List types = m_schema->types();
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ if (!(types.at(i)->isComplexType()) || !types.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = types.at(i);
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 4)
+ XsdAttribute::Ptr conflictingAttribute;
+ if (hasDuplicatedAttributeUses(attributeUses, conflictingAttribute)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 contains attribute %2 twice")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatKeyword(conflictingAttribute->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#ct-props-correct 5)
+ if (hasMultipleIDAttributeUses(attributeUses)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 contains two different attributes that both have types derived from %2")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+
+ if (hasConstraintIDAttributeUse(attributeUses, conflictingAttribute)) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 contains attribute %2 that has value constraint but type that inherits from %3")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatKeyword(conflictingAttribute->displayName(m_namePool)))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+}
+
+void XsdSchemaChecker::checkElementConstraints()
+{
+ const QSet<XsdElement::Ptr> elements = collectAllElements(m_schema);
+ QSetIterator<XsdElement::Ptr> it(elements);
+ while (it.hasNext()) {
+ const XsdElement::Ptr element = it.next();
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#e-props-correct
+
+ // 2 and xs:ID check
+ if (element->valueConstraint()) {
+ const SchemaType::Ptr type = element->type();
+
+ AnySimpleType::Ptr targetType;
+ if (type->isSimpleType() && type->category() == SchemaType::SimpleTypeAtomic) {
+ targetType = type;
+
+ // if it is a XsdSimpleType, use its primitive type as target type
+ if (type->isDefinedBySchema())
+ targetType = XsdSimpleType::Ptr(type)->primitiveType();
+
+ } else if (type->isComplexType() && type->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexType(type);
+
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ const AnySimpleType::Ptr simpleType = complexType->contentType()->simpleType();
+ if (simpleType->category() == AnySimpleType::SimpleTypeAtomic) {
+ targetType = simpleType;
+
+ if (simpleType->isDefinedBySchema())
+ targetType = XsdSimpleType::Ptr(simpleType)->primitiveType();
+ }
+ } else if (complexType->contentType()->variety() != XsdComplexType::ContentType::Mixed) {
+ m_context->error(QtXmlPatterns::tr("element %1 is not allowed to have a value constraint if its base type is complex")
+ .arg(formatKeyword(element->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ }
+ if ((targetType == BuiltinTypes::xsID) || BuiltinTypes::xsID->wxsTypeMatches(type)) {
+ m_context->error(QtXmlPatterns::tr("element %1 is not allowed to have a value constraint if its type is derived from %2")
+ .arg(formatKeyword(element->displayName(m_namePool)))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+
+ if (type->isSimpleType()) {
+ QString errorMsg;
+ if (!isValidValue(element->valueConstraint()->value(), type, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("value constraint of element %1 is not of elements type: %2")
+ .arg(formatKeyword(element->displayName(m_namePool)))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ } else if (type->isComplexType() && type->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexType(type);
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ QString errorMsg;
+ if (!isValidValue(element->valueConstraint()->value(), complexType->contentType()->simpleType(), errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("value constraint of element %1 is not of elements type: %2")
+ .arg(formatKeyword(element->displayName(m_namePool)))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ }
+ }
+ }
+
+ if (!element->substitutionGroupAffiliations().isEmpty()) {
+ // 3
+ if (!element->scope() || element->scope()->variety() != XsdElement::Scope::Global) {
+ m_context->error(QtXmlPatterns::tr("element %1 is not allowed to have substitution group affiliation as it is no global element").arg(formatKeyword(element->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+
+ // 4
+ const XsdElement::List affiliations = element->substitutionGroupAffiliations();
+ for (int i = 0; i < affiliations.count(); ++i) {
+ const XsdElement::Ptr affiliation = affiliations.at(i);
+
+ bool derivationOk = false;
+ if (element->type()->isComplexType() && affiliation->type()->isComplexType()) {
+ if (XsdSchemaHelper::isComplexDerivationOk(element->type(), affiliation->type(), affiliation->substitutionGroupExclusions())) {
+ derivationOk = true;
+ }
+ }
+ if (element->type()->isComplexType() && affiliation->type()->isSimpleType()) {
+ if (XsdSchemaHelper::isComplexDerivationOk(element->type(), affiliation->type(), affiliation->substitutionGroupExclusions())) {
+ derivationOk = true;
+ }
+ }
+ if (element->type()->isSimpleType()) {
+ if (XsdSchemaHelper::isSimpleDerivationOk(element->type(), affiliation->type(), affiliation->substitutionGroupExclusions())) {
+ derivationOk = true;
+ }
+ }
+
+ if (!derivationOk) {
+ m_context->error(QtXmlPatterns::tr("type of element %1 cannot be derived from type of substitution group affiliation").arg(formatKeyword(element->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ }
+
+ // 5 was checked in XsdSchemaResolver::resolveSubstitutionGroupAffiliations() already
+ }
+ }
+}
+
+void XsdSchemaChecker::checkAttributeConstraints()
+{
+ // all global attributes
+ XsdAttribute::List attributes = m_schema->attributes();
+
+ // and all local attributes
+ SchemaType::List types = m_schema->types();
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ if (!types.at(i)->isComplexType() || !types.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType(types.at(i));
+ const XsdAttributeUse::List uses = complexType->attributeUses();
+ for (int j = 0; j < uses.count(); ++j)
+ attributes.append(uses.at(j)->attribute());
+ }
+
+ for (int i = 0; i < attributes.count(); ++i) {
+ const XsdAttribute::Ptr attribute = attributes.at(i);
+
+ if (!attribute->valueConstraint())
+ continue;
+
+ if (attribute->valueConstraint()->variety() == XsdAttribute::ValueConstraint::Default || attribute->valueConstraint()->variety() == XsdAttribute::ValueConstraint::Fixed) {
+ const SchemaType::Ptr type = attribute->type();
+
+ QString errorMsg;
+ if (!isValidValue(attribute->valueConstraint()->value(), attribute->type(), errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("value constraint of attribute %1 is not of attributes type: %2")
+ .arg(formatKeyword(attribute->displayName(m_namePool)))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(attribute));
+ return;
+ }
+ }
+
+ if (BuiltinTypes::xsID->wxsTypeMatches(attribute->type())) {
+ m_context->error(QtXmlPatterns::tr("attribute %1 has value constraint but has type derived from %2")
+ .arg(formatKeyword(attribute->displayName(m_namePool)))
+ .arg(formatType(m_namePool, BuiltinTypes::xsID)),
+ XsdSchemaContext::XSDError, sourceLocation(attribute));
+ return;
+ }
+ }
+}
+
+bool XsdSchemaChecker::isValidValue(const QString &stringValue, const AnySimpleType::Ptr &type, QString &errorMsg) const
+{
+ if (BuiltinTypes::xsAnySimpleType->name(m_namePool) == type->name(m_namePool))
+ return true; // no need to check xs:anyType content
+
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(type, m_context);
+ const QString actualValue = XsdTypeChecker::normalizedValue(stringValue, facets);
+
+ const XsdTypeChecker checker(m_context, QVector<QXmlName>(), QSourceLocation(QUrl(QLatin1String("http://dummy.org")), 1, 1));
+ return checker.isValidString(actualValue, type, errorMsg);
+}
+
+void XsdSchemaChecker::checkAttributeUseConstraints()
+{
+ XsdComplexType::List complexTypes;
+
+ SchemaType::List types = m_schema->types();
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+ if (type->isComplexType() && type->isDefinedBySchema())
+ complexTypes.append(XsdComplexType::Ptr(type));
+ }
+
+ for (int i = 0; i < complexTypes.count(); ++i) {
+ const XsdComplexType::Ptr complexType(complexTypes.at(i));
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+ if (!baseType || !baseType->isComplexType() || !baseType->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexBaseType(baseType);
+
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+ QHash<QXmlName, XsdAttributeUse::Ptr> lookupHash;
+ for (int j = 0; j < attributeUses.count(); ++j)
+ lookupHash.insert(attributeUses.at(j)->attribute()->name(m_namePool), attributeUses.at(j));
+
+ const XsdAttributeUse::List baseAttributeUses = complexBaseType->attributeUses();
+ for (int j = 0; j < baseAttributeUses.count(); ++j) {
+ const XsdAttributeUse::Ptr baseAttributeUse = baseAttributeUses.at(j);
+
+ if (lookupHash.contains(baseAttributeUse->attribute()->name(m_namePool))) {
+ const XsdAttributeUse::Ptr attributeUse = lookupHash.value(baseAttributeUse->attribute()->name(m_namePool));
+
+ if (baseAttributeUse->useType() == XsdAttributeUse::RequiredUse) {
+ if (attributeUse->useType() == XsdAttributeUse::OptionalUse || attributeUse->useType() == XsdAttributeUse::ProhibitedUse) {
+ m_context->error(QtXmlPatterns::tr("%1 attribute in derived complex type must be %2 like in base type")
+ .arg(formatAttribute("use"))
+ .arg(formatData("required")),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+
+ if (baseAttributeUse->valueConstraint()) {
+ if (baseAttributeUse->valueConstraint()->variety() == XsdAttributeUse::ValueConstraint::Fixed) {
+ if (!attributeUse->valueConstraint()) {
+ m_context->error(QtXmlPatterns::tr("attribute %1 in derived complex type must have %2 value constraint like in base type")
+ .arg(formatKeyword(attributeUse->attribute()->displayName(m_namePool)))
+ .arg(formatData("fixed")),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ } else {
+ if (attributeUse->valueConstraint()->variety() == XsdAttributeUse::ValueConstraint::Fixed) {
+ const XsdTypeChecker checker(m_context, QVector<QXmlName>(), sourceLocation(complexType));
+ if (!checker.valuesAreEqual(attributeUse->valueConstraint()->value(), baseAttributeUse->valueConstraint()->value(), attributeUse->attribute()->type())) {
+ m_context->error(QtXmlPatterns::tr("attribute %1 in derived complex type must have the same %2 value constraint like in base type")
+ .arg(formatKeyword(attributeUse->attribute()->displayName(m_namePool)))
+ .arg(formatData("fixed")),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ } else {
+ m_context->error(QtXmlPatterns::tr("attribute %1 in derived complex type must have %2 value constraint")
+ .arg(formatKeyword(attributeUse->attribute()->displayName(m_namePool)))
+ .arg(formatData("fixed")),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // additional check that process content property of attribute wildcard in derived type is
+ // not weaker than the wildcard in base type
+ const XsdWildcard::Ptr baseWildcard(complexBaseType->attributeWildcard());
+ const XsdWildcard::Ptr derivedWildcard(complexType->attributeWildcard());
+ if (baseWildcard && derivedWildcard) {
+ if (!XsdSchemaHelper::checkWildcardProcessContents(baseWildcard, derivedWildcard)) {
+ m_context->error(QtXmlPatterns::tr("processContent of base wildcard must be weaker than derived wildcard"), XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+ }
+}
+
+void XsdSchemaChecker::checkElementDuplicates()
+{
+ // check all global types...
+ SchemaType::List types = m_schema->types();
+
+ // .. and anonymous types
+ types << m_schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ const SchemaType::Ptr type = types.at(i);
+
+ if (!type->isComplexType() || !type->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType(type);
+
+ if ((complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly) || (complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed)) {
+ DuplicatedElementMap elementMap;
+ DuplicatedWildcardMap wildcardMap;
+
+ checkElementDuplicates(complexType->contentType()->particle(), elementMap, wildcardMap);
+ }
+ }
+}
+
+void XsdSchemaChecker::checkElementDuplicates(const XsdParticle::Ptr &particle, DuplicatedElementMap &elementMap, DuplicatedWildcardMap &wildcardMap)
+{
+ if (particle->term()->isElement()) {
+ const XsdElement::Ptr element(particle->term());
+
+ if (elementMap.contains(element->name(m_namePool))) {
+ if (element->type() != elementMap.value(element->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("element %1 exists twice with different types")
+ .arg(formatKeyword(element->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ } else {
+ elementMap.insert(element->name(m_namePool), element->type());
+ }
+
+ // check substitution group affiliation
+ const XsdElement::List substElements = element->substitutionGroupAffiliations();
+ for (int i = 0; i < substElements.count(); ++i) {
+ const XsdElement::Ptr substElement = substElements.at(i);
+ if (elementMap.contains(substElement->name(m_namePool))) {
+ if (substElement->type() != elementMap.value(substElement->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("element %1 exists twice with different types")
+ .arg(formatKeyword(substElement->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, sourceLocation(element));
+ return;
+ }
+ } else {
+ elementMap.insert(substElement->name(m_namePool), substElement->type());
+ }
+ }
+ } else if (particle->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr group(particle->term());
+ const XsdParticle::List particles = group->particles();
+ for (int i = 0; i < particles.count(); ++i)
+ checkElementDuplicates(particles.at(i), elementMap, wildcardMap);
+ } else if (particle->term()->isWildcard()) {
+ const XsdWildcard::Ptr wildcard(particle->term());
+
+ bool error = false;
+ if (!wildcardMap.contains(wildcard->namespaceConstraint()->variety())) {
+ if (!wildcardMap.isEmpty())
+ error = true;
+ } else {
+ const XsdWildcard::Ptr otherWildcard = wildcardMap.value(wildcard->namespaceConstraint()->variety());
+ if ((wildcard->processContents() != otherWildcard->processContents()) || (wildcard->namespaceConstraint()->namespaces() != otherWildcard->namespaceConstraint()->namespaces()))
+ error = true;
+ }
+
+ if (error) {
+ m_context->error(QtXmlPatterns::tr("particle contains non-deterministic wildcards"), XsdSchemaContext::XSDError, sourceLocation(wildcard));
+ return;
+ } else {
+ wildcardMap.insert(wildcard->namespaceConstraint()->variety(), wildcard);
+ }
+ }
+}
+
+QSourceLocation XsdSchemaChecker::sourceLocation(const NamedSchemaComponent::Ptr &component) const
+{
+ if (m_componentLocationHash.contains(component)) {
+ return m_componentLocationHash.value(component);
+ } else {
+ QSourceLocation location;
+ location.setLine(1);
+ location.setColumn(1);
+ location.setUri(QString::fromLatin1("dummyUri"));
+
+ return location;
+ }
+}
+
+QSourceLocation XsdSchemaChecker::sourceLocationForType(const SchemaType::Ptr &type) const
+{
+ if (type->isSimpleType())
+ return sourceLocation(XsdSimpleType::Ptr(type));
+ else
+ return sourceLocation(XsdComplexType::Ptr(type));
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemachecker_helper.cpp b/src/xmlpatterns/schema/qxsdschemachecker_helper.cpp
new file mode 100644
index 0000000..850b17b
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemachecker_helper.cpp
@@ -0,0 +1,306 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+bool XsdSchemaChecker::hasDuplicatedAttributeUses(const XsdAttributeUse::List &list, XsdAttribute::Ptr &conflictingAttribute) const
+{
+ const int length = list.count();
+
+ for (int i = 0; i < length; ++i) {
+ for (int j = 0; j < length; ++j) {
+ if (i == j)
+ continue;
+
+ if (list.at(i)->attribute()->name(m_namePool) == list.at(j)->attribute()->name(m_namePool)) {
+ conflictingAttribute = list.at(i)->attribute();
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+bool XsdSchemaChecker::hasMultipleIDAttributeUses(const XsdAttributeUse::List &list) const
+{
+ const int length = list.count();
+
+ bool hasIdDerivedAttribute = false;
+ for (int i = 0; i < length; ++i) {
+ if (BuiltinTypes::xsID->wxsTypeMatches(list.at(i)->attribute()->type())) {
+ if (hasIdDerivedAttribute)
+ return true;
+ else
+ hasIdDerivedAttribute = true;
+ }
+ }
+
+ return false;
+}
+
+bool XsdSchemaChecker::hasConstraintIDAttributeUse(const XsdAttributeUse::List &list, XsdAttribute::Ptr &conflictingAttribute) const
+{
+ const int length = list.count();
+
+ for (int i = 0; i < length; ++i) {
+ const XsdAttributeUse::Ptr attributeUse(list.at(i));
+ if (BuiltinTypes::xsID->wxsTypeMatches(attributeUse->attribute()->type())) {
+ if (attributeUse->valueConstraint()) {
+ conflictingAttribute = attributeUse->attribute();
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+
+bool XsdSchemaChecker::particleEqualsRecursively(const XsdParticle::Ptr &particle, const XsdParticle::Ptr &otherParticle) const
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-particle-extend
+ //TODO: find out what 'properties' of a particle should be checked here...
+
+ if (particle->minimumOccurs() != otherParticle->minimumOccurs())
+ return false;
+
+ if (particle->maximumOccursUnbounded() != otherParticle->maximumOccursUnbounded())
+ return false;
+
+ if (particle->maximumOccurs() != otherParticle->maximumOccurs())
+ return false;
+
+ const XsdTerm::Ptr term = particle->term();
+ const XsdTerm::Ptr otherTerm = otherParticle->term();
+
+ if (term->isElement() && !(otherTerm->isElement()))
+ return false;
+
+ if (term->isModelGroup() && !(otherTerm->isModelGroup()))
+ return false;
+
+ if (term->isWildcard() && !(otherTerm->isWildcard()))
+ return false;
+
+ if (term->isElement()) {
+ const XsdElement::Ptr element = term;
+ const XsdElement::Ptr otherElement = otherTerm;
+
+ if (element->name(m_namePool) != otherElement->name(m_namePool))
+ return false;
+
+ if (element->type()->name(m_namePool) != otherElement->type()->name(m_namePool))
+ return false;
+ }
+
+ if (term->isModelGroup()) {
+ const XsdModelGroup::Ptr group = term;
+ const XsdModelGroup::Ptr otherGroup = otherTerm;
+
+ if (group->particles().count() != otherGroup->particles().count())
+ return false;
+
+ for (int i = 0; i < group->particles().count(); ++i) {
+ if (!particleEqualsRecursively(group->particles().at(i), otherGroup->particles().at(i)))
+ return false;
+ }
+ }
+
+ if (term->isWildcard()) {
+ }
+
+ return true;
+}
+
+bool XsdSchemaChecker::isValidParticleExtension(const XsdParticle::Ptr &extension, const XsdParticle::Ptr &base) const
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-particle-extend
+
+ // 1
+ if (extension == base)
+ return true;
+
+ // 2
+ if (extension->minimumOccurs() == 1 && extension->maximumOccurs() == 1 && extension->maximumOccursUnbounded() == false) {
+ if (extension->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr modelGroup = extension->term();
+ if (modelGroup->compositor() == XsdModelGroup::SequenceCompositor) {
+ if (particleEqualsRecursively(modelGroup->particles().first(), base))
+ return true;
+ }
+ }
+ }
+
+ // 3
+ if (extension->minimumOccurs() == base->minimumOccurs()) { // 3.1
+ if (extension->term()->isModelGroup() && base->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr extensionGroup(extension->term());
+ const XsdModelGroup::Ptr baseGroup(base->term());
+
+ if (extensionGroup->compositor() == XsdModelGroup::AllCompositor && baseGroup->compositor() == XsdModelGroup::AllCompositor) {
+ const XsdParticle::List extensionParticles = extensionGroup->particles();
+ const XsdParticle::List baseParticles = baseGroup->particles();
+ for (int i = 0; i < baseParticles.count() && i < extensionParticles.count(); ++i) {
+ if (baseParticles.at(i) != extensionParticles.at(i))
+ return false;
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
+QSet<XsdElement::Ptr> collectAllElements(const XsdParticle::Ptr &particle)
+{
+ QSet<XsdElement::Ptr> elements;
+
+ const XsdTerm::Ptr term(particle->term());
+ if (term->isElement()) {
+ elements.insert(XsdElement::Ptr(term));
+ } else if (term->isModelGroup()) {
+ const XsdModelGroup::Ptr group(term);
+
+ for (int i = 0; i < group->particles().count(); ++i)
+ elements.unite(collectAllElements(group->particles().at(i)));
+ }
+
+ return elements;
+}
+
+QSet<XsdElement::Ptr> collectAllElements(const XsdSchema::Ptr &schema)
+{
+ QSet<XsdElement::Ptr> elements;
+
+ // collect global elements
+ const XsdElement::List elementList = schema->elements();
+ for (int i = 0; i < elementList.count(); ++i)
+ elements.insert(elementList.at(i));
+
+ // collect all elements from global groups
+ const XsdModelGroup::List groupList = schema->elementGroups();
+ for (int i = 0; i < groupList.count(); ++i) {
+ const XsdModelGroup::Ptr group(groupList.at(i));
+
+ for (int j = 0; j < group->particles().count(); ++j)
+ elements.unite(collectAllElements(group->particles().at(j)));
+ }
+
+ // collect all elements from complex type definitions
+ SchemaType::List types;
+ types << schema->types() << schema->anonymousTypes();
+
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isComplexType() && types.at(i)->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexType(types.at(i));
+ if (complexType->contentType()->particle())
+ elements.unite(collectAllElements(complexType->contentType()->particle()));
+ }
+ }
+
+ return elements;
+}
+
+bool XsdSchemaChecker::elementSequenceAccepted(const XsdModelGroup::Ptr &sequence, const XsdParticle::Ptr &particle) const
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-accept
+
+ if (particle->term()->isWildcard()) { // 1
+ const XsdWildcard::Ptr wildcard(particle->term());
+
+ // 1.1
+ if ((unsigned int)sequence->particles().count() < particle->minimumOccurs())
+ return false;
+
+ // 1.2
+ if (!particle->maximumOccursUnbounded()) {
+ if ((unsigned int)sequence->particles().count() > particle->maximumOccurs())
+ return false;
+ }
+
+ // 1.3
+ const XsdParticle::List particles(sequence->particles());
+ for (int i = 0; i < particles.count(); ++i) {
+ if (particles.at(i)->term()->isElement()) {
+ if (!XsdSchemaHelper::wildcardAllowsExpandedName(XsdElement::Ptr(particles.at(i)->term())->name(m_namePool), wildcard, m_namePool))
+ return false;
+ }
+ }
+ } else if (particle->term()->isElement()) { // 2
+ const XsdElement::Ptr element(particle->term());
+
+ // 2.1
+ if ((unsigned int)sequence->particles().count() < particle->minimumOccurs())
+ return false;
+
+ // 2.2
+ if (!particle->maximumOccursUnbounded()) {
+ if ((unsigned int)sequence->particles().count() > particle->maximumOccurs())
+ return false;
+ }
+
+ // 2.3
+ const XsdParticle::List particles(sequence->particles());
+ for (int i = 0; i < particles.count(); ++i) {
+ bool isValid = false;
+ if (particles.at(i)->term()->isElement()) {
+ const XsdElement::Ptr seqElement(particles.at(i)->term());
+
+ // 2.3.1
+ if (element->name(m_namePool) == seqElement->name(m_namePool))
+ isValid = true;
+
+ // 2.3.2
+ if (element->scope() && element->scope()->variety() == XsdElement::Scope::Global) {
+ if (!(element->disallowedSubstitutions() & NamedSchemaComponent::SubstitutionConstraint)) {
+ //TODO: continue
+ }
+ }
+ }
+ }
+ }
+
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemachecker_p.h b/src/xmlpatterns/schema/qxsdschemachecker_p.h
new file mode 100644
index 0000000..1ec85f9
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemachecker_p.h
@@ -0,0 +1,284 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaChecker_H
+#define Patternist_XsdSchemaChecker_H
+
+#include "qschematype_p.h"
+#include "qxsdattribute_p.h"
+#include "qxsdattributegroup_p.h"
+#include "qxsdelement_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdnotation_p.h"
+#include "qxsdschema_p.h"
+#include "qxsdsimpletype_p.h"
+
+#include <QtCore/QExplicitlySharedDataPointer>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ class XsdSchemaContext;
+ class XsdSchemaParserContext;
+
+ /**
+ * @short Encapsulates the checking of schema valitity after reference resolving has finished.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaChecker : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdSchemaChecker> Ptr;
+
+ /**
+ * Creates a new schema checker.
+ *
+ * @param context The context that is used for customization.
+ * @param parserContext The context that contains all the data structures.
+ */
+ XsdSchemaChecker(const QExplicitlySharedDataPointer<XsdSchemaContext> &context, const XsdSchemaParserContext *parserContext);
+
+ /**
+ * Destroys the schema checker.
+ */
+ ~XsdSchemaChecker();
+
+ /**
+ * Starts a basic check process.
+ *
+ * This check only validates the basic super type inheritance
+ * of simple and complex types.
+ */
+ void basicCheck();
+
+ /**
+ * Starts the real check process.
+ */
+ void check();
+
+ /**
+ * Checks the constraining facets of all global and anonymous simple types for validity.
+ */
+ void checkConstrainingFacets();
+
+ /**
+ * Adds the component location hash, so the checker is able to report meaning full
+ * error messages.
+ */
+ void addComponentLocationHash(const QHash<NamedSchemaComponent::Ptr, QSourceLocation> &hash);
+
+ private:
+ void checkSimpleRestrictionBaseType();
+
+ /**
+ * Checks that no simple or complex type inherits itself.
+ */
+ void checkBasicCircularInheritances();
+
+ /**
+ * Checks the advanced circular inheritance.
+ */
+ void checkCircularInheritances();
+
+ /**
+ * Checks for inheritance restrictions given by final or finalDefault
+ * attributes.
+ */
+ void checkInheritanceRestrictions();
+
+ /**
+ * Checks for various constraints for simple types defined by schema.
+ */
+ void checkBasicSimpleTypeConstraints();
+ void checkSimpleTypeConstraints();
+
+ /**
+ * Checks for various constraints for complex types defined by schema.
+ */
+ void checkBasicComplexTypeConstraints();
+ void checkComplexTypeConstraints();
+
+ /**
+ * Checks for list and union derivation restrictions given by final or finalDefault
+ * attributes.
+ */
+ void checkSimpleDerivationRestrictions();
+
+ /**
+ * Checks the set of constraining @p facets that belongs to @p simpleType for validity.
+ */
+ void checkConstrainingFacets(const XsdFacet::Hash &facets, const XsdSimpleType::Ptr &simpleType);
+
+ /**
+ * Checks for duplicated attribute uses (attributes with the same name) inside a complex type.
+ */
+ void checkDuplicatedAttributeUses();
+
+ /**
+ * Check the element constraints.
+ */
+ void checkElementConstraints();
+
+ /**
+ * Check the attribute constraints.
+ */
+ void checkAttributeConstraints();
+
+ /**
+ * Check the attribute use constraints.
+ */
+ void checkAttributeUseConstraints();
+
+ /**
+ * A map used to find duplicated elements inside a model group.
+ */
+ typedef QHash<QXmlName, SchemaType::Ptr> DuplicatedElementMap;
+
+ /**
+ * A map used to find duplicated wildcards inside a model group.
+ */
+ typedef QHash<XsdWildcard::NamespaceConstraint::Variety, XsdWildcard::Ptr> DuplicatedWildcardMap;
+
+ /**
+ * Check for duplicated elements and element wildcards in all complex type particles.
+ */
+ void checkElementDuplicates();
+
+ /**
+ * Check for duplicated elements and element wildcards in the given @p particle.
+ *
+ * @param particle The particle to check.
+ * @param elementMap A map to find the duplicated elements.
+ * @param wildcardMap A map to find the duplicated element wildcards.
+ */
+ void checkElementDuplicates(const XsdParticle::Ptr &particle, DuplicatedElementMap &elementMap, DuplicatedWildcardMap &wildcardMap);
+
+ /**
+ * Setup fast lookup list for allowed facets of atomic simple types.
+ */
+ void setupAllowedAtomicFacets();
+
+ /**
+ * Returns the source location of the given schema @p component or a dummy
+ * source location if the component is not found in the component location hash.
+ */
+ QSourceLocation sourceLocation(const NamedSchemaComponent::Ptr &component) const;
+
+ /**
+ * Returns the source location of the given schema @p type or a dummy
+ * source location if the type is not found in the component location hash.
+ */
+ QSourceLocation sourceLocationForType(const SchemaType::Ptr &type) const;
+
+ /**
+ * Checks that the string @p value is valid according the value space of @p type
+ * for the given @p component.
+ */
+ bool isValidValue(const QString &value, const AnySimpleType::Ptr &type, QString &errorMsg) const;
+
+ /**
+ * Returns the list of facets for the given @p type.
+ */
+ XsdFacet::Hash facetsForType(const SchemaType::Ptr &type) const;
+
+ /**
+ * Returns whether the given @p list of attribute uses contains two (or more) attribute
+ * uses that point to attributes with the same name. @p conflictingAttribute
+ * will contain the conflicting attribute in that case.
+ */
+ bool hasDuplicatedAttributeUses(const XsdAttributeUse::List &list, XsdAttribute::Ptr &conflictingAttribute) const;
+
+ /**
+ * Returns whether the given @p list of attribute uses contains two (or more) attribute
+ * uses that have a type inherited by xs:ID.
+ */
+ bool hasMultipleIDAttributeUses(const XsdAttributeUse::List &list) const;
+
+ /**
+ * Returns whether the given @p list of attribute uses contains an attribute
+ * uses that has a type inherited by xs:ID with a value constraint. @p conflictingAttribute
+ * will contain the conflicting attribute in that case.
+ */
+ bool hasConstraintIDAttributeUse(const XsdAttributeUse::List &list, XsdAttribute::Ptr &conflictingAttribute) const;
+
+ /**
+ * Checks whether the @p particle equals the @p otherParticle recursively.
+ */
+ bool particleEqualsRecursively(const XsdParticle::Ptr &particle, const XsdParticle::Ptr &otherParticle) const;
+
+ /**
+ * Checks whether the @p extension particle is a valid extension of the @p base particle.
+ */
+ bool isValidParticleExtension(const XsdParticle::Ptr &extension, const XsdParticle::Ptr &base) const;
+
+ /**
+ * Checks whether the @p sequence of elements is accepted by the given @p particle.
+ */
+ bool elementSequenceAccepted(const XsdModelGroup::Ptr &sequence, const XsdParticle::Ptr &particle) const;
+
+ QExplicitlySharedDataPointer<XsdSchemaContext> m_context;
+ NamePool::Ptr m_namePool;
+ XsdSchema::Ptr m_schema;
+ QHash<QXmlName, QSet<XsdFacet::Type> > m_allowedAtomicFacets;
+ QHash<NamedSchemaComponent::Ptr, QSourceLocation> m_componentLocationHash;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemachecker_setup.cpp b/src/xmlpatterns/schema/qxsdschemachecker_setup.cpp
new file mode 100644
index 0000000..b027129
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemachecker_setup.cpp
@@ -0,0 +1,287 @@
+
+#include "qxsdschemachecker_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdSchemaChecker::setupAllowedAtomicFacets()
+{
+ // string
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsString->name(m_namePool), facets);
+ }
+
+ // boolean
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsBoolean->name(m_namePool), facets);
+ }
+
+ // float
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsFloat->name(m_namePool), facets);
+ }
+
+ // double
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsDouble->name(m_namePool), facets);
+ }
+
+ // decimal
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::TotalDigits
+ << XsdFacet::FractionDigits
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsDecimal->name(m_namePool), facets);
+ }
+
+ // duration
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsDuration->name(m_namePool), facets);
+ }
+
+ // dateTime
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsDateTime->name(m_namePool), facets);
+ }
+
+ // time
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsTime->name(m_namePool), facets);
+ }
+
+ // date
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsDate->name(m_namePool), facets);
+ }
+
+ // gYearMonth
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsGYearMonth->name(m_namePool), facets);
+ }
+
+ // gYear
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsGYear->name(m_namePool), facets);
+ }
+
+ // gMonthDay
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsGMonthDay->name(m_namePool), facets);
+ }
+
+ // gDay
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsGDay->name(m_namePool), facets);
+ }
+
+ // gMonth
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::MaximumInclusive
+ << XsdFacet::MaximumExclusive
+ << XsdFacet::MinimumInclusive
+ << XsdFacet::MinimumExclusive
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsGMonth->name(m_namePool), facets);
+ }
+
+ // hexBinary
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsHexBinary->name(m_namePool), facets);
+ }
+
+ // base64Binary
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsBase64Binary->name(m_namePool), facets);
+ }
+
+ // anyURI
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsAnyURI->name(m_namePool), facets);
+ }
+
+ // QName
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsQName->name(m_namePool), facets);
+ }
+
+ // NOTATION
+ {
+ QSet<XsdFacet::Type> facets;
+ facets << XsdFacet::Length
+ << XsdFacet::MinimumLength
+ << XsdFacet::MaximumLength
+ << XsdFacet::Pattern
+ << XsdFacet::Enumeration
+ << XsdFacet::WhiteSpace
+ << XsdFacet::Assertion;
+
+ m_allowedAtomicFacets.insert(BuiltinTypes::xsNOTATION->name(m_namePool), facets);
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemacontext.cpp b/src/xmlpatterns/schema/qxsdschemacontext.cpp
new file mode 100644
index 0000000..4648864
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemacontext.cpp
@@ -0,0 +1,528 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemacontext_p.h"
+
+#include "qderivedinteger_p.h"
+#include "qderivedstring_p.h"
+#include "qxsdschematypesfactory_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaContext::XsdSchemaContext(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+ , m_networkAccessManager(0)
+ , m_uriResolver(0)
+ , m_messageHandler(0)
+{
+}
+
+NamePool::Ptr XsdSchemaContext::namePool() const
+{
+ return m_namePool;
+}
+
+QUrl XsdSchemaContext::baseURI() const
+{
+ return m_baseURI;
+}
+
+void XsdSchemaContext::setBaseURI(const QUrl &uri)
+{
+ m_baseURI = uri;
+}
+
+void XsdSchemaContext::setNetworkAccessManager(QNetworkAccessManager *accessManager)
+{
+ m_networkAccessManager = accessManager;
+}
+
+QNetworkAccessManager* XsdSchemaContext::networkAccessManager() const
+{
+ return m_networkAccessManager;
+}
+
+void XsdSchemaContext::setMessageHandler(QAbstractMessageHandler *handler)
+{
+ m_messageHandler = handler;
+}
+
+QAbstractMessageHandler* XsdSchemaContext::messageHandler() const
+{
+ return m_messageHandler;
+}
+
+QSourceLocation XsdSchemaContext::locationFor(const SourceLocationReflection *const) const
+{
+ return QSourceLocation();
+}
+
+void XsdSchemaContext::setUriResolver(const QAbstractUriResolver *uriResolver)
+{
+ m_uriResolver = uriResolver;
+}
+
+const QAbstractUriResolver* XsdSchemaContext::uriResolver() const
+{
+ return m_uriResolver;
+}
+
+XsdFacet::Hash XsdSchemaContext::facetsForType(const AnySimpleType::Ptr &type) const
+{
+ if (type->isDefinedBySchema())
+ return XsdSimpleType::Ptr(type)->facets();
+ else {
+ if (m_builtinTypesFacetList.isEmpty())
+ m_builtinTypesFacetList = setupBuiltinTypesFacetList();
+
+ return m_builtinTypesFacetList.value(type);
+ }
+}
+
+SchemaTypeFactory::Ptr XsdSchemaContext::schemaTypeFactory() const
+{
+ if (!m_schemaTypeFactory)
+ m_schemaTypeFactory = SchemaTypeFactory::Ptr(new XsdSchemaTypesFactory(m_namePool));
+
+ return m_schemaTypeFactory;
+}
+
+QHash<SchemaType::Ptr, XsdFacet::Hash> XsdSchemaContext::setupBuiltinTypesFacetList() const
+{
+ QHash<SchemaType::Ptr, XsdFacet::Hash> hash;
+
+ const XsdFacet::Ptr fixedCollapseWhiteSpace(new XsdFacet());
+ fixedCollapseWhiteSpace->setType(XsdFacet::WhiteSpace);
+ fixedCollapseWhiteSpace->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Collapse)));
+ fixedCollapseWhiteSpace->setFixed(true);
+
+ const XsdFacet::Ptr collapseWhiteSpace(new XsdFacet());
+ collapseWhiteSpace->setType(XsdFacet::WhiteSpace);
+ collapseWhiteSpace->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Collapse)));
+ collapseWhiteSpace->setFixed(false);
+
+ const XsdFacet::Ptr preserveWhiteSpace(new XsdFacet());
+ preserveWhiteSpace->setType(XsdFacet::WhiteSpace);
+ preserveWhiteSpace->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Preserve)));
+ preserveWhiteSpace->setFixed(false);
+
+ const XsdFacet::Ptr replaceWhiteSpace(new XsdFacet());
+ replaceWhiteSpace->setType(XsdFacet::WhiteSpace);
+ replaceWhiteSpace->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Replace)));
+ replaceWhiteSpace->setFixed(false);
+
+ const XsdFacet::Ptr fixedZeroFractionDigits(new XsdFacet());
+ fixedZeroFractionDigits->setType(XsdFacet::FractionDigits);
+ fixedZeroFractionDigits->setValue(DerivedInteger<TypeNonNegativeInteger>::fromValue(m_namePool, 0));
+ fixedZeroFractionDigits->setFixed(true);
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsString];
+ facets.insert(preserveWhiteSpace->type(), preserveWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsBoolean];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDecimal];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsFloat];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDouble];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDuration];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDateTime];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsTime];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDate];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsGYearMonth];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsGYear];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsGMonthDay];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsGDay];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsGMonth];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsHexBinary];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsBase64Binary];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsAnyURI];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsQName];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNOTATION];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNormalizedString];
+ facets.insert(replaceWhiteSpace->type(), replaceWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsToken];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsLanguage];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+
+ const XsdFacet::Ptr pattern(new XsdFacet());
+ pattern->setType(XsdFacet::Pattern);
+ pattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*")));
+ facets.insert(pattern->type(), pattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNMTOKEN];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+
+ const XsdFacet::Ptr pattern(new XsdFacet());
+ pattern->setType(XsdFacet::Pattern);
+ pattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("\\c+")));
+ facets.insert(pattern->type(), pattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsName];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+
+ const XsdFacet::Ptr pattern(new XsdFacet());
+ pattern->setType(XsdFacet::Pattern);
+ pattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("\\i\\c*")));
+ facets.insert(pattern->type(), pattern);
+ }
+
+ const XsdFacet::Ptr ncNamePattern(new XsdFacet());
+ {
+ ncNamePattern->setType(XsdFacet::Pattern);
+ AtomicValue::List patterns;
+ patterns << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("\\i\\c*"));
+ patterns << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("[\\i-[:]][\\c-[:]]*"));
+ ncNamePattern->setMultiValue(patterns);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNCName];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+ facets.insert(ncNamePattern->type(), ncNamePattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsID];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+ facets.insert(ncNamePattern->type(), ncNamePattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsIDREF];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+ facets.insert(ncNamePattern->type(), ncNamePattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsENTITY];
+ facets.insert(collapseWhiteSpace->type(), collapseWhiteSpace);
+ facets.insert(ncNamePattern->type(), ncNamePattern);
+ }
+
+ const XsdFacet::Ptr integerPattern(new XsdFacet());
+ integerPattern->setType(XsdFacet::Pattern);
+ integerPattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("[\\-+]?[0-9]+")));
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsInteger];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNonPositiveInteger];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("0")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNegativeInteger];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("-1")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsLong];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("9223372036854775807")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+
+ const XsdFacet::Ptr minInclusive(new XsdFacet());
+ minInclusive->setType(XsdFacet::MinimumInclusive);
+ minInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("-9223372036854775808")));
+ facets.insert(minInclusive->type(), minInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsInt];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("2147483647")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+
+ const XsdFacet::Ptr minInclusive(new XsdFacet());
+ minInclusive->setType(XsdFacet::MinimumInclusive);
+ minInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("-2147483648")));
+ facets.insert(minInclusive->type(), minInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsShort];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("32767")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+
+ const XsdFacet::Ptr minInclusive(new XsdFacet());
+ minInclusive->setType(XsdFacet::MinimumInclusive);
+ minInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("-32768")));
+ facets.insert(minInclusive->type(), minInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsByte];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("127")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+
+ const XsdFacet::Ptr minInclusive(new XsdFacet());
+ minInclusive->setType(XsdFacet::MinimumInclusive);
+ minInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("-128")));
+ facets.insert(minInclusive->type(), minInclusive);
+ }
+
+ const XsdFacet::Ptr unsignedMinInclusive(new XsdFacet());
+ unsignedMinInclusive->setType(XsdFacet::MinimumInclusive);
+ unsignedMinInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("0")));
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsNonNegativeInteger];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ facets.insert(unsignedMinInclusive->type(), unsignedMinInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsUnsignedLong];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ facets.insert(unsignedMinInclusive->type(), unsignedMinInclusive);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("18446744073709551615")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsUnsignedInt];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ facets.insert(unsignedMinInclusive->type(), unsignedMinInclusive);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("4294967295")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsUnsignedShort];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ facets.insert(unsignedMinInclusive->type(), unsignedMinInclusive);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("65535")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsUnsignedByte];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+ facets.insert(integerPattern->type(), integerPattern);
+ facets.insert(unsignedMinInclusive->type(), unsignedMinInclusive);
+
+ const XsdFacet::Ptr maxInclusive(new XsdFacet());
+ maxInclusive->setType(XsdFacet::MaximumInclusive);
+ maxInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("255")));
+ facets.insert(maxInclusive->type(), maxInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsPositiveInteger];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+ facets.insert(fixedZeroFractionDigits->type(), fixedZeroFractionDigits);
+
+ const XsdFacet::Ptr minInclusive(new XsdFacet());
+ minInclusive->setType(XsdFacet::MinimumInclusive);
+ minInclusive->setValue(DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("1")));
+ facets.insert(minInclusive->type(), minInclusive);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsYearMonthDuration];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+
+ const XsdFacet::Ptr pattern(new XsdFacet());
+ pattern->setType(XsdFacet::Pattern);
+ pattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("[^DT]*")));
+ facets.insert(pattern->type(), pattern);
+ }
+
+ {
+ XsdFacet::Hash &facets = hash[BuiltinTypes::xsDayTimeDuration];
+ facets.insert(fixedCollapseWhiteSpace->type(), fixedCollapseWhiteSpace);
+
+ const XsdFacet::Ptr pattern(new XsdFacet());
+ pattern->setType(XsdFacet::Pattern);
+ pattern->setMultiValue(AtomicValue::List() << DerivedString<TypeString>::fromLexical(m_namePool, QString::fromLatin1("[^YM]*(T.*)?")));
+ facets.insert(pattern->type(), pattern);
+ }
+
+ return hash;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemacontext_p.h b/src/xmlpatterns/schema/qxsdschemacontext_p.h
new file mode 100644
index 0000000..3aad656
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemacontext_p.h
@@ -0,0 +1,187 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaContext_H
+#define Patternist_XsdSchemaContext_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qreportcontext_p.h"
+#include "qschematypefactory_p.h"
+#include "qxsdschematoken_p.h"
+#include "qxsdschema_p.h"
+#include "qxsdschemachecker_p.h"
+#include "qxsdschemaresolver_p.h"
+
+#include <QtCore/QUrl>
+#include <QtNetwork/QNetworkAccessManager>
+#include <QtXmlPatterns/QAbstractMessageHandler>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A context for schema parsing and validation.
+ *
+ * This class provides the infrastructure for error reporting and
+ * network access. Additionally it stores objects that are used by
+ * both, the parser and the validator.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaContext : public ReportContext
+ {
+ public:
+ /**
+ * A smart pointer wrapping XsdSchemaContext instances.
+ */
+ typedef QExplicitlySharedDataPointer<XsdSchemaContext> Ptr;
+
+ /**
+ * Creates a new schema context object.
+ *
+ * @param namePool The name pool all names belong to.
+ */
+ XsdSchemaContext(const NamePool::Ptr &namePool);
+
+ /**
+ * Returns the name pool of the schema context.
+ */
+ virtual NamePool::Ptr namePool() const;
+
+ /**
+ * Sets the base URI for the main schema.
+ *
+ * The main schema is the one that includes resp. imports
+ * all the other schema files.
+ */
+ virtual void setBaseURI(const QUrl &uri);
+
+ /**
+ * Returns the base URI of the main schema.
+ */
+ virtual QUrl baseURI() const;
+
+ /**
+ * Sets the network access manager that should be used
+ * to access referenced schema definitions.
+ */
+ void setNetworkAccessManager(QNetworkAccessManager *accessManager);
+
+ /**
+ * Returns the network access manager that is used to
+ * access referenced schema definitions.
+ */
+ virtual QNetworkAccessManager* networkAccessManager() const;
+
+ /**
+ * Sets the message @p handler used by the context for error reporting.
+ */
+ void setMessageHandler(QAbstractMessageHandler *handler);
+
+ /**
+ * Returns the message handler used by the context for
+ * error reporting.
+ */
+ virtual QAbstractMessageHandler* messageHandler() const;
+
+ /**
+ * Always returns an empty source location.
+ */
+ virtual QSourceLocation locationFor(const SourceLocationReflection *const reflection) const;
+
+ /**
+ * Sets the uri @p resolver that is used for resolving URIs in the
+ * schema parser.
+ */
+ void setUriResolver(const QAbstractUriResolver *resolver);
+
+ /**
+ * Returns the uri resolver that is used for resolving URIs in the
+ * schema parser.
+ */
+ virtual const QAbstractUriResolver* uriResolver() const;
+
+ /**
+ * Returns the list of facets for the given simple @p type.
+ */
+ XsdFacet::Hash facetsForType(const AnySimpleType::Ptr &type) const;
+
+ /**
+ * Returns a schema type factory that contains some predefined schema types.
+ */
+ SchemaTypeFactory::Ptr schemaTypeFactory() const;
+
+ /**
+ * The following variables should not be accessed directly.
+ */
+ mutable SchemaTypeFactory::Ptr m_schemaTypeFactory;
+ mutable QHash<SchemaType::Ptr, XsdFacet::Hash> m_builtinTypesFacetList;
+
+ private:
+ QHash<SchemaType::Ptr, XsdFacet::Hash> setupBuiltinTypesFacetList() const;
+
+ NamePool::Ptr m_namePool;
+ QNetworkAccessManager* m_networkAccessManager;
+ QUrl m_baseURI;
+ const QAbstractUriResolver* m_uriResolver;
+ QAbstractMessageHandler* m_messageHandler;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemadebugger.cpp b/src/xmlpatterns/schema/qxsdschemadebugger.cpp
new file mode 100644
index 0000000..629333c
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemadebugger.cpp
@@ -0,0 +1,226 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemadebugger_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaDebugger::XsdSchemaDebugger(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+{
+}
+
+void XsdSchemaDebugger::dumpParticle(const XsdParticle::Ptr &particle, int level)
+{
+ QString prefix; prefix.fill(QLatin1Char(' '), level);
+
+ qDebug("%s min=%s max=%s", qPrintable(prefix), qPrintable(QString::number(particle->minimumOccurs())),
+ qPrintable(particle->maximumOccursUnbounded() ? QLatin1String("unbounded") : QString::number(particle->maximumOccurs())));
+
+ if (particle->term()->isElement()) {
+ qDebug("%selement (%s)", qPrintable(prefix), qPrintable(XsdElement::Ptr(particle->term())->displayName(m_namePool)));
+ } else if (particle->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr group(particle->term());
+ if (group->compositor() == XsdModelGroup::SequenceCompositor) {
+ qDebug("%ssequence", qPrintable(prefix));
+ } else if (group->compositor() == XsdModelGroup::AllCompositor) {
+ qDebug("%sall", qPrintable(prefix));
+ } else if (group->compositor() == XsdModelGroup::ChoiceCompositor) {
+ qDebug("%schoice", qPrintable(prefix));
+ }
+
+ for (int i = 0; i < group->particles().count(); ++i)
+ dumpParticle(group->particles().at(i), level + 5);
+ } else if (particle->term()->isWildcard()) {
+ XsdWildcard::Ptr wildcard(particle->term());
+ qDebug("%swildcard (process=%d)", qPrintable(prefix), wildcard->processContents());
+ }
+}
+
+void XsdSchemaDebugger::dumpInheritance(const SchemaType::Ptr &type, int level)
+{
+ QString prefix; prefix.fill(QLatin1Char(' '), level);
+ qDebug("%s-->%s", qPrintable(prefix), qPrintable(type->displayName(m_namePool)));
+ if (type->wxsSuperType())
+ dumpInheritance(type->wxsSuperType(), ++level);
+}
+
+void XsdSchemaDebugger::dumpWildcard(const XsdWildcard::Ptr &wildcard)
+{
+ QVector<QString> varietyNames;
+ varietyNames.append(QLatin1String("Any"));
+ varietyNames.append(QLatin1String("Enumeration"));
+ varietyNames.append(QLatin1String("Not"));
+
+ QVector<QString> processContentsNames;
+ processContentsNames.append(QLatin1String("Strict"));
+ processContentsNames.append(QLatin1String("Lax"));
+ processContentsNames.append(QLatin1String("Skip"));
+
+ qDebug(" processContents: %s", qPrintable(processContentsNames.at((int)wildcard->processContents())));
+ const XsdWildcard::NamespaceConstraint::Ptr constraint = wildcard->namespaceConstraint();
+ qDebug(" variety: %s", qPrintable(varietyNames.at((int)constraint->variety())));
+ if (constraint->variety() != XsdWildcard::NamespaceConstraint::Any)
+ qDebug() << " namespaces:" << constraint->namespaces();
+}
+
+void XsdSchemaDebugger::dumpType(const SchemaType::Ptr &type)
+{
+ if (type->isComplexType()) {
+ const XsdComplexType::Ptr complexType(type);
+ qDebug("\n+++ Complex Type +++");
+ qDebug("Name: %s (abstract: %s)", qPrintable(complexType->displayName(m_namePool)), complexType->isAbstract() ? "yes" : "no");
+ if (complexType->wxsSuperType())
+ qDebug(" base type: %s", qPrintable(complexType->wxsSuperType()->displayName(m_namePool)));
+ else
+ qDebug(" base type: (none)");
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Empty)
+ qDebug(" content type: empty");
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple)
+ qDebug(" content type: simple");
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly)
+ qDebug(" content type: element-only");
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed)
+ qDebug(" content type: mixed");
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (complexType->contentType()->simpleType())
+ qDebug(" simple type: %s", qPrintable(complexType->contentType()->simpleType()->displayName(m_namePool)));
+ else
+ qDebug(" simple type: (none)");
+ }
+
+ const XsdAttributeUse::List uses = complexType->attributeUses();
+ qDebug(" %d attributes", uses.count());
+ for (int i = 0; i < uses.count(); ++i) {
+ qDebug(" attr: %s", qPrintable(uses.at(i)->attribute()->displayName(m_namePool)));
+ }
+ qDebug(" has attribute wildcard: %s", complexType->attributeWildcard() ? "yes" : "no");
+ if (complexType->attributeWildcard()) {
+ dumpWildcard(complexType->attributeWildcard());
+ }
+
+ if (complexType->contentType()->particle()) {
+ dumpParticle(complexType->contentType()->particle(), 5);
+ }
+ } else {
+ qDebug("\n+++ Simple Type +++");
+ qDebug("Name: %s", qPrintable(type->displayName(m_namePool)));
+ if (type->isDefinedBySchema()) {
+ const XsdSimpleType::Ptr simpleType(type);
+ if (simpleType->primitiveType())
+ qDebug(" primitive type: %s", qPrintable(simpleType->primitiveType()->displayName(m_namePool)));
+ else
+ qDebug(" primitive type: (none)");
+ }
+ dumpInheritance(type, 0);
+ }
+}
+
+
+void XsdSchemaDebugger::dumpElement(const XsdElement::Ptr &element)
+{
+ QStringList disallowedSubstGroup;
+ if (element->disallowedSubstitutions() & XsdElement::RestrictionConstraint)
+ disallowedSubstGroup << QLatin1String("restriction");
+ if (element->disallowedSubstitutions() & XsdElement::ExtensionConstraint)
+ disallowedSubstGroup << QLatin1String("extension");
+ if (element->disallowedSubstitutions() & XsdElement::SubstitutionConstraint)
+ disallowedSubstGroup << QLatin1String("substitution");
+
+
+ qDebug() << "Name:" << element->displayName(m_namePool);
+ qDebug() << "IsAbstract:" << (element->isAbstract() ? "yes" : "no");
+ qDebug() << "Type:" << element->type()->displayName(m_namePool);
+ qDebug() << "DisallowedSubstitutionGroups:" << disallowedSubstGroup.join(QLatin1String("' "));
+}
+
+void XsdSchemaDebugger::dumpAttribute(const XsdAttribute::Ptr &attribute)
+{
+ qDebug() << "Name:" << attribute->displayName(m_namePool);
+ qDebug() << "Type:" << attribute->type()->displayName(m_namePool);
+}
+
+void XsdSchemaDebugger::dumpSchema(const XsdSchema::Ptr &schema)
+{
+ qDebug() << "------------------------------ Schema -------------------------------";
+
+ // elements
+ {
+ qDebug() << "Global Elements:";
+ const XsdElement::List elements = schema->elements();
+ for (int i = 0; i < elements.count(); ++i) {
+ dumpElement(elements.at(i));
+ }
+ }
+
+ // attributes
+ {
+ qDebug() << "Global Attributes:";
+ const XsdAttribute::List attributes = schema->attributes();
+ for (int i = 0; i < attributes.count(); ++i) {
+ dumpAttribute(attributes.at(i));
+ }
+ }
+
+ // types
+ {
+ qDebug() << "Global Types:";
+ const SchemaType::List types = schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ dumpType(types.at(i));
+ }
+ }
+
+ // anonymous types
+ {
+ qDebug() << "Anonymous Types:";
+ const SchemaType::List types = schema->anonymousTypes();
+ for (int i = 0; i < types.count(); ++i) {
+ dumpType(types.at(i));
+ }
+ }
+
+ qDebug() << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemadebugger_p.h b/src/xmlpatterns/schema/qxsdschemadebugger_p.h
new file mode 100644
index 0000000..a88f432
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemadebugger_p.h
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaDebugger_H
+#define Patternist_XsdSchemaDebugger_H
+
+#include "qxsdschema_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * A helper class to print out the structure of a compiled schema.
+ */
+ class XsdSchemaDebugger
+ {
+ public:
+ /**
+ * Creates a new schema debugger.
+ *
+ * @param namePool The name pool that the schema uses.
+ */
+ XsdSchemaDebugger(const NamePool::Ptr &namePool);
+
+ /**
+ * Dumps the structure of the given @p particle.
+ *
+ * @param particle The particle to dump.
+ * @param level The level of indention.
+ */
+ void dumpParticle(const XsdParticle::Ptr &particle, int level = 0);
+
+ /**
+ * Dumps the inheritance path of the given @p type.
+ *
+ * @param type The type to dump.
+ * @param level The level of indention.
+ */
+ void dumpInheritance(const SchemaType::Ptr &type, int level = 0);
+
+ /**
+ * Dumps the structure of the given @p wildcard.
+ */
+ void dumpWildcard(const XsdWildcard::Ptr &wildcard);
+
+ /**
+ * Dumps the structure of the given @p type.
+ */
+ void dumpType(const SchemaType::Ptr &type);
+
+ /**
+ * Dumps the structure of the given @p element.
+ */
+ void dumpElement(const XsdElement::Ptr &element);
+
+ /**
+ * Dumps the structure of the given @p attribute.
+ */
+ void dumpAttribute(const XsdAttribute::Ptr &attribute);
+
+ /**
+ * Dumps the structure of the complete @p schema.
+ */
+ void dumpSchema(const XsdSchema::Ptr &schema);
+
+ private:
+ const NamePool::Ptr m_namePool;
+ };
+
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemahelper.cpp b/src/xmlpatterns/schema/qxsdschemahelper.cpp
new file mode 100644
index 0000000..f31ebd6
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemahelper.cpp
@@ -0,0 +1,821 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemahelper_p.h"
+
+#include "qbuiltintypes_p.h"
+#include "qvaluefactory_p.h"
+#include "qxsdcomplextype_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdsimpletype_p.h"
+#include "qxsdtypechecker_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/*
+ * Calculates the effective total range minimum of the given @p particle as
+ * described by the algorithm in the schema spec.
+ */
+static inline unsigned int effectiveTotalRangeMinimum(const XsdParticle::Ptr &particle)
+{
+ const XsdModelGroup::Ptr group = particle->term();
+
+ if (group->compositor() == XsdModelGroup::ChoiceCompositor) {
+ // @see http://www.w3.org/TR/xmlschema11-1/# cos-choice-range
+
+ int minValue = -1;
+
+ const XsdParticle::List particles = group->particles();
+ if (particles.isEmpty())
+ minValue = 0;
+
+ for (int i = 0; i < particles.count(); ++i) {
+ const XsdParticle::Ptr particle = particles.at(i);
+
+ if (particle->term()->isElement() || particle->term()->isWildcard()) {
+ if (minValue == -1) {
+ minValue = particle->minimumOccurs();
+ } else {
+ minValue = qMin((unsigned int)minValue, particle->minimumOccurs());
+ }
+ } else if (particle->term()->isModelGroup()) {
+ if (minValue == -1) {
+ minValue = effectiveTotalRangeMinimum(particle);
+ } else {
+ minValue = qMin((unsigned int)minValue, effectiveTotalRangeMinimum(particle));
+ }
+ }
+ }
+
+ return (particle->minimumOccurs() * minValue);
+
+ } else {
+ // @see http://www.w3.org/TR/xmlschema11-1/# cos-seq-range
+
+ unsigned int sum = 0;
+ const XsdParticle::List particles = group->particles();
+ for (int i = 0; i < particles.count(); ++i) {
+ const XsdParticle::Ptr particle = particles.at(i);
+
+ if (particle->term()->isElement() || particle->term()->isWildcard())
+ sum += particle->minimumOccurs();
+ else if (particle->term()->isModelGroup())
+ sum += effectiveTotalRangeMinimum(particle);
+ }
+
+ return (particle->minimumOccurs() * sum);
+ }
+}
+
+bool XsdSchemaHelper::isParticleEmptiable(const XsdParticle::Ptr &particle)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-group-emptiable
+
+ if (particle->minimumOccurs() == 0)
+ return true;
+
+ if (!(particle->term()->isModelGroup()))
+ return false;
+
+ return (effectiveTotalRangeMinimum(particle) == 0);
+}
+
+bool XsdSchemaHelper::wildcardAllowsNamespaceName(const QString &nameSpace, const XsdWildcard::NamespaceConstraint::Ptr &constraint)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-wildcard-namespace
+
+ // 1
+ if (constraint->variety() == XsdWildcard::NamespaceConstraint::Any)
+ return true;
+
+ // 2
+ if (constraint->variety() == XsdWildcard::NamespaceConstraint::Not) { // 2.1
+ if (!constraint->namespaces().contains(nameSpace)) // 2.2
+ if (nameSpace != XsdWildcard::absentNamespace()) // 2.3
+ return true;
+ }
+
+ // 3
+ if (constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration) {
+ if (constraint->namespaces().contains(nameSpace))
+ return true;
+ }
+
+ return false;
+}
+
+bool XsdSchemaHelper::wildcardAllowsExpandedName(const QXmlName &name, const XsdWildcard::Ptr &wildcard, const NamePool::Ptr &namePool)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-wildcard-name
+
+ // 1
+ if (!wildcardAllowsNamespaceName(namePool->stringForNamespace(name.namespaceURI()), wildcard->namespaceConstraint()))
+ return false;
+
+ // 2, 3, 4
+ //TODO: we have no disallowed namespace yet
+
+ return true;
+}
+
+// small helper function that should be available in Qt 4.6
+template<class T>
+static inline bool containsSet(const QSet<T> &super, const QSet<T> &sub)
+{
+ QSetIterator<T> it(sub);
+ while (it.hasNext()) {
+ if (!super.contains(it.next()))
+ return false;
+ }
+
+ return true;
+}
+
+bool XsdSchemaHelper::isWildcardSubset(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-ns-subset
+ // wildcard =^ sub
+ // otherWildcard =^ super
+
+ const XsdWildcard::NamespaceConstraint::Ptr constraint(wildcard->namespaceConstraint());
+ const XsdWildcard::NamespaceConstraint::Ptr otherConstraint(otherWildcard->namespaceConstraint());
+
+ // 1
+ if (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Any)
+ return true;
+
+ // 2
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration) && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+ if (containsSet<QString>(otherConstraint->namespaces(), constraint->namespaces()))
+ return true;
+ }
+
+ // 3
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration) && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not)) {
+ if (constraint->namespaces().intersect(otherConstraint->namespaces()).isEmpty())
+ return true;
+ }
+
+ // 4
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not)) {
+ if (containsSet<QString>(constraint->namespaces(), otherConstraint->namespaces()))
+ return true;
+ }
+
+ return false;
+}
+
+XsdWildcard::Ptr XsdSchemaHelper::wildcardUnion(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-aw-union
+
+ XsdWildcard::Ptr unionWildcard(new XsdWildcard());
+
+ const XsdWildcard::NamespaceConstraint::Ptr constraint(wildcard->namespaceConstraint());
+ const XsdWildcard::NamespaceConstraint::Ptr otherConstraint(otherWildcard->namespaceConstraint());
+
+ // 1
+ if ((constraint->variety() == otherConstraint->variety()) &&
+ (constraint->namespaces() == otherConstraint->namespaces())) {
+ unionWildcard->namespaceConstraint()->setVariety(constraint->variety());
+ unionWildcard->namespaceConstraint()->setNamespaces(constraint->namespaces());
+ return unionWildcard;
+ }
+
+ // 2
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Any) || (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Any)) {
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ return unionWildcard;
+ }
+
+ // 3
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration) && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ unionWildcard->namespaceConstraint()->setNamespaces(constraint->namespaces() + otherConstraint->namespaces());
+ return unionWildcard;
+ }
+
+ // 4
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not)) {
+ if (constraint->namespaces() != otherConstraint->namespaces()) {
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ unionWildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << XsdWildcard::absentNamespace());
+ return unionWildcard;
+ }
+ }
+
+ // 5
+ QSet<QString> sSet, negatedSet;
+ bool matches5 = false;
+ if (((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) && !constraint->namespaces().contains(XsdWildcard::absentNamespace()))
+ && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ negatedSet = constraint->namespaces();
+ sSet = otherConstraint->namespaces();
+ matches5 = true;
+ } else if (((otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not) && !otherConstraint->namespaces().contains(XsdWildcard::absentNamespace()))
+ && (constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ negatedSet = otherConstraint->namespaces();
+ sSet = constraint->namespaces();
+ matches5 = true;
+ }
+
+ if (matches5) {
+ if (sSet.contains(negatedSet.values().first()) && sSet.contains(XsdWildcard::absentNamespace())) { // 5.1
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ return unionWildcard;
+ }
+ if (sSet.contains(negatedSet.values().first()) && !sSet.contains(XsdWildcard::absentNamespace())) { // 5.2
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ unionWildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << XsdWildcard::absentNamespace());
+ return unionWildcard;
+ }
+ if (!sSet.contains(negatedSet.values().first()) && sSet.contains(XsdWildcard::absentNamespace())) { // 5.3
+ return XsdWildcard::Ptr(); // not expressible
+ }
+ if (!sSet.contains(negatedSet.values().first()) && !sSet.contains(XsdWildcard::absentNamespace())) { // 5.4
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ unionWildcard->namespaceConstraint()->setNamespaces(negatedSet);
+ return unionWildcard;
+ }
+ }
+
+ // 6
+ bool matches6 = false;
+ if (((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) && constraint->namespaces().contains(XsdWildcard::absentNamespace()))
+ && (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ negatedSet = constraint->namespaces();
+ sSet = otherConstraint->namespaces();
+ matches6 = true;
+ } else if (((otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not) && otherConstraint->namespaces().contains(XsdWildcard::absentNamespace()))
+ && (constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ negatedSet = otherConstraint->namespaces();
+ sSet = constraint->namespaces();
+ matches6 = true;
+ }
+
+ if (matches6) {
+ if (sSet.contains(XsdWildcard::absentNamespace())) { // 6.1
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ return unionWildcard;
+ }
+ if (!sSet.contains(XsdWildcard::absentNamespace())) { // 6.2
+ unionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ unionWildcard->namespaceConstraint()->setNamespaces(QSet<QString>() += XsdWildcard::absentNamespace());
+ return unionWildcard;
+ }
+ }
+
+ return XsdWildcard::Ptr();
+}
+
+XsdWildcard::Ptr XsdSchemaHelper::wildcardIntersection(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-aw-intersect
+
+ const XsdWildcard::NamespaceConstraint::Ptr constraint(wildcard->namespaceConstraint());
+ const XsdWildcard::NamespaceConstraint::Ptr otherConstraint(otherWildcard->namespaceConstraint());
+
+ const XsdWildcard::Ptr intersectionWildcard(new XsdWildcard());
+
+ // 1
+ if ((constraint->variety() == otherConstraint->variety()) &&
+ (constraint->namespaces() == otherConstraint->namespaces())) {
+ intersectionWildcard->namespaceConstraint()->setVariety(constraint->variety());
+ intersectionWildcard->namespaceConstraint()->setNamespaces(constraint->namespaces());
+ return intersectionWildcard;
+ }
+
+ // 2
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Any) &&
+ (otherConstraint->variety() != XsdWildcard::NamespaceConstraint::Any)) {
+ intersectionWildcard->namespaceConstraint()->setVariety(otherConstraint->variety());
+ intersectionWildcard->namespaceConstraint()->setNamespaces(otherConstraint->namespaces());
+ return intersectionWildcard;
+ }
+
+ // 2
+ if ((constraint->variety() != XsdWildcard::NamespaceConstraint::Any) &&
+ (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Any)) {
+ intersectionWildcard->namespaceConstraint()->setVariety(constraint->variety());
+ intersectionWildcard->namespaceConstraint()->setNamespaces(constraint->namespaces());
+ return intersectionWildcard;
+ }
+
+ // 3
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) &&
+ (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ QSet<QString> set = otherConstraint->namespaces();
+ set.subtract(constraint->namespaces());
+ set.remove(XsdWildcard::absentNamespace());
+
+ intersectionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ intersectionWildcard->namespaceConstraint()->setNamespaces(set);
+
+ return intersectionWildcard;
+ }
+
+ // 3
+ if ((otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not) &&
+ (constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ QSet<QString> set = constraint->namespaces();
+ set.subtract(otherConstraint->namespaces());
+ set.remove(XsdWildcard::absentNamespace());
+
+ intersectionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ intersectionWildcard->namespaceConstraint()->setNamespaces(set);
+
+ return intersectionWildcard;
+ }
+
+ // 4
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration) &&
+ (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Enumeration)) {
+
+ QSet<QString> set = constraint->namespaces();
+ set.intersect(otherConstraint->namespaces());
+
+ intersectionWildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ intersectionWildcard->namespaceConstraint()->setNamespaces(set);
+
+ return intersectionWildcard;
+ }
+
+ // 6
+ if ((constraint->variety() == XsdWildcard::NamespaceConstraint::Not) &&
+ (otherConstraint->variety() == XsdWildcard::NamespaceConstraint::Not)) {
+ if (!(constraint->namespaces().contains(XsdWildcard::absentNamespace())) && otherConstraint->namespaces().contains(XsdWildcard::absentNamespace())) {
+ return wildcard;
+ }
+ if (constraint->namespaces().contains(XsdWildcard::absentNamespace()) && !(otherConstraint->namespaces().contains(XsdWildcard::absentNamespace()))) {
+ return otherWildcard;
+ }
+ }
+
+ // 5 as not expressible return empty wildcard
+ return XsdWildcard::Ptr();
+}
+
+static SchemaType::DerivationConstraints convertBlockingConstraints(const NamedSchemaComponent::BlockingConstraints &constraints)
+{
+ SchemaType::DerivationConstraints result = 0;
+
+ if (constraints & NamedSchemaComponent::RestrictionConstraint)
+ result |= SchemaType::RestrictionConstraint;
+ if (constraints & NamedSchemaComponent::ExtensionConstraint)
+ result |= SchemaType::ExtensionConstraint;
+
+ return result;
+}
+
+bool XsdSchemaHelper::isValidlySubstitutable(const SchemaType::Ptr &type, const SchemaType::Ptr &otherType, const SchemaType::DerivationConstraints &constraints)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#key-val-sub-type
+
+ // 1
+ if (type->isComplexType() && otherType->isComplexType()) {
+ SchemaType::DerivationConstraints keywords = constraints;
+ if (otherType->isDefinedBySchema())
+ keywords |= convertBlockingConstraints(XsdComplexType::Ptr(otherType)->prohibitedSubstitutions());
+
+ return isComplexDerivationOk(type, otherType, keywords);
+ }
+
+ // 2
+ if (type->isComplexType() && otherType->isSimpleType()) {
+ return isComplexDerivationOk(type, otherType, constraints);
+ }
+
+ // 3
+ if (type->isSimpleType() && otherType->isSimpleType()) {
+ return isSimpleDerivationOk(type, otherType, constraints);
+ }
+
+ return false;
+}
+
+bool XsdSchemaHelper::isSimpleDerivationOk(const SchemaType::Ptr &derivedType, const SchemaType::Ptr &baseType, const SchemaType::DerivationConstraints &constraints)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-st-derived-ok
+
+ // 1
+ if (derivedType == baseType)
+ return true;
+
+ // 2.1
+ if ((constraints & SchemaType::RestrictionConstraint) || derivedType->wxsSuperType()->derivationConstraints() & SchemaType::RestrictionConstraint) {
+ return false;
+ }
+
+ // 2.2.1
+ if (derivedType->wxsSuperType() == baseType)
+ return true;
+
+ // 2.2.2
+ if (derivedType->wxsSuperType() != BuiltinTypes::xsAnyType) {
+ if (isSimpleDerivationOk(derivedType->wxsSuperType(), baseType, constraints))
+ return true;
+ }
+
+ // 2.2.3
+ if (derivedType->category() == SchemaType::SimpleTypeList || derivedType->category() == SchemaType::SimpleTypeUnion) {
+ if (baseType == BuiltinTypes::xsAnySimpleType)
+ return true;
+ }
+
+ // 2.2.4
+ if (baseType->category() == SchemaType::SimpleTypeUnion && baseType->isDefinedBySchema()) { // 2.2.4.1
+ const AnySimpleType::List memberTypes = XsdSimpleType::Ptr(baseType)->memberTypes();
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ if (isSimpleDerivationOk(derivedType, memberTypes.at(i), constraints)) { // 2.2.4.2
+ if (XsdSimpleType::Ptr(baseType)->facets().isEmpty()) { // 2.2.4.3
+ return true;
+ }
+ }
+ }
+ }
+
+ return false;
+}
+
+bool XsdSchemaHelper::isComplexDerivationOk(const SchemaType::Ptr &derivedType, const SchemaType::Ptr &baseType, const SchemaType::DerivationConstraints &constraints)
+{
+ if (!derivedType)
+ return false;
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-ct-derived-ok
+
+ // 1
+ if (derivedType != baseType) {
+ if ((derivedType->derivationMethod() == SchemaType::DerivationRestriction) && (constraints & SchemaType::RestrictionConstraint))
+ return false;
+ if ((derivedType->derivationMethod() == SchemaType::DerivationExtension) && (constraints & SchemaType::ExtensionConstraint))
+ return false;
+ }
+
+ // 2.1
+ if (derivedType == baseType)
+ return true;
+
+ // 2.2
+ if (derivedType->wxsSuperType() == baseType)
+ return true;
+
+ // 2.3
+ bool isOk = true;
+ if (derivedType->wxsSuperType() == BuiltinTypes::xsAnyType) { // 2.3.1
+ isOk = false;
+ } else { // 2.3.2
+ if (!derivedType->wxsSuperType())
+ return false;
+
+ if (derivedType->wxsSuperType()->isComplexType()) { // 2.3.2.1
+ isOk = isComplexDerivationOk(derivedType->wxsSuperType(), baseType, constraints);
+ } else { // 2.3.2.2
+ isOk = isSimpleDerivationOk(derivedType->wxsSuperType(), baseType, constraints);
+ }
+ }
+ if (isOk)
+ return true;
+
+ return false;
+}
+
+bool XsdSchemaHelper::constructAndCompare(const DerivedString<TypeString>::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const DerivedString<TypeString>::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection)
+{
+ Q_ASSERT_X(type->category() == SchemaType::SimpleTypeAtomic, Q_FUNC_INFO,
+ "We can only compare atomic values.");
+
+ // we can not cast a xs:String to a xs:QName, so lets go the safe way
+ if (type->name(context->namePool()) == BuiltinTypes::xsQName->name(context->namePool()))
+ return false;
+
+ const AtomicValue::Ptr value1 = ValueFactory::fromLexical(operand1->stringValue(), type, context, sourceLocationReflection);
+ if (value1->hasError())
+ return false;
+
+ const AtomicValue::Ptr value2 = ValueFactory::fromLexical(operand2->stringValue(), type, context, sourceLocationReflection);
+ if (value2->hasError())
+ return false;
+
+ return ComparisonFactory::compare(value1, op, value2, type, context, sourceLocationReflection);
+}
+
+bool XsdSchemaHelper::checkWildcardProcessContents(const XsdWildcard::Ptr &baseWildcard, const XsdWildcard::Ptr &derivedWildcard)
+{
+ if (baseWildcard->processContents() == XsdWildcard::Strict) {
+ if (derivedWildcard->processContents() == XsdWildcard::Lax || derivedWildcard->processContents() == XsdWildcard::Skip) {
+ return false;
+ }
+ } else if (baseWildcard->processContents() == XsdWildcard::Lax) {
+ if (derivedWildcard->processContents() == XsdWildcard::Skip)
+ return false;
+ }
+
+ return true;
+}
+
+bool XsdSchemaHelper::foundSubstitutionGroupTransitive(const XsdElement::Ptr &head, const XsdElement::Ptr &member, QSet<XsdElement::Ptr> &visitedElements)
+{
+ if (visitedElements.contains(member))
+ return false;
+ else
+ visitedElements.insert(member);
+
+ if (member->substitutionGroupAffiliations().isEmpty())
+ return false;
+
+ if (member->substitutionGroupAffiliations().contains(head)) {
+ return true;
+ } else {
+ const XsdElement::List affiliations = member->substitutionGroupAffiliations();
+ for (int i = 0; i < affiliations.count(); ++i) {
+ if (foundSubstitutionGroupTransitive(head, affiliations.at(i), visitedElements))
+ return true;
+ }
+
+ return false;
+ }
+}
+
+void XsdSchemaHelper::foundSubstitutionGroupTypeInheritance(const SchemaType::Ptr &headType, const SchemaType::Ptr &memberType,
+ QSet<SchemaType::DerivationMethod> &derivationSet, NamedSchemaComponent::BlockingConstraints &blockSet)
+{
+ if (!memberType)
+ return;
+
+ if (memberType == headType)
+ return;
+
+ derivationSet.insert(memberType->derivationMethod());
+
+ if (memberType->isComplexType()) {
+ const XsdComplexType::Ptr complexType(memberType);
+ blockSet |= complexType->prohibitedSubstitutions();
+ }
+
+ foundSubstitutionGroupTypeInheritance(headType, memberType->wxsSuperType(), derivationSet, blockSet);
+}
+
+bool XsdSchemaHelper::substitutionGroupOkTransitive(const XsdElement::Ptr &head, const XsdElement::Ptr &member, const NamePool::Ptr &namePool)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-equiv-derived-ok-rec
+
+ // 1
+ if ((member->name(namePool) == head->name(namePool)) && (member->type() == head->type()))
+ return true;
+
+ // 2.1
+ if (head->disallowedSubstitutions() & NamedSchemaComponent::SubstitutionConstraint)
+ return false;
+
+ // 2.2
+ {
+ QSet<XsdElement::Ptr> visitedElements;
+ if (!foundSubstitutionGroupTransitive(head, member, visitedElements))
+ return false;
+ }
+
+ // 2.3
+ {
+ QSet<SchemaType::DerivationMethod> derivationSet;
+ NamedSchemaComponent::BlockingConstraints blockSet;
+
+ foundSubstitutionGroupTypeInheritance(head->type(), member->type(), derivationSet, blockSet);
+
+ NamedSchemaComponent::BlockingConstraints checkSet(blockSet);
+ checkSet |= head->disallowedSubstitutions();
+ if (head->type()->isComplexType()) {
+ const XsdComplexType::Ptr complexType(head->type());
+ checkSet |= complexType->prohibitedSubstitutions();
+ }
+
+ if ((checkSet & NamedSchemaComponent::RestrictionConstraint) && derivationSet.contains(SchemaType::DerivationRestriction))
+ return false;
+ if ((checkSet & NamedSchemaComponent::ExtensionConstraint) && derivationSet.contains(SchemaType::DerivationExtension))
+ return false;
+ if (checkSet & NamedSchemaComponent::SubstitutionConstraint)
+ return false;
+ }
+
+ return true;
+}
+
+bool XsdSchemaHelper::isValidAttributeGroupRestriction(const XsdAttributeGroup::Ptr &derivedAttributeGroup, const XsdAttributeGroup::Ptr &attributeGroup, const XsdSchemaContext::Ptr &context, QString &errorMsg)
+{
+ // @see http://www.w3.org/TR/xmlschema-1/#derivation-ok-restriction
+
+ const XsdAttributeUse::List derivedAttributeUses = derivedAttributeGroup->attributeUses();
+ const XsdAttributeUse::List baseAttributeUses = attributeGroup->attributeUses();
+
+ return isValidAttributeUsesRestriction(derivedAttributeUses, baseAttributeUses,
+ derivedAttributeGroup->wildcard(), attributeGroup->wildcard(), context, errorMsg);
+}
+
+bool XsdSchemaHelper::isValidAttributeUsesRestriction(const XsdAttributeUse::List &derivedAttributeUses, const XsdAttributeUse::List &baseAttributeUses,
+ const XsdWildcard::Ptr &derivedWildcard, const XsdWildcard::Ptr &wildcard, const XsdSchemaContext::Ptr &context, QString &errorMsg)
+{
+ const NamePool::Ptr namePool(context->namePool());
+
+ QHash<QXmlName, XsdAttributeUse::Ptr> baseAttributeUsesLookup;
+ for (int i = 0; i < baseAttributeUses.count(); ++i)
+ baseAttributeUsesLookup.insert(baseAttributeUses.at(i)->attribute()->name(namePool), baseAttributeUses.at(i));
+
+ QHash<QXmlName, XsdAttributeUse::Ptr> derivedAttributeUsesLookup;
+ for (int i = 0; i < derivedAttributeUses.count(); ++i)
+ derivedAttributeUsesLookup.insert(derivedAttributeUses.at(i)->attribute()->name(namePool), derivedAttributeUses.at(i));
+
+ // 2
+ for (int i = 0; i < derivedAttributeUses.count(); ++i) {
+ const XsdAttributeUse::Ptr derivedAttributeUse = derivedAttributeUses.at(i);
+
+ // prohibited attributes are no real attributes, so skip them in that test here
+ if (derivedAttributeUse->useType() == XsdAttributeUse::ProhibitedUse)
+ continue;
+
+ if (baseAttributeUsesLookup.contains(derivedAttributeUse->attribute()->name(namePool))) {
+ const XsdAttributeUse::Ptr baseAttributeUse(baseAttributeUsesLookup.value(derivedAttributeUse->attribute()->name(namePool)));
+
+ // 2.1.1
+ if (baseAttributeUse->isRequired() == true && derivedAttributeUse->isRequired() == false) {
+ errorMsg = QtXmlPatterns::tr("base attribute %1 is required but derived attribute is not").arg(formatAttribute(baseAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+
+ // 2.1.2
+ if (!isSimpleDerivationOk(derivedAttributeUse->attribute()->type(), baseAttributeUse->attribute()->type(), SchemaType::DerivationConstraints())) {
+ errorMsg = QtXmlPatterns::tr("type of derived attribute %1 cannot be validly derived from type of base attribute").arg(formatAttribute(derivedAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+
+ // 2.1.3
+ XsdAttributeUse::ValueConstraint::Ptr derivedConstraint;
+ if (derivedAttributeUse->valueConstraint())
+ derivedConstraint = derivedAttributeUse->valueConstraint();
+ else if (derivedAttributeUse->attribute()->valueConstraint())
+ derivedConstraint = XsdAttributeUse::ValueConstraint::fromAttributeValueConstraint(derivedAttributeUse->attribute()->valueConstraint());
+
+ XsdAttributeUse::ValueConstraint::Ptr baseConstraint;
+ if (baseAttributeUse->valueConstraint())
+ baseConstraint = baseAttributeUse->valueConstraint();
+ else if (baseAttributeUse->attribute()->valueConstraint())
+ baseConstraint = XsdAttributeUse::ValueConstraint::fromAttributeValueConstraint(baseAttributeUse->attribute()->valueConstraint());
+
+ bool ok = false;
+ if (!baseConstraint || baseConstraint->variety() == XsdAttributeUse::ValueConstraint::Default)
+ ok = true;
+
+ if (derivedConstraint && baseConstraint) {
+ const XsdTypeChecker checker(context, QVector<QXmlName>(), QSourceLocation(QUrl(QLatin1String("http://dummy.org")), 1, 1));
+ if (derivedConstraint->variety() == XsdAttributeUse::ValueConstraint::Fixed && checker.valuesAreEqual(derivedConstraint->value(), baseConstraint->value(), baseAttributeUse->attribute()->type()))
+ ok = true;
+ }
+
+ if (!ok) {
+ errorMsg = QtXmlPatterns::tr("value constraint of derived attribute %1 does not match value constraint of base attribute").arg(formatAttribute(derivedAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+ } else {
+ if (!wildcard) {
+ errorMsg = QtXmlPatterns::tr("derived attribute %1 does not exists in the base definition").arg(formatAttribute(derivedAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+
+ QXmlName name = derivedAttributeUse->attribute()->name(namePool);
+
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ if (name.namespaceURI() == StandardNamespaces::empty)
+ name.setNamespaceURI(namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+
+ if (!wildcardAllowsExpandedName(name, wildcard, namePool)) {
+ errorMsg = QtXmlPatterns::tr("derived attribute %1 does not match the wildcard in the base definition").arg(formatAttribute(derivedAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+ }
+ }
+
+ // 3
+ for (int i = 0; i < baseAttributeUses.count(); ++i) {
+ const XsdAttributeUse::Ptr baseAttributeUse = baseAttributeUses.at(i);
+
+ if (baseAttributeUse->isRequired()) {
+ if (derivedAttributeUsesLookup.contains(baseAttributeUse->attribute()->name(namePool))) {
+ if (!derivedAttributeUsesLookup.value(baseAttributeUse->attribute()->name(namePool))->isRequired()) {
+ errorMsg = QtXmlPatterns::tr("base attribute %1 is required but derived attribute is not").arg(formatAttribute(baseAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+ } else {
+ errorMsg = QtXmlPatterns::tr("base attribute %1 is required but missing in derived definition").arg(formatAttribute(baseAttributeUse->attribute()->displayName(namePool)));
+ return false;
+ }
+ }
+ }
+
+ // 4
+ if (derivedWildcard) {
+ if (!wildcard) {
+ errorMsg = QtXmlPatterns::tr("derived definition contains an %1 element that does not exists in the base definition").arg(formatElement("anyAttribute"));
+ return false;
+ }
+
+ if (!isWildcardSubset(derivedWildcard, wildcard)) {
+ errorMsg = QtXmlPatterns::tr("derived wildcard is not a subset of the base wildcard");
+ return false;
+ }
+
+ if (!checkWildcardProcessContents(wildcard, derivedWildcard)) {
+ errorMsg = QtXmlPatterns::tr("%1 of derived wildcard is not a valid restriction of %2 of base wildcard").arg(formatKeyword("processContents")).arg(formatKeyword("processContents"));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool XsdSchemaHelper::isValidAttributeUsesExtension(const XsdAttributeUse::List &derivedAttributeUses, const XsdAttributeUse::List &attributeUses,
+ const XsdWildcard::Ptr &derivedWildcard, const XsdWildcard::Ptr &wildcard, const XsdSchemaContext::Ptr &context, QString &errorMsg)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cos-ct-extends
+
+ const NamePool::Ptr namePool(context->namePool());
+
+ // 1.2
+ QHash<QXmlName, XsdAttribute::Ptr> lookupHash;
+ for (int i = 0; i < derivedAttributeUses.count(); ++i)
+ lookupHash.insert(derivedAttributeUses.at(i)->attribute()->name(namePool), derivedAttributeUses.at(i)->attribute());
+
+ for (int i = 0; i < attributeUses.count(); ++i) {
+ const QXmlName attributeName = attributeUses.at(i)->attribute()->name(namePool);
+ if (!lookupHash.contains(attributeName)) {
+ errorMsg = QtXmlPatterns::tr("attribute %1 from base type is missing in derived type").arg(formatKeyword(namePool->displayName(attributeName)));
+ return false;
+ }
+
+ if (lookupHash.value(attributeName)->type() != attributeUses.at(i)->attribute()->type()) {
+ errorMsg = QtXmlPatterns::tr("type of derived attribute %1 differs from type of base attribute").arg(formatKeyword(namePool->displayName(attributeName)));
+ return false;
+ }
+ }
+
+ // 1.3
+ if (wildcard) {
+ if (!derivedWildcard) {
+ errorMsg = QtXmlPatterns::tr("base definition contains an %1 element that is missing in the derived definition").arg(formatElement("anyAttribute"));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemahelper_p.h b/src/xmlpatterns/schema/qxsdschemahelper_p.h
new file mode 100644
index 0000000..1335691
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemahelper_p.h
@@ -0,0 +1,217 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaHelper_H
+#define Patternist_XsdSchemaHelper_H
+
+#include "qcomparisonfactory_p.h"
+#include "qschematype_p.h"
+#include "qxsdattributegroup_p.h"
+#include "qxsdelement_p.h"
+#include "qxsdparticle_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdwildcard_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+
+ /**
+ * @short Contains helper methods that are used by XsdSchemaParser, XsdSchemaResolver and XsdSchemaChecker.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaHelper
+ {
+ public:
+ /**
+ * Checks whether the given @p particle is emptiable as defined by the
+ * algorithm in the schema spec.
+ */
+ static bool isParticleEmptiable(const XsdParticle::Ptr &particle);
+
+ /**
+ * Checks whether the given @p nameSpace is allowed by the given namespace @p constraint.
+ */
+ static bool wildcardAllowsNamespaceName(const QString &nameSpace,
+ const XsdWildcard::NamespaceConstraint::Ptr &constraint);
+
+ /**
+ * Checks whether the given @p name is allowed by the namespace constraint of the given @p wildcard.
+ */
+ static bool wildcardAllowsExpandedName(const QXmlName &name,
+ const XsdWildcard::Ptr &wildcard,
+ const NamePool::Ptr &namePool);
+
+ /**
+ * Checks whether the @p wildcard is a subset of @p otherWildcard.
+ */
+ static bool isWildcardSubset(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard);
+
+ /**
+ * Returns the union of the given @p wildcard and @p otherWildcard.
+ */
+ static XsdWildcard::Ptr wildcardUnion(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &otherWildcard);
+
+ /**
+ * Returns the intersection of the given @p wildcard and @p otherWildcard.
+ */
+ static XsdWildcard::Ptr wildcardIntersection(const XsdWildcard::Ptr &wildcard,
+ const XsdWildcard::Ptr &otherWildcard);
+
+ /**
+ * Returns whether the given @p type is validly substitutable for an @p otherType
+ * under the given @p constraints.
+ */
+ static bool isValidlySubstitutable(const SchemaType::Ptr &type,
+ const SchemaType::Ptr &otherType,
+ const SchemaType::DerivationConstraints &constraints);
+
+ /**
+ * Returns whether the simple @p derivedType can be derived from the simple @p baseType
+ * under the given @p constraints.
+ */
+ static bool isSimpleDerivationOk(const SchemaType::Ptr &derivedType,
+ const SchemaType::Ptr &baseType,
+ const SchemaType::DerivationConstraints &constraints);
+
+ /**
+ * Returns whether the complex @p derivedType can be derived from the complex @p baseType
+ * under the given @p constraints.
+ */
+ static bool isComplexDerivationOk(const SchemaType::Ptr &derivedType,
+ const SchemaType::Ptr &baseType,
+ const SchemaType::DerivationConstraints &constraints);
+
+ /**
+ * This method takes the two string based operands @p operand1 and @p operand2 and converts them to instances of type @p type.
+ * If the conversion fails, @c false is returned, otherwise the instances are compared by the given operator @p op and the
+ * result of the comparison is returned.
+ */
+ static bool constructAndCompare(const DerivedString<TypeString>::Ptr &operand1,
+ const AtomicComparator::Operator op,
+ const DerivedString<TypeString>::Ptr &operand2,
+ const SchemaType::Ptr &type,
+ const ReportContext::Ptr &context,
+ const SourceLocationReflection *const sourceLocationReflection);
+
+ /**
+ * Returns whether the process content property of the @p derivedWildcard is valid
+ * according to the process content property of its @p baseWildcard.
+ */
+ static bool checkWildcardProcessContents(const XsdWildcard::Ptr &baseWildcard,
+ const XsdWildcard::Ptr &derivedWildcard);
+
+ /**
+ * Checks whether @[ member is a member of the substitution group with the given @p head.
+ */
+ static bool foundSubstitutionGroupTransitive(const XsdElement::Ptr &head,
+ const XsdElement::Ptr &member,
+ QSet<XsdElement::Ptr> &visitedElements);
+
+ /**
+ * A helper method that iterates over the type hierarchy from @p memberType up to @p headType and collects all
+ * @p derivationSet and @p blockSet constraints that exists on the way there.
+ */
+ static void foundSubstitutionGroupTypeInheritance(const SchemaType::Ptr &headType,
+ const SchemaType::Ptr &memberType,
+ QSet<SchemaType::DerivationMethod> &derivationSet,
+ NamedSchemaComponent::BlockingConstraints &blockSet);
+
+ /**
+ * Checks if the @p member is transitive to @p head.
+ */
+ static bool substitutionGroupOkTransitive(const XsdElement::Ptr &head,
+ const XsdElement::Ptr &member,
+ const NamePool::Ptr &namePool);
+
+ /**
+ * Checks if @p derivedAttributeGroup is a valid restriction for @p attributeGroup.
+ */
+ static bool isValidAttributeGroupRestriction(const XsdAttributeGroup::Ptr &derivedAttributeGroup,
+ const XsdAttributeGroup::Ptr &attributeGroup,
+ const XsdSchemaContext::Ptr &context,
+ QString &errorMsg);
+
+ /**
+ * Checks if @p derivedAttributeUses are a valid restriction for @p attributeUses.
+ */
+ static bool isValidAttributeUsesRestriction(const XsdAttributeUse::List &derivedAttributeUses,
+ const XsdAttributeUse::List &attributeUses,
+ const XsdWildcard::Ptr &derivedWildcard,
+ const XsdWildcard::Ptr &wildcard,
+ const XsdSchemaContext::Ptr &context,
+ QString &errorMsg);
+
+ /**
+ * Checks if @p derivedAttributeUses are a valid extension for @p attributeUses.
+ */
+ static bool isValidAttributeUsesExtension(const XsdAttributeUse::List &derivedAttributeUses,
+ const XsdAttributeUse::List &attributeUses,
+ const XsdWildcard::Ptr &derivedWildcard,
+ const XsdWildcard::Ptr &wildcard,
+ const XsdSchemaContext::Ptr &context,
+ QString &errorMsg);
+
+ private:
+ Q_DISABLE_COPY(XsdSchemaHelper)
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemamerger.cpp b/src/xmlpatterns/schema/qxsdschemamerger.cpp
new file mode 100644
index 0000000..a0f22a2
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemamerger.cpp
@@ -0,0 +1,157 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemamerger_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaMerger::XsdSchemaMerger(const XsdSchema::Ptr &schema, const XsdSchema::Ptr &otherSchema)
+{
+ merge(schema, otherSchema);
+}
+
+XsdSchema::Ptr XsdSchemaMerger::mergedSchema() const
+{
+ return m_mergedSchema;
+}
+
+void XsdSchemaMerger::merge(const XsdSchema::Ptr &schema, const XsdSchema::Ptr &otherSchema)
+{
+ m_mergedSchema = XsdSchema::Ptr(new XsdSchema(otherSchema->namePool()));
+
+ // first fill the merged schema with the values from schema
+ if (schema) {
+ const XsdElement::List elements = schema->elements();
+ for (int i = 0; i < elements.count(); ++i) {
+ m_mergedSchema->addElement(elements.at(i));
+ }
+
+ const XsdAttribute::List attributes = schema->attributes();
+ for (int i = 0; i < attributes.count(); ++i) {
+ m_mergedSchema->addAttribute(attributes.at(i));
+ }
+
+ const SchemaType::List types = schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ m_mergedSchema->addType(types.at(i));
+ }
+
+ const SchemaType::List anonymousTypes = schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ m_mergedSchema->addAnonymousType(anonymousTypes.at(i));
+ }
+
+ const XsdModelGroup::List elementGroups = schema->elementGroups();
+ for (int i = 0; i < elementGroups.count(); ++i) {
+ m_mergedSchema->addElementGroup(elementGroups.at(i));
+ }
+
+ const XsdAttributeGroup::List attributeGroups = schema->attributeGroups();
+ for (int i = 0; i < attributeGroups.count(); ++i) {
+ m_mergedSchema->addAttributeGroup(attributeGroups.at(i));
+ }
+
+ const XsdNotation::List notations = schema->notations();
+ for (int i = 0; i < notations.count(); ++i) {
+ m_mergedSchema->addNotation(notations.at(i));
+ }
+
+ const XsdIdentityConstraint::List identityConstraints = schema->identityConstraints();
+ for (int i = 0; i < identityConstraints.count(); ++i) {
+ m_mergedSchema->addIdentityConstraint(identityConstraints.at(i));
+ }
+ }
+
+ // then merge in the values from the otherSchema
+ {
+ const XsdElement::List elements = otherSchema->elements();
+ for (int i = 0; i < elements.count(); ++i) {
+ if (!m_mergedSchema->element(elements.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addElement(elements.at(i));
+ }
+
+ const XsdAttribute::List attributes = otherSchema->attributes();
+ for (int i = 0; i < attributes.count(); ++i) {
+ if (!m_mergedSchema->attribute(attributes.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addAttribute(attributes.at(i));
+ }
+
+ const SchemaType::List types = otherSchema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (!m_mergedSchema->type(types.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addType(types.at(i));
+ }
+
+ const SchemaType::List anonymousTypes = otherSchema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ // add anonymous type as they are
+ m_mergedSchema->addAnonymousType(anonymousTypes.at(i));
+ }
+
+ const XsdModelGroup::List elementGroups = otherSchema->elementGroups();
+ for (int i = 0; i < elementGroups.count(); ++i) {
+ if (!m_mergedSchema->elementGroup(elementGroups.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addElementGroup(elementGroups.at(i));
+ }
+
+ const XsdAttributeGroup::List attributeGroups = otherSchema->attributeGroups();
+ for (int i = 0; i < attributeGroups.count(); ++i) {
+ if (!m_mergedSchema->attributeGroup(attributeGroups.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addAttributeGroup(attributeGroups.at(i));
+ }
+
+ const XsdNotation::List notations = otherSchema->notations();
+ for (int i = 0; i < notations.count(); ++i) {
+ if (!m_mergedSchema->notation(notations.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addNotation(notations.at(i));
+ }
+
+ const XsdIdentityConstraint::List identityConstraints = otherSchema->identityConstraints();
+ for (int i = 0; i < identityConstraints.count(); ++i) {
+ if (!m_mergedSchema->identityConstraint(identityConstraints.at(i)->name(otherSchema->namePool())))
+ m_mergedSchema->addIdentityConstraint(identityConstraints.at(i));
+ }
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemamerger_p.h b/src/xmlpatterns/schema/qxsdschemamerger_p.h
new file mode 100644
index 0000000..8154689
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemamerger_p.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaMerger_H
+#define Patternist_XsdSchemaMerger_H
+
+#include "qxsdschema_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class that merges two schemas into one.
+ *
+ * This class is used in XsdValidatingInstanceReader to merge the schema
+ * given in the constructor with a schema defined in the instance document
+ * via xsi:schemaLocation or xsi:noNamespaceSchema location.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaMerger : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdSchemaMerger> Ptr;
+
+ /**
+ * Creates a new schema merger object that merges @p schema with @p otherSchema.
+ */
+ XsdSchemaMerger(const XsdSchema::Ptr &schema, const XsdSchema::Ptr &otherSchema);
+
+ /**
+ * Returns the merged schema.
+ */
+ XsdSchema::Ptr mergedSchema() const;
+
+ private:
+ void merge(const XsdSchema::Ptr &schema, const XsdSchema::Ptr &otherSchema);
+
+ XsdSchema::Ptr m_mergedSchema;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemaparser.cpp b/src/xmlpatterns/schema/qxsdschemaparser.cpp
new file mode 100644
index 0000000..b74964d
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaparser.cpp
@@ -0,0 +1,6038 @@
+
+#include "qxsdschemaparser_p.h"
+
+#include "private/qxmlutils_p.h"
+#include "qacceltreeresourceloader_p.h"
+#include "qautoptr_p.h"
+#include "qboolean_p.h"
+#include "qcommonnamespaces_p.h"
+#include "qderivedinteger_p.h"
+#include "qderivedstring_p.h"
+#include "qqnamevalue_p.h"
+#include "qxmlquery_p.h"
+#include "qxpathhelper_p.h"
+#include "qxsdattributereference_p.h"
+#include "qxsdreference_p.h"
+#include "qxsdschematoken_p.h"
+
+#include <QtCore/QFile>
+#include <QtXmlPatterns/QXmlQuery>
+
+QT_BEGIN_NAMESPACE
+
+/**
+ * @page schema_overview Overview
+ * @section structure_and_components Structure and Components
+ *
+ * The schema validator code consists of 4 major components
+ *
+ * <dl>
+ * <dt>The schema parser (QPatternist::XsdSchemaParser)</dt>
+ * <dd>This component parses a XML document that is supplied via a QIODevice. It creates
+ * a so called (incomplete) 'compiled schema', which is a representation of the XML Schema
+ * structure as C++ objects.
+ * As the parser is a streaming parser, it can't resolve references to types or elements/attributes
+ * in place, therefor it creates resolver tasks which are passed to the schema resolver component
+ * for resolving at a later point in time.
+ * The parser does furthermore the basic XML structure constraint checking, e.g. if all required
+ * attributes are available or the order of the elements is correct.</dd>
+ *
+ * <dt>The schema resolver (QPatternist::XsdSchemaResolver)</dt>
+ * <dd>This component is activated after the schema parser component has been finished the parsing
+ * of all schemas. The resolver has been supplied with resolve tasks by the schema parser that
+ * it will resolve in this step now. Between working on the single resolver tasks, the resolver
+ * calls check methods from the schema checker component to make sure that some assertions are
+ * valid (e.g. no circular inheritance of types), so that the resolver can work without hassle.
+ * During resoving references to attribute or element groups it also checks for circular references
+ * of these groups.
+ * At the end of that phase we have a compiled schema that is fully resolved (not necessarily valid though).</dd>
+ *
+ * <dt>The schema checker (QPatternist::XsdSchemaChecker)</dt>
+ * <dd>This component does all the schema constraint checking as given by the Schema specification.
+ * At the end of that phase we have fully resolved and valid compiled schema that can be used for validation
+ * of instance documents.</dd>
+ *
+ * <dt>The validator (QPatternist::XsdValidatingInstanceReader)</dt>
+ * <dd>This component is responsible for validating a XML instance document, provided via a QIODevice, against
+ * a valid compiled schema.</dd>
+ * </dl>
+ *
+ * @ingroup Patternist_schema
+ */
+
+using namespace QPatternist;
+
+namespace QPatternist
+{
+
+/**
+ * @short A helper class for automatically handling namespace scopes of elements.
+ *
+ * This class should be instantiated at the beginning of each parse XYZ method.
+ */
+class ElementNamespaceHandler
+{
+ public:
+ /**
+ * Creates a new element namespace handler object.
+ *
+ * It checks whether the @p parser is on the right @p tag and it creates a new namespace
+ * context that contains the inherited and local namespace declarations.
+ */
+ ElementNamespaceHandler(const XsdSchemaToken::NodeName &tag, XsdSchemaParser *parser)
+ : m_parser(parser)
+ {
+ Q_ASSERT(m_parser->isStartElement() && (XsdSchemaToken::toToken(m_parser->name()) == tag) && (XsdSchemaToken::toToken(m_parser->namespaceUri()) == XsdSchemaToken::XML_NS_SCHEMA_URI));
+ m_parser->m_namespaceSupport.pushContext();
+ m_parser->m_namespaceSupport.setPrefixes(m_parser->namespaceDeclarations());
+ }
+
+ /**
+ * Destroys the element namespace handler object.
+ *
+ * It destroys the local namespace context.
+ */
+ ~ElementNamespaceHandler()
+ {
+ m_parser->m_namespaceSupport.popContext();
+ }
+
+ private:
+ XsdSchemaParser *m_parser;
+};
+
+/**
+ * A helper class that checks for the right occurrence of
+ * xml tags with the help of a DFA.
+ */
+class TagValidationHandler
+{
+ public:
+ TagValidationHandler(XsdTagScope::Type tag, XsdSchemaParser *parser, const NamePool::Ptr &namePool)
+ : m_parser(parser), m_machine(namePool)
+ {
+ Q_ASSERT(m_parser->m_stateMachines.contains(tag));
+
+ m_machine = m_parser->m_stateMachines.value(tag);
+ m_machine.reset();
+ }
+
+ void validate(XsdSchemaToken::NodeName token)
+ {
+ if (token == XsdSchemaToken::NoKeyword) {
+ const QList<XsdSchemaToken::NodeName> tokens = m_machine.possibleTransitions();
+
+ QStringList elementNames;
+ for (int i = 0; i < tokens.count(); ++i)
+ elementNames.append(formatElement(XsdSchemaToken::toString(tokens.at(i))));
+
+ m_parser->error(QtXmlPatterns::tr("can not process unknown element %1, expected elements are: %2")
+ .arg(formatElement(m_parser->name().toString()))
+ .arg(elementNames.join(QLatin1String(", "))));
+ return;
+ }
+
+ if (!m_machine.proceed(token)) {
+ const QList<XsdSchemaToken::NodeName> tokens = m_machine.possibleTransitions();
+
+ QStringList elementNames;
+ for (int i = 0; i < tokens.count(); ++i)
+ elementNames.append(formatElement(XsdSchemaToken::toString(tokens.at(i))));
+
+ m_parser->error(QtXmlPatterns::tr("element %1 is not allowed in this scope, possible elements are: %2")
+ .arg(formatElement(XsdSchemaToken::toString(token)))
+ .arg(elementNames.join(QLatin1String(", "))));
+ return;
+ }
+ }
+
+ void finalize() const
+ {
+ if (!m_machine.inEndState()) {
+ const QList<XsdSchemaToken::NodeName> tokens = m_machine.possibleTransitions();
+
+ QStringList elementNames;
+ for (int i = 0; i < tokens.count(); ++i)
+ elementNames.append(formatElement(XsdSchemaToken::toString(tokens.at(i))));
+
+ m_parser->error(QtXmlPatterns::tr("child element is missing in that scope, possible child elements are: %1")
+ .arg(elementNames.join(QLatin1String(", "))));
+ }
+ }
+
+ private:
+ XsdSchemaParser *m_parser;
+ XsdStateMachine<XsdSchemaToken::NodeName> m_machine;
+};
+
+}
+
+/**
+ * Returns a list of all particles with group references that appear at any level of
+ * the given unresolved @p group.
+ */
+static XsdParticle::List collectGroupRef(const XsdModelGroup::Ptr &group)
+{
+ XsdParticle::List refParticles;
+
+ XsdParticle::List particles = group->particles();
+ for (int i = 0; i < particles.count(); ++i) {
+ if (particles.at(i)->term()->isReference()) {
+ const XsdReference::Ptr reference(particles.at(i)->term());
+ if (reference->type() == XsdReference::ModelGroup)
+ refParticles.append(particles.at(i));
+ }
+ if (particles.at(i)->term()->isModelGroup()) {
+ refParticles << collectGroupRef(XsdModelGroup::Ptr(particles.at(i)->term()));
+ }
+ }
+
+ return refParticles;
+}
+
+/**
+ * Helper function that works around the limited facilities of
+ * QUrl/AnyURI::fromLexical to detect invalid URIs
+ */
+inline static bool isValidUri(const QString &string)
+{
+ // an empty URI points to the current document as defined in RFC 2396 (4.2)
+ if (string.isEmpty())
+ return true;
+
+ // explicit check as that is not checked by the code below
+ if (string.startsWith(QLatin1String("##")))
+ return false;
+
+ const AnyURI::Ptr uri = AnyURI::fromLexical(string);
+ return (!(uri->hasError()));
+}
+
+XsdSchemaParser::XsdSchemaParser(const XsdSchemaContext::Ptr &context, const XsdSchemaParserContext::Ptr &parserContext, QIODevice *device)
+ : MaintainingReader<XsdSchemaToken, XsdTagScope::Type>(parserContext->elementDescriptions(), QSet<XsdSchemaToken::NodeName>(), context, device)
+ , m_context(context)
+ , m_parserContext(parserContext)
+ , m_namePool(m_parserContext->namePool())
+ , m_namespaceSupport(m_namePool)
+{
+ m_schema = m_parserContext->schema();
+ m_schemaResolver = m_parserContext->resolver();
+ m_idCache = XsdIdCache::Ptr(new XsdIdCache());
+
+ setupStateMachines();
+ setupBuiltinTypeNames();
+}
+
+void XsdSchemaParser::setIncludedSchemas(const NamespaceSet &schemas)
+{
+ m_includedSchemas = schemas;
+}
+
+void XsdSchemaParser::setImportedSchemas(const NamespaceSet &schemas)
+{
+ m_importedSchemas = schemas;
+}
+
+void XsdSchemaParser::setRedefinedSchemas(const NamespaceSet &schemas)
+{
+ m_redefinedSchemas = schemas;
+}
+
+void XsdSchemaParser::setTargetNamespace(const QString &targetNamespace)
+{
+ m_targetNamespace = targetNamespace;
+}
+
+void XsdSchemaParser::setTargetNamespaceExtended(const QString &targetNamespace)
+{
+ m_targetNamespace = targetNamespace;
+ m_namespaceSupport.setTargetNamespace(m_namePool->allocateNamespace(m_targetNamespace));
+}
+
+void XsdSchemaParser::setDocumentURI(const QUrl &uri)
+{
+ m_documentURI = uri;
+
+ // prevent to get included/imported/redefined twice
+ m_includedSchemas.insert(uri);
+ m_importedSchemas.insert(uri);
+}
+
+QUrl XsdSchemaParser::documentURI() const
+{
+ return m_documentURI;
+}
+
+bool XsdSchemaParser::isAnyAttributeAllowed() const
+{
+ return false;
+}
+
+bool XsdSchemaParser::parse(ParserType parserType)
+{
+ m_componentLocationHash.clear();
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ if (isSchemaTag(XsdSchemaToken::Schema, token, namespaceToken)) {
+ parseSchema(parserType);
+ } else {
+ error(QtXmlPatterns::tr("document is not a XML schema"));
+ }
+ }
+ }
+
+ m_schemaResolver->addComponentLocationHash(m_componentLocationHash);
+ m_schemaResolver->setDefaultOpenContent(m_defaultOpenContent, m_defaultOpenContentAppliesToEmpty);
+
+ if (QXmlStreamReader::error() != QXmlStreamReader::NoError)
+ error(errorString());
+
+ return true;
+}
+
+void XsdSchemaParser::error(const QString &msg)
+{
+ MaintainingReader<XsdSchemaToken, XsdTagScope::Type>::error(msg, XsdSchemaContext::XSDError);
+}
+
+void XsdSchemaParser::attributeContentError(const char *attributeName, const char *elementName, const QString &value, const SchemaType::Ptr &type)
+{
+ if (type) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element contains invalid content: {%3} is not a value of type %4")
+ .arg(formatAttribute(attributeName))
+ .arg(formatElement(elementName))
+ .arg(formatData(value))
+ .arg(formatType(m_namePool, type)));
+ } else {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element contains invalid content: {%3}")
+ .arg(formatAttribute(attributeName))
+ .arg(formatElement(elementName))
+ .arg(formatData(value)));
+ }
+}
+
+void XsdSchemaParser::parseSchema(ParserType parserType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Schema, this);
+
+ validateElement(XsdTagScope::Schema);
+
+ // parse attributes
+
+ if (parserType == TopLevelParser) {
+ if (hasAttribute(QString::fromLatin1("targetNamespace"))) {
+ m_targetNamespace = readNamespaceAttribute(QString::fromLatin1("targetNamespace"), "schema");
+ }
+ } else if (parserType == IncludeParser) {
+ // m_targetNamespace is set to the target namespace of the including schema at this point
+
+ if (hasAttribute(QString::fromLatin1("targetNamespace"))) {
+ const QString targetNamespace = readNamespaceAttribute(QString::fromLatin1("targetNamespace"), "schema");
+
+ if (m_targetNamespace != targetNamespace) {
+ error(QtXmlPatterns::tr("target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema")
+ .arg(formatURI(targetNamespace)).arg(formatURI(m_targetNamespace)));
+ return;
+ }
+ }
+ } else if (parserType == ImportParser) {
+ // m_targetNamespace is set to the target namespace from the namespace attribute of the <import> tag at this point
+
+ QString targetNamespace;
+ if (hasAttribute(QString::fromLatin1("targetNamespace"))) {
+ targetNamespace = readNamespaceAttribute(QString::fromLatin1("targetNamespace"), "schema");
+ }
+
+ if (m_targetNamespace != targetNamespace) {
+ error(QtXmlPatterns::tr("target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema")
+ .arg(formatURI(targetNamespace)).arg(formatURI(m_targetNamespace)));
+ return;
+ }
+ } else if (parserType == RedefineParser) {
+ // m_targetNamespace is set to the target namespace of the redefining schema at this point
+
+ if (hasAttribute(QString::fromLatin1("targetNamespace"))) {
+ const QString targetNamespace = readNamespaceAttribute(QString::fromLatin1("targetNamespace"), "schema");
+
+ if (m_targetNamespace != targetNamespace) {
+ error(QtXmlPatterns::tr("target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema")
+ .arg(formatURI(targetNamespace)).arg(formatURI(m_targetNamespace)));
+ return;
+ }
+ }
+ }
+
+ if (hasAttribute(QString::fromLatin1("attributeFormDefault"))) {
+ const QString value = readAttribute(QString::fromLatin1("attributeFormDefault"));
+ if (value != QString::fromLatin1("qualified") && value != QString::fromLatin1("unqualified")) {
+ attributeContentError("attributeFormDefault", "schema", value);
+ return;
+ }
+
+ m_attributeFormDefault = value;
+ } else {
+ m_attributeFormDefault = QString::fromLatin1("unqualified");
+ }
+
+ if (hasAttribute(QString::fromLatin1("elementFormDefault"))) {
+ const QString value = readAttribute(QString::fromLatin1("elementFormDefault"));
+ if (value != QString::fromLatin1("qualified") && value != QString::fromLatin1("unqualified")) {
+ attributeContentError("elementFormDefault", "schema", value);
+ return;
+ }
+
+ m_elementFormDefault = value;
+ } else {
+ m_elementFormDefault = QString::fromLatin1("unqualified");
+ }
+
+ if (hasAttribute(QString::fromLatin1("blockDefault"))) {
+ const QString blockDefault = readAttribute(QString::fromLatin1("blockDefault"));
+ const QStringList blockDefaultList = blockDefault.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < blockDefaultList.count(); ++i) {
+ const QString value = blockDefaultList.at(i);
+ if (value != QString::fromLatin1("#all") &&
+ value != QString::fromLatin1("extension") &&
+ value != QString::fromLatin1("restriction") &&
+ value != QString::fromLatin1("substitution")) {
+ attributeContentError("blockDefault", "schema", value);
+ return;
+ }
+ }
+
+ m_blockDefault = blockDefault;
+ }
+
+ if (hasAttribute(QString::fromLatin1("finalDefault"))) {
+ const QString finalDefault = readAttribute(QString::fromLatin1("finalDefault"));
+ const QStringList finalDefaultList = finalDefault.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < finalDefaultList.count(); ++i) {
+ const QString value = finalDefaultList.at(i);
+ if (value != QString::fromLatin1("#all") &&
+ value != QString::fromLatin1("extension") &&
+ value != QString::fromLatin1("restriction") &&
+ value != QString::fromLatin1("list") &&
+ value != QString::fromLatin1("union")) {
+ attributeContentError("finalDefault", "schema", value);
+ return;
+ }
+ }
+
+ m_finalDefault = finalDefault;
+ }
+
+ if (hasAttribute(QString::fromLatin1("xpathDefaultNamespace"))) {
+ const QString xpathDefaultNamespace = readAttribute(QString::fromLatin1("xpathDefaultNamespace"));
+ if (xpathDefaultNamespace != QString::fromLatin1("##defaultNamespace") &&
+ xpathDefaultNamespace != QString::fromLatin1("##targetNamespace") &&
+ xpathDefaultNamespace != QString::fromLatin1("##local")) {
+ if (!isValidUri(xpathDefaultNamespace)) {
+ attributeContentError("xpathDefaultNamespace", "schema", xpathDefaultNamespace);
+ return;
+ }
+ }
+ m_xpathDefaultNamespace = xpathDefaultNamespace;
+ } else {
+ m_xpathDefaultNamespace = QString::fromLatin1("##local");
+ }
+
+ if (hasAttribute(QString::fromLatin1("defaultAttributes"))) {
+ const QString attrGroupName = readQNameAttribute(QString::fromLatin1("defaultAttributes"), "schema");
+ convertName(attrGroupName, NamespaceSupport::ElementName, m_defaultAttributes); // translate qualified name into QXmlName
+ }
+
+ if (hasAttribute(QString::fromLatin1("version"))) {
+ const QString version = readAttribute(QString::fromLatin1("version"));
+ }
+
+ if (hasAttribute(CommonNamespaces::XML, QString::fromLatin1("lang"))) {
+ const QString value = readAttribute(QString::fromLatin1("lang"), CommonNamespaces::XML);
+
+ const QRegExp exp(QString::fromLatin1("[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"));
+ if (!exp.exactMatch(value)) {
+ attributeContentError("xml:lang", "schema", value);
+ return;
+ }
+ }
+
+ validateIdAttribute("schema");
+
+ TagValidationHandler tagValidator(XsdTagScope::Schema, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Include, token, namespaceToken)) {
+ parseInclude();
+ } else if (isSchemaTag(XsdSchemaToken::Import, token, namespaceToken)) {
+ parseImport();
+ } else if (isSchemaTag(XsdSchemaToken::Redefine, token, namespaceToken)) {
+ parseRedefine();
+ } else if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ m_schema->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::DefaultOpenContent, token, namespaceToken)) {
+ parseDefaultOpenContent();
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ const XsdSimpleType::Ptr type = parseGlobalSimpleType();
+ addType(type);
+ } else if (isSchemaTag(XsdSchemaToken::ComplexType, token, namespaceToken)) {
+ const XsdComplexType::Ptr type = parseGlobalComplexType();
+ addType(type);
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdModelGroup::Ptr group = parseNamedGroup();
+ addElementGroup(group);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ XsdAttributeGroup::Ptr attributeGroup = parseNamedAttributeGroup();
+ addAttributeGroup(attributeGroup);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdElement::Ptr element = parseGlobalElement();
+ addElement(element);
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttribute::Ptr attribute = parseGlobalAttribute();
+ addAttribute(attribute);
+ } else if (isSchemaTag(XsdSchemaToken::Notation, token, namespaceToken)) {
+ const XsdNotation::Ptr notation = parseNotation();
+ addNotation(notation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ m_schema->setTargetNamespace(m_targetNamespace);
+}
+
+void XsdSchemaParser::parseInclude()
+{
+ Q_ASSERT(isStartElement() && XsdSchemaToken::toToken(name()) == XsdSchemaToken::Include &&
+ XsdSchemaToken::toToken(namespaceUri()) == XsdSchemaToken::XML_NS_SCHEMA_URI);
+
+ validateElement(XsdTagScope::Include);
+
+ // parse attributes
+ const QString schemaLocation = readAttribute(QString::fromLatin1("schemaLocation"));
+
+ QUrl url(schemaLocation);
+ if (url.isRelative()) {
+ Q_ASSERT(m_documentURI.isValid());
+
+ url = m_documentURI.resolved(url);
+ }
+
+ if (m_includedSchemas.contains(url)) {
+ // we have included that file already, according to the schema spec we are
+ // allowed to silently skip it.
+ } else {
+ m_includedSchemas.insert(url);
+
+ const AutoPtr<QNetworkReply> reply(AccelTreeResourceLoader::load(url, m_context->networkAccessManager(),
+ m_context, AccelTreeResourceLoader::ContinueOnError));
+ if (reply) {
+ // parse the included schema by a different parser but with the same context
+ XsdSchemaParser parser(m_context, m_parserContext, reply.data());
+ parser.setDocumentURI(url);
+ parser.setTargetNamespaceExtended(m_targetNamespace);
+ parser.setIncludedSchemas(m_includedSchemas);
+ parser.setImportedSchemas(m_importedSchemas);
+ parser.setRedefinedSchemas(m_redefinedSchemas);
+ if (!parser.parse(XsdSchemaParser::IncludeParser))
+ return;
+ }
+ }
+
+ validateIdAttribute("include");
+
+ TagValidationHandler tagValidator(XsdTagScope::Include, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ m_schema->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseImport()
+{
+ Q_ASSERT(isStartElement() && XsdSchemaToken::toToken(name()) == XsdSchemaToken::Import &&
+ XsdSchemaToken::toToken(namespaceUri()) == XsdSchemaToken::XML_NS_SCHEMA_URI);
+
+ validateElement(XsdTagScope::Import);
+
+ // parse attributes
+ QString importNamespace;
+ if (hasAttribute(QString::fromLatin1("namespace"))) {
+ importNamespace = readAttribute(QString::fromLatin1("namespace"));
+ if (importNamespace == m_targetNamespace) {
+ error(QtXmlPatterns::tr("%1 element is not allowed to have the same %2 attribute value as the target namespace %3")
+ .arg(formatElement("import"))
+ .arg(formatAttribute("namespace"))
+ .arg(formatURI(m_targetNamespace)));
+ return;
+ }
+ } else {
+ if (m_targetNamespace.isEmpty()) {
+ error(QtXmlPatterns::tr("%1 element without %2 attribute is not allowed inside schema without target namespace")
+ .arg(formatElement("import"))
+ .arg(formatAttribute("namespace")));
+ return;
+ }
+ }
+
+ if (hasAttribute(QString::fromLatin1("schemaLocation"))) {
+ const QString schemaLocation = readAttribute(QString::fromLatin1("schemaLocation"));
+
+ QUrl url(schemaLocation);
+ if (url.isRelative()) {
+ Q_ASSERT(m_documentURI.isValid());
+
+ url = m_documentURI.resolved(url);
+ }
+
+ if (m_importedSchemas.contains(url)) {
+ // we have imported that file already, according to the schema spec we are
+ // allowed to silently skip it.
+ } else {
+ m_importedSchemas.insert(url);
+
+ // as it is possible that well known schemas (e.g. XSD for XML) are only referenced by
+ // namespace we should add it as well
+ m_importedSchemas.insert(importNamespace);
+
+ AutoPtr<QNetworkReply> reply(AccelTreeResourceLoader::load(url, m_context->networkAccessManager(),
+ m_context, AccelTreeResourceLoader::ContinueOnError));
+ if (reply) {
+ // parse the included schema by a different parser but with the same context
+ XsdSchemaParser parser(m_context, m_parserContext, reply.data());
+ parser.setDocumentURI(url);
+ parser.setTargetNamespace(importNamespace);
+ parser.setIncludedSchemas(m_includedSchemas);
+ parser.setImportedSchemas(m_importedSchemas);
+ parser.setRedefinedSchemas(m_redefinedSchemas);
+ if (!parser.parse(XsdSchemaParser::ImportParser))
+ return;
+ }
+ }
+ } else {
+ // check whether it is a known namespace we have a builtin schema for
+ if (!importNamespace.isEmpty()) {
+ if (!m_importedSchemas.contains(importNamespace)) {
+ m_importedSchemas.insert(importNamespace);
+
+ QFile file(QString::fromLatin1(":") + importNamespace);
+ if (file.open(QIODevice::ReadOnly)) {
+ XsdSchemaParser parser(m_context, m_parserContext, &file);
+ parser.setDocumentURI(importNamespace);
+ parser.setTargetNamespace(importNamespace);
+ parser.setIncludedSchemas(m_includedSchemas);
+ parser.setImportedSchemas(m_importedSchemas);
+ parser.setRedefinedSchemas(m_redefinedSchemas);
+ if (!parser.parse(XsdSchemaParser::ImportParser))
+ return;
+ }
+ }
+ } else {
+ // we don't import anything... that is valid according to the schema
+ }
+ }
+
+ validateIdAttribute("import");
+
+ TagValidationHandler tagValidator(XsdTagScope::Import, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ m_schema->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseRedefine()
+{
+ Q_ASSERT(isStartElement() && XsdSchemaToken::toToken(name()) == XsdSchemaToken::Redefine &&
+ XsdSchemaToken::toToken(namespaceUri()) == XsdSchemaToken::XML_NS_SCHEMA_URI);
+
+ validateElement(XsdTagScope::Redefine);
+
+ // parse attributes
+ validateIdAttribute("redefine");
+
+ const QString schemaLocation = readAttribute(QString::fromLatin1("schemaLocation"));
+
+ TagValidationHandler tagValidator(XsdTagScope::Redefine, this, m_namePool);
+
+ XsdSimpleType::List redefinedSimpleTypes;
+ XsdComplexType::List redefinedComplexTypes;
+ XsdModelGroup::List redefinedGroups;
+ XsdAttributeGroup::List redefinedAttributeGroups;
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ m_schema->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ const XsdSimpleType::Ptr type = parseGlobalSimpleType();
+ redefinedSimpleTypes.append(type);
+
+ const QXmlName baseTypeName = m_parserContext->resolver()->baseTypeNameOfType(type);
+ if (baseTypeName != type->name(m_namePool)) {
+ error(QString::fromLatin1("redefined simple type %1 must have itself as base type").arg(formatType(m_namePool, type)));
+ return;
+ }
+ } else if (isSchemaTag(XsdSchemaToken::ComplexType, token, namespaceToken)) {
+ const XsdComplexType::Ptr type = parseGlobalComplexType();
+ redefinedComplexTypes.append(type);
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#src-redefine
+
+ // 5
+ const QXmlName baseTypeName = m_parserContext->resolver()->baseTypeNameOfType(type);
+ if (baseTypeName != type->name(m_namePool)) {
+ error(QString::fromLatin1("redefined complex type %1 must have itself as base type").arg(formatType(m_namePool, type)));
+ return;
+ }
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdModelGroup::Ptr group = parseNamedGroup();
+ redefinedGroups.append(group);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeGroup::Ptr group = parseNamedAttributeGroup();
+ redefinedAttributeGroups.append(group);
+
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ bool locationMustResolve = false;
+ if (!redefinedSimpleTypes.isEmpty() || !redefinedComplexTypes.isEmpty() ||
+ !redefinedGroups.isEmpty() || !redefinedAttributeGroups.isEmpty()) {
+ locationMustResolve = true;
+ }
+
+ QUrl url(schemaLocation);
+ if (url.isRelative()) {
+ Q_ASSERT(m_documentURI.isValid());
+
+ url = m_documentURI.resolved(url);
+ }
+
+ // we parse the schema given in the redefine tag into its own context
+ const XsdSchemaParserContext::Ptr redefinedContext(new XsdSchemaParserContext(m_namePool, m_context));
+
+ if (m_redefinedSchemas.contains(url)) {
+ // we have redefined that file already, according to the schema spec we are
+ // allowed to silently skip it.
+ } else {
+ m_redefinedSchemas.insert(url);
+ QNetworkReply *reply = AccelTreeResourceLoader::load(url, m_context->networkAccessManager(),
+ m_context,
+ (locationMustResolve ? AccelTreeResourceLoader::FailOnError : AccelTreeResourceLoader::ContinueOnError));
+ if (reply) {
+ // parse the included schema by a different parser but with the same context
+ XsdSchemaParser parser(m_context, redefinedContext, reply);
+ parser.setDocumentURI(url);
+ parser.setTargetNamespaceExtended(m_targetNamespace);
+ parser.setIncludedSchemas(m_includedSchemas);
+ parser.setImportedSchemas(m_importedSchemas);
+ parser.setRedefinedSchemas(m_redefinedSchemas);
+ if (!parser.parse(XsdSchemaParser::RedefineParser))
+ return;
+
+ delete reply;
+ }
+ }
+
+ XsdSimpleType::List contextSimpleTypes = redefinedContext->schema()->simpleTypes();
+ XsdComplexType::List contextComplexTypes = redefinedContext->schema()->complexTypes();
+ XsdModelGroup::List contextGroups = redefinedContext->schema()->elementGroups();
+ XsdAttributeGroup::List contextAttributeGroups = redefinedContext->schema()->attributeGroups();
+
+ // now we do the actual redefinition:
+
+ // iterate over all redefined simple types
+ for (int i = 0; i < redefinedSimpleTypes.count(); ++i) {
+ XsdSimpleType::Ptr redefinedType = redefinedSimpleTypes.at(i);
+
+ //TODONEXT: validation
+
+ // search the definition they override in the context types
+ bool found = false;
+ for (int j = 0; j < contextSimpleTypes.count(); ++j) {
+ XsdSimpleType::Ptr contextType = contextSimpleTypes.at(j);
+
+ if (redefinedType->name(m_namePool) == contextType->name(m_namePool)) { // we found the right type
+ found = true;
+
+ // 1) set name of context type to empty name
+ contextType->setName(m_parserContext->createAnonymousName(QString()));
+
+ // 2) set the context type as base type for the redefined type
+ redefinedType->setWxsSuperType(contextType);
+
+ // 3) remove the base type resolving job from the resolver as
+ // we have set the base type here explicitely
+ m_parserContext->resolver()->removeSimpleRestrictionBase(redefinedType);
+
+ // 4) add the redefined type to the schema
+ addType(redefinedType);
+
+ // 5) add the context type as anonymous type, so the resolver
+ // can resolve it further.
+ addAnonymousType(contextType);
+
+ // 6) remove the context type from the list
+ contextSimpleTypes.removeAt(j);
+
+ break;
+ }
+ }
+
+ if (!found) {
+ error(QString::fromLatin1("no matching type found to redefine simple type %1").arg(formatType(m_namePool, redefinedType)));
+ return;
+ }
+ }
+
+ // add all remaining context simple types to the schema
+ for (int i = 0; i < contextSimpleTypes.count(); ++i) {
+ addType(contextSimpleTypes.at(i));
+ }
+
+ // iterate over all redefined complex types
+ for (int i = 0; i < redefinedComplexTypes.count(); ++i) {
+ XsdComplexType::Ptr redefinedType = redefinedComplexTypes.at(i);
+
+ //TODONEXT: validation
+
+ // search the definition they override in the context types
+ bool found = false;
+ for (int j = 0; j < contextComplexTypes.count(); ++j) {
+ XsdComplexType::Ptr contextType = contextComplexTypes.at(j);
+
+ if (redefinedType->name(m_namePool) == contextType->name(m_namePool)) { // we found the right type
+ found = true;
+
+ // 1) set name of context type to empty name
+ contextType->setName(m_parserContext->createAnonymousName(QString()));
+
+ // 2) set the context type as base type for the redefined type
+ redefinedType->setWxsSuperType(contextType);
+
+ // 3) remove the base type resolving job from the resolver as
+ // we have set the base type here explicitely
+ m_parserContext->resolver()->removeComplexBaseType(redefinedType);
+
+ // 4) add the redefined type to the schema
+ addType(redefinedType);
+
+ // 5) add the context type as anonymous type, so the resolver
+ // can resolve its attribute uses etc.
+ addAnonymousType(contextType);
+
+ // 6) remove the context type from the list
+ contextComplexTypes.removeAt(j);
+
+ break;
+ }
+ }
+
+ if (!found) {
+ error(QString::fromLatin1("no matching type found to redefine complex type %1").arg(formatType(m_namePool, redefinedType)));
+ return;
+ }
+ }
+
+ // iterate over all redefined element groups
+ for (int i = 0; i < redefinedGroups.count(); ++i) {
+ const XsdModelGroup::Ptr group(redefinedGroups.at(i));
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#src-redefine
+
+ // 6
+ const XsdParticle::List particles = collectGroupRef(group);
+ XsdParticle::Ptr referencedParticle;
+ int sameNameCounter = 0;
+ for (int i = 0; i < particles.count(); ++i) {
+ const XsdReference::Ptr ref(particles.at(i)->term());
+ if (ref->referenceName() == group->name(m_namePool)) {
+ referencedParticle = particles.at(i);
+
+ if (referencedParticle->minimumOccurs() != 1 || referencedParticle->maximumOccurs() != 1 || referencedParticle->maximumOccursUnbounded()) { // 6.1.2
+ error(QString::fromLatin1("redefined group %1 can not contain reference to itself with minOccurs or maxOccurs != 1").arg(formatKeyword(group->displayName(m_namePool))));
+ return;
+ }
+ sameNameCounter++;
+ }
+ }
+
+ // 6.1.1
+ if (sameNameCounter > 1) {
+ error(QString::fromLatin1("redefined group %1 can not contain multiple references to itself").arg(formatKeyword(group->displayName(m_namePool))));
+ return;
+ }
+
+ // search the group definition in the included schema (S2)
+ XsdModelGroup::Ptr contextGroup;
+ for (int j = 0; j < contextGroups.count(); ++j) {
+ if (group->name(m_namePool) == contextGroups.at(j)->name(m_namePool)) {
+ contextGroup = contextGroups.at(j);
+ break;
+ }
+ }
+
+ if (!contextGroup) { // 6.2.1
+ error(QString::fromLatin1("redefined group %1 has no occurrence in included schema").arg(formatKeyword(group->displayName(m_namePool))));
+ return;
+ }
+
+ if (sameNameCounter == 1) {
+ // there was a self reference in the redefined group, so use the
+ // group from the included schema
+
+ // set a anonymous name to the group of the included schema
+ contextGroup->setName(m_parserContext->createAnonymousName(m_namePool->stringForNamespace(contextGroup->name(m_namePool).namespaceURI())));
+
+ // replace the self-reference with the group from the included schema
+ referencedParticle->setTerm(contextGroup);
+
+ addElementGroup(group);
+
+ addElementGroup(contextGroup);
+ contextGroups.removeAll(contextGroup);
+ } else {
+ // there was no self reference in the redefined group
+
+ // just add the redefined group...
+ addElementGroup(group);
+
+ // we have to add them, otherwise it is not resolved and we can't validate it later
+ contextGroup->setName(m_parserContext->createAnonymousName(m_namePool->stringForNamespace(contextGroup->name(m_namePool).namespaceURI())));
+ addElementGroup(contextGroup);
+
+ m_schemaResolver->addRedefinedGroups(group, contextGroup);
+
+ // ...and forget about the group from the included schema
+ contextGroups.removeAll(contextGroup);
+ }
+ }
+
+ // iterate over all redefined attribute groups
+ for (int i = 0; i < redefinedAttributeGroups.count(); ++i) {
+ const XsdAttributeGroup::Ptr group(redefinedAttributeGroups.at(i));
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#src-redefine
+
+ // 7
+
+ // 7.1
+ int sameNameCounter = 0;
+ for (int j = 0; j < group->attributeUses().count(); ++j) {
+ const XsdAttributeUse::Ptr attributeUse(group->attributeUses().at(j));
+ if (attributeUse->isReference()) {
+ const XsdAttributeReference::Ptr reference(attributeUse);
+ if (reference->type() == XsdAttributeReference::AttributeGroup) {
+ if (group->name(m_namePool) == reference->referenceName())
+ sameNameCounter++;
+ }
+ }
+ }
+ if (sameNameCounter > 1) {
+ error(QString::fromLatin1("redefined attribute group %1 can not contain multiple references to itself").arg(formatKeyword(group->displayName(m_namePool))));
+ return;
+ }
+
+ // search the attribute group definition in the included schema (S2)
+ XsdAttributeGroup::Ptr baseGroup;
+ for (int j = 0; j < contextAttributeGroups.count(); ++j) {
+ const XsdAttributeGroup::Ptr contextGroup(contextAttributeGroups.at(j));
+ if (group->name(m_namePool) == contextGroup->name(m_namePool)) {
+ baseGroup = contextGroup;
+ break;
+ }
+ }
+
+ if (!baseGroup) { // 7.2.1
+ error(QString::fromLatin1("redefined attribute group %1 has no occurrence in included schema").arg(formatKeyword(group->displayName(m_namePool))));
+ return;
+ }
+
+ if (sameNameCounter == 1) {
+
+ // first set an anonymous name to the attribute group from the included
+ // schema
+ baseGroup->setName(m_parserContext->createAnonymousName(m_namePool->stringForNamespace(baseGroup->name(m_namePool).namespaceURI())));
+
+ // iterate over the attribute uses of the redefined attribute group
+ // and replace the self-reference with the attribute group from the
+ // included schema
+ for (int j = 0; j < group->attributeUses().count(); ++j) {
+ const XsdAttributeUse::Ptr attributeUse(group->attributeUses().at(j));
+ if (attributeUse->isReference()) {
+ const XsdAttributeReference::Ptr reference(attributeUse);
+ if (reference->type() == XsdAttributeReference::AttributeGroup) {
+ if (group->name(m_namePool) == reference->referenceName()) {
+ reference->setReferenceName(baseGroup->name(m_namePool));
+ break;
+ }
+ }
+ }
+ }
+
+ // add both groups to the target schema
+ addAttributeGroup(baseGroup);
+ addAttributeGroup(group);
+
+ contextAttributeGroups.removeAll(baseGroup);
+ }
+
+ if (sameNameCounter == 0) { // 7.2
+
+ // we have to add them, otherwise it is not resolved and we can't validate it later
+ baseGroup->setName(m_parserContext->createAnonymousName(m_namePool->stringForNamespace(baseGroup->name(m_namePool).namespaceURI())));
+ addAttributeGroup(baseGroup);
+
+ m_schemaResolver->addRedefinedAttributeGroups(group, baseGroup);
+
+ // just add the redefined attribute group to the target schema...
+ addAttributeGroup(group);
+
+ // ... and forget about the one from the included schema
+ contextAttributeGroups.removeAll(baseGroup);
+ }
+ }
+
+ // add all remaining context complex types to the schema
+ for (int i = 0; i < contextComplexTypes.count(); ++i) {
+ addType(contextComplexTypes.at(i));
+ }
+
+ // add all remaining context element groups to the schema
+ for (int i = 0; i < contextGroups.count(); ++i) {
+ addElementGroup(contextGroups.at(i));
+ }
+
+ // add all remaining context attribute groups to the schema
+ for (int i = 0; i < contextAttributeGroups.count(); ++i) {
+ addAttributeGroup(contextAttributeGroups.at(i));
+ }
+
+ // copy all elements, attributes and notations
+ const XsdElement::List contextElements = redefinedContext->schema()->elements();
+ for (int i = 0; i < contextElements.count(); ++i) {
+ addElement(contextElements.at(i));
+ }
+
+ const XsdAttribute::List contextAttributes = redefinedContext->schema()->attributes();
+ for (int i = 0; i < contextAttributes.count(); ++i) {
+ addAttribute(contextAttributes.at(i));
+ }
+
+ const XsdNotation::List contextNotations = redefinedContext->schema()->notations();
+ for (int i = 0; i < contextNotations.count(); ++i) {
+ addNotation(contextNotations.at(i));
+ }
+
+ // push all data to resolve from the context resolver to our resolver
+ redefinedContext->resolver()->copyDataTo(m_parserContext->resolver());
+
+ tagValidator.finalize();
+}
+
+XsdAnnotation::Ptr XsdSchemaParser::parseAnnotation()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Annotation, this);
+
+ validateElement(XsdTagScope::Annotation);
+
+ // parse attributes
+ validateIdAttribute("annotation");
+
+ TagValidationHandler tagValidator(XsdTagScope::Annotation, this, m_namePool);
+
+ const XsdAnnotation::Ptr annotation(new XsdAnnotation());
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Appinfo, token, namespaceToken)) {
+ const XsdApplicationInformation::Ptr info = parseAppInfo();
+ annotation->addApplicationInformation(info);
+ } else if (isSchemaTag(XsdSchemaToken::Documentation, token, namespaceToken)) {
+ const XsdDocumentation::Ptr documentation = parseDocumentation();
+ annotation->addDocumentation(documentation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return annotation;
+}
+
+XsdApplicationInformation::Ptr XsdSchemaParser::parseAppInfo()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Appinfo, this);
+
+ validateElement(XsdTagScope::AppInfo);
+
+ const XsdApplicationInformation::Ptr info(new XsdApplicationInformation());
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("source"))) {
+ const QString value = readAttribute(QString::fromLatin1("source"));
+
+ if (!isValidUri(value)) {
+ attributeContentError("source", "appinfo", value, BuiltinTypes::xsAnyURI);
+ return info;
+ }
+
+ if (!value.isEmpty()) {
+ const AnyURI::Ptr source = AnyURI::fromLexical(value);
+ info->setSource(source);
+ }
+ }
+
+ while (!atEnd()) { //EVAL: can be anything... what to do?
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement())
+ parseUnknownDocumentation();
+ }
+
+ return info;
+}
+
+XsdDocumentation::Ptr XsdSchemaParser::parseDocumentation()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Documentation, this);
+
+ validateElement(XsdTagScope::Documentation);
+
+ const XsdDocumentation::Ptr documentation(new XsdDocumentation());
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("source"))) {
+ const QString value = readAttribute(QString::fromLatin1("source"));
+
+ if (!isValidUri(value)) {
+ attributeContentError("source", "documentation", value, BuiltinTypes::xsAnyURI);
+ return documentation;
+ }
+
+ if (!value.isEmpty()) {
+ const AnyURI::Ptr source = AnyURI::fromLexical(value);
+ documentation->setSource(source);
+ }
+ }
+
+ if (hasAttribute(CommonNamespaces::XML, QString::fromLatin1("lang"))) {
+ const QString value = readAttribute(QString::fromLatin1("lang"), CommonNamespaces::XML);
+
+ const QRegExp exp(QString::fromLatin1("[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"));
+ if (!exp.exactMatch(value)) {
+ attributeContentError("xml:lang", "documentation", value);
+ return documentation;
+ }
+ }
+
+ while (!atEnd()) { //EVAL: can by any... what to do?
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement())
+ parseUnknownDocumentation();
+ }
+
+ return documentation;
+}
+
+void XsdSchemaParser::parseDefaultOpenContent()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::DefaultOpenContent, this);
+
+ validateElement(XsdTagScope::DefaultOpenContent);
+
+ m_defaultOpenContent = XsdComplexType::OpenContent::Ptr(new XsdComplexType::OpenContent());
+
+ if (hasAttribute(QString::fromLatin1("appliesToEmpty"))) {
+ const QString value = readAttribute(QString::fromLatin1("appliesToEmpty"));
+ const Boolean::Ptr appliesToEmpty = Boolean::fromLexical(value);
+ if (appliesToEmpty->hasError()) {
+ attributeContentError("appliesToEmpty", "defaultOpenContent", value, BuiltinTypes::xsBoolean);
+ return;
+ }
+
+ m_defaultOpenContentAppliesToEmpty = appliesToEmpty->as<Boolean>()->value();
+ } else {
+ m_defaultOpenContentAppliesToEmpty = false;
+ }
+
+ if (hasAttribute(QString::fromLatin1("mode"))) {
+ const QString mode = readAttribute(QString::fromLatin1("mode"));
+
+ if (mode == QString::fromLatin1("interleave")) {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::Interleave);
+ } else if (mode == QString::fromLatin1("suffix")) {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::Suffix);
+ } else {
+ attributeContentError("mode", "defaultOpenContent", mode);
+ return;
+ }
+ } else {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::Interleave);
+ }
+
+ validateIdAttribute("defaultOpenContent");
+
+ TagValidationHandler tagValidator(XsdTagScope::DefaultOpenContent, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ m_defaultOpenContent->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle;
+ const XsdWildcard::Ptr wildcard = parseAny(particle);
+ m_defaultOpenContent->setWildcard(wildcard);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+XsdSimpleType::Ptr XsdSchemaParser::parseGlobalSimpleType()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::SimpleType, this);
+
+ validateElement(XsdTagScope::GlobalSimpleType);
+
+ const XsdSimpleType::Ptr simpleType(new XsdSimpleType());
+ simpleType->setCategory(XsdSimpleType::SimpleTypeAtomic); // just to make sure it's not invalid
+
+ // parse attributes
+ const SchemaType::DerivationConstraints allowedConstraints(SchemaType::ExtensionConstraint | SchemaType::RestrictionConstraint | SchemaType::ListConstraint | SchemaType::UnionConstraint);
+ simpleType->setDerivationConstraints(readDerivationConstraintAttribute(allowedConstraints, "simpleType"));
+
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("simpleType"));
+ simpleType->setName(objectName);
+
+ validateIdAttribute("simpleType");
+
+ TagValidationHandler tagValidator(XsdTagScope::GlobalSimpleType, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ simpleType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Restriction, token, namespaceToken)) {
+ parseSimpleRestriction(simpleType);
+ } else if (isSchemaTag(XsdSchemaToken::List, token, namespaceToken)) {
+ parseList(simpleType);
+ } else if (isSchemaTag(XsdSchemaToken::Union, token, namespaceToken)) {
+ parseUnion(simpleType);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return simpleType;
+}
+
+XsdSimpleType::Ptr XsdSchemaParser::parseLocalSimpleType()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::SimpleType, this);
+
+ validateElement(XsdTagScope::LocalSimpleType);
+
+ const XsdSimpleType::Ptr simpleType(new XsdSimpleType());
+ simpleType->setCategory(XsdSimpleType::SimpleTypeAtomic); // just to make sure it's not invalid
+ simpleType->setName(m_parserContext->createAnonymousName(m_targetNamespace));
+
+ validateIdAttribute("simpleType");
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalSimpleType, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ simpleType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Restriction, token, namespaceToken)) {
+ parseSimpleRestriction(simpleType);
+ } else if (isSchemaTag(XsdSchemaToken::List, token, namespaceToken)) {
+ parseList(simpleType);
+ } else if (isSchemaTag(XsdSchemaToken::Union, token, namespaceToken)) {
+ parseUnion(simpleType);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return simpleType;
+}
+
+void XsdSchemaParser::parseSimpleRestriction(const XsdSimpleType::Ptr &ptr)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Restriction, this);
+
+ validateElement(XsdTagScope::SimpleRestriction);
+
+ ptr->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+
+ // The base attribute and simpleType member are mutually exclusive,
+ // so we keep track of that
+ bool hasBaseAttribute = false;
+ bool hasBaseTypeSpecified = false;
+
+ QXmlName baseName;
+ if (hasAttribute(QString::fromLatin1("base"))) {
+ const QString base = readQNameAttribute(QString::fromLatin1("base"), "restriction");
+ convertName(base, NamespaceSupport::ElementName, baseName); // translate qualified name into QXmlName
+ m_schemaResolver->addSimpleRestrictionBase(ptr, baseName, currentSourceLocation()); // add to resolver
+
+ hasBaseAttribute = true;
+ hasBaseTypeSpecified = true;
+ }
+ validateIdAttribute("restriction");
+
+ XsdFacet::Hash facets;
+ QList<XsdFacet::Ptr> patternFacets;
+ QList<XsdFacet::Ptr> enumerationFacets;
+ QList<XsdFacet::Ptr> assertionFacets;
+
+ TagValidationHandler tagValidator(XsdTagScope::SimpleRestriction, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ ptr->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasBaseAttribute) {
+ error(QtXmlPatterns::tr("%1 element is not allowed inside %2 element if %3 attribute is present")
+ .arg(formatElement("simpleType"))
+ .arg(formatElement("restriction"))
+ .arg(formatAttribute("base")));
+ return;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(ptr);
+ ptr->setWxsSuperType(type);
+ ptr->setCategory(type->category());
+ hasBaseTypeSpecified = true;
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else if (isSchemaTag(XsdSchemaToken::MinExclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinExclusiveFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::MinInclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinInclusiveFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::MaxExclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxExclusiveFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::MaxInclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxInclusiveFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::TotalDigits, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseTotalDigitsFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::FractionDigits, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseFractionDigitsFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::Length, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseLengthFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::MinLength, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinLengthFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::MaxLength, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxLengthFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::Enumeration, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseEnumerationFacet();
+ enumerationFacets.append(facet);
+ } else if (isSchemaTag(XsdSchemaToken::WhiteSpace, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseWhiteSpaceFacet();
+ addFacet(facet, facets, ptr);
+ } else if (isSchemaTag(XsdSchemaToken::Pattern, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parsePatternFacet();
+ patternFacets.append(facet);
+ } else if (isSchemaTag(XsdSchemaToken::Assertion, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseAssertionFacet();
+ assertionFacets.append(facet);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasBaseTypeSpecified) {
+ error(QtXmlPatterns::tr("%1 element has neither %2 attribute nor %3 child element")
+ .arg(formatElement("restriction"))
+ .arg(formatAttribute("base"))
+ .arg(formatElement("simpleType")));
+ return;
+ }
+
+ // merge all pattern facets into one multi value facet
+ if (!patternFacets.isEmpty()) {
+ const XsdFacet::Ptr patternFacet(new XsdFacet());
+ patternFacet->setType(XsdFacet::Pattern);
+
+ AtomicValue::List multiValue;
+ for (int i = 0; i < patternFacets.count(); ++i)
+ multiValue << patternFacets.at(i)->multiValue();
+
+ patternFacet->setMultiValue(multiValue);
+ addFacet(patternFacet, facets, ptr);
+ }
+
+ // merge all enumeration facets into one multi value facet
+ if (!enumerationFacets.isEmpty()) {
+ const XsdFacet::Ptr enumerationFacet(new XsdFacet());
+ enumerationFacet->setType(XsdFacet::Enumeration);
+
+ AtomicValue::List multiValue;
+ for (int i = 0; i < enumerationFacets.count(); ++i)
+ multiValue << enumerationFacets.at(i)->multiValue();
+
+ enumerationFacet->setMultiValue(multiValue);
+ addFacet(enumerationFacet, facets, ptr);
+ }
+
+ // merge all assertion facets into one facet
+ if (!assertionFacets.isEmpty()) {
+ const XsdFacet::Ptr assertionFacet(new XsdFacet());
+ assertionFacet->setType(XsdFacet::Assertion);
+
+ XsdAssertion::List assertions;
+ for (int i = 0; i < assertionFacets.count(); ++i)
+ assertions << assertionFacets.at(i)->assertions();
+
+ assertionFacet->setAssertions(assertions);
+ addFacet(assertionFacet, facets, ptr);
+ }
+
+ ptr->setFacets(facets);
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseList(const XsdSimpleType::Ptr &ptr)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::List, this);
+
+ validateElement(XsdTagScope::List);
+
+ ptr->setCategory(XsdSimpleType::SimpleTypeList);
+ ptr->setDerivationMethod(XsdSimpleType::DerivationList);
+ ptr->setWxsSuperType(BuiltinTypes::xsAnySimpleType);
+
+ // The itemType attribute and simpleType member are mutually exclusive,
+ // so we keep track of that
+ bool hasItemTypeAttribute = false;
+ bool hasItemTypeSpecified = false;
+
+ if (hasAttribute(QString::fromLatin1("itemType"))) {
+ const QString itemType = readQNameAttribute(QString::fromLatin1("itemType"), "list");
+ QXmlName typeName;
+ convertName(itemType, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addSimpleListType(ptr, typeName, currentSourceLocation()); // add to resolver
+
+ hasItemTypeAttribute = true;
+ hasItemTypeSpecified = true;
+ }
+
+ validateIdAttribute("list");
+
+ TagValidationHandler tagValidator(XsdTagScope::List, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ ptr->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasItemTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element is not allowed inside %2 element if %3 attribute is present")
+ .arg(formatElement("simpleType"))
+ .arg(formatElement("list"))
+ .arg(formatAttribute("itemType")));
+ return;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(ptr);
+ ptr->setItemType(type);
+
+ hasItemTypeSpecified = true;
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasItemTypeSpecified) {
+ error(QtXmlPatterns::tr("%1 element has neither %2 attribute nor %3 child element")
+ .arg(formatElement("list"))
+ .arg(formatAttribute("itemType"))
+ .arg(formatElement("simpleType")));
+ return;
+ }
+
+ tagValidator.finalize();
+
+ // add the default white space facet that every simple type with list derivation has
+ const XsdFacet::Ptr defaultFacet(new XsdFacet());
+ defaultFacet->setType(XsdFacet::WhiteSpace);
+ defaultFacet->setFixed(true);
+ defaultFacet->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Collapse)));
+ XsdFacet::Hash facets;
+ facets.insert(defaultFacet->type(), defaultFacet);
+ ptr->setFacets(facets);
+}
+
+void XsdSchemaParser::parseUnion(const XsdSimpleType::Ptr &ptr)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Union, this);
+
+ validateElement(XsdTagScope::Union);
+
+ ptr->setCategory(XsdSimpleType::SimpleTypeUnion);
+ ptr->setDerivationMethod(XsdSimpleType::DerivationUnion);
+ ptr->setWxsSuperType(BuiltinTypes::xsAnySimpleType);
+
+ // The memberTypes attribute is not allowed to be empty,
+ // so we keep track of that
+ bool hasMemberTypesAttribute = false;
+ bool hasMemberTypesSpecified = false;
+
+ if (hasAttribute(QString::fromLatin1("memberTypes"))) {
+ hasMemberTypesAttribute = true;
+
+ const QStringList memberTypes = readAttribute(QString::fromLatin1("memberTypes")).split(QLatin1Char(' '), QString::SkipEmptyParts);
+ QList<QXmlName> typeNames;
+
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ QXmlName typeName;
+ convertName(memberTypes.at(i), NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ typeNames.append(typeName);
+ }
+
+ if (!typeNames.isEmpty()) {
+ m_schemaResolver->addSimpleUnionTypes(ptr, typeNames, currentSourceLocation()); // add to resolver
+ hasMemberTypesSpecified = true;
+ }
+ }
+
+ validateIdAttribute("union");
+
+ AnySimpleType::List memberTypes;
+
+ TagValidationHandler tagValidator(XsdTagScope::Union, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ ptr->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(ptr);
+ memberTypes.append(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!memberTypes.isEmpty()) {
+ ptr->setMemberTypes(memberTypes);
+ hasMemberTypesSpecified = true;
+ }
+
+ if (!hasMemberTypesSpecified) {
+ error(QtXmlPatterns::tr("%1 element has neither %2 attribute nor %3 child element")
+ .arg(formatElement("union"))
+ .arg(formatAttribute("memberTypes"))
+ .arg(formatElement("simpleType")));
+ return;
+ }
+
+ tagValidator.finalize();
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMinExclusiveFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MinExclusive, this);
+
+ validateElement(XsdTagScope::MinExclusiveFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MinimumExclusive);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "minExclusive", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ // as minExclusive can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "minExclusive", value, BuiltinTypes::xsAnySimpleType);
+ return facet;
+ } else {
+ facet->setValue(string);
+ }
+
+ validateIdAttribute("minExclusive");
+
+ TagValidationHandler tagValidator(XsdTagScope::MinExclusiveFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMinInclusiveFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MinInclusive, this);
+
+ validateElement(XsdTagScope::MinInclusiveFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MinimumInclusive);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "minInclusive", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ // as minInclusive can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "minInclusive", value, BuiltinTypes::xsAnySimpleType);
+ return facet;
+ } else {
+ facet->setValue(string);
+ }
+
+ validateIdAttribute("minInclusive");
+
+ TagValidationHandler tagValidator(XsdTagScope::MinInclusiveFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMaxExclusiveFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MaxExclusive, this);
+
+ validateElement(XsdTagScope::MaxExclusiveFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MaximumExclusive);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "maxExclusive", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ // as maxExclusive can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "maxExclusive", value, BuiltinTypes::xsAnySimpleType);
+ return facet;
+ } else {
+ facet->setValue(string);
+ }
+
+ validateIdAttribute("maxExclusive");
+
+ TagValidationHandler tagValidator(XsdTagScope::MaxExclusiveFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMaxInclusiveFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MaxInclusive, this);
+
+ validateElement(XsdTagScope::MaxInclusiveFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MaximumInclusive);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "maxInclusive", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ // as maxInclusive can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "maxInclusive", value, BuiltinTypes::xsAnySimpleType);
+ return facet;
+ } else {
+ facet->setValue(string);
+ }
+
+ validateIdAttribute("maxInclusive");
+
+ TagValidationHandler tagValidator(XsdTagScope::MaxInclusiveFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseTotalDigitsFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::TotalDigits, this);
+
+ validateElement(XsdTagScope::TotalDigitsFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::TotalDigits);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "totalDigits", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedInteger<TypePositiveInteger>::Ptr integer = DerivedInteger<TypePositiveInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("value", "totalDigits", value, BuiltinTypes::xsPositiveInteger);
+ return facet;
+ } else {
+ facet->setValue(integer);
+ }
+
+ validateIdAttribute("totalDigits");
+
+ TagValidationHandler tagValidator(XsdTagScope::TotalDigitsFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseFractionDigitsFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::FractionDigits, this);
+
+ validateElement(XsdTagScope::FractionDigitsFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::FractionDigits);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "fractionDigits", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("value", "fractionDigits", value, BuiltinTypes::xsNonNegativeInteger);
+ return facet;
+ } else {
+ facet->setValue(integer);
+ }
+
+ validateIdAttribute("fractionDigits");
+
+ TagValidationHandler tagValidator(XsdTagScope::FractionDigitsFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseLengthFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Length, this);
+
+ validateElement(XsdTagScope::LengthFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::Length);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "length", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("value", "length", value, BuiltinTypes::xsNonNegativeInteger);
+ return facet;
+ } else {
+ facet->setValue(integer);
+ }
+
+ validateIdAttribute("length");
+
+ TagValidationHandler tagValidator(XsdTagScope::LengthFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMinLengthFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MinLength, this);
+
+ validateElement(XsdTagScope::MinLengthFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MinimumLength);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "minLength", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("value", "minLength", value, BuiltinTypes::xsNonNegativeInteger);
+ return facet;
+ } else {
+ facet->setValue(integer);
+ }
+
+ validateIdAttribute("minLength");
+
+ TagValidationHandler tagValidator(XsdTagScope::MinLengthFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseMaxLengthFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::MaxLength, this);
+
+ validateElement(XsdTagScope::MaxLengthFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::MaximumLength);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "maxLength", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("value", "maxLength", value, BuiltinTypes::xsNonNegativeInteger);
+ return facet;
+ } else {
+ facet->setValue(integer);
+ }
+
+ validateIdAttribute("maxLength");
+
+ TagValidationHandler tagValidator(XsdTagScope::MaxLengthFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseEnumerationFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Enumeration, this);
+
+ validateElement(XsdTagScope::EnumerationFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::Enumeration);
+
+ // parse attributes
+ facet->setFixed(false); // not defined in schema, but can't hurt
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+
+ // as enumeration can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "enumeration", value);
+ return facet;
+ } else {
+ AtomicValue::List multiValue;
+ multiValue << string;
+ facet->setMultiValue(multiValue);
+ }
+ m_schemaResolver->addEnumerationFacetValue(string, m_namespaceSupport);
+
+ validateIdAttribute("enumeration");
+
+ TagValidationHandler tagValidator(XsdTagScope::EnumerationFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseWhiteSpaceFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::WhiteSpace, this);
+
+ validateElement(XsdTagScope::WhiteSpaceFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::WhiteSpace);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ const Boolean::Ptr fixed = Boolean::fromLexical(value);
+ if (fixed->hasError()) {
+ attributeContentError("fixed", "whiteSpace", value, BuiltinTypes::xsBoolean);
+ return facet;
+ }
+
+ facet->setFixed(fixed->as<Boolean>()->value());
+ } else {
+ facet->setFixed(false); // the default value
+ }
+
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ if (value != XsdSchemaToken::toString(XsdSchemaToken::Collapse) &&
+ value != XsdSchemaToken::toString(XsdSchemaToken::Preserve) &&
+ value != XsdSchemaToken::toString(XsdSchemaToken::Replace)) {
+ attributeContentError("value", "whiteSpace", value);
+ return facet;
+ } else {
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "whiteSpace", value);
+ return facet;
+ } else {
+ facet->setValue(string);
+ }
+ }
+
+ validateIdAttribute("whiteSpace");
+
+ TagValidationHandler tagValidator(XsdTagScope::WhiteSpaceFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parsePatternFacet()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Pattern, this);
+
+ validateElement(XsdTagScope::PatternFacet);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::Pattern);
+
+ // parse attributes
+
+ // as pattern can have a value of type anySimpleType, we just read
+ // the string here and store it for later intepretation
+ const QString value = readAttribute(QString::fromLatin1("value"));
+ DerivedString<TypeString>::Ptr string = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ if (string->hasError()) {
+ attributeContentError("value", "pattern", value);
+ return facet;
+ } else {
+ AtomicValue::List multiValue;
+ multiValue << string;
+ facet->setMultiValue(multiValue);
+ }
+
+ validateIdAttribute("pattern");
+
+ TagValidationHandler tagValidator(XsdTagScope::PatternFacet, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ facet->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return facet;
+}
+
+XsdFacet::Ptr XsdSchemaParser::parseAssertionFacet()
+{
+ // this is just a wrapper function around the parseAssertion() method
+
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assertion, XsdTagScope::Assertion);
+
+ const XsdFacet::Ptr facet = XsdFacet::Ptr(new XsdFacet());
+ facet->setType(XsdFacet::Assertion);
+ facet->setAssertions(XsdAssertion::List() << assertion);
+
+ return facet;
+}
+
+XsdComplexType::Ptr XsdSchemaParser::parseGlobalComplexType()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::ComplexType, this);
+
+ validateElement(XsdTagScope::GlobalComplexType);
+
+ bool hasTypeSpecified = false;
+ bool hasComplexContent = false;
+
+ const XsdComplexType::Ptr complexType(new XsdComplexType());
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("abstract"))) {
+ const QString abstract = readAttribute(QString::fromLatin1("abstract"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(abstract);
+ if (value->hasError()) {
+ attributeContentError("abstract", "complexType", abstract, BuiltinTypes::xsBoolean);
+ return complexType;
+ }
+
+ complexType->setIsAbstract(value->as<Boolean>()->value());
+ } else {
+ complexType->setIsAbstract(false); // default value
+ }
+
+ complexType->setProhibitedSubstitutions(readBlockingConstraintAttribute(NamedSchemaComponent::ExtensionConstraint | NamedSchemaComponent::RestrictionConstraint, "complexType"));
+ complexType->setDerivationConstraints(readDerivationConstraintAttribute(SchemaType::ExtensionConstraint | SchemaType::RestrictionConstraint, "complexType"));
+
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("complexType"));
+ complexType->setName(objectName);
+
+ bool effectiveMixed = false;
+ if (hasAttribute(QString::fromLatin1("mixed"))) {
+ const QString mixed = readAttribute(QString::fromLatin1("mixed"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(mixed);
+ if (value->hasError()) {
+ attributeContentError("mixed", "complexType", mixed, BuiltinTypes::xsBoolean);
+ return complexType;
+ }
+
+ effectiveMixed = value->as<Boolean>()->value();
+ }
+
+ validateIdAttribute("complexType");
+
+ TagValidationHandler tagValidator(XsdTagScope::GlobalComplexType, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleContent, token, namespaceToken)) {
+ if (effectiveMixed) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("complexType"))
+ .arg(formatElement("simpleContent"))
+ .arg(formatAttribute("mixed")));
+ return complexType;
+ }
+
+ parseSimpleContent(complexType);
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::ComplexContent, token, namespaceToken)) {
+ bool mixed;
+ parseComplexContent(complexType, &mixed);
+ hasTypeSpecified = true;
+
+ effectiveMixed = (effectiveMixed || mixed);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::OpenContent, token, namespaceToken)) {
+ const XsdComplexType::OpenContent::Ptr openContent = parseOpenContent();
+ complexType->contentType()->setOpenContent(openContent);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::All, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalAll(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ if (!hasTypeSpecified) {
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ }
+
+ if (hasComplexContent == true) {
+ resolveComplexContentType(complexType, effectiveMixed);
+ }
+
+ return complexType;
+}
+
+XsdComplexType::Ptr XsdSchemaParser::parseLocalComplexType()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::ComplexType, this);
+
+ validateElement(XsdTagScope::LocalComplexType);
+
+ bool hasTypeSpecified = false;
+ bool hasComplexContent = true;
+
+ const XsdComplexType::Ptr complexType(new XsdComplexType());
+ complexType->setName(m_parserContext->createAnonymousName(m_targetNamespace));
+
+ // parse attributes
+ bool effectiveMixed = false;
+ if (hasAttribute(QString::fromLatin1("mixed"))) {
+ const QString mixed = readAttribute(QString::fromLatin1("mixed"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(mixed);
+ if (value->hasError()) {
+ attributeContentError("mixed", "complexType", mixed, BuiltinTypes::xsBoolean);
+ return complexType;
+ }
+
+ effectiveMixed = value->as<Boolean>()->value();
+ }
+
+ validateIdAttribute("complexType");
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalComplexType, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleContent, token, namespaceToken)) {
+ parseSimpleContent(complexType);
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::ComplexContent, token, namespaceToken)) {
+ bool mixed;
+ parseComplexContent(complexType, &mixed);
+ hasTypeSpecified = true;
+
+ effectiveMixed = (effectiveMixed || mixed);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::OpenContent, token, namespaceToken)) {
+ const XsdComplexType::OpenContent::Ptr openContent = parseOpenContent();
+ complexType->contentType()->setOpenContent(openContent);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::All, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalAll(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ if (!hasTypeSpecified) {
+ complexType->setWxsSuperType(BuiltinTypes::xsAnyType);
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ hasComplexContent = true;
+ }
+
+ if (hasComplexContent == true) {
+ resolveComplexContentType(complexType, effectiveMixed);
+ }
+
+ return complexType;
+}
+
+void XsdSchemaParser::resolveComplexContentType(const XsdComplexType::Ptr &complexType, bool effectiveMixed)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#dcl.ctd.ctcc.common
+
+ // 1
+ // the effectiveMixed contains the effective mixed value
+
+ // 2
+ bool hasEmptyContent = false;
+ if (!complexType->contentType()->particle()) {
+ hasEmptyContent = true; // 2.1.1
+ } else {
+ if (complexType->contentType()->particle()->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr group = complexType->contentType()->particle()->term();
+ if (group->compositor() == XsdModelGroup::SequenceCompositor || group->compositor() == XsdModelGroup::AllCompositor) {
+ if (group->particles().isEmpty())
+ hasEmptyContent = true; // 2.1.2
+ } else if (group->compositor() == XsdModelGroup::ChoiceCompositor) {
+ if ((complexType->contentType()->particle()->minimumOccurs() == 0) && group->particles().isEmpty())
+ hasEmptyContent = true; // 2.1.3
+ }
+
+ if ((complexType->contentType()->particle()->maximumOccursUnbounded() == false) && (complexType->contentType()->particle()->maximumOccurs() == 0))
+ hasEmptyContent = true; // 2.1.4
+ }
+ }
+
+ const XsdParticle::Ptr explicitContent = (hasEmptyContent ? XsdParticle::Ptr() : complexType->contentType()->particle());
+
+ // do all the other work (3, 4, 5 and 6) in the resolver, as they need access to the base type object
+ m_schemaResolver->addComplexContentType(complexType, explicitContent, effectiveMixed);
+}
+
+void XsdSchemaParser::parseSimpleContent(const XsdComplexType::Ptr &complexType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::SimpleContent, this);
+
+ validateElement(XsdTagScope::SimpleContent);
+
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::Simple);
+
+ // parse attributes
+ validateIdAttribute("simpleContent");
+
+ TagValidationHandler tagValidator(XsdTagScope::SimpleContent, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Restriction, token, namespaceToken)) {
+ parseSimpleContentRestriction(complexType);
+ } else if (isSchemaTag(XsdSchemaToken::Extension, token, namespaceToken)) {
+ parseSimpleContentExtension(complexType);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseSimpleContentRestriction(const XsdComplexType::Ptr &complexType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Restriction, this);
+
+ validateElement(XsdTagScope::SimpleContentRestriction);
+
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+
+ // parse attributes
+ const QString baseType = readQNameAttribute(QString::fromLatin1("base"), "restriction");
+ QXmlName typeName;
+ convertName(baseType, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+
+ validateIdAttribute("restriction");
+
+ XsdFacet::Hash facets;
+ QList<XsdFacet::Ptr> patternFacets;
+ QList<XsdFacet::Ptr> enumerationFacets;
+ QList<XsdFacet::Ptr> assertionFacets;
+
+ TagValidationHandler tagValidator(XsdTagScope::SimpleContentRestriction, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(complexType); //TODO: investigate what the schema spec really wants here?!?
+ complexType->contentType()->setSimpleType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else if (isSchemaTag(XsdSchemaToken::MinExclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinExclusiveFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::MinInclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinInclusiveFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::MaxExclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxExclusiveFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::MaxInclusive, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxInclusiveFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::TotalDigits, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseTotalDigitsFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::FractionDigits, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseFractionDigitsFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::Length, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseLengthFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::MinLength, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMinLengthFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::MaxLength, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseMaxLengthFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::Enumeration, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseEnumerationFacet();
+ enumerationFacets.append(facet);
+ } else if (isSchemaTag(XsdSchemaToken::WhiteSpace, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseWhiteSpaceFacet();
+ addFacet(facet, facets, complexType);
+ } else if (isSchemaTag(XsdSchemaToken::Pattern, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parsePatternFacet();
+ patternFacets.append(facet);
+ } else if (isSchemaTag(XsdSchemaToken::Assertion, token, namespaceToken)) {
+ const XsdFacet::Ptr facet = parseAssertionFacet();
+ assertionFacets.append(facet);
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ // merge all pattern facets into one multi value facet
+ if (!patternFacets.isEmpty()) {
+ const XsdFacet::Ptr patternFacet(new XsdFacet());
+ patternFacet->setType(XsdFacet::Pattern);
+
+ AtomicValue::List multiValue;
+ for (int i = 0; i < patternFacets.count(); ++i)
+ multiValue << patternFacets.at(i)->multiValue();
+
+ patternFacet->setMultiValue(multiValue);
+ addFacet(patternFacet, facets, complexType);
+ }
+
+ // merge all enumeration facets into one multi value facet
+ if (!enumerationFacets.isEmpty()) {
+ const XsdFacet::Ptr enumerationFacet(new XsdFacet());
+ enumerationFacet->setType(XsdFacet::Enumeration);
+
+ AtomicValue::List multiValue;
+ for (int i = 0; i < enumerationFacets.count(); ++i)
+ multiValue << enumerationFacets.at(i)->multiValue();
+
+ enumerationFacet->setMultiValue(multiValue);
+ addFacet(enumerationFacet, facets, complexType);
+ }
+
+ // merge all assertion facets into one facet
+ if (!assertionFacets.isEmpty()) {
+ const XsdFacet::Ptr assertionFacet(new XsdFacet());
+ assertionFacet->setType(XsdFacet::Assertion);
+
+ XsdAssertion::List assertions;
+ for (int i = 0; i < assertionFacets.count(); ++i)
+ assertions << assertionFacets.at(i)->assertions();
+
+ assertionFacet->setAssertions(assertions);
+ addFacet(assertionFacet, facets, complexType);
+ }
+
+ m_schemaResolver->addComplexBaseType(complexType, typeName, currentSourceLocation(), facets); // add to resolver
+}
+
+void XsdSchemaParser::parseSimpleContentExtension(const XsdComplexType::Ptr &complexType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Extension, this);
+
+ validateElement(XsdTagScope::SimpleContentExtension);
+
+ complexType->setDerivationMethod(XsdComplexType::DerivationExtension);
+
+ // parse attributes
+ const QString baseType = readQNameAttribute(QString::fromLatin1("base"), "extension");
+ QXmlName typeName;
+ convertName(baseType, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addComplexBaseType(complexType, typeName, currentSourceLocation()); // add to resolver
+
+ validateIdAttribute("extension");
+
+ TagValidationHandler tagValidator(XsdTagScope::SimpleContentExtension, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseComplexContent(const XsdComplexType::Ptr &complexType, bool *mixed)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::ComplexContent, this);
+
+ validateElement(XsdTagScope::ComplexContent);
+
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::ElementOnly);
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("mixed"))) {
+ const QString mixedStr = readAttribute(QString::fromLatin1("mixed"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(mixedStr);
+ if (value->hasError()) {
+ attributeContentError("mixed", "complexType", mixedStr, BuiltinTypes::xsBoolean);
+ return;
+ }
+
+ *mixed = value->as<Boolean>()->value();
+ } else {
+ *mixed = false;
+ }
+
+ validateIdAttribute("complexContent");
+
+ TagValidationHandler tagValidator(XsdTagScope::ComplexContent, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Restriction, token, namespaceToken)) {
+ parseComplexContentRestriction(complexType);
+ } else if (isSchemaTag(XsdSchemaToken::Extension, token, namespaceToken)) {
+ parseComplexContentExtension(complexType);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseComplexContentRestriction(const XsdComplexType::Ptr &complexType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Restriction, this);
+
+ validateElement(XsdTagScope::ComplexContentRestriction);
+
+ complexType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+
+ // parse attributes
+ const QString baseType = readQNameAttribute(QString::fromLatin1("base"), "restriction");
+ QXmlName typeName;
+ convertName(baseType, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addComplexBaseType(complexType, typeName, currentSourceLocation()); // add to resolver
+
+ validateIdAttribute("restriction");
+
+ TagValidationHandler tagValidator(XsdTagScope::ComplexContentRestriction, this, m_namePool);
+
+ bool hasContent = false;
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::OpenContent, token, namespaceToken)) {
+ const XsdComplexType::OpenContent::Ptr openContent = parseOpenContent();
+ complexType->contentType()->setOpenContent(openContent);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::All, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalAll(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasContent)
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::Empty);
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseComplexContentExtension(const XsdComplexType::Ptr &complexType)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Extension, this);
+
+ validateElement(XsdTagScope::ComplexContentExtension);
+
+ complexType->setDerivationMethod(XsdComplexType::DerivationExtension);
+
+ // parse attributes
+ const QString baseType = readQNameAttribute(QString::fromLatin1("base"), "extension");
+ QXmlName typeName;
+ convertName(baseType, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addComplexBaseType(complexType, typeName, currentSourceLocation()); // add to resolver
+
+ validateIdAttribute("extension");
+
+ TagValidationHandler tagValidator(XsdTagScope::ComplexContentExtension, this, m_namePool);
+
+ bool hasContent = false;
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ complexType->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::OpenContent, token, namespaceToken)) {
+ const XsdComplexType::OpenContent::Ptr openContent = parseOpenContent();
+ complexType->contentType()->setOpenContent(openContent);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::All, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalAll(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, complexType);
+ particle->setTerm(term);
+ complexType->contentType()->setParticle(particle);
+ hasContent = true;
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(complexType);
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ complexType->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ complexType->setAttributeWildcard(wildcard);
+ } else if (isSchemaTag(XsdSchemaToken::Assert, token, namespaceToken)) {
+ const XsdAssertion::Ptr assertion = parseAssertion(XsdSchemaToken::Assert, XsdTagScope::Assert);
+ complexType->addAssertion(assertion);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasContent)
+ complexType->contentType()->setVariety(XsdComplexType::ContentType::Empty);
+
+ tagValidator.finalize();
+}
+
+
+XsdAssertion::Ptr XsdSchemaParser::parseAssertion(const XsdSchemaToken::NodeName &nodeName, const XsdTagScope::Type &tag)
+{
+ const ElementNamespaceHandler namespaceHandler(nodeName, this);
+
+ validateElement(tag);
+
+ const XsdAssertion::Ptr assertion(new XsdAssertion());
+
+ // parse attributes
+
+ const XsdXPathExpression::Ptr expression = readXPathExpression("assertion");
+ assertion->setTest(expression);
+
+ const QString test = readXPathAttribute(QString::fromLatin1("test"), XPath20, "assertion");
+ expression->setExpression(test);
+
+ validateIdAttribute("assertion");
+
+ TagValidationHandler tagValidator(tag, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ assertion->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return assertion;
+}
+
+XsdComplexType::OpenContent::Ptr XsdSchemaParser::parseOpenContent()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::OpenContent, this);
+
+ validateElement(XsdTagScope::OpenContent);
+
+ const XsdComplexType::OpenContent::Ptr openContent(new XsdComplexType::OpenContent());
+
+ if (hasAttribute(QString::fromLatin1("mode"))) {
+ const QString mode = readAttribute(QString::fromLatin1("mode"));
+
+ if (mode == QString::fromLatin1("none")) {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::None);
+ } else if (mode == QString::fromLatin1("interleave")) {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::Interleave);
+ } else if (mode == QString::fromLatin1("suffix")) {
+ m_defaultOpenContent->setMode(XsdComplexType::OpenContent::Suffix);
+ } else {
+ attributeContentError("mode", "openContent", mode);
+ return openContent;
+ }
+ } else {
+ openContent->setMode(XsdComplexType::OpenContent::Interleave);
+ }
+
+ validateIdAttribute("openContent");
+
+ TagValidationHandler tagValidator(XsdTagScope::OpenContent, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ openContent->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle;
+ const XsdWildcard::Ptr wildcard = parseAny(particle);
+ openContent->setWildcard(wildcard);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return openContent;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseNamedGroup()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Group, this);
+
+ validateElement(XsdTagScope::NamedGroup);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ XsdModelGroup::Ptr group;
+
+ QXmlName objectName;
+ if (hasAttribute(QString::fromLatin1("name"))) {
+ objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("group"));
+ }
+
+ validateIdAttribute("group");
+
+ TagValidationHandler tagValidator(XsdTagScope::NamedGroup, this, m_namePool);
+
+ XsdAnnotation::Ptr annotation;
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ annotation = parseAnnotation();
+ } else if (isSchemaTag(XsdSchemaToken::All, token, namespaceToken)) {
+ group = parseAll(modelGroup);
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ group = parseChoice(modelGroup);
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ group = parseSequence(modelGroup);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ group->setName(objectName);
+
+ if (annotation)
+ group->addAnnotation(annotation);
+
+ return group;
+}
+
+XsdTerm::Ptr XsdSchemaParser::parseReferredGroup(const XsdParticle::Ptr &particle)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Group, this);
+
+ validateElement(XsdTagScope::ReferredGroup);
+
+ const XsdReference::Ptr reference(new XsdReference());
+ reference->setType(XsdReference::ModelGroup);
+ reference->setSourceLocation(currentSourceLocation());
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "group")) {
+ return reference;
+ }
+
+ const QString value = readQNameAttribute(QString::fromLatin1("ref"), "group");
+ QXmlName referenceName;
+ convertName(value, NamespaceSupport::ElementName, referenceName); // translate qualified name into QXmlName
+ reference->setReferenceName(referenceName);
+
+ validateIdAttribute("group");
+
+ TagValidationHandler tagValidator(XsdTagScope::ReferredGroup, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ reference->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return reference;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseAll(const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::All, this);
+
+ validateElement(XsdTagScope::All);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::AllCompositor);
+
+ validateIdAttribute("all");
+
+ TagValidationHandler tagValidator(XsdTagScope::All, this, m_namePool);
+
+ XsdParticle::List particles;
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+
+ if (particle->maximumOccursUnbounded() || particle->maximumOccurs() > 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must be %3 or %4")
+ .arg(formatAttribute("maxOccurs"))
+ .arg(formatElement("all"))
+ .arg(formatData("0"))
+ .arg(formatData("1")));
+ return modelGroup;
+ }
+
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseLocalAll(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::All, this);
+
+ validateElement(XsdTagScope::LocalAll);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::AllCompositor);
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "all")) {
+ return modelGroup;
+ }
+ if (particle->maximumOccursUnbounded() || particle->maximumOccurs() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must have a value of %3")
+ .arg(formatAttribute("maxOccurs"))
+ .arg(formatElement("all"))
+ .arg(formatData("1")));
+ return modelGroup;
+ }
+ if (particle->minimumOccurs() != 0 && particle->minimumOccurs() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must have a value of %3 or %4")
+ .arg(formatAttribute("minOccurs"))
+ .arg(formatElement("all"))
+ .arg(formatData("0"))
+ .arg(formatData("1")));
+ return modelGroup;
+ }
+
+ validateIdAttribute("all");
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalAll, this, m_namePool);
+
+ XsdParticle::List particles;
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+
+ if (particle->maximumOccursUnbounded() || particle->maximumOccurs() > 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must have a value of %3 or %4")
+ .arg(formatAttribute("maxOccurs"))
+ .arg(formatElement("all"))
+ .arg(formatData("0"))
+ .arg(formatData("1")));
+ return modelGroup;
+ }
+
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseChoice(const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Choice, this);
+
+ validateElement(XsdTagScope::Choice);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::ChoiceCompositor);
+
+ validateIdAttribute("choice");
+
+ XsdParticle::List particles;
+
+ TagValidationHandler tagValidator(XsdTagScope::Choice, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ m_schemaResolver->addAllGroupCheck(term);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseAny(particle);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseLocalChoice(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Choice, this);
+
+ validateElement(XsdTagScope::LocalChoice);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::ChoiceCompositor);
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "choice")) {
+ return modelGroup;
+ }
+
+ validateIdAttribute("choice");
+
+ XsdParticle::List particles;
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalChoice, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ m_schemaResolver->addAllGroupCheck(term);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseAny(particle);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseSequence(const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Sequence, this);
+
+ validateElement(XsdTagScope::Sequence);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::SequenceCompositor);
+
+ validateIdAttribute("sequence");
+
+ XsdParticle::List particles;
+
+ TagValidationHandler tagValidator(XsdTagScope::Sequence, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ m_schemaResolver->addAllGroupCheck(term);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseAny(particle);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdModelGroup::Ptr XsdSchemaParser::parseLocalSequence(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Sequence, this);
+
+ validateElement(XsdTagScope::LocalSequence);
+
+ const XsdModelGroup::Ptr modelGroup(new XsdModelGroup());
+ modelGroup->setCompositor(XsdModelGroup::SequenceCompositor);
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "sequence")) {
+ return modelGroup;
+ }
+
+ validateIdAttribute("sequence");
+
+ XsdParticle::List particles;
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalSequence, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ modelGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Element, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalElement(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Group, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseReferredGroup(particle);
+ m_schemaResolver->addAllGroupCheck(term);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Choice, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalChoice(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Sequence, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseLocalSequence(particle, parent);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else if (isSchemaTag(XsdSchemaToken::Any, token, namespaceToken)) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ const XsdTerm::Ptr term = parseAny(particle);
+ particle->setTerm(term);
+ particles.append(particle);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ modelGroup->setParticles(particles);
+
+ tagValidator.finalize();
+
+ return modelGroup;
+}
+
+XsdAttribute::Ptr XsdSchemaParser::parseGlobalAttribute()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Attribute, this);
+
+ validateElement(XsdTagScope::GlobalAttribute);
+
+ const XsdAttribute::Ptr attribute(new XsdAttribute());
+ attribute->setScope(XsdAttribute::Scope::Ptr(new XsdAttribute::Scope()));
+ attribute->scope()->setVariety(XsdAttribute::Scope::Global);
+
+ if (hasAttribute(QString::fromLatin1("default")) && hasAttribute(QString::fromLatin1("fixed"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("attribute"))
+ .arg(formatAttribute("default"))
+ .arg(formatAttribute("fixed")));
+ return attribute;
+ }
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("default"))) {
+ const QString value = readAttribute(QString::fromLatin1("default"));
+ attribute->setValueConstraint(XsdAttribute::ValueConstraint::Ptr(new XsdAttribute::ValueConstraint()));
+ attribute->valueConstraint()->setVariety(XsdAttribute::ValueConstraint::Default);
+ attribute->valueConstraint()->setValue(value);
+ } else if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ attribute->setValueConstraint(XsdAttribute::ValueConstraint::Ptr(new XsdAttribute::ValueConstraint()));
+ attribute->valueConstraint()->setVariety(XsdAttribute::ValueConstraint::Fixed);
+ attribute->valueConstraint()->setValue(value);
+ }
+
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("attribute"));
+ if ((objectName.namespaceURI() == StandardNamespaces::xsi) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("type")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("nil")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("schemaLocation")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("noNamespaceSchemaLocation"))) {
+
+ error(QtXmlPatterns::tr("content of %1 attribute of %2 element must not be from namespace %3")
+ .arg(formatAttribute("name"))
+ .arg(formatElement("attribute"))
+ .arg(formatURI(CommonNamespaces::XSI)));
+ return attribute;
+ }
+ if (m_namePool->stringForLocalName(objectName.localName()) == QString::fromLatin1("xmlns")) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must not be %3")
+ .arg(formatAttribute("name"))
+ .arg(formatElement("attribute"))
+ .arg(formatData("xmlns")));
+ return attribute;
+ }
+ attribute->setName(objectName);
+
+ bool hasTypeAttribute = false;
+ bool hasTypeSpecified = false;
+
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ hasTypeAttribute = true;
+
+ const QString type = readQNameAttribute(QString::fromLatin1("type"), "attribute");
+ QXmlName typeName;
+ convertName(type, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addAttributeType(attribute, typeName, currentSourceLocation()); // add to resolver
+ hasTypeSpecified = true;
+ }
+
+ validateIdAttribute("attribute");
+
+ TagValidationHandler tagValidator(XsdTagScope::GlobalAttribute, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ attribute->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("attribute"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("type")));
+ break;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(attribute);
+ attribute->setType(type);
+ hasTypeSpecified = true;
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasTypeSpecified) {
+ attribute->setType(BuiltinTypes::xsAnySimpleType); // default value
+ return attribute;
+ }
+
+ tagValidator.finalize();
+
+ return attribute;
+}
+
+XsdAttributeUse::Ptr XsdSchemaParser::parseLocalAttribute(const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Attribute, this);
+
+ validateElement(XsdTagScope::LocalAttribute);
+
+ bool hasRefAttribute = false;
+ bool hasTypeAttribute = false;
+ bool hasTypeSpecified = false;
+
+ XsdAttributeUse::Ptr attributeUse;
+ if (hasAttribute(QString::fromLatin1("ref"))) {
+ const XsdAttributeReference::Ptr reference = XsdAttributeReference::Ptr(new XsdAttributeReference());
+ reference->setType(XsdAttributeReference::AttributeUse);
+ reference->setSourceLocation(currentSourceLocation());
+
+ attributeUse = reference;
+ hasRefAttribute = true;
+ } else {
+ attributeUse = XsdAttributeUse::Ptr(new XsdAttributeUse());
+ }
+
+ if (hasAttribute(QString::fromLatin1("default")) && hasAttribute(QString::fromLatin1("fixed"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("attribute"))
+ .arg(formatAttribute("default"))
+ .arg(formatAttribute("fixed")));
+ return attributeUse;
+ }
+
+ if (hasRefAttribute) {
+ if (hasAttribute(QString::fromLatin1("form"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("attribute"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("form")));
+ return attributeUse;
+ }
+ if (hasAttribute(QString::fromLatin1("name"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("attribute"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("name")));
+ return attributeUse;
+ }
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("attribute"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("type")));
+ return attributeUse;
+ }
+ }
+
+ // parse attributes
+
+ // default, fixed and use are handled by both, attribute use and attribute reference
+ if (hasAttribute(QString::fromLatin1("default"))) {
+ const QString value = readAttribute(QString::fromLatin1("default"));
+ attributeUse->setValueConstraint(XsdAttributeUse::ValueConstraint::Ptr(new XsdAttributeUse::ValueConstraint()));
+ attributeUse->valueConstraint()->setVariety(XsdAttributeUse::ValueConstraint::Default);
+ attributeUse->valueConstraint()->setValue(value);
+ } else if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ attributeUse->setValueConstraint(XsdAttributeUse::ValueConstraint::Ptr(new XsdAttributeUse::ValueConstraint()));
+ attributeUse->valueConstraint()->setVariety(XsdAttributeUse::ValueConstraint::Fixed);
+ attributeUse->valueConstraint()->setValue(value);
+ }
+
+ if (hasAttribute(QString::fromLatin1("use"))) {
+ const QString value = readAttribute(QString::fromLatin1("use"));
+ if (value != QString::fromLatin1("optional") &&
+ value != QString::fromLatin1("prohibited") &&
+ value != QString::fromLatin1("required")) {
+ attributeContentError("use", "attribute", value);
+ return attributeUse;
+ }
+
+ if (value == QString::fromLatin1("optional"))
+ attributeUse->setUseType(XsdAttributeUse::OptionalUse);
+ else if (value == QString::fromLatin1("prohibited"))
+ attributeUse->setUseType(XsdAttributeUse::ProhibitedUse);
+ else if (value == QString::fromLatin1("required"))
+ attributeUse->setUseType(XsdAttributeUse::RequiredUse);
+
+ if (attributeUse->valueConstraint() && attributeUse->valueConstraint()->variety() == XsdAttributeUse::ValueConstraint::Default && value != QString::fromLatin1("optional")) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must have the value %3 because the %4 attribute is set")
+ .arg(formatAttribute("use"))
+ .arg(formatElement("attribute"))
+ .arg(formatData("optional"))
+ .arg(formatElement("default")));
+ return attributeUse;
+ }
+ }
+
+ const XsdAttribute::Ptr attribute(new XsdAttribute());
+
+ attributeUse->setAttribute(attribute);
+ m_componentLocationHash.insert(attribute, currentSourceLocation());
+
+ attribute->setScope(XsdAttribute::Scope::Ptr(new XsdAttribute::Scope()));
+ attribute->scope()->setVariety(XsdAttribute::Scope::Local);
+ attribute->scope()->setParent(parent);
+
+ // now make a difference between attribute reference and attribute use
+ if (hasRefAttribute) {
+ const QString reference = readQNameAttribute(QString::fromLatin1("ref"), "attribute");
+ QXmlName referenceName;
+ convertName(reference, NamespaceSupport::ElementName, referenceName); // translate qualified name into QXmlName
+
+ const XsdAttributeReference::Ptr attributeReference = attributeUse;
+ attributeReference->setReferenceName(referenceName);
+ } else {
+ if (hasAttribute(QString::fromLatin1("name"))) {
+ const QString attributeName = readNameAttribute("attribute");
+
+ QXmlName objectName;
+ if (hasAttribute(QString::fromLatin1("form"))) {
+ const QString value = readAttribute(QString::fromLatin1("form"));
+ if (value != QString::fromLatin1("qualified") && value != QString::fromLatin1("unqualified")) {
+ attributeContentError("form", "attribute", value);
+ return attributeUse;
+ }
+
+ if (value == QString::fromLatin1("qualified")) {
+ objectName = m_namePool->allocateQName(m_targetNamespace, attributeName);
+ } else {
+ objectName = m_namePool->allocateQName(QString(), attributeName);
+ }
+ } else {
+ if (m_attributeFormDefault == QString::fromLatin1("qualified")) {
+ objectName = m_namePool->allocateQName(m_targetNamespace, attributeName);
+ } else {
+ objectName = m_namePool->allocateQName(QString(), attributeName);
+ }
+ }
+
+ if ((objectName.namespaceURI() == StandardNamespaces::xsi) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("type")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("nil")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("schemaLocation")) &&
+ (m_namePool->stringForLocalName(objectName.localName()) != QString::fromLatin1("noNamespaceSchemaLocation"))) {
+
+ error(QtXmlPatterns::tr("content of %1 attribute of %2 element must not be from namespace %3")
+ .arg(formatAttribute("name"))
+ .arg(formatElement("attribute"))
+ .arg(formatURI(CommonNamespaces::XSI)));
+ return attributeUse;
+ }
+ if (m_namePool->stringForLocalName(objectName.localName()) == QString::fromLatin1("xmlns")) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must not be %3")
+ .arg(formatAttribute("name"))
+ .arg(formatElement("attribute"))
+ .arg(formatData("xmlns")));
+ return attributeUse;
+ }
+
+ attribute->setName(objectName);
+ }
+
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ hasTypeAttribute = true;
+
+ const QString type = readQNameAttribute(QString::fromLatin1("type"), "attribute");
+ QXmlName typeName;
+ convertName(type, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addAttributeType(attribute, typeName, currentSourceLocation()); // add to resolver
+ hasTypeSpecified = true;
+ }
+
+ if (attributeUse->valueConstraint()) {
+ //TODO: check whether assigning the value constraint of the attribute use to the attribute is correct
+ if (!attribute->valueConstraint())
+ attribute->setValueConstraint(XsdAttribute::ValueConstraint::Ptr(new XsdAttribute::ValueConstraint()));
+
+ attribute->valueConstraint()->setVariety((XsdAttribute::ValueConstraint::Variety)attributeUse->valueConstraint()->variety());
+ attribute->valueConstraint()->setValue(attributeUse->valueConstraint()->value());
+ attribute->valueConstraint()->setLexicalForm(attributeUse->valueConstraint()->lexicalForm());
+ }
+ }
+
+ validateIdAttribute("attribute");
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalAttribute, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ attribute->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("attribute"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("type")));
+ break;
+ }
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("attribute"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("ref")));
+ break;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(attribute);
+ attribute->setType(type);
+ hasTypeSpecified = true;
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ if (!hasTypeSpecified) {
+ attribute->setType(BuiltinTypes::xsAnySimpleType); // default value
+ }
+
+ tagValidator.finalize();
+
+ return attributeUse;
+}
+
+XsdAttributeGroup::Ptr XsdSchemaParser::parseNamedAttributeGroup()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::AttributeGroup, this);
+
+ validateElement(XsdTagScope::NamedAttributeGroup);
+
+ const XsdAttributeGroup::Ptr attributeGroup(new XsdAttributeGroup());
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("attributeGroup"));
+ attributeGroup->setName(objectName);
+
+ validateIdAttribute("attributeGroup");
+
+ TagValidationHandler tagValidator(XsdTagScope::NamedAttributeGroup, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ attributeGroup->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Attribute, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseLocalAttribute(attributeGroup);
+
+ if (attributeUse->useType() == XsdAttributeUse::ProhibitedUse) {
+ warning(QtXmlPatterns::tr("specifying use='prohibited' inside an attribute group has no effect"));
+ } else {
+ attributeGroup->addAttributeUse(attributeUse);
+ }
+ } else if (isSchemaTag(XsdSchemaToken::AttributeGroup, token, namespaceToken)) {
+ const XsdAttributeUse::Ptr attributeUse = parseReferredAttributeGroup();
+ attributeGroup->addAttributeUse(attributeUse);
+ } else if (isSchemaTag(XsdSchemaToken::AnyAttribute, token, namespaceToken)) {
+ const XsdWildcard::Ptr wildcard = parseAnyAttribute();
+ attributeGroup->setWildcard(wildcard);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return attributeGroup;
+}
+
+XsdAttributeUse::Ptr XsdSchemaParser::parseReferredAttributeGroup()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::AttributeGroup, this);
+
+ validateElement(XsdTagScope::ReferredAttributeGroup);
+
+ const XsdAttributeReference::Ptr attributeReference(new XsdAttributeReference());
+ attributeReference->setType(XsdAttributeReference::AttributeGroup);
+ attributeReference->setSourceLocation(currentSourceLocation());
+
+ // parse attributes
+ const QString reference = readQNameAttribute(QString::fromLatin1("ref"), "attributeGroup");
+ QXmlName referenceName;
+ convertName(reference, NamespaceSupport::ElementName, referenceName); // translate qualified name into QXmlName
+ attributeReference->setReferenceName(referenceName);
+
+ validateIdAttribute("attributeGroup");
+
+ TagValidationHandler tagValidator(XsdTagScope::ReferredAttributeGroup, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ attributeReference->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return attributeReference;
+}
+
+XsdElement::Ptr XsdSchemaParser::parseGlobalElement()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Element, this);
+
+ validateElement(XsdTagScope::GlobalElement);
+
+ const XsdElement::Ptr element(new XsdElement());
+ element->setScope(XsdElement::Scope::Ptr(new XsdElement::Scope()));
+ element->scope()->setVariety(XsdElement::Scope::Global);
+
+ bool hasTypeAttribute = false;
+ bool hasTypeSpecified = false;
+ bool hasSubstitutionGroup = false;
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("element"));
+ element->setName(objectName);
+
+ if (hasAttribute(QString::fromLatin1("abstract"))) {
+ const QString abstract = readAttribute(QString::fromLatin1("abstract"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(abstract);
+ if (value->hasError()) {
+ attributeContentError("abstract", "element", abstract, BuiltinTypes::xsBoolean);
+ return element;
+ }
+
+ element->setIsAbstract(value->as<Boolean>()->value());
+ } else {
+ element->setIsAbstract(false); // the default value
+ }
+
+ if (hasAttribute(QString::fromLatin1("default")) && hasAttribute(QString::fromLatin1("fixed"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("default"))
+ .arg(formatAttribute("fixed")));
+ return element;
+ }
+
+ if (hasAttribute(QString::fromLatin1("default"))) {
+ const QString value = readAttribute(QString::fromLatin1("default"));
+ element->setValueConstraint(XsdElement::ValueConstraint::Ptr(new XsdElement::ValueConstraint()));
+ element->valueConstraint()->setVariety(XsdElement::ValueConstraint::Default);
+ element->valueConstraint()->setValue(value);
+ } else if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ element->setValueConstraint(XsdElement::ValueConstraint::Ptr(new XsdElement::ValueConstraint()));
+ element->valueConstraint()->setVariety(XsdElement::ValueConstraint::Fixed);
+ element->valueConstraint()->setValue(value);
+ }
+
+ element->setDisallowedSubstitutions(readBlockingConstraintAttribute(NamedSchemaComponent::ExtensionConstraint | NamedSchemaComponent::RestrictionConstraint | NamedSchemaComponent::SubstitutionConstraint, "element"));
+ element->setSubstitutionGroupExclusions(readDerivationConstraintAttribute(SchemaType::ExtensionConstraint | SchemaType::RestrictionConstraint, "element"));
+
+ if (hasAttribute(QString::fromLatin1("nillable"))) {
+ const QString nillable = readAttribute(QString::fromLatin1("nillable"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(nillable);
+ if (value->hasError()) {
+ attributeContentError("nillable", "element", nillable, BuiltinTypes::xsBoolean);
+ return element;
+ }
+
+ element->setIsNillable(value->as<Boolean>()->value());
+ } else {
+ element->setIsNillable(false); // the default value
+ }
+
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ const QString type = readQNameAttribute(QString::fromLatin1("type"), "element");
+ QXmlName typeName;
+ convertName(type, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addElementType(element, typeName, currentSourceLocation()); // add to resolver
+
+ hasTypeAttribute = true;
+ hasTypeSpecified = true;
+ }
+
+ if (hasAttribute(QString::fromLatin1("substitutionGroup"))) {
+ QList<QXmlName> elementNames;
+
+ const QString value = readAttribute(QString::fromLatin1("substitutionGroup"));
+ const QStringList substitutionGroups = value.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ if (substitutionGroups.isEmpty()) {
+ attributeContentError("substitutionGroup", "element", value, BuiltinTypes::xsQName);
+ return element;
+ }
+
+ for (int i = 0; i < substitutionGroups.count(); ++i) {
+ const QString value = substitutionGroups.at(i).simplified();
+ if (!XPathHelper::isQName(value)) {
+ attributeContentError("substitutionGroup", "element", value, BuiltinTypes::xsQName);
+ return element;
+ }
+
+ QXmlName elementName;
+ convertName(value, NamespaceSupport::ElementName, elementName); // translate qualified name into QXmlName
+ elementNames.append(elementName);
+ }
+
+ m_schemaResolver->addSubstitutionGroupAffiliation(element, elementNames, currentSourceLocation()); // add to resolver
+
+ hasSubstitutionGroup = true;
+ }
+
+ validateIdAttribute("element");
+
+ XsdAlternative::List alternatives;
+
+ TagValidationHandler tagValidator(XsdTagScope::GlobalElement, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ element->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("type")));
+ return element;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(element);
+ element->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::ComplexType, token, namespaceToken)) {
+ if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("complexType"))
+ .arg(formatAttribute("type")));
+ return element;
+ }
+
+ const XsdComplexType::Ptr type = parseLocalComplexType();
+ type->setContext(element);
+ element->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::Alternative, token, namespaceToken)) {
+ const XsdAlternative::Ptr alternative = parseAlternative();
+ alternatives.append(alternative);
+ } else if (isSchemaTag(XsdSchemaToken::Unique, token, namespaceToken)) {
+ const XsdIdentityConstraint::Ptr constraint = parseUnique();
+ element->addIdentityConstraint(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Key, token, namespaceToken)) {
+ const XsdIdentityConstraint::Ptr constraint = parseKey();
+ element->addIdentityConstraint(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Keyref, token, namespaceToken)) {
+ const XsdIdentityConstraint::Ptr constraint = parseKeyRef(element);
+ element->addIdentityConstraint(constraint);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ if (!hasTypeSpecified) {
+ if (hasSubstitutionGroup)
+ m_schemaResolver->addSubstitutionGroupType(element);
+ else
+ element->setType(BuiltinTypes::xsAnyType);
+ }
+
+ if (!alternatives.isEmpty()) {
+ element->setTypeTable(XsdElement::TypeTable::Ptr(new XsdElement::TypeTable()));
+
+ for (int i = 0; i < alternatives.count(); ++i) {
+ if (alternatives.at(i)->test())
+ element->typeTable()->addAlternative(alternatives.at(i));
+
+ if (i == (alternatives.count() - 1)) { // the final one
+ if (!alternatives.at(i)->test()) {
+ element->typeTable()->setDefaultTypeDefinition(alternatives.at(i));
+ } else {
+ const XsdAlternative::Ptr alternative(new XsdAlternative());
+ if (element->type())
+ alternative->setType(element->type());
+ else
+ m_schemaResolver->addAlternativeType(alternative, element); // add to resolver
+
+ element->typeTable()->setDefaultTypeDefinition(alternative);
+ }
+ }
+ }
+ }
+
+ return element;
+}
+
+XsdTerm::Ptr XsdSchemaParser::parseLocalElement(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Element, this);
+
+ validateElement(XsdTagScope::LocalElement);
+
+ bool hasRefAttribute = false;
+ bool hasTypeAttribute = false;
+ bool hasTypeSpecified = false;
+
+ XsdTerm::Ptr term;
+ XsdElement::Ptr element;
+ if (hasAttribute(QString::fromLatin1("ref"))) {
+ term = XsdReference::Ptr(new XsdReference());
+ hasRefAttribute = true;
+ } else {
+ term = XsdElement::Ptr(new XsdElement());
+ element = term;
+ }
+
+ if (hasRefAttribute) {
+ if (hasAttribute(QString::fromLatin1("name"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("name")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("block"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("block")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("nillable"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("nillable")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("default"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("default")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("fixed"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("fixed")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("form"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("form")));
+ return term;
+ } else if (hasAttribute(QString::fromLatin1("type"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("ref"))
+ .arg(formatAttribute("type")));
+ return term;
+ }
+ }
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "element")) {
+ return element;
+ }
+
+ if (!hasAttribute(QString::fromLatin1("name")) && !hasAttribute(QString::fromLatin1("ref"))) {
+ error(QtXmlPatterns::tr("%1 element must have either %2 or %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("name"))
+ .arg(formatAttribute("ref")));
+ return element;
+ }
+
+ if (hasRefAttribute) {
+ const QString ref = readQNameAttribute(QString::fromLatin1("ref"), "element");
+ QXmlName referenceName;
+ convertName(ref, NamespaceSupport::ElementName, referenceName); // translate qualified name into QXmlName
+
+ const XsdReference::Ptr reference = term;
+ reference->setReferenceName(referenceName);
+ reference->setType(XsdReference::Element);
+ reference->setSourceLocation(currentSourceLocation());
+ } else {
+ element->setScope(XsdElement::Scope::Ptr(new XsdElement::Scope()));
+ element->scope()->setVariety(XsdElement::Scope::Local);
+ element->scope()->setParent(parent);
+
+ if (hasAttribute(QString::fromLatin1("name"))) {
+ const QString elementName = readNameAttribute("element");
+
+ QXmlName objectName;
+ if (hasAttribute(QString::fromLatin1("form"))) {
+ const QString value = readAttribute(QString::fromLatin1("form"));
+ if (value != QString::fromLatin1("qualified") && value != QString::fromLatin1("unqualified")) {
+ attributeContentError("form", "element", value);
+ return element;
+ }
+
+ if (value == QString::fromLatin1("qualified")) {
+ objectName = m_namePool->allocateQName(m_targetNamespace, elementName);
+ } else {
+ objectName = m_namePool->allocateQName(QString(), elementName);
+ }
+ } else {
+ if (m_elementFormDefault == QString::fromLatin1("qualified")) {
+ objectName = m_namePool->allocateQName(m_targetNamespace, elementName);
+ } else {
+ objectName = m_namePool->allocateQName(QString(), elementName);
+ }
+ }
+
+ element->setName(objectName);
+ }
+
+ if (hasAttribute(QString::fromLatin1("nillable"))) {
+ const QString nillable = readAttribute(QString::fromLatin1("nillable"));
+
+ const Boolean::Ptr value = Boolean::fromLexical(nillable);
+ if (value->hasError()) {
+ attributeContentError("nillable", "element", nillable, BuiltinTypes::xsBoolean);
+ return term;
+ }
+
+ element->setIsNillable(value->as<Boolean>()->value());
+ } else {
+ element->setIsNillable(false); // the default value
+ }
+
+ if (hasAttribute(QString::fromLatin1("default")) && hasAttribute(QString::fromLatin1("fixed"))) {
+ error(QtXmlPatterns::tr("%1 element must not have %2 and %3 attribute together")
+ .arg(formatElement("element"))
+ .arg(formatAttribute("default"))
+ .arg(formatAttribute("fixed")));
+ return element;
+ }
+
+ if (hasAttribute(QString::fromLatin1("default"))) {
+ const QString value = readAttribute(QString::fromLatin1("default"));
+ element->setValueConstraint(XsdElement::ValueConstraint::Ptr(new XsdElement::ValueConstraint()));
+ element->valueConstraint()->setVariety(XsdElement::ValueConstraint::Default);
+ element->valueConstraint()->setValue(value);
+ } else if (hasAttribute(QString::fromLatin1("fixed"))) {
+ const QString value = readAttribute(QString::fromLatin1("fixed"));
+ element->setValueConstraint(XsdElement::ValueConstraint::Ptr(new XsdElement::ValueConstraint()));
+ element->valueConstraint()->setVariety(XsdElement::ValueConstraint::Fixed);
+ element->valueConstraint()->setValue(value);
+ }
+
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ const QString type = readQNameAttribute(QString::fromLatin1("type"), "element");
+ QXmlName typeName;
+ convertName(type, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addElementType(element, typeName, currentSourceLocation()); // add to resolver
+
+ hasTypeAttribute = true;
+ hasTypeSpecified = true;
+ }
+
+ element->setDisallowedSubstitutions(readBlockingConstraintAttribute(NamedSchemaComponent::ExtensionConstraint | NamedSchemaComponent::RestrictionConstraint | NamedSchemaComponent::SubstitutionConstraint, "element"));
+ }
+
+ validateIdAttribute("element");
+
+ XsdAlternative::List alternatives;
+
+ TagValidationHandler tagValidator(XsdTagScope::LocalElement, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ element->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("ref")));
+ return term;
+ } else if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("simpleType"))
+ .arg(formatAttribute("type")));
+ return term;
+ }
+
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ type->setContext(element);
+ element->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::ComplexType, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("complexType"))
+ .arg(formatAttribute("ref")));
+ return term;
+ } else if (hasTypeAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("complexType"))
+ .arg(formatAttribute("type")));
+ return term;
+ }
+
+ const XsdComplexType::Ptr type = parseLocalComplexType();
+ type->setContext(element);
+ element->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::Alternative, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("alternative"))
+ .arg(formatAttribute("ref")));
+ return term;
+ }
+
+ const XsdAlternative::Ptr alternative = parseAlternative();
+ alternatives.append(alternative);
+ } else if (isSchemaTag(XsdSchemaToken::Unique, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("unique"))
+ .arg(formatAttribute("ref")));
+ return term;
+ }
+
+ const XsdIdentityConstraint::Ptr constraint = parseUnique();
+ element->addIdentityConstraint(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Key, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("key"))
+ .arg(formatAttribute("ref")));
+ return term;
+ }
+
+ const XsdIdentityConstraint::Ptr constraint = parseKey();
+ element->addIdentityConstraint(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Keyref, token, namespaceToken)) {
+ if (hasRefAttribute) {
+ error(QtXmlPatterns::tr("%1 element with %2 child element must not have a %3 attribute")
+ .arg(formatElement("element"))
+ .arg(formatElement("keyref"))
+ .arg(formatAttribute("ref")));
+ return term;
+ }
+
+ const XsdIdentityConstraint::Ptr constraint = parseKeyRef(element);
+ element->addIdentityConstraint(constraint);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ if (!hasTypeSpecified && !hasRefAttribute)
+ element->setType(BuiltinTypes::xsAnyType);
+
+ if (!hasRefAttribute && !alternatives.isEmpty()) {
+ element->setTypeTable(XsdElement::TypeTable::Ptr(new XsdElement::TypeTable()));
+
+ for (int i = 0; i < alternatives.count(); ++i) {
+ if (alternatives.at(i)->test())
+ element->typeTable()->addAlternative(alternatives.at(i));
+
+ if (i == (alternatives.count() - 1)) { // the final one
+ if (!alternatives.at(i)->test()) {
+ element->typeTable()->setDefaultTypeDefinition(alternatives.at(i));
+ } else {
+ const XsdAlternative::Ptr alternative(new XsdAlternative());
+ if (element->type())
+ alternative->setType(element->type());
+ else
+ m_schemaResolver->addAlternativeType(alternative, element); // add to resolver
+
+ element->typeTable()->setDefaultTypeDefinition(alternative);
+ }
+ }
+ }
+ }
+
+ return term;
+}
+
+XsdIdentityConstraint::Ptr XsdSchemaParser::parseUnique()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Unique, this);
+
+ validateElement(XsdTagScope::Unique);
+
+ const XsdIdentityConstraint::Ptr constraint(new XsdIdentityConstraint());
+ constraint->setCategory(XsdIdentityConstraint::Unique);
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("unique"));
+ constraint->setName(objectName);
+
+ validateIdAttribute("unique");
+
+ TagValidationHandler tagValidator(XsdTagScope::Unique, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ constraint->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Selector, token, namespaceToken)) {
+ parseSelector(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Field, token, namespaceToken)) {
+ parseField(constraint);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ // add constraint to schema for further checking
+ addIdentityConstraint(constraint);
+
+ tagValidator.finalize();
+
+ return constraint;
+}
+
+XsdIdentityConstraint::Ptr XsdSchemaParser::parseKey()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Key, this);
+
+ validateElement(XsdTagScope::Key);
+
+ const XsdIdentityConstraint::Ptr constraint(new XsdIdentityConstraint());
+ constraint->setCategory(XsdIdentityConstraint::Key);
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("key"));
+ constraint->setName(objectName);
+
+ validateIdAttribute("key");
+
+ TagValidationHandler tagValidator(XsdTagScope::Key, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ constraint->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Selector, token, namespaceToken)) {
+ parseSelector(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Field, token, namespaceToken)) {
+ parseField(constraint);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ // add constraint to schema for further checking
+ addIdentityConstraint(constraint);
+
+ tagValidator.finalize();
+
+ return constraint;
+}
+
+XsdIdentityConstraint::Ptr XsdSchemaParser::parseKeyRef(const XsdElement::Ptr &element)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Keyref, this);
+
+ validateElement(XsdTagScope::KeyRef);
+
+ const XsdIdentityConstraint::Ptr constraint(new XsdIdentityConstraint());
+ constraint->setCategory(XsdIdentityConstraint::KeyReference);
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("keyref"));
+ constraint->setName(objectName);
+
+ const QString refer = readQNameAttribute(QString::fromLatin1("refer"), "keyref");
+ QXmlName referenceName;
+ convertName(refer, NamespaceSupport::ElementName, referenceName); // translate qualified name into QXmlName
+ m_schemaResolver->addKeyReference(element, constraint, referenceName, currentSourceLocation()); // add to resolver
+
+ validateIdAttribute("keyref");
+
+ TagValidationHandler tagValidator(XsdTagScope::KeyRef, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ constraint->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::Selector, token, namespaceToken)) {
+ parseSelector(constraint);
+ } else if (isSchemaTag(XsdSchemaToken::Field, token, namespaceToken)) {
+ parseField(constraint);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ // add constraint to schema for further checking
+ addIdentityConstraint(constraint);
+
+ tagValidator.finalize();
+
+ return constraint;
+}
+
+void XsdSchemaParser::parseSelector(const XsdIdentityConstraint::Ptr &ptr)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Selector, this);
+
+ validateElement(XsdTagScope::Selector);
+
+ // parse attributes
+ const XsdXPathExpression::Ptr expression = readXPathExpression("selector");
+
+ const QString xpath = readXPathAttribute(QString::fromLatin1("xpath"), XPathSelector, "selector");
+ expression->setExpression(xpath);
+
+ ptr->setSelector(expression);
+
+ validateIdAttribute("selector");
+
+ TagValidationHandler tagValidator(XsdTagScope::Selector, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ expression->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+void XsdSchemaParser::parseField(const XsdIdentityConstraint::Ptr &ptr)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Field, this);
+
+ validateElement(XsdTagScope::Field);
+
+ // parse attributes
+ const XsdXPathExpression::Ptr expression = readXPathExpression("field");
+
+ const QString xpath = readXPathAttribute(QString::fromLatin1("xpath"), XPathField, "field");
+ expression->setExpression(xpath);
+
+ ptr->addField(expression);
+
+ validateIdAttribute("field");
+
+ TagValidationHandler tagValidator(XsdTagScope::Field, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ expression->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+}
+
+XsdAlternative::Ptr XsdSchemaParser::parseAlternative()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Alternative, this);
+
+ validateElement(XsdTagScope::Alternative);
+
+ const XsdAlternative::Ptr alternative(new XsdAlternative());
+
+ bool hasTypeSpecified = false;
+
+ if (hasAttribute(QString::fromLatin1("test"))) {
+ const XsdXPathExpression::Ptr expression = readXPathExpression("alternative");
+
+ const QString test = readXPathAttribute(QString::fromLatin1("test"), XPath20, "alternative");
+ expression->setExpression(test);
+
+ alternative->setTest(expression);
+ }
+
+ if (hasAttribute(QString::fromLatin1("type"))) {
+ const QString type = readQNameAttribute(QString::fromLatin1("type"), "alternative");
+ QXmlName typeName;
+ convertName(type, NamespaceSupport::ElementName, typeName); // translate qualified name into QXmlName
+ m_schemaResolver->addAlternativeType(alternative, typeName, currentSourceLocation()); // add to resolver
+
+ hasTypeSpecified = true;
+ }
+
+ validateIdAttribute("alternative");
+
+ TagValidationHandler tagValidator(XsdTagScope::Alternative, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ alternative->addAnnotation(annotation);
+ } else if (isSchemaTag(XsdSchemaToken::SimpleType, token, namespaceToken)) {
+ const XsdSimpleType::Ptr type = parseLocalSimpleType();
+ alternative->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else if (isSchemaTag(XsdSchemaToken::ComplexType, token, namespaceToken)) {
+ const XsdComplexType::Ptr type = parseLocalComplexType();
+ alternative->setType(type);
+
+ // add it to list of anonymous types as well
+ addAnonymousType(type);
+
+ hasTypeSpecified = true;
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ if (!hasTypeSpecified) {
+ error(QtXmlPatterns::tr("%1 element must have either %2 attribute or %3 or %4 as child element")
+ .arg(formatElement("alternative"))
+ .arg(formatAttribute("type"))
+ .arg(formatElement("simpleType"))
+ .arg(formatElement("complexType")));
+ return alternative;
+ }
+
+ return alternative;
+}
+
+XsdNotation::Ptr XsdSchemaParser::parseNotation()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Notation, this);
+
+ validateElement(XsdTagScope::Notation);
+
+ const XsdNotation::Ptr notation(new XsdNotation());
+
+ // parse attributes
+ const QXmlName objectName = m_namePool->allocateQName(m_targetNamespace, readNameAttribute("notation"));
+ notation->setName(objectName);
+
+ bool hasOptionalAttribute = false;
+
+ if (hasAttribute(QString::fromLatin1("public"))) {
+ const QString value = readAttribute(QString::fromLatin1("public"));
+ if (!value.isEmpty()) {
+ const DerivedString<TypeToken>::Ptr publicId = DerivedString<TypeToken>::fromLexical(m_namePool, value);
+ if (publicId->hasError()) {
+ attributeContentError("public", "notation", value, BuiltinTypes::xsToken);
+ return notation;
+ }
+ notation->setPublicId(publicId);
+ }
+
+ hasOptionalAttribute = true;
+ }
+
+ if (hasAttribute(QString::fromLatin1("system"))) {
+ const QString value = readAttribute(QString::fromLatin1("system"));
+ if (!isValidUri(value)) {
+ attributeContentError("system", "notation", value, BuiltinTypes::xsAnyURI);
+ return notation;
+ }
+
+ if (!value.isEmpty()) {
+ const AnyURI::Ptr systemId = AnyURI::fromLexical(value);
+ notation->setSystemId(systemId);
+ }
+
+ hasOptionalAttribute = true;
+ }
+
+ if (!hasOptionalAttribute) {
+ error(QtXmlPatterns::tr("%1 element requires either %2 or %3 attribute")
+ .arg(formatElement("notation"))
+ .arg(formatAttribute("public"))
+ .arg(formatAttribute("system")));
+ return notation;
+ }
+
+ validateIdAttribute("notation");
+
+ TagValidationHandler tagValidator(XsdTagScope::Notation, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isCharacters() || isEntityReference()) {
+ if (!text().toString().trimmed().isEmpty()) {
+ error(QtXmlPatterns::tr("text or entity references not allowed inside %1 element").arg(formatElement("notation")));
+ return notation;
+ }
+ }
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ notation->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return notation;
+}
+
+XsdWildcard::Ptr XsdSchemaParser::parseAny(const XsdParticle::Ptr &particle)
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::Any, this);
+
+ validateElement(XsdTagScope::Any);
+
+ const XsdWildcard::Ptr wildcard(new XsdWildcard());
+
+ // parse attributes
+ if (!parseMinMaxConstraint(particle, "any")) {
+ return wildcard;
+ }
+
+ if (hasAttribute(QString::fromLatin1("namespace"))) {
+ const QSet<QString> values = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), QString::SkipEmptyParts).toSet();
+ if ((values.contains(QString::fromLatin1("##any")) || values.contains(QString::fromLatin1("##other"))) && values.count() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must contain %3, %4 or a list of URIs")
+ .arg(formatAttribute("namespace"))
+ .arg(formatElement("any"))
+ .arg(formatData("##any"))
+ .arg(formatData("##other")));
+ return wildcard;
+ }
+
+ if (values.contains(QString::fromLatin1("##any"))) {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ } else if (values.contains(QString::fromLatin1("##other"))) {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ if (!m_targetNamespace.isEmpty())
+ wildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << m_targetNamespace);
+ else
+ wildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << XsdWildcard::absentNamespace());
+ } else {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ QStringList newValues = values.toList();
+
+ // replace the ##targetNamespace entry
+ for (int i = 0; i < newValues.count(); ++i) {
+ if (newValues.at(i) == QString::fromLatin1("##targetNamespace")) {
+ if (!m_targetNamespace.isEmpty())
+ newValues[i] = m_targetNamespace;
+ else
+ newValues[i] = XsdWildcard::absentNamespace();
+ } else if (newValues.at(i) == QString::fromLatin1("##local")) {
+ newValues[i] = XsdWildcard::absentNamespace();
+ }
+ }
+
+ // check for invalid URIs
+ for (int i = 0; i < newValues.count(); ++i) {
+ const QString stringValue = newValues.at(i);
+ if (stringValue == XsdWildcard::absentNamespace())
+ continue;
+
+ if (!isValidUri(stringValue)) {
+ attributeContentError("namespace", "any", stringValue, BuiltinTypes::xsAnyURI);
+ return wildcard;
+ }
+ }
+
+ wildcard->namespaceConstraint()->setNamespaces(newValues.toSet());
+ }
+ } else {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ }
+
+ if (hasAttribute(QString::fromLatin1("processContents"))) {
+ const QString value = readAttribute(QString::fromLatin1("processContents"));
+ if (value != QString::fromLatin1("lax") &&
+ value != QString::fromLatin1("skip") &&
+ value != QString::fromLatin1("strict")) {
+ attributeContentError("processContents", "any", value);
+ return wildcard;
+ }
+
+ if (value == QString::fromLatin1("lax")) {
+ wildcard->setProcessContents(XsdWildcard::Lax);
+ } else if (value == QString::fromLatin1("skip")) {
+ wildcard->setProcessContents(XsdWildcard::Skip);
+ } else if (value == QString::fromLatin1("strict")) {
+ wildcard->setProcessContents(XsdWildcard::Strict);
+ }
+ } else {
+ wildcard->setProcessContents(XsdWildcard::Strict);
+ }
+
+ validateIdAttribute("any");
+
+ TagValidationHandler tagValidator(XsdTagScope::Any, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ wildcard->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return wildcard;
+}
+
+XsdWildcard::Ptr XsdSchemaParser::parseAnyAttribute()
+{
+ const ElementNamespaceHandler namespaceHandler(XsdSchemaToken::AnyAttribute, this);
+
+ validateElement(XsdTagScope::AnyAttribute);
+
+ const XsdWildcard::Ptr wildcard(new XsdWildcard());
+
+ // parse attributes
+ if (hasAttribute(QString::fromLatin1("namespace"))) {
+ const QSet<QString> values = readAttribute(QString::fromLatin1("namespace")).split(QLatin1Char(' '), QString::SkipEmptyParts).toSet();
+ if ((values.contains(QString::fromLatin1("##any")) || values.contains(QString::fromLatin1("##other"))) && values.count() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must contain %3, %4 or a list of URIs")
+ .arg(formatAttribute("namespace"))
+ .arg(formatElement("anyAttribute"))
+ .arg(formatData("##any"))
+ .arg(formatData("##other")));
+ return wildcard;
+ }
+
+ if (values.contains(QString::fromLatin1("##any"))) {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ } else if (values.contains(QString::fromLatin1("##other"))) {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Not);
+ if (!m_targetNamespace.isEmpty())
+ wildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << m_targetNamespace);
+ else
+ wildcard->namespaceConstraint()->setNamespaces(QSet<QString>() << XsdWildcard::absentNamespace());
+ } else {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Enumeration);
+ QStringList newValues = values.toList();
+
+ // replace the ##targetNamespace entry
+ for (int i = 0; i < newValues.count(); ++i) {
+ if (newValues.at(i) == QString::fromLatin1("##targetNamespace")) {
+ if (!m_targetNamespace.isEmpty())
+ newValues[i] = m_targetNamespace;
+ else
+ newValues[i] = XsdWildcard::absentNamespace();
+ } else if (newValues.at(i) == QString::fromLatin1("##local")) {
+ newValues[i] = XsdWildcard::absentNamespace();
+ }
+ }
+
+ // check for invalid URIs
+ for (int i = 0; i < newValues.count(); ++i) {
+ const QString stringValue = newValues.at(i);
+ if (stringValue == XsdWildcard::absentNamespace())
+ continue;
+
+ if (!isValidUri(stringValue)) {
+ attributeContentError("namespace", "anyAttribute", stringValue, BuiltinTypes::xsAnyURI);
+ return wildcard;
+ }
+ }
+
+ wildcard->namespaceConstraint()->setNamespaces(newValues.toSet());
+ }
+ } else {
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ }
+
+ if (hasAttribute(QString::fromLatin1("processContents"))) {
+ const QString value = readAttribute(QString::fromLatin1("processContents"));
+ if (value != QString::fromLatin1("lax") &&
+ value != QString::fromLatin1("skip") &&
+ value != QString::fromLatin1("strict")) {
+ attributeContentError("processContents", "anyAttribute", value);
+ return wildcard;
+ }
+
+ if (value == QString::fromLatin1("lax")) {
+ wildcard->setProcessContents(XsdWildcard::Lax);
+ } else if (value == QString::fromLatin1("skip")) {
+ wildcard->setProcessContents(XsdWildcard::Skip);
+ } else if (value == QString::fromLatin1("strict")) {
+ wildcard->setProcessContents(XsdWildcard::Strict);
+ }
+ } else {
+ wildcard->setProcessContents(XsdWildcard::Strict);
+ }
+
+ validateIdAttribute("anyAttribute");
+
+ TagValidationHandler tagValidator(XsdTagScope::AnyAttribute, this, m_namePool);
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement()) {
+ const XsdSchemaToken::NodeName token = XsdSchemaToken::toToken(name());
+ const XsdSchemaToken::NodeName namespaceToken = XsdSchemaToken::toToken(namespaceUri());
+
+ tagValidator.validate(token);
+
+ if (isSchemaTag(XsdSchemaToken::Annotation, token, namespaceToken)) {
+ const XsdAnnotation::Ptr annotation = parseAnnotation();
+ wildcard->addAnnotation(annotation);
+ } else {
+ parseUnknown();
+ }
+ }
+ }
+
+ tagValidator.finalize();
+
+ return wildcard;
+}
+
+
+void XsdSchemaParser::parseUnknownDocumentation()
+{
+ Q_ASSERT(isStartElement());
+ m_namespaceSupport.pushContext();
+ m_namespaceSupport.setPrefixes(namespaceDeclarations());
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement())
+ parseUnknownDocumentation();
+ }
+
+ m_namespaceSupport.popContext();
+}
+
+void XsdSchemaParser::parseUnknown()
+{
+ Q_ASSERT(isStartElement());
+ m_namespaceSupport.pushContext();
+ m_namespaceSupport.setPrefixes(namespaceDeclarations());
+
+ error(QtXmlPatterns::tr("%1 element is not allowed in this context").arg(formatElement(name().toString())));
+
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ break;
+
+ if (isStartElement())
+ parseUnknown();
+ }
+
+ m_namespaceSupport.popContext();
+}
+
+bool XsdSchemaParser::parseMinMaxConstraint(const XsdParticle::Ptr &particle, const char *elementName)
+{
+ if (hasAttribute(QString::fromLatin1("minOccurs"))) {
+ const QString value = readAttribute(QString::fromLatin1("minOccurs"));
+
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("minOccurs", elementName, value, BuiltinTypes::xsNonNegativeInteger);
+ return false;
+ } else {
+ particle->setMinimumOccurs(integer->as< DerivedInteger<TypeNonNegativeInteger> >()->storedValue());
+ }
+ } else {
+ particle->setMinimumOccurs(1);
+ }
+
+ if (hasAttribute(QString::fromLatin1("maxOccurs"))) {
+ const QString value = readAttribute(QString::fromLatin1("maxOccurs"));
+
+ if (value == QString::fromLatin1("unbounded")) {
+ particle->setMaximumOccursUnbounded(true);
+ } else {
+ particle->setMaximumOccursUnbounded(false);
+ DerivedInteger<TypeNonNegativeInteger>::Ptr integer = DerivedInteger<TypeNonNegativeInteger>::fromLexical(m_namePool, value);
+ if (integer->hasError()) {
+ attributeContentError("maxOccurs", elementName, value, BuiltinTypes::xsNonNegativeInteger);
+ return false;
+ } else {
+ particle->setMaximumOccurs(integer->as< DerivedInteger<TypeNonNegativeInteger> >()->storedValue());
+ }
+ }
+ } else {
+ particle->setMaximumOccursUnbounded(false);
+ particle->setMaximumOccurs(1);
+ }
+
+ if (!particle->maximumOccursUnbounded()) {
+ if (particle->maximumOccurs() < particle->minimumOccurs()) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element has larger value than %3 attribute")
+ .arg(formatAttribute("minOccurs"))
+ .arg(formatElement(elementName))
+ .arg(formatAttribute("maxOccurs")));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+QSourceLocation XsdSchemaParser::currentSourceLocation() const
+{
+ QSourceLocation location;
+ location.setLine(lineNumber());
+ location.setColumn(columnNumber());
+ location.setUri(m_documentURI);
+
+ return location;
+}
+
+void XsdSchemaParser::convertName(const QString &qualifiedName, NamespaceSupport::NameType type, QXmlName &name)
+{
+ bool result = m_namespaceSupport.processName(qualifiedName, type, name);
+ if (!result) {
+ error(QtXmlPatterns::tr("prefix of qualified name %1 is not defined").arg(formatKeyword(qualifiedName)));
+ }
+}
+
+QString XsdSchemaParser::readNameAttribute(const char *elementName)
+{
+ const QString value = readAttribute(QString::fromLatin1("name")).simplified();
+ if (!QXmlUtils::isNCName(value)) {
+ attributeContentError("name", elementName, value, BuiltinTypes::xsNCName);
+ return QString();
+ } else {
+ return value;
+ }
+}
+
+QString XsdSchemaParser::readQNameAttribute(const QString &typeAttribute, const char *elementName)
+{
+ const QString value = readAttribute(typeAttribute).simplified();
+ if (!XPathHelper::isQName(value)) {
+ attributeContentError(typeAttribute.toLatin1(), elementName, value, BuiltinTypes::xsQName);
+ return QString();
+ } else {
+ return value;
+ }
+}
+
+QString XsdSchemaParser::readNamespaceAttribute(const QString &attributeName, const char *elementName)
+{
+ const QString value = readAttribute(attributeName);
+ if (value.isEmpty()) {
+ attributeContentError(attributeName.toLatin1(), elementName, value, BuiltinTypes::xsAnyURI);
+ return QString();
+ }
+
+ return value;
+}
+
+SchemaType::DerivationConstraints XsdSchemaParser::readDerivationConstraintAttribute(const SchemaType::DerivationConstraints &allowedConstraints, const char *elementName)
+{
+ // first convert the flags into strings for easier comparision
+ QSet<QString> allowedContent;
+ if (allowedConstraints & SchemaType::RestrictionConstraint)
+ allowedContent.insert(QString::fromLatin1("restriction"));
+ if (allowedConstraints & SchemaType::ExtensionConstraint)
+ allowedContent.insert(QString::fromLatin1("extension"));
+ if (allowedConstraints & SchemaType::ListConstraint)
+ allowedContent.insert(QString::fromLatin1("list"));
+ if (allowedConstraints & SchemaType::UnionConstraint)
+ allowedContent.insert(QString::fromLatin1("union"));
+
+ // read content from the attribute if available, otherwise use the default definitions from the schema tag
+ QString content;
+ if (hasAttribute(QString::fromLatin1("final"))) {
+ content = readAttribute(QString::fromLatin1("final"));
+
+ // split string into list to validate the content of the attribute
+ const QStringList values = content.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < values.count(); i++) {
+ const QString value = values.at(i);
+ if (!allowedContent.contains(value) && (value != QString::fromLatin1("#all"))) {
+ attributeContentError("final", elementName, value);
+ return SchemaType::DerivationConstraints();
+ }
+
+ if ((value == QString::fromLatin1("#all")) && values.count() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must either contain %3 or the other values")
+ .arg(formatAttribute("final"))
+ .arg(formatElement(elementName))
+ .arg(formatData("#all")));
+ return SchemaType::DerivationConstraints();
+ }
+ }
+ } else {
+ // content of the default value has been validated in parseSchema already
+ content = m_finalDefault;
+ }
+
+ QSet<QString> contentSet = content.split(QLatin1Char(' '), QString::SkipEmptyParts).toSet();
+
+ // if the '#all' tag is defined, we return all allowed values
+ if (contentSet.contains(QString::fromLatin1("#all"))) {
+ return allowedConstraints;
+ } else { // return the values from content set that intersects with the allowed values
+ contentSet.intersect(allowedContent);
+
+ SchemaType::DerivationConstraints constraints;
+
+ if (contentSet.contains(QString::fromLatin1("restriction")))
+ constraints |= SchemaType::RestrictionConstraint;
+ if (contentSet.contains(QString::fromLatin1("extension")))
+ constraints |= SchemaType::ExtensionConstraint;
+ if (contentSet.contains(QString::fromLatin1("list")))
+ constraints |= SchemaType::ListConstraint;
+ if (contentSet.contains(QString::fromLatin1("union")))
+ constraints |= SchemaType::UnionConstraint;
+
+ return constraints;
+ }
+}
+
+NamedSchemaComponent::BlockingConstraints XsdSchemaParser::readBlockingConstraintAttribute(const NamedSchemaComponent::BlockingConstraints &allowedConstraints, const char *elementName)
+{
+ // first convert the flags into strings for easier comparision
+ QSet<QString> allowedContent;
+ if (allowedConstraints & NamedSchemaComponent::RestrictionConstraint)
+ allowedContent.insert(QString::fromLatin1("restriction"));
+ if (allowedConstraints & NamedSchemaComponent::ExtensionConstraint)
+ allowedContent.insert(QString::fromLatin1("extension"));
+ if (allowedConstraints & NamedSchemaComponent::SubstitutionConstraint)
+ allowedContent.insert(QString::fromLatin1("substitution"));
+
+ // read content from the attribute if available, otherwise use the default definitions from the schema tag
+ QString content;
+ if (hasAttribute(QString::fromLatin1("block"))) {
+ content = readAttribute(QString::fromLatin1("block"));
+
+ // split string into list to validate the content of the attribute
+ const QStringList values = content.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < values.count(); i++) {
+ const QString value = values.at(i);
+ if (!allowedContent.contains(value) && (value != QString::fromLatin1("#all"))) {
+ attributeContentError("block", elementName, value);
+ return NamedSchemaComponent::BlockingConstraints();
+ }
+
+ if ((value == QString::fromLatin1("#all")) && values.count() != 1) {
+ error(QtXmlPatterns::tr("%1 attribute of %2 element must either contain %3 or the other values")
+ .arg(formatAttribute("block"))
+ .arg(formatElement(elementName))
+ .arg(formatData("#all")));
+ return NamedSchemaComponent::BlockingConstraints();
+ }
+ }
+ } else {
+ // content of the default value has been validated in parseSchema already
+ content = m_blockDefault;
+ }
+
+ QSet<QString> contentSet = content.split(QLatin1Char(' '), QString::SkipEmptyParts).toSet();
+
+ // if the '#all' tag is defined, we return all allowed values
+ if (contentSet.contains(QString::fromLatin1("#all"))) {
+ return allowedConstraints;
+ } else { // return the values from content set that intersects with the allowed values
+ contentSet.intersect(allowedContent);
+
+ NamedSchemaComponent::BlockingConstraints constraints;
+
+ if (contentSet.contains(QString::fromLatin1("restriction")))
+ constraints |= NamedSchemaComponent::RestrictionConstraint;
+ if (contentSet.contains(QString::fromLatin1("extension")))
+ constraints |= NamedSchemaComponent::ExtensionConstraint;
+ if (contentSet.contains(QString::fromLatin1("substitution")))
+ constraints |= NamedSchemaComponent::SubstitutionConstraint;
+
+ return constraints;
+ }
+}
+
+XsdXPathExpression::Ptr XsdSchemaParser::readXPathExpression(const char *elementName)
+{
+ const XsdXPathExpression::Ptr expression(new XsdXPathExpression());
+
+ const QList<QXmlName> namespaceBindings = m_namespaceSupport.namespaceBindings();
+ QXmlName emptyName;
+ for (int i = 0; i < namespaceBindings.count(); ++i) {
+ if (namespaceBindings.at(i).prefix() == StandardPrefixes::empty)
+ emptyName = namespaceBindings.at(i);
+ }
+
+ expression->setNamespaceBindings(namespaceBindings);
+
+ QString xpathDefaultNamespace;
+ if (hasAttribute(QString::fromLatin1("xpathDefaultNamespace"))) {
+ xpathDefaultNamespace = readAttribute(QString::fromLatin1("xpathDefaultNamespace"));
+ if (xpathDefaultNamespace != QString::fromLatin1("##defaultNamespace") &&
+ xpathDefaultNamespace != QString::fromLatin1("##targetNamespace") &&
+ xpathDefaultNamespace != QString::fromLatin1("##local")) {
+ if (!isValidUri(xpathDefaultNamespace)) {
+ attributeContentError("xpathDefaultNamespace", elementName, xpathDefaultNamespace, BuiltinTypes::xsAnyURI);
+ return expression;
+ }
+ }
+ } else {
+ xpathDefaultNamespace = m_xpathDefaultNamespace;
+ }
+
+ AnyURI::Ptr namespaceURI;
+ if (xpathDefaultNamespace == QString::fromLatin1("##defaultNamespace")) {
+ if (!emptyName.isNull())
+ namespaceURI = AnyURI::fromLexical(m_namePool->stringForNamespace(emptyName.namespaceURI()));
+ } else if (xpathDefaultNamespace == QString::fromLatin1("##targetNamespace")) {
+ if (!m_targetNamespace.isEmpty())
+ namespaceURI = AnyURI::fromLexical(m_targetNamespace);
+ } else if (xpathDefaultNamespace == QString::fromLatin1("##local")) {
+ // it is absent
+ } else {
+ namespaceURI = AnyURI::fromLexical(xpathDefaultNamespace);
+ }
+ if (namespaceURI) {
+ if (namespaceURI->hasError()) {
+ attributeContentError("xpathDefaultNamespace", elementName, xpathDefaultNamespace, BuiltinTypes::xsAnyURI);
+ return expression;
+ }
+
+ expression->setDefaultNamespace(namespaceURI);
+ }
+
+ //TODO: read the base uri if qmaintaining reader support it
+
+ return expression;
+}
+
+QString XsdSchemaParser::readXPathAttribute(const QString &attributeName, XPathType type, const char *elementName)
+{
+ const QString value = readAttribute(attributeName);
+ if (value.isEmpty() || value.startsWith(QLatin1Char('/'))) {
+ attributeContentError(attributeName.toLatin1(), elementName, value);
+ return QString();
+ }
+
+ QXmlNamePool namePool(m_namePool.data());
+
+ QXmlQuery::QueryLanguage language = QXmlQuery::XPath20;
+ switch (type) {
+ case XPath20: language = QXmlQuery::XPath20; break;
+ case XPathSelector: language = QXmlQuery::XmlSchema11IdentityConstraintSelector; break;
+ case XPathField: language = QXmlQuery::XmlSchema11IdentityConstraintField; break;
+ };
+
+ QXmlQuery query(language, namePool);
+ QXmlQueryPrivate *queryPrivate = query.d;
+
+ const QList<QXmlName> namespaceBindings = m_namespaceSupport.namespaceBindings();
+ for (int i = 0; i < namespaceBindings.count(); ++i) {
+ if (!namespaceBindings.at(i).prefix() == StandardPrefixes::empty)
+ queryPrivate->addAdditionalNamespaceBinding(namespaceBindings.at(i));
+ }
+
+ query.setQuery(value, m_documentURI);
+ if (!query.isValid()) {
+ attributeContentError(attributeName.toLatin1(), elementName, value);
+ return QString();
+ }
+
+ return value;
+}
+
+void XsdSchemaParser::validateIdAttribute(const char *elementName)
+{
+ if (hasAttribute(QString::fromLatin1("id"))) {
+ const QString value = readAttribute(QString::fromLatin1("id"));
+ DerivedString<TypeID>::Ptr id = DerivedString<TypeID>::fromLexical(m_namePool, value);
+ if (id->hasError()) {
+ attributeContentError("id", elementName, value, BuiltinTypes::xsID);
+ } else {
+ if (m_idCache->hasId(value)) {
+ error(QtXmlPatterns::tr("component with id %1 has been defined previously").arg(formatData(value)));
+ } else {
+ m_idCache->addId(value);
+ }
+ }
+ }
+}
+
+bool XsdSchemaParser::isSchemaTag(XsdSchemaToken::NodeName tag, XsdSchemaToken::NodeName token, XsdSchemaToken::NodeName namespaceToken) const
+{
+ return ((tag == token) && (namespaceToken == XsdSchemaToken::XML_NS_SCHEMA_URI));
+}
+
+void XsdSchemaParser::addElement(const XsdElement::Ptr &element)
+{
+ const QXmlName objectName = element->name(m_namePool);
+ if (m_schema->element(objectName)) {
+ error(QtXmlPatterns::tr("element %1 already defined").arg(formatElement(m_namePool->displayName(objectName))));
+ } else {
+ m_schema->addElement(element);
+ m_componentLocationHash.insert(element, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addAttribute(const XsdAttribute::Ptr &attribute)
+{
+ const QXmlName objectName = attribute->name(m_namePool);
+ if (m_schema->attribute(objectName)) {
+ error(QtXmlPatterns::tr("attribute %1 already defined").arg(formatAttribute(m_namePool->displayName(objectName))));
+ } else {
+ m_schema->addAttribute(attribute);
+ m_componentLocationHash.insert(attribute, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addType(const SchemaType::Ptr &type)
+{
+ // we don't import redefinitions of builtin types, that just causes problems
+ if (m_builtinTypeNames.contains(type->name(m_namePool)))
+ return;
+
+ const QXmlName objectName = type->name(m_namePool);
+ if (m_schema->type(objectName)) {
+ error(QtXmlPatterns::tr("type %1 already defined").arg(formatType(m_namePool, objectName)));
+ } else {
+ m_schema->addType(type);
+ if (type->isSimpleType())
+ m_componentLocationHash.insert(XsdSimpleType::Ptr(type), currentSourceLocation());
+ else
+ m_componentLocationHash.insert(XsdComplexType::Ptr(type), currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addAnonymousType(const SchemaType::Ptr &type)
+{
+ m_schema->addAnonymousType(type);
+ if (type->isSimpleType())
+ m_componentLocationHash.insert(XsdSimpleType::Ptr(type), currentSourceLocation());
+ else
+ m_componentLocationHash.insert(XsdComplexType::Ptr(type), currentSourceLocation());
+}
+
+void XsdSchemaParser::addAttributeGroup(const XsdAttributeGroup::Ptr &group)
+{
+ const QXmlName objectName = group->name(m_namePool);
+ if (m_schema->attributeGroup(objectName)) {
+ error(QtXmlPatterns::tr("attribute group %1 already defined").arg(formatKeyword(m_namePool, objectName)));
+ } else {
+ m_schema->addAttributeGroup(group);
+ m_componentLocationHash.insert(group, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addElementGroup(const XsdModelGroup::Ptr &group)
+{
+ const QXmlName objectName = group->name(m_namePool);
+ if (m_schema->elementGroup(objectName)) {
+ error(QtXmlPatterns::tr("element group %1 already defined").arg(formatKeyword(m_namePool, objectName)));
+ } else {
+ m_schema->addElementGroup(group);
+ m_componentLocationHash.insert(group, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addNotation(const XsdNotation::Ptr &notation)
+{
+ const QXmlName objectName = notation->name(m_namePool);
+ if (m_schema->notation(objectName)) {
+ error(QtXmlPatterns::tr("notation %1 already defined").arg(formatKeyword(m_namePool, objectName)));
+ } else {
+ m_schema->addNotation(notation);
+ m_componentLocationHash.insert(notation, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint)
+{
+ const QXmlName objectName = constraint->name(m_namePool);
+ if (m_schema->identityConstraint(objectName)) {
+ error(QtXmlPatterns::tr("identity constraint %1 already defined").arg(formatKeyword(m_namePool, objectName)));
+ } else {
+ m_schema->addIdentityConstraint(constraint);
+ m_componentLocationHash.insert(constraint, currentSourceLocation());
+ }
+}
+
+void XsdSchemaParser::addFacet(const XsdFacet::Ptr &facet, XsdFacet::Hash &facets, const SchemaType::Ptr &type)
+{
+ // @see http://www.w3.org/TR/xmlschema-2/#src-single-facet-value
+ if (facets.contains(facet->type())) {
+ error(QtXmlPatterns::tr("duplicated facets in simple type %1").arg(formatType(m_namePool, type)));
+ return;
+ }
+
+ facets.insert(facet->type(), facet);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemaparser_p.h b/src/xmlpatterns/schema/qxsdschemaparser_p.h
new file mode 100644
index 0000000..c52702b
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaparser_p.h
@@ -0,0 +1,721 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaParser_H
+#define Patternist_XsdSchemaParser_H
+
+#include "qnamespacesupport_p.h"
+#include "qxsdalternative_p.h"
+#include "qxsdattribute_p.h"
+#include "qxsdattributegroup_p.h"
+#include "qxsdattributeterm_p.h"
+#include "qxsdcomplextype_p.h"
+#include "qxsdelement_p.h"
+#include "qxsdidcache_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdnotation_p.h"
+#include "qxsdsimpletype_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdschemaparsercontext_p.h"
+#include "qxsdstatemachine_p.h"
+
+#include <QtCore/QHash>
+#include <QtCore/QSet>
+#include <QtCore/QUrl>
+#include <QtXml/QXmlStreamReader>
+#include <QtXmlPatterns/QXmlNamePool>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Implements the parsing of XML schema file.
+ *
+ * This class parses a XML schema in XML presentation from an QIODevice
+ * and returns object representation as XsdSchema.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaParser : public MaintainingReader<XsdSchemaToken, XsdTagScope::Type>
+ {
+ friend class ElementNamespaceHandler;
+ friend class TagValidationHandler;
+
+ public:
+ enum ParserType
+ {
+ TopLevelParser,
+ IncludeParser,
+ ImportParser,
+ RedefineParser
+ };
+
+ /**
+ * Creates a new schema parser object.
+ */
+ XsdSchemaParser(const XsdSchemaContext::Ptr &context, const XsdSchemaParserContext::Ptr &parserContext, QIODevice *device);
+
+ /**
+ * Parses the XML schema file.
+ *
+ * @return @c true on success, @c false if the schema is somehow invalid.
+ */
+ bool parse(ParserType parserType = TopLevelParser);
+
+ /**
+ * Describes a set of namespace URIs
+ */
+ typedef QSet<QUrl> NamespaceSet;
+
+ /**
+ * Sets which @p schemas have been included already, so the parser
+ * can detect circular includes.
+ */
+ void setIncludedSchemas(const NamespaceSet &schemas);
+
+ /**
+ * Sets which @p schemas have been imported already, so the parser
+ * can detect circular imports.
+ */
+ void setImportedSchemas(const NamespaceSet &schemas);
+
+ /**
+ * Sets which @p schemas have been redefined already, so the parser
+ * can detect circular redefines.
+ */
+ void setRedefinedSchemas(const NamespaceSet &schemas);
+
+ /**
+ * Sets the target namespace of the schema to parse.
+ */
+ void setTargetNamespace(const QString &targetNamespace);
+
+ /**
+ * Sets the document URI of the schema to parse.
+ */
+ void setDocumentURI(const QUrl &uri);
+
+ /**
+ * Returns the document URI of the schema to parse.
+ */
+ QUrl documentURI() const;
+
+ /**
+ * Reimplemented from MaintainingReader, always returns @c false.
+ */
+ bool isAnyAttributeAllowed() const;
+
+ private:
+ /**
+ * Used internally to report any kind of parsing error or
+ * schema inconsistency.
+ */
+ virtual void error(const QString &msg);
+
+ void attributeContentError(const char *attributeName, const char *elementName, const QString &value, const SchemaType::Ptr &type = SchemaType::Ptr());
+
+ /**
+ * Sets the target namespace of the schema to parse.
+ */
+ void setTargetNamespaceExtended(const QString &targetNamespace);
+
+ /**
+ * This method is called for parsing the top-level <em>schema</em> object.
+ */
+ void parseSchema(ParserType parserType);
+
+ /**
+ * This method is called for parsing any top-level <em>include</em> object.
+ */
+ void parseInclude();
+
+ /**
+ * This method is called for parsing any top-level <em>import</em> object.
+ */
+ void parseImport();
+
+ /**
+ * This method is called for parsing any top-level <em>redefine</em> object.
+ */
+ void parseRedefine();
+
+ /**
+ * This method is called for parsing any <em>annotation</em> object everywhere
+ * in the schema.
+ */
+ XsdAnnotation::Ptr parseAnnotation();
+
+ /**
+ * This method is called for parsing an <em>appinfo</em> object as child of
+ * an <em>annotation</em> object.
+ */
+ XsdApplicationInformation::Ptr parseAppInfo();
+
+ /**
+ * This method is called for parsing a <em>documentation</em> object as child of
+ * an <em>annotation</em> object.
+ */
+ XsdDocumentation::Ptr parseDocumentation();
+
+ /**
+ * This method is called for parsing a <em>defaultOpenContent</em> object.
+ */
+ void parseDefaultOpenContent();
+
+ /**
+ * This method is called for parsing any top-level <em>simpleType</em> object.
+ */
+ XsdSimpleType::Ptr parseGlobalSimpleType();
+
+ /**
+ * This method is called for parsing any <em>simpleType</em> object as descendant
+ * of an <em>element</em> or <em>complexType</em> object.
+ */
+ XsdSimpleType::Ptr parseLocalSimpleType();
+
+ /**
+ * This method is called for parsing a <em>restriction</em> object as child
+ * of a <em>simpleType</em> object.
+ */
+ void parseSimpleRestriction(const XsdSimpleType::Ptr &ptr);
+
+ /**
+ * This method is called for parsing a <em>list</em> object as child
+ * of a <em>simpleType</em> object.
+ */
+ void parseList(const XsdSimpleType::Ptr &ptr);
+
+ /**
+ * This method is called for parsing a <em>union</em> object as child
+ * of a <em>simpleType</em> object.
+ */
+ void parseUnion(const XsdSimpleType::Ptr &ptr);
+
+ /**
+ * This method is called for parsing a <em>minExclusive</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMinExclusiveFacet();
+
+ /**
+ * This method is called for parsing a <em>minInclusive</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMinInclusiveFacet();
+
+ /**
+ * This method is called for parsing a <em>maxExclusive</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMaxExclusiveFacet();
+
+ /**
+ * This method is called for parsing a <em>maxInclusive</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMaxInclusiveFacet();
+
+ /**
+ * This method is called for parsing a <em>totalDigits</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseTotalDigitsFacet();
+
+ /**
+ * This method is called for parsing a <em>fractionDigits</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseFractionDigitsFacet();
+
+ /**
+ * This method is called for parsing a <em>length</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseLengthFacet();
+
+ /**
+ * This method is called for parsing a <em>minLength</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMinLengthFacet();
+
+ /**
+ * This method is called for parsing a <em>maxLength</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseMaxLengthFacet();
+
+ /**
+ * This method is called for parsing an <em>enumeration</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseEnumerationFacet();
+
+ /**
+ * This method is called for parsing a <em>whiteSpace</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseWhiteSpaceFacet();
+
+ /**
+ * This method is called for parsing a <em>pattern</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parsePatternFacet();
+
+ /**
+ * This method is called for parsing an <em>assertion</em> object as child
+ * of a <em>restriction</em> object.
+ */
+ XsdFacet::Ptr parseAssertionFacet();
+
+ /**
+ * This method is called for parsing any top-level <em>complexType</em> object.
+ */
+ XsdComplexType::Ptr parseGlobalComplexType();
+
+ /**
+ * This method is called for parsing any <em>complexType</em> object as descendant
+ * of an <em>element</em> object.
+ */
+ XsdComplexType::Ptr parseLocalComplexType();
+
+ /**
+ * This method resolves the content type of the @p complexType for the given
+ * @p effectiveMixed value.
+ */
+ void resolveComplexContentType(const XsdComplexType::Ptr &complexType, bool effectiveMixed);
+
+ /**
+ * This method is called for parsing a <em>simpleContent</em> object as child
+ * of a <em>complexType</em> object.
+ */
+ void parseSimpleContent(const XsdComplexType::Ptr &complexType);
+
+ /**
+ * This method is called for parsing a <em>restriction</em> object as child
+ * of a <em>simpleContent</em> object.
+ */
+ void parseSimpleContentRestriction(const XsdComplexType::Ptr &complexType);
+
+ /**
+ * This method is called for parsing an <em>extension</em> object as child
+ * of a <em>simpleContent</em> object.
+ */
+ void parseSimpleContentExtension(const XsdComplexType::Ptr &complexType);
+
+ /**
+ * This method is called for parsing a <em>complexContent</em> object as child
+ * of a <em>complexType</em> object.
+ *
+ * @param complexType The complex type the complex content belongs to.
+ * @param mixed The output parameter for the mixed value.
+ */
+ void parseComplexContent(const XsdComplexType::Ptr &complexType, bool *mixed);
+
+ /**
+ * This method is called for parsing a <em>restriction</em> object as child
+ * of a <em>complexContent</em> object.
+ */
+ void parseComplexContentRestriction(const XsdComplexType::Ptr &complexType);
+
+ /**
+ * This method is called for parsing an <em>extension</em> object as child
+ * of a <em>complexContent</em> object.
+ */
+ void parseComplexContentExtension(const XsdComplexType::Ptr &complexType);
+
+ /**
+ * This method is called for parsing an <em>assert</em> object as child
+ * of a <em>complexType</em> or parsing a <em>assertion</em> facet object as
+ * child of a <em>simpleType</em>.
+ *
+ * @param nodeName Either XsdSchemaToken::Assert or XsdSchemaToken::Assertion.
+ * @param tag Either XsdTagScope::Assert or XsdTagScope::Assertion.
+ */
+ XsdAssertion::Ptr parseAssertion(const XsdSchemaToken::NodeName &nodeName, const XsdTagScope::Type &tag);
+
+ /**
+ * This method is called for parsing an <em>openContent</em> object.
+ */
+ XsdComplexType::OpenContent::Ptr parseOpenContent();
+
+ /**
+ * This method is called for parsing a top-level <em>group</em> object.
+ */
+ XsdModelGroup::Ptr parseNamedGroup();
+
+ /**
+ * This method is called for parsing a non-top-level <em>group</em> object
+ * that contains a <em>ref</em> attribute.
+ */
+ XsdTerm::Ptr parseReferredGroup(const XsdParticle::Ptr &particle);
+
+ /**
+ * This method is called for parsing an <em>all</em> object as child
+ * of a top-level <em>group</em> object.
+ *
+ * @param parent The schema component the <em>all</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseAll(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing an <em>all</em> object as descendant
+ * of a <em>complexType</em> object.
+ *
+ * @param particle The particle the <em>all</em> object belongs to.
+ * @param parent The schema component the <em>all</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseLocalAll(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a <em>choice</em> object as child
+ * of a top-level <em>group</em> object.
+ *
+ * @param parent The schema component the <em>choice</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseChoice(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a <em>choice</em> object as descendant
+ * of a <em>complexType</em> object or a <em>choice</em> object.
+ *
+ * @param particle The particle the <em>choice</em> object belongs to.
+ * @param parent The schema component the <em>choice</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseLocalChoice(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a <em>sequence</em> object as child
+ * of a top-level <em>group</em> object.
+ *
+ * @param parent The schema component the <em>sequence</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseSequence(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a <em>sequence</em> object as descendant
+ * of a <em>complexType</em> object or a <em>sequence</em> object.
+ *
+ * @param particle The particle the <em>sequence</em> object belongs to.
+ * @param parent The schema component the <em>sequence</em> object is part of.
+ */
+ XsdModelGroup::Ptr parseLocalSequence(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * A helper method that parses the minOccurs and maxOccurs constraints for
+ * the given @p particle that has the given @p tagName.
+ */
+ bool parseMinMaxConstraint(const XsdParticle::Ptr &particle, const char* tagName);
+
+ /**
+ * This method is called for parsing any top-level <em>attribute</em> object.
+ */
+ XsdAttribute::Ptr parseGlobalAttribute();
+
+ /**
+ * This method is called for parsing any non-top-level <em>attribute</em> object as a
+ * descendant of a <em>complexType</em> object or an <em>attributeGroup</em> object.
+ *
+ * @param parent The parent component the <em>attribute</em> object is part of.
+ */
+ XsdAttributeUse::Ptr parseLocalAttribute(const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a top-level <em>attributeGroup</em> object.
+ */
+ XsdAttributeGroup::Ptr parseNamedAttributeGroup();
+
+ /**
+ * This method is called for parsing a non-top-level <em>attributeGroup</em> object
+ * that contains a <em>ref</em> attribute.
+ */
+ XsdAttributeUse::Ptr parseReferredAttributeGroup();
+
+ /**
+ * This method is called for parsing any top-level <em>element</em> object.
+ */
+ XsdElement::Ptr parseGlobalElement();
+
+ /**
+ * This method is called for parsing any non-top-level <em>element</em> object as a
+ * descendant of a <em>complexType</em> object or a <em>group</em> object.
+ *
+ * @param particle The particle the <em>element</em> object belongs to.
+ * @param parent The parent component the <em>element</em> object is part of.
+ */
+ XsdTerm::Ptr parseLocalElement(const XsdParticle::Ptr &particle, const NamedSchemaComponent::Ptr &parent);
+
+ /**
+ * This method is called for parsing a <em>unique</em> object as child of an <em>element</em> object.
+ */
+ XsdIdentityConstraint::Ptr parseUnique();
+
+ /**
+ * This method is called for parsing a <em>key</em> object as child of an <em>element</em> object.
+ */
+ XsdIdentityConstraint::Ptr parseKey();
+
+ /**
+ * This method is called for parsing a <em>keyref</em> object as child of an <em>element</em> object.
+ */
+ XsdIdentityConstraint::Ptr parseKeyRef(const XsdElement::Ptr &element);
+
+ /**
+ * This method is called for parsing a <em>selector</em> object as child of an <em>unique</em> object,
+ * <em>key</em> object or <em>keyref</em> object,
+ *
+ * @param ptr The identity constraint it belongs to.
+ */
+ void parseSelector(const XsdIdentityConstraint::Ptr &ptr);
+
+ /**
+ * This method is called for parsing a <em>field</em> object as child of an <em>unique</em> object,
+ * <em>key</em> object or <em>keyref</em> object,
+ *
+ * @param ptr The identity constraint it belongs to.
+ */
+ void parseField(const XsdIdentityConstraint::Ptr &ptr);
+
+ /**
+ * This method is called for parsing an <em>alternative</em> object inside an <em>element</em> object.
+ */
+ XsdAlternative::Ptr parseAlternative();
+
+ /**
+ * This method is called for parsing a top-level <em>notation</em> object.
+ */
+ XsdNotation::Ptr parseNotation();
+
+ /**
+ * This method is called for parsing an <em>any</em> object somewhere in
+ * the schema.
+ *
+ * @param particle The particle the <em>any</em> object belongs to.
+ */
+ XsdWildcard::Ptr parseAny(const XsdParticle::Ptr &particle);
+
+ /**
+ * This method is called for parsing an <em>anyAttribute</em> object somewhere in
+ * the schema.
+ */
+ XsdWildcard::Ptr parseAnyAttribute();
+
+ /**
+ * This method is called for parsing unknown object as descendant of the <em>annotation</em> object.
+ */
+ void parseUnknownDocumentation();
+
+ /**
+ * This method is called for parsing unknown object in the schema.
+ */
+ void parseUnknown();
+
+ /**
+ * Returnes an source location for the current position.
+ */
+ QSourceLocation currentSourceLocation() const;
+
+ /**
+ * Converts a @p qualified name into a QXmlName @p name and does some error handling.
+ */
+ void convertName(const QString &qualified, NamespaceSupport::NameType type, QXmlName &name);
+
+ /**
+ * A helper method that reads in a 'name' attribute and checks it for syntactic errors.
+ */
+ inline QString readNameAttribute(const char *elementName);
+
+ /**
+ * A helper method that reads in an attribute that contains an QName and
+ * checks it for syntactic errors.
+ */
+ inline QString readQNameAttribute(const QString &typeAttribute, const char *elementName);
+
+ /**
+ * A helper method that reads in a namespace attribute and checks for syntactic errors.
+ */
+ inline QString readNamespaceAttribute(const QString &attributeName, const char *elementName);
+
+ /**
+ * A helper method that reads the final attribute and does correct handling of schema default definitions.
+ */
+ inline SchemaType::DerivationConstraints readDerivationConstraintAttribute(const SchemaType::DerivationConstraints &allowedConstraints, const char *elementName);
+
+ /**
+ * A helper method that reads the block attribute and does correct handling of schema default definitions.
+ */
+ inline NamedSchemaComponent::BlockingConstraints readBlockingConstraintAttribute(const NamedSchemaComponent::BlockingConstraints &allowedConstraints, const char *elementName);
+
+ /**
+ * A helper method that reads all components for a xpath expression for the current scope.
+ */
+ XsdXPathExpression::Ptr readXPathExpression(const char *elementName);
+
+ /**
+ * Describes the type of XPath that is allowed by the readXPathAttribute method.
+ */
+ enum XPathType {
+ XPath20,
+ XPathSelector,
+ XPathField
+ };
+
+ /**
+ * A helper method that reads an attribute that represents a xpath query and does basic
+ * validation.
+ */
+ QString readXPathAttribute(const QString &attributeName, XPathType type, const char *elementName);
+
+ /**
+ * A helper method that reads in an "id" attribute, checks it for syntactic errors
+ * and tests whether a component with the same id has already been parsed.
+ */
+ inline void validateIdAttribute(const char *elementName);
+
+ /**
+ * Adds an @p element to the schema and checks for duplicated entries.
+ */
+ void addElement(const XsdElement::Ptr &element);
+
+ /**
+ * Adds an @p attribute to the schema and checks for duplicated entries.
+ */
+ void addAttribute(const XsdAttribute::Ptr &attribute);
+
+ /**
+ * Adds a @p type to the schema and checks for duplicated entries.
+ */
+ void addType(const SchemaType::Ptr &type);
+
+ /**
+ * Adds an anonymous @p type to the schema and checks for duplicated entries.
+ */
+ void addAnonymousType(const SchemaType::Ptr &type);
+
+ /**
+ * Adds an attribute @p group to the schema and checks for duplicated entries.
+ */
+ void addAttributeGroup(const XsdAttributeGroup::Ptr &group);
+
+ /**
+ * Adds an element @p group to the schema and checks for duplicated entries.
+ */
+ void addElementGroup(const XsdModelGroup::Ptr &group);
+
+ /**
+ * Adds a @p notation to the schema and checks for duplicated entries.
+ */
+ void addNotation(const XsdNotation::Ptr &notation);
+
+ /**
+ * Adds an identity @p constraint to the schema and checks for duplicated entries.
+ */
+ void addIdentityConstraint(const XsdIdentityConstraint::Ptr &constraint);
+
+ /**
+ * Adds the @p facet to the list of @p facets for @p type and checks for duplicates.
+ */
+ void addFacet(const XsdFacet::Ptr &facet, XsdFacet::Hash &facets, const SchemaType::Ptr &type);
+
+ /**
+ * Sets up the state machines for validating the right occurrence of xml elements.
+ */
+ void setupStateMachines();
+
+ /**
+ * Sets up a list of names of known builtin types.
+ */
+ void setupBuiltinTypeNames();
+
+ /**
+ * Checks whether the given @p tag is equal to the given @p token and
+ * the given @p namespaceToken is the XML Schema namespace.
+ */
+ inline bool isSchemaTag(XsdSchemaToken::NodeName tag, XsdSchemaToken::NodeName token, XsdSchemaToken::NodeName namespaceToken) const;
+
+ XsdSchemaContext::Ptr m_context;
+ XsdSchemaParserContext::Ptr m_parserContext;
+ NamePool::Ptr m_namePool;
+ NamespaceSupport m_namespaceSupport;
+ XsdSchemaResolver::Ptr m_schemaResolver;
+ XsdSchema::Ptr m_schema;
+
+ QString m_targetNamespace;
+ QString m_attributeFormDefault;
+ QString m_elementFormDefault;
+ QString m_blockDefault;
+ QString m_finalDefault;
+ QString m_xpathDefaultNamespace;
+ QXmlName m_defaultAttributes;
+ XsdComplexType::OpenContent::Ptr m_defaultOpenContent;
+ bool m_defaultOpenContentAppliesToEmpty;
+
+ NamespaceSet m_includedSchemas;
+ NamespaceSet m_importedSchemas;
+ NamespaceSet m_redefinedSchemas;
+ QUrl m_documentURI;
+ XsdIdCache::Ptr m_idCache;
+ QHash<XsdTagScope::Type, XsdStateMachine<XsdSchemaToken::NodeName> > m_stateMachines;
+ ComponentLocationHash m_componentLocationHash;
+ QSet<QXmlName> m_builtinTypeNames;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp b/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp
new file mode 100644
index 0000000..167af7a
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaparser_setup.cpp
@@ -0,0 +1,1070 @@
+
+#include "qxsdschemaparser_p.h"
+
+#include "qbuiltintypes_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/**
+ * @page using_dfa_for_schema Using DFA for validation of correct XML tag occurrence
+ *
+ * This page describes how to use DFAs for validating that the XML child tags of an
+ * XML parent tag occur in the right order.
+ *
+ * To validate the occurence of XML tags one need a regular expression that describes
+ * which tags can appear how often in what context. For example the regular expression
+ * of the global <em>attribute</em> tag in XML Schema is (annotation?, simpleType?).
+ * That means the <em>attribute</em> tag can contain an <em>annotation</em> tag followed
+ * by a <em>simpleType</em> tag, or just one <em>simpleType</em> tag and even no child
+ * tag at all.
+ * So the regular expression describes some kind of language and all the various occurrences
+ * of the child tags can be seen as words of that language.
+ * We can create a DFA now, that accepts all words (and only these words) of that language
+ * and whenever we want to check if a sequence of child tags belongs to the language,
+ * we test if the sequence passes the DFA successfully.
+ *
+ * The following example shows how to create the DFA for the regular expression method
+ * above.
+ *
+ * \dotfile GlobalAttribute_diagram.dot
+ *
+ * At first we need a start state (1), that's the state the DFA is before it
+ * starts running. As our regular expression allows that there are no child tags, the
+ * start state is an end state as well (marked by the double circle).
+ * Now we fetch the first token from the XML file (let's assume it is an <em>annotation</em> tag)
+ * and check if there is an edge labled with the tag name leaving the current state of the DFA.
+ * If there is no such edge, the input doesn't fullfill the rules of the regular expression,
+ * so we throw an error. Otherwise we follow that edge and the DFA is set to the new state (2) the
+ * edge points to. Now we fetch the next token from the XML file and do the previous steps again.
+ * If there is no further input from the XML file, we check whether the DFA is in an end state and
+ * throw an error if not.
+ *
+ * So the algorithm for checking is quite simple, the whole logic is encoded in the DFA and creating
+ * one for a regular expression is sometimes not easy, however the ones for XML Schema are straight
+ * forward.
+ *
+ * <h2>Legend:</h2>
+ * \dotfile legend.dot
+ * <br>
+ *
+ * <h2>DFA for <em>all</em> tag</h2>
+ * \dotfile All_diagram.dot
+ * <br>
+ * <h2>DFA for <em>alternative</em> tag</h2>
+ * \dotfile Alternative_diagram.dot
+ * <br>
+ * <h2>DFA for <em>annotation</em> tag</h2>
+ * \dotfile Annotation_diagram.dot
+ * <br>
+ * <h2>DFA for <em>anyAttribute</em> tag</h2>
+ * \dotfile AnyAttribute_diagram.dot
+ * <br>
+ * <h2>DFA for <em>any</em> tag</h2>
+ * \dotfile Any_diagram.dot
+ * <br>
+ * <h2>DFA for <em>assert</em> tag</h2>
+ * \dotfile Assert_diagram.dot
+ * <br>
+ * <h2>DFA for <em>choice</em> tag</h2>
+ * \dotfile Choice_diagram.dot
+ * <br>
+ * <h2>DFA for <em>complexContent</em> tag</h2>
+ * \dotfile ComplexContent_diagram.dot
+ * <br>
+ * <h2>DFA for <em>extension</em> tag inside a <em>complexContent</em> tag</h2>
+ * \dotfile ComplexContentExtension_diagram.dot
+ * <br>
+ * <h2>DFA for <em>restriction</em> tag inside a <em>complexContent</em> tag</h2>
+ * \dotfile ComplexContentRestriction_diagram.dot
+ * <br>
+ * <h2>DFA for <em>defaultOpenContent</em> tag</h2>
+ * \dotfile DefaultOpenContent_diagram.dot
+ * <br>
+ * <h2>DFA for <em>enumeration</em> tag</h2>
+ * \dotfile EnumerationFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>field</em> tag</h2>
+ * \dotfile Field_diagram.dot
+ * <br>
+ * <h2>DFA for <em>fractionDigits</em> tag</h2>
+ * \dotfile FractionDigitsFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>attribute</em> tag</h2>
+ * \dotfile GlobalAttribute_diagram.dot
+ * <br>
+ * <h2>DFA for <em>complexType</em> tag</h2>
+ * \dotfile GlobalComplexType_diagram.dot
+ * <br>
+ * <h2>DFA for <em>element</em> tag</h2>
+ * \dotfile GlobalElement_diagram.dot
+ * <br>
+ * <h2>DFA for <em>simpleType</em> tag</h2>
+ * \dotfile GlobalSimpleType_diagram.dot
+ * <br>
+ * <h2>DFA for <em>import</em> tag</h2>
+ * \dotfile Import_diagram.dot
+ * <br>
+ * <h2>DFA for <em>include</em> tag</h2>
+ * \dotfile Include_diagram.dot
+ * <br>
+ * <h2>DFA for <em>key</em> tag</h2>
+ * \dotfile Key_diagram.dot
+ * <br>
+ * <h2>DFA for <em>keyref</em> tag</h2>
+ * \dotfile KeyRef_diagram.dot
+ * <br>
+ * <h2>DFA for <em>length</em> tag</h2>
+ * \dotfile LengthFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>list</em> tag</h2>
+ * \dotfile List_diagram.dot
+ * <br>
+ * <h2>DFA for <em>all</em> tag</h2>
+ * \dotfile LocalAll_diagram.dot
+ * <br>
+ * <h2>DFA for <em>attribute</em> tag</h2>
+ * \dotfile LocalAttribute_diagram.dot
+ * <br>
+ * <h2>DFA for <em>choice</em> tag</h2>
+ * \dotfile LocalChoice_diagram.dot
+ * <br>
+ * <h2>DFA for <em>complexType</em> tag</h2>
+ * \dotfile LocalComplexType_diagram.dot
+ * <br>
+ * <h2>DFA for <em>element</em> tag</h2>
+ * \dotfile LocalElement_diagram.dot
+ * <br>
+ * <h2>DFA for <em>sequence</em> tag</h2>
+ * \dotfile LocalSequence_diagram.dot
+ * <br>
+ * <h2>DFA for <em>simpleType</em> tag that </h2>
+ * \dotfile LocalSimpleType_diagram.dot
+ * <br>
+ * <h2>DFA for <em>maxExclusive</em> tag</h2>
+ * \dotfile MaxExclusiveFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>maxInclusive</em> tag</h2>
+ * \dotfile MaxInclusiveFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>maxLength</em> tag</h2>
+ * \dotfile MaxLengthFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>minExclusive</em> tag</h2>
+ * \dotfile MinExclusiveFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>minInclusive</em> tag</h2>
+ * \dotfile MinInclusiveFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>minLength</em> tag</h2>
+ * \dotfile MinLengthFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>attributeGroup</em> tag without <em>ref</em> attribute</h2>
+ * \dotfile NamedAttributeGroup_diagram.dot
+ * <br>
+ * <h2>DFA for <em>group</em> tag without <em>ref</em> attribute</h2>
+ * \dotfile NamedGroup_diagram.dot
+ * <br>
+ * <h2>DFA for <em>notation</em> tag</h2>
+ * \dotfile Notation_diagram.dot
+ * <br>
+ * <h2>DFA for <em>override</em> tag</h2>
+ * \dotfile Override_diagram.dot
+ * <br>
+ * <h2>DFA for <em>pattern</em> tag</h2>
+ * \dotfile PatternFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>redefine</em> tag</h2>
+ * \dotfile Redefine_diagram.dot
+ * <br>
+ * <h2>DFA for <em>attributeGroup</em> tag with <em>ref</em> attribute</h2>
+ * \dotfile ReferredAttributeGroup_diagram.dot
+ * <br>
+ * <h2>DFA for <em>group</em> tag with <em>ref</em> attribute</h2>
+ * \dotfile ReferredGroup_diagram.dot
+ * <br>
+ * <h2>DFA for <em>schema</em> tag</h2>
+ * \dotfile Schema_diagram.dot
+ * <br>
+ * <h2>DFA for <em>selector</em> tag</h2>
+ * \dotfile Selector_diagram.dot
+ * <br>
+ * <h2>DFA for <em>sequence</em> tag</h2>
+ * \dotfile Sequence_diagram.dot
+ * <br>
+ * <h2>DFA for <em>simpleContent</em> tag</h2>
+ * \dotfile SimpleContent_diagram.dot
+ * <br>
+ * <h2>DFA for <em>extension</em> tag inside a <em>simpleContent</em> tag</h2>
+ * \dotfile SimpleContentExtension_diagram.dot
+ * <br>
+ * <h2>DFA for <em>restriction</em> tag inside a <em>simpleContent</em> tag</h2>
+ * \dotfile SimpleContentRestriction_diagram.dot
+ * <br>
+ * <h2>DFA for <em>restriction</em> tag inside a <em>simpleType</em> tag</h2>
+ * \dotfile SimpleRestriction_diagram.dot
+ * <br>
+ * <h2>DFA for <em>totalDigits</em> tag</h2>
+ * \dotfile TotalDigitsFacet_diagram.dot
+ * <br>
+ * <h2>DFA for <em>union</em> tag</h2>
+ * \dotfile Union_diagram.dot
+ * <br>
+ * <h2>DFA for <em>unique</em> tag</h2>
+ * \dotfile Unique_diagram.dot
+ * <br>
+ * <h2>DFA for <em>whiteSpace</em> tag</h2>
+ * \dotfile WhiteSpaceFacet_diagram.dot
+ */
+
+void XsdSchemaParser::setupStateMachines()
+{
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, simpleType?) : attribute
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+
+ m_stateMachines.insert(XsdTagScope::GlobalAttribute, machine);
+ m_stateMachines.insert(XsdTagScope::LocalAttribute, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, ((simpleType | complexType)?, alternative*, (unique | key | keyref)*)) : element
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(startState, XsdSchemaToken::Alternative, s3);
+ machine.addTransition(startState, XsdSchemaToken::Unique, s4);
+ machine.addTransition(startState, XsdSchemaToken::Key, s4);
+ machine.addTransition(startState, XsdSchemaToken::Keyref, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(s1, XsdSchemaToken::Alternative, s3);
+ machine.addTransition(s1, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s1, XsdSchemaToken::Key, s4);
+ machine.addTransition(s1, XsdSchemaToken::Keyref, s4);
+
+ machine.addTransition(s2, XsdSchemaToken::Alternative, s3);
+ machine.addTransition(s2, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s2, XsdSchemaToken::Key, s4);
+ machine.addTransition(s2, XsdSchemaToken::Keyref, s4);
+
+ machine.addTransition(s3, XsdSchemaToken::Alternative, s3);
+ machine.addTransition(s3, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s3, XsdSchemaToken::Key, s4);
+ machine.addTransition(s3, XsdSchemaToken::Keyref, s4);
+
+ machine.addTransition(s4, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s4, XsdSchemaToken::Key, s4);
+ machine.addTransition(s4, XsdSchemaToken::Keyref, s4);
+
+ m_stateMachines.insert(XsdTagScope::GlobalElement, machine);
+ m_stateMachines.insert(XsdTagScope::LocalElement, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (simpleContent | complexContent | (openContent?, (group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*))) : complexType
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s7 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleContent, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexContent, s2);
+ machine.addTransition(startState, XsdSchemaToken::OpenContent, s3);
+ machine.addTransition(startState, XsdSchemaToken::Group, s4);
+ machine.addTransition(startState, XsdSchemaToken::All, s4);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s4);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s4);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s5);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s5);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s6);
+ machine.addTransition(startState, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleContent, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexContent, s2);
+ machine.addTransition(s1, XsdSchemaToken::OpenContent, s3);
+ machine.addTransition(s1, XsdSchemaToken::Group, s4);
+ machine.addTransition(s1, XsdSchemaToken::All, s4);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s4);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s5);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s5);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s6);
+ machine.addTransition(s1, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s3, XsdSchemaToken::Group, s4);
+ machine.addTransition(s3, XsdSchemaToken::All, s4);
+ machine.addTransition(s3, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s3, XsdSchemaToken::Sequence, s4);
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s5);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s5);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s6);
+ machine.addTransition(s3, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s5);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s5);
+ machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s6);
+ machine.addTransition(s4, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s5, XsdSchemaToken::Attribute, s5);
+ machine.addTransition(s5, XsdSchemaToken::AttributeGroup, s5);
+ machine.addTransition(s5, XsdSchemaToken::AnyAttribute, s6);
+ machine.addTransition(s5, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s6, XsdSchemaToken::Assert, s7);
+
+ machine.addTransition(s7, XsdSchemaToken::Assert, s7);
+
+ m_stateMachines.insert(XsdTagScope::GlobalComplexType, machine);
+ m_stateMachines.insert(XsdTagScope::LocalComplexType, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (restriction | extension)) : simpleContent/complexContent
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(startState, XsdSchemaToken::Extension, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(s1, XsdSchemaToken::Extension, s2);
+
+ m_stateMachines.insert(XsdTagScope::SimpleContent, machine);
+ m_stateMachines.insert(XsdTagScope::ComplexContent, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern | assertion)*)?, ((attribute | attributeGroup)*, anyAttribute?), assert*) : simpleContent restriction
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::Length, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(startState, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(startState, XsdSchemaToken::Assertion, s3);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(startState, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::Length, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s1, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s1, XsdSchemaToken::Assertion, s3);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s1, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::Length, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s2, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s2, XsdSchemaToken::Assertion, s3);
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s2, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::Length, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s3, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s3, XsdSchemaToken::Assertion, s3);
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s3, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s4, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s5, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s6, XsdSchemaToken::Assert, s6);
+
+ m_stateMachines.insert(XsdTagScope::SimpleContentRestriction, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, ((attribute | attributeGroup)*, anyAttribute?), assert*) : simple content extension
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s3);
+ machine.addTransition(startState, XsdSchemaToken::Assert, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s3);
+ machine.addTransition(s1, XsdSchemaToken::Assert, s4);
+
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s3);
+ machine.addTransition(s2, XsdSchemaToken::Assert, s4);
+
+ machine.addTransition(s3, XsdSchemaToken::Assert, s4);
+
+ machine.addTransition(s4, XsdSchemaToken::Assert, s4);
+
+ m_stateMachines.insert(XsdTagScope::SimpleContentExtension, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, openContent?, ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?), assert*)) : complex content restriction/complex content extension
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::OpenContent, s2);
+ machine.addTransition(startState, XsdSchemaToken::Group, s3);
+ machine.addTransition(startState, XsdSchemaToken::All, s3);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s3);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s3);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(startState, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s1, XsdSchemaToken::OpenContent, s2);
+ machine.addTransition(s1, XsdSchemaToken::Group, s3);
+ machine.addTransition(s1, XsdSchemaToken::All, s3);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s3);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s3);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s1, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s2, XsdSchemaToken::Group, s3);
+ machine.addTransition(s2, XsdSchemaToken::All, s3);
+ machine.addTransition(s2, XsdSchemaToken::Choice, s3);
+ machine.addTransition(s2, XsdSchemaToken::Sequence, s3);
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s2, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s3, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s5);
+ machine.addTransition(s4, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s5, XsdSchemaToken::Assert, s6);
+
+ machine.addTransition(s6, XsdSchemaToken::Assert, s6);
+
+ m_stateMachines.insert(XsdTagScope::ComplexContentRestriction, machine);
+ m_stateMachines.insert(XsdTagScope::ComplexContentExtension, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, ((attribute | attributeGroup)*, anyAttribute?)) : named attribute group
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s3);
+
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s3);
+
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s3);
+
+ m_stateMachines.insert(XsdTagScope::NamedAttributeGroup, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (all | choice | sequence)?) : group
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::All, s2);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s2);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::All, s2);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s2);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s2);
+
+ m_stateMachines.insert(XsdTagScope::NamedGroup, machine);
+ m_stateMachines.insert(XsdTagScope::ReferredGroup, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (element | any)*) : all
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Element, s2);
+ machine.addTransition(startState, XsdSchemaToken::Any, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Element, s2);
+ machine.addTransition(s1, XsdSchemaToken::Any, s2);
+
+ machine.addTransition(s2, XsdSchemaToken::Element, s2);
+ machine.addTransition(s2, XsdSchemaToken::Any, s2);
+
+ m_stateMachines.insert(XsdTagScope::All, machine);
+ m_stateMachines.insert(XsdTagScope::LocalAll, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (element | group | choice | sequence | any)*) : choice sequence
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Element, s2);
+ machine.addTransition(startState, XsdSchemaToken::Group, s2);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s2);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s2);
+ machine.addTransition(startState, XsdSchemaToken::Any, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Element, s2);
+ machine.addTransition(s1, XsdSchemaToken::Group, s2);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s2);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s2);
+ machine.addTransition(s1, XsdSchemaToken::Any, s2);
+
+ machine.addTransition(s2, XsdSchemaToken::Element, s2);
+ machine.addTransition(s2, XsdSchemaToken::Group, s2);
+ machine.addTransition(s2, XsdSchemaToken::Choice, s2);
+ machine.addTransition(s2, XsdSchemaToken::Sequence, s2);
+ machine.addTransition(s2, XsdSchemaToken::Any, s2);
+
+ m_stateMachines.insert(XsdTagScope::Choice, machine);
+ m_stateMachines.insert(XsdTagScope::LocalChoice, machine);
+ m_stateMachines.insert(XsdTagScope::Sequence, machine);
+ m_stateMachines.insert(XsdTagScope::LocalSequence, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?) : any/selector/field/notation/include/import/referred attribute group/anyAttribute/all facets/assert
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+
+ m_stateMachines.insert(XsdTagScope::Any, machine);
+ m_stateMachines.insert(XsdTagScope::Selector, machine);
+ m_stateMachines.insert(XsdTagScope::Field, machine);
+ m_stateMachines.insert(XsdTagScope::Notation, machine);
+ m_stateMachines.insert(XsdTagScope::Include, machine);
+ m_stateMachines.insert(XsdTagScope::Import, machine);
+ m_stateMachines.insert(XsdTagScope::ReferredAttributeGroup, machine);
+ m_stateMachines.insert(XsdTagScope::AnyAttribute, machine);
+ m_stateMachines.insert(XsdTagScope::MinExclusiveFacet, machine);
+ m_stateMachines.insert(XsdTagScope::MinInclusiveFacet, machine);
+ m_stateMachines.insert(XsdTagScope::MaxExclusiveFacet, machine);
+ m_stateMachines.insert(XsdTagScope::MaxInclusiveFacet, machine);
+ m_stateMachines.insert(XsdTagScope::TotalDigitsFacet, machine);
+ m_stateMachines.insert(XsdTagScope::FractionDigitsFacet, machine);
+ m_stateMachines.insert(XsdTagScope::LengthFacet, machine);
+ m_stateMachines.insert(XsdTagScope::MinLengthFacet, machine);
+ m_stateMachines.insert(XsdTagScope::MaxLengthFacet, machine);
+ m_stateMachines.insert(XsdTagScope::EnumerationFacet, machine);
+ m_stateMachines.insert(XsdTagScope::WhiteSpaceFacet, machine);
+ m_stateMachines.insert(XsdTagScope::PatternFacet, machine);
+ m_stateMachines.insert(XsdTagScope::Assert, machine);
+ m_stateMachines.insert(XsdTagScope::Assertion, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (selector, field+)) : unique/key/keyref
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Selector, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Selector, s2);
+ machine.addTransition(s2, XsdSchemaToken::Field, s3);
+ machine.addTransition(s3, XsdSchemaToken::Field, s3);
+
+ m_stateMachines.insert(XsdTagScope::Unique, machine);
+ m_stateMachines.insert(XsdTagScope::Key, machine);
+ m_stateMachines.insert(XsdTagScope::KeyRef, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (simpleType | complexType)?) : alternative
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s2);
+
+ m_stateMachines.insert(XsdTagScope::Alternative, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (appinfo | documentation)* : annotation
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Appinfo, s1);
+ machine.addTransition(startState, XsdSchemaToken::Documentation, s1);
+
+ machine.addTransition(s1, XsdSchemaToken::Appinfo, s1);
+ machine.addTransition(s1, XsdSchemaToken::Documentation, s1);
+
+ m_stateMachines.insert(XsdTagScope::Annotation, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (restriction | list | union)) : simpleType
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(startState, XsdSchemaToken::List, s2);
+ machine.addTransition(startState, XsdSchemaToken::Union, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(s1, XsdSchemaToken::List, s2);
+ machine.addTransition(s1, XsdSchemaToken::Union, s2);
+
+ m_stateMachines.insert(XsdTagScope::GlobalSimpleType, machine);
+ m_stateMachines.insert(XsdTagScope::LocalSimpleType, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern | assertion)*)) : simple type restriction
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::Length, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(startState, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(startState, XsdSchemaToken::Assertion, s3);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::Length, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s1, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s1, XsdSchemaToken::Assertion, s3);
+
+ machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::Length, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s2, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s2, XsdSchemaToken::Assertion, s3);
+
+ machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::Length, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s3, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s3, XsdSchemaToken::Assertion, s3);
+
+ m_stateMachines.insert(XsdTagScope::SimpleRestriction, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, simpleType?) : list
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+
+ m_stateMachines.insert(XsdTagScope::List, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, simpleType*) : union
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s2, XsdSchemaToken::SimpleType, s2);
+
+ m_stateMachines.insert(XsdTagScope::Union, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for ((include | import | redefine |i override | annotation)*, (defaultOpenContent, annotation*)?, (((simpleType | complexType | group | attributeGroup) | element | attribute | notation), annotation*)*) : schema
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Include, s1);
+ machine.addTransition(startState, XsdSchemaToken::Import, s1);
+ machine.addTransition(startState, XsdSchemaToken::Redefine, s1);
+ machine.addTransition(startState, XsdSchemaToken::Override, s1);
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::DefaultOpenContent, s2);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(startState, XsdSchemaToken::Group, s4);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(startState, XsdSchemaToken::Element, s4);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(startState, XsdSchemaToken::Notation, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::Include, s1);
+ machine.addTransition(s1, XsdSchemaToken::Import, s1);
+ machine.addTransition(s1, XsdSchemaToken::Redefine, s1);
+ machine.addTransition(s1, XsdSchemaToken::Override, s1);
+ machine.addTransition(s1, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(s1, XsdSchemaToken::DefaultOpenContent, s2);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(s1, XsdSchemaToken::Group, s4);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s1, XsdSchemaToken::Element, s4);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s1, XsdSchemaToken::Notation, s4);
+
+ machine.addTransition(s2, XsdSchemaToken::Annotation, s3);
+ machine.addTransition(s2, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(s2, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(s2, XsdSchemaToken::Group, s4);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s2, XsdSchemaToken::Element, s4);
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s2, XsdSchemaToken::Notation, s4);
+
+ machine.addTransition(s3, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(s3, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(s3, XsdSchemaToken::Group, s4);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s3, XsdSchemaToken::Element, s4);
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s3, XsdSchemaToken::Notation, s4);
+
+ machine.addTransition(s4, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(s4, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(s4, XsdSchemaToken::Group, s4);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s4, XsdSchemaToken::Element, s4);
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s4, XsdSchemaToken::Notation, s4);
+ machine.addTransition(s4, XsdSchemaToken::Annotation, s5);
+
+ machine.addTransition(s5, XsdSchemaToken::SimpleType, s4);
+ machine.addTransition(s5, XsdSchemaToken::ComplexType, s4);
+ machine.addTransition(s5, XsdSchemaToken::Group, s4);
+ machine.addTransition(s5, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s5, XsdSchemaToken::Element, s4);
+ machine.addTransition(s5, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s5, XsdSchemaToken::Notation, s4);
+ machine.addTransition(s5, XsdSchemaToken::Annotation, s5);
+
+ m_stateMachines.insert(XsdTagScope::Schema, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation?, any) : defaultOpenContent
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Any, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Any, s2);
+
+ m_stateMachines.insert(XsdTagScope::DefaultOpenContent, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation | (simpleType | complexType | group | attributeGroup))* : redefine
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(startState, XsdSchemaToken::Group, s1);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s1);
+
+ machine.addTransition(s1, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(s1, XsdSchemaToken::Group, s1);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s1);
+
+ m_stateMachines.insert(XsdTagScope::Redefine, machine);
+ }
+
+ {
+ XsdStateMachine<XsdSchemaToken::NodeName> machine(m_namePool);
+
+ // setup state machine for (annotation | (simpleType | complexType | group | attributeGroup | element | attribute | notation))* : override
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(startState, XsdSchemaToken::Group, s1);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s1);
+ machine.addTransition(startState, XsdSchemaToken::Element, s1);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s1);
+ machine.addTransition(startState, XsdSchemaToken::Notation, s1);
+
+ machine.addTransition(s1, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(s1, XsdSchemaToken::Group, s1);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s1);
+ machine.addTransition(s1, XsdSchemaToken::Element, s1);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s1);
+ machine.addTransition(s1, XsdSchemaToken::Notation, s1);
+
+ m_stateMachines.insert(XsdTagScope::Override, machine);
+ }
+}
+
+void XsdSchemaParser::setupBuiltinTypeNames()
+{
+ m_builtinTypeNames.reserve(48);
+
+ m_builtinTypeNames.insert(BuiltinTypes::xsAnyType->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsAnySimpleType->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUntyped->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsAnyAtomicType->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUntypedAtomic->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDateTime->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDate->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsTime->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDuration->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsYearMonthDuration->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDayTimeDuration->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsFloat->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDouble->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsInteger->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsDecimal->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNonPositiveInteger->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNegativeInteger->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsLong->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsInt->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsShort->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsByte->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNonNegativeInteger->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUnsignedLong->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUnsignedInt->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUnsignedShort->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsUnsignedByte->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsPositiveInteger->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsGYearMonth->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsGYear->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsGMonthDay->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsGDay->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsGMonth->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsBoolean->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsBase64Binary->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsHexBinary->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsAnyURI->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsQName->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsString->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNormalizedString->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsToken->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsLanguage->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNMTOKEN->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsName->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNCName->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsID->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsIDREF->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsENTITY->name(m_namePool));
+ m_builtinTypeNames.insert(BuiltinTypes::xsNOTATION->name(m_namePool));
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemaparsercontext.cpp b/src/xmlpatterns/schema/qxsdschemaparsercontext.cpp
new file mode 100644
index 0000000..e4dc348
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaparsercontext.cpp
@@ -0,0 +1,603 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemaparsercontext_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaParserContext::XsdSchemaParserContext(const NamePool::Ptr &namePool, const XsdSchemaContext::Ptr &context)
+ : m_namePool(namePool)
+ , m_schema(new XsdSchema(m_namePool))
+ , m_checker(new XsdSchemaChecker(context, this))
+ , m_resolver(new XsdSchemaResolver(context, this))
+ , m_elementDescriptions(setupElementDescriptions())
+{
+}
+
+NamePool::Ptr XsdSchemaParserContext::namePool() const
+{
+ return m_namePool;
+}
+
+XsdSchemaResolver::Ptr XsdSchemaParserContext::resolver() const
+{
+ return m_resolver;
+}
+
+XsdSchemaChecker::Ptr XsdSchemaParserContext::checker() const
+{
+ return m_checker;
+}
+
+XsdSchema::Ptr XsdSchemaParserContext::schema() const
+{
+ return m_schema;
+}
+
+ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash XsdSchemaParserContext::elementDescriptions() const
+{
+ return m_elementDescriptions;
+}
+
+QXmlName XsdSchemaParserContext::createAnonymousName(const QString &targetNamespace) const
+{
+ m_anonymousNameCounter.ref();
+
+ const QString name = QString::fromLatin1("__AnonymousClass_%1").arg((int)m_anonymousNameCounter);
+
+ return m_namePool->allocateQName(targetNamespace, name);
+}
+
+ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash XsdSchemaParserContext::setupElementDescriptions()
+{
+ enum
+ {
+ ReservedForElements = 60
+ };
+
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash elementDescriptions;
+ elementDescriptions.reserve(ReservedForElements);
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Schema];
+ description.optionalAttributes.reserve(10);
+ //description.tagToken = XsdSchemaToken::Schema;
+ description.optionalAttributes.insert(XsdSchemaToken::AttributeFormDefault);
+ description.optionalAttributes.insert(XsdSchemaToken::BlockDefault);
+ description.optionalAttributes.insert(XsdSchemaToken::DefaultAttributes);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ description.optionalAttributes.insert(XsdSchemaToken::ElementFormDefault);
+ description.optionalAttributes.insert(XsdSchemaToken::FinalDefault);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::TargetNamespace);
+ description.optionalAttributes.insert(XsdSchemaToken::Version);
+ description.optionalAttributes.insert(XsdSchemaToken::XmlLanguage);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Include];
+ //description.tagToken = XsdSchemaToken::Include;
+ description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Import];
+ //description.tagToken = XsdSchemaToken::Import;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Namespace);
+ description.optionalAttributes.insert(XsdSchemaToken::SchemaLocation);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Redefine];
+ //description.tagToken = XsdSchemaToken::Redefine;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Override];
+ //description.tagToken = XsdSchemaToken::Override;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Annotation];
+ //description.tagToken = XsdSchemaToken::Annotation;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::AppInfo];
+ //description.tagToken = XsdSchemaToken::Appinfo;
+ description.optionalAttributes.insert(XsdSchemaToken::Source);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Documentation];
+ //description.tagToken = XsdSchemaToken::Documentation;
+ description.optionalAttributes.insert(XsdSchemaToken::Source);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalSimpleType];
+ //description.tagToken = XsdSchemaToken::SimpleType;
+ description.optionalAttributes.insert(XsdSchemaToken::Final);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalSimpleType];
+ //description.tagToken = XsdSchemaToken::SimpleType;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleRestriction];
+ //description.tagToken = XsdSchemaToken::Restriction;
+ description.optionalAttributes.insert(XsdSchemaToken::Base);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::List];
+ //description.tagToken = XsdSchemaToken::List;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::ItemType);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Union];
+ //description.tagToken = XsdSchemaToken::Union;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MemberTypes);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinExclusiveFacet];
+ //description.tagToken = XsdSchemaToken::MinExclusive;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinInclusiveFacet];
+ //description.tagToken = XsdSchemaToken::MinInclusive;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxExclusiveFacet];
+ //description.tagToken = XsdSchemaToken::MaxExclusive;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxInclusiveFacet];
+ //description.tagToken = XsdSchemaToken::MaxInclusive;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::TotalDigitsFacet];
+ //description.tagToken = XsdSchemaToken::TotalDigits;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::FractionDigitsFacet];
+ //description.tagToken = XsdSchemaToken::FractionDigits;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LengthFacet];
+ //description.tagToken = XsdSchemaToken::Length;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinLengthFacet];
+ //description.tagToken = XsdSchemaToken::MinLength;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxLengthFacet];
+ //description.tagToken = XsdSchemaToken::MaxLength;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::EnumerationFacet];
+ //description.tagToken = XsdSchemaToken::Enumeration;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::WhiteSpaceFacet];
+ //description.tagToken = XsdSchemaToken::WhiteSpace;
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::PatternFacet];
+ //description.tagToken = XsdSchemaToken::Pattern;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Value);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalComplexType];
+ description.optionalAttributes.reserve(7);
+ //description.tagToken = XsdSchemaToken::ComplexType;
+ description.optionalAttributes.insert(XsdSchemaToken::Abstract);
+ description.optionalAttributes.insert(XsdSchemaToken::Block);
+ description.optionalAttributes.insert(XsdSchemaToken::DefaultAttributesApply);
+ description.optionalAttributes.insert(XsdSchemaToken::Final);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Mixed);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalComplexType];
+ //description.tagToken = XsdSchemaToken::ComplexType;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Mixed);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContent];
+ //description.tagToken = XsdSchemaToken::SimpleContent;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContentRestriction];
+ //description.tagToken = XsdSchemaToken::Restriction;
+ description.requiredAttributes.insert(XsdSchemaToken::Base);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContentExtension];
+ //description.tagToken = XsdSchemaToken::Extension;
+ description.requiredAttributes.insert(XsdSchemaToken::Base);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContent];
+ //description.tagToken = XsdSchemaToken::ComplexContent;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Mixed);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContentRestriction];
+ //description.tagToken = XsdSchemaToken::Restriction;
+ description.requiredAttributes.insert(XsdSchemaToken::Base);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContentExtension];
+ //description.tagToken = XsdSchemaToken::Extension;
+ description.requiredAttributes.insert(XsdSchemaToken::Base);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::NamedGroup];
+ //description.tagToken = XsdSchemaToken::Group;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ReferredGroup];
+ description.optionalAttributes.reserve(4);
+ //description.tagToken = XsdSchemaToken::Group;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ description.requiredAttributes.insert(XsdSchemaToken::Ref);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::All];
+ //description.tagToken = XsdSchemaToken::All;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalAll];
+ //description.tagToken = XsdSchemaToken::All;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Choice];
+ //description.tagToken = XsdSchemaToken::Choice;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalChoice];
+ //description.tagToken = XsdSchemaToken::Choice;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Sequence];
+ //description.tagToken = XsdSchemaToken::Sequence;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalSequence];
+ //description.tagToken = XsdSchemaToken::Sequence;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalAttribute];
+ description.optionalAttributes.reserve(5);
+ //description.tagToken = XsdSchemaToken::Attribute;
+ description.optionalAttributes.insert(XsdSchemaToken::Default);
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ description.optionalAttributes.insert(XsdSchemaToken::Type);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalAttribute];
+ description.optionalAttributes.reserve(8);
+ //description.tagToken = XsdSchemaToken::Attribute;
+ description.optionalAttributes.insert(XsdSchemaToken::Default);
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Form);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Name);
+ description.optionalAttributes.insert(XsdSchemaToken::Ref);
+ description.optionalAttributes.insert(XsdSchemaToken::Type);
+ description.optionalAttributes.insert(XsdSchemaToken::Use);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::NamedAttributeGroup];
+ //description.tagToken = XsdSchemaToken::AttributeGroup;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ReferredAttributeGroup];
+ //description.tagToken = XsdSchemaToken::AttributeGroup;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Ref);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalElement];
+ description.optionalAttributes.reserve(11);
+ //description.tagToken = XsdSchemaToken::Element;
+ description.optionalAttributes.insert(XsdSchemaToken::Block);
+ description.optionalAttributes.insert(XsdSchemaToken::Default);
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Form);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::Name);
+ description.optionalAttributes.insert(XsdSchemaToken::Nillable);
+ description.optionalAttributes.insert(XsdSchemaToken::Ref);
+ description.optionalAttributes.insert(XsdSchemaToken::Type);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalElement];
+ description.optionalAttributes.reserve(10);
+ //description.tagToken = XsdSchemaToken::Element;
+ description.optionalAttributes.insert(XsdSchemaToken::Abstract);
+ description.optionalAttributes.insert(XsdSchemaToken::Block);
+ description.optionalAttributes.insert(XsdSchemaToken::Default);
+ description.optionalAttributes.insert(XsdSchemaToken::Final);
+ description.optionalAttributes.insert(XsdSchemaToken::Fixed);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ description.optionalAttributes.insert(XsdSchemaToken::Nillable);
+ description.optionalAttributes.insert(XsdSchemaToken::SubstitutionGroup);
+ description.optionalAttributes.insert(XsdSchemaToken::Type);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Unique];
+ //description.tagToken = XsdSchemaToken::Unique;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Key];
+ //description.tagToken = XsdSchemaToken::Key;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::KeyRef];
+ //description.tagToken = XsdSchemaToken::Keyref;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ description.requiredAttributes.insert(XsdSchemaToken::Refer);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Selector];
+ //description.tagToken = XsdSchemaToken::Selector;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Xpath);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Field];
+ //description.tagToken = XsdSchemaToken::Field;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Xpath);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Notation];
+ description.optionalAttributes.reserve(4);
+ //description.tagToken = XsdSchemaToken::Notation;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Name);
+ description.optionalAttributes.insert(XsdSchemaToken::Public);
+ description.optionalAttributes.insert(XsdSchemaToken::System);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Any];
+ description.optionalAttributes.reserve(7);
+ //description.tagToken = XsdSchemaToken::Any;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
+ description.optionalAttributes.insert(XsdSchemaToken::Namespace);
+ description.optionalAttributes.insert(XsdSchemaToken::NotNamespace);
+ description.optionalAttributes.insert(XsdSchemaToken::NotQName);
+ description.optionalAttributes.insert(XsdSchemaToken::ProcessContents);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::AnyAttribute];
+ description.optionalAttributes.reserve(5);
+ //description.tagToken = XsdSchemaToken::AnyAttribute;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Namespace);
+ description.optionalAttributes.insert(XsdSchemaToken::NotNamespace);
+ description.optionalAttributes.insert(XsdSchemaToken::NotQName);
+ description.optionalAttributes.insert(XsdSchemaToken::ProcessContents);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Alternative];
+ //description.tagToken = XsdSchemaToken::Alternative;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Test);
+ description.optionalAttributes.insert(XsdSchemaToken::Type);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::OpenContent];
+ //description.tagToken = XsdSchemaToken::OpenContent;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Mode);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::DefaultOpenContent];
+ //description.tagToken = XsdSchemaToken::DefaultOpenContent;
+ description.optionalAttributes.insert(XsdSchemaToken::AppliesToEmpty);
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.optionalAttributes.insert(XsdSchemaToken::Mode);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Assert];
+ //description.tagToken = XsdSchemaToken::Assert;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Test);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ }
+
+ {
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Assertion];
+ //description.tagToken = XsdSchemaToken::Assertion;
+ description.optionalAttributes.insert(XsdSchemaToken::Id);
+ description.requiredAttributes.insert(XsdSchemaToken::Test);
+ description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
+ }
+
+ Q_ASSERT_X(elementDescriptions.count() == ReservedForElements, Q_FUNC_INFO,
+ qPrintable(QString::fromLatin1("Expected is %1, actual is %2.").arg(ReservedForElements).arg(elementDescriptions.count())));
+
+ return elementDescriptions;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemaparsercontext_p.h b/src/xmlpatterns/schema/qxsdschemaparsercontext_p.h
new file mode 100644
index 0000000..f95f571
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaparsercontext_p.h
@@ -0,0 +1,231 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaParserContext_H
+#define Patternist_XsdSchemaParserContext_H
+
+#include "qmaintainingreader_p.h" // for definition of ElementDescription
+#include "qxsdschematoken_p.h"
+#include "qxsdschema_p.h"
+#include "qxsdschemachecker_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdschemaresolver_p.h"
+
+#include <QtCore/QSharedData>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A namespace class that contains identifiers for the different
+ * scopes a tag from the xml schema spec can appear in.
+ */
+ class XsdTagScope
+ {
+ public:
+ enum Type
+ {
+ Schema,
+ Include,
+ Import,
+ Redefine,
+ Annotation,
+ AppInfo,
+ Documentation,
+ GlobalSimpleType,
+ LocalSimpleType,
+ SimpleRestriction,
+ List,
+ Union,
+ MinExclusiveFacet,
+ MinInclusiveFacet,
+ MaxExclusiveFacet,
+ MaxInclusiveFacet,
+ TotalDigitsFacet,
+ FractionDigitsFacet,
+ LengthFacet,
+ MinLengthFacet,
+ MaxLengthFacet,
+ EnumerationFacet,
+ WhiteSpaceFacet,
+ PatternFacet,
+ GlobalComplexType,
+ LocalComplexType,
+ SimpleContent,
+ SimpleContentRestriction,
+ SimpleContentExtension,
+ ComplexContent,
+ ComplexContentRestriction,
+ ComplexContentExtension,
+ NamedGroup,
+ ReferredGroup,
+ All,
+ LocalAll,
+ Choice,
+ LocalChoice,
+ Sequence,
+ LocalSequence,
+ GlobalAttribute,
+ LocalAttribute,
+ NamedAttributeGroup,
+ ReferredAttributeGroup,
+ GlobalElement,
+ LocalElement,
+ Unique,
+ Key,
+ KeyRef,
+ Selector,
+ Field,
+ Notation,
+ Any,
+ AnyAttribute,
+ Alternative,
+ Assert,
+ Assertion,
+ OpenContent,
+ DefaultOpenContent,
+ Override
+ };
+ };
+
+ /**
+ * A hash that keeps the mapping between the single components that can appear
+ * in a schema document (e.g. elements, attributes, type definitions) and their
+ * source locations inside the document.
+ */
+ typedef QHash<NamedSchemaComponent::Ptr, QSourceLocation> ComponentLocationHash;
+
+ /**
+ * @short A context for schema parsing.
+ *
+ * This class provides a context for all components that are
+ * nedded for parsing and compiling the XML schema.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaParserContext : public QSharedData
+ {
+ public:
+ /**
+ * A smart pointer wrapping XsdSchemaParserContext instances.
+ */
+ typedef QExplicitlySharedDataPointer<XsdSchemaParserContext> Ptr;
+
+ /**
+ * Creates a new schema parser context object.
+ *
+ * @param namePool The name pool where all names of the schema will be stored in.
+ * @param context The schema context to use for error reporting etc.
+ */
+ XsdSchemaParserContext(const NamePool::Ptr &namePool, const XsdSchemaContext::Ptr &context);
+
+ /**
+ * Returns the name pool of the schema parser context.
+ */
+ NamePool::Ptr namePool() const;
+
+ /**
+ * Returns the schema resolver of the schema context.
+ */
+ XsdSchemaResolver::Ptr resolver() const;
+
+ /**
+ * Returns the schema resolver of the schema context.
+ */
+ XsdSchemaChecker::Ptr checker() const;
+
+ /**
+ * Returns the schema object of the schema context.
+ */
+ XsdSchema::Ptr schema() const;
+
+ /**
+ * Returns the element descriptions for the schema parser.
+ *
+ * The element descriptions are a fast lookup table for
+ * verifying whether certain attributes are allowed for
+ * a given element type.
+ */
+ ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash elementDescriptions() const;
+
+ /**
+ * Returns an unique name that is used by the schema parser
+ * for anonymous types.
+ *
+ * @param targetNamespace The namespace of the name.
+ */
+ QXmlName createAnonymousName(const QString &targetNamespace) const;
+
+ private:
+ /**
+ * Fills the element description hash with the required and prohibited
+ * attributes.
+ */
+ static ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash setupElementDescriptions();
+
+ NamePool::Ptr m_namePool;
+ XsdSchema::Ptr m_schema;
+ XsdSchemaChecker::Ptr m_checker;
+ XsdSchemaResolver::Ptr m_resolver;
+ const ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash m_elementDescriptions;
+ mutable QAtomicInt m_anonymousNameCounter;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschemaresolver.cpp b/src/xmlpatterns/schema/qxsdschemaresolver.cpp
new file mode 100644
index 0000000..46d0c69
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaresolver.cpp
@@ -0,0 +1,1736 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschemaresolver_p.h"
+
+#include "qderivedinteger_p.h"
+#include "qderivedstring_p.h"
+#include "qqnamevalue_p.h"
+#include "qxsdattributereference_p.h"
+#include "qxsdparticlechecker_p.h"
+#include "qxsdreference_p.h"
+#include "qxsdschemacontext_p.h"
+#include "qxsdschemahelper_p.h"
+#include "qxsdschemaparsercontext_p.h"
+#include "qxsdschematypesfactory_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaResolver::XsdSchemaResolver(const QExplicitlySharedDataPointer<XsdSchemaContext> &context, const XsdSchemaParserContext *parserContext)
+ : m_context(context)
+ , m_checker(parserContext->checker())
+ , m_namePool(parserContext->namePool())
+ , m_schema(parserContext->schema())
+{
+ m_keyReferences.reserve(20);
+ m_simpleRestrictionBases.reserve(20);
+ m_simpleListTypes.reserve(20);
+ m_simpleUnionTypes.reserve(20);
+ m_elementTypes.reserve(20);
+ m_complexBaseTypes.reserve(20);
+ m_attributeTypes.reserve(20);
+ m_alternativeTypes.reserve(20);
+ m_alternativeTypeElements.reserve(20);
+ m_substitutionGroupAffiliations.reserve(20);
+
+ m_predefinedSchemaTypes = m_context->schemaTypeFactory()->types().values();
+}
+
+XsdSchemaResolver::~XsdSchemaResolver()
+{
+}
+
+void XsdSchemaResolver::resolve()
+{
+ m_checker->addComponentLocationHash(m_componentLocationHash);
+
+ // resolve the base types for all types
+ resolveSimpleRestrictionBaseTypes();
+ resolveComplexBaseTypes();
+
+ // do the basic checks which depend on having a base type available
+ m_checker->basicCheck();
+
+ // resolve further types that only map a type name to a type object
+ resolveSimpleListType();
+ resolveSimpleUnionTypes();
+ resolveElementTypes();
+ resolveAttributeTypes();
+ resolveAlternativeTypes();
+
+ // resolve objects that do not need information about inheritance
+ resolveKeyReferences();
+ resolveSubstitutionGroupAffiliations();
+
+ // resolve objects that do need information about inheritance
+ resolveSimpleRestrictions();
+ resolveSimpleContentComplexTypes();
+
+ // resolve objects which replace place holders
+ resolveTermReferences();
+ resolveAttributeTermReferences();
+
+ // resolve additional objects that do need information about inheritance
+ resolveAttributeInheritance();
+ resolveComplexContentComplexTypes();
+ resolveSubstitutionGroups();
+
+ resolveEnumerationFacetValues();
+
+ checkRedefinedGroups();
+ checkRedefinedAttributeGroups();
+
+ // check the constraining facets before we resolve them
+ m_checker->checkConstrainingFacets();
+
+ // add it again, as we may have added new components in the meantime
+ m_checker->addComponentLocationHash(m_componentLocationHash);
+
+ m_checker->check();
+}
+
+void XsdSchemaResolver::addKeyReference(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &keyRef, const QXmlName &reference, const QSourceLocation &location)
+{
+ KeyReference item;
+ item.element = element;
+ item.keyRef = keyRef;
+ item.reference = reference;
+ item.location = location;
+
+ m_keyReferences.append(item);
+}
+
+void XsdSchemaResolver::addSimpleRestrictionBase(const XsdSimpleType::Ptr &simpleType, const QXmlName &baseName, const QSourceLocation &location)
+{
+ SimpleRestrictionBase item;
+ item.simpleType = simpleType;
+ item.baseName = baseName;
+ item.location = location;
+
+ m_simpleRestrictionBases.append(item);
+}
+
+void XsdSchemaResolver::removeSimpleRestrictionBase(const XsdSimpleType::Ptr &type)
+{
+ for (int i = 0; i < m_simpleRestrictionBases.count(); ++i) {
+ if (m_simpleRestrictionBases.at(i).simpleType == type) {
+ m_simpleRestrictionBases.remove(i);
+ break;
+ }
+ }
+}
+
+void XsdSchemaResolver::addSimpleListType(const XsdSimpleType::Ptr &simpleType, const QXmlName &typeName, const QSourceLocation &location)
+{
+ SimpleListType item;
+ item.simpleType = simpleType;
+ item.typeName = typeName;
+ item.location = location;
+
+ m_simpleListTypes.append(item);
+}
+
+void XsdSchemaResolver::addSimpleUnionTypes(const XsdSimpleType::Ptr &simpleType, const QList<QXmlName> &typeNames, const QSourceLocation &location)
+{
+ SimpleUnionType item;
+ item.simpleType = simpleType;
+ item.typeNames = typeNames;
+ item.location = location;
+
+ m_simpleUnionTypes.append(item);
+}
+
+void XsdSchemaResolver::addElementType(const XsdElement::Ptr &element, const QXmlName &typeName, const QSourceLocation &location)
+{
+ ElementType item;
+ item.element = element;
+ item.typeName = typeName;
+ item.location = location;
+
+ m_elementTypes.append(item);
+}
+
+void XsdSchemaResolver::addComplexBaseType(const XsdComplexType::Ptr &complexType, const QXmlName &baseName, const QSourceLocation &location, const XsdFacet::Hash &facets)
+{
+ ComplexBaseType item;
+ item.complexType = complexType;
+ item.baseName = baseName;
+ item.location = location;
+ item.facets = facets;
+
+ m_complexBaseTypes.append(item);
+}
+
+void XsdSchemaResolver::removeComplexBaseType(const XsdComplexType::Ptr &type)
+{
+ for (int i = 0; i < m_complexBaseTypes.count(); ++i) {
+ if (m_complexBaseTypes.at(i).complexType == type) {
+ m_complexBaseTypes.remove(i);
+ break;
+ }
+ }
+}
+
+void XsdSchemaResolver::addComplexContentType(const XsdComplexType::Ptr &complexType, const XsdParticle::Ptr &content, bool mixed)
+{
+ ComplexContentType item;
+ item.complexType = complexType;
+ item.explicitContent = content;
+ item.effectiveMixed = mixed;
+ m_complexContentTypes.append(item);
+}
+
+void XsdSchemaResolver::addAttributeType(const XsdAttribute::Ptr &attribute, const QXmlName &typeName, const QSourceLocation &location)
+{
+ AttributeType item;
+ item.attribute = attribute;
+ item.typeName = typeName;
+ item.location = location;
+
+ m_attributeTypes.append(item);
+}
+
+void XsdSchemaResolver::addAlternativeType(const XsdAlternative::Ptr &alternative, const QXmlName &typeName, const QSourceLocation &location)
+{
+ AlternativeType item;
+ item.alternative = alternative;
+ item.typeName = typeName;
+ item.location = location;
+
+ m_alternativeTypes.append(item);
+}
+
+void XsdSchemaResolver::addAlternativeType(const XsdAlternative::Ptr &alternative, const XsdElement::Ptr &element)
+{
+ AlternativeTypeElement item;
+ item.alternative = alternative;
+ item.element = element;
+
+ m_alternativeTypeElements.append(item);
+}
+
+void XsdSchemaResolver::addSubstitutionGroupAffiliation(const XsdElement::Ptr &element, const QList<QXmlName> &elementNames, const QSourceLocation &location)
+{
+ SubstitutionGroupAffiliation item;
+ item.element = element;
+ item.elementNames = elementNames;
+ item.location = location;
+
+ m_substitutionGroupAffiliations.append(item);
+}
+
+void XsdSchemaResolver::addSubstitutionGroupType(const XsdElement::Ptr &element)
+{
+ m_substitutionGroupTypes.append(element);
+}
+
+void XsdSchemaResolver::addComponentLocationHash(const ComponentLocationHash &hash)
+{
+ m_componentLocationHash.unite(hash);
+}
+
+void XsdSchemaResolver::addEnumerationFacetValue(const AtomicValue::Ptr &facetValue, const NamespaceSupport &namespaceSupport)
+{
+ m_enumerationFacetValues.insert(facetValue, namespaceSupport);
+}
+
+void XsdSchemaResolver::addRedefinedGroups(const XsdModelGroup::Ptr &redefinedGroup, const XsdModelGroup::Ptr &group)
+{
+ RedefinedGroups item;
+ item.redefinedGroup = redefinedGroup;
+ item.group = group;
+
+ m_redefinedGroups.append(item);
+}
+
+void XsdSchemaResolver::addRedefinedAttributeGroups(const XsdAttributeGroup::Ptr &redefinedGroup, const XsdAttributeGroup::Ptr &group)
+{
+ RedefinedAttributeGroups item;
+ item.redefinedGroup = redefinedGroup;
+ item.group = group;
+
+ m_redefinedAttributeGroups.append(item);
+}
+
+void XsdSchemaResolver::addAllGroupCheck(const XsdReference::Ptr &reference)
+{
+ m_allGroups.insert(reference);
+}
+
+void XsdSchemaResolver::copyDataTo(const XsdSchemaResolver::Ptr &other) const
+{
+ other->m_keyReferences << m_keyReferences;
+ other->m_simpleRestrictionBases << m_simpleRestrictionBases;
+ other->m_simpleListTypes << m_simpleListTypes;
+ other->m_simpleUnionTypes << m_simpleUnionTypes;
+ other->m_elementTypes << m_elementTypes;
+ other->m_complexBaseTypes << m_complexBaseTypes;
+ other->m_complexContentTypes << m_complexContentTypes;
+ other->m_attributeTypes << m_attributeTypes;
+ other->m_alternativeTypes << m_alternativeTypes;
+ other->m_alternativeTypeElements << m_alternativeTypeElements;
+ other->m_substitutionGroupAffiliations << m_substitutionGroupAffiliations;
+ other->m_substitutionGroupTypes << m_substitutionGroupTypes;
+}
+
+QXmlName XsdSchemaResolver::baseTypeNameOfType(const SchemaType::Ptr &type) const
+{
+ for (int i = 0; i < m_simpleRestrictionBases.count(); ++i) {
+ if (m_simpleRestrictionBases.at(i).simpleType == type)
+ return m_simpleRestrictionBases.at(i).baseName;
+ }
+
+ for (int i = 0; i < m_complexBaseTypes.count(); ++i) {
+ if (m_complexBaseTypes.at(i).complexType == type)
+ return m_complexBaseTypes.at(i).baseName;
+ }
+
+ return QXmlName();
+}
+
+QXmlName XsdSchemaResolver::typeNameOfAttribute(const XsdAttribute::Ptr &attribute) const
+{
+ for (int i = 0; i < m_attributeTypes.count(); ++i) {
+ if (m_attributeTypes.at(i).attribute == attribute)
+ return m_attributeTypes.at(i).typeName;
+ }
+
+ return QXmlName();
+}
+
+void XsdSchemaResolver::setDefaultOpenContent(const XsdComplexType::OpenContent::Ptr &openContent, bool appliesToEmpty)
+{
+ m_defaultOpenContent = openContent;
+ m_defaultOpenContentAppliesToEmpty = appliesToEmpty;
+}
+
+void XsdSchemaResolver::resolveKeyReferences()
+{
+ for (int i = 0; i < m_keyReferences.count(); ++i) {
+ const KeyReference ref = m_keyReferences.at(i);
+
+ const XsdIdentityConstraint::Ptr constraint = m_schema->identityConstraint(ref.reference);
+ if (!constraint) {
+ m_context->error(QtXmlPatterns::tr("%1 references unknown %2 or %3 element %4")
+ .arg(formatKeyword(ref.keyRef->displayName(m_namePool)))
+ .arg(formatElement("key"))
+ .arg(formatElement("unique"))
+ .arg(formatKeyword(m_namePool, ref.reference)),
+ XsdSchemaContext::XSDError, ref.location);
+ return;
+ }
+
+ if (constraint->category() != XsdIdentityConstraint::Key && constraint->category() != XsdIdentityConstraint::Unique) { // only key and unique can be referenced
+ m_context->error(QtXmlPatterns::tr("%1 references identity constraint %2 that is no %3 or %4 element")
+ .arg(formatKeyword(ref.keyRef->displayName(m_namePool)))
+ .arg(formatKeyword(m_namePool, ref.reference))
+ .arg(formatElement("key"))
+ .arg(formatElement("unique")),
+ XsdSchemaContext::XSDError, ref.location);
+ return;
+ }
+
+ if (constraint->fields().count() != ref.keyRef->fields().count()) {
+ m_context->error(QtXmlPatterns::tr("%1 has a different number of fields from the identity constraint %2 that it references")
+ .arg(formatKeyword(ref.keyRef->displayName(m_namePool)))
+ .arg(formatKeyword(m_namePool, ref.reference)),
+ XsdSchemaContext::XSDError, ref.location);
+ return;
+ }
+
+ ref.keyRef->setReferencedKey(constraint);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleRestrictionBaseTypes()
+{
+ // iterate over all simple types that are derived by restriction
+ for (int i = 0; i < m_simpleRestrictionBases.count(); ++i) {
+ const SimpleRestrictionBase item = m_simpleRestrictionBases.at(i);
+
+ // find the base type
+ SchemaType::Ptr type = m_schema->type(item.baseName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.baseName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("base type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, item.baseName))
+ .arg(formatElement("restriction")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ item.simpleType->setWxsSuperType(type);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleRestrictions()
+{
+ XsdSimpleType::List simpleTypes;
+
+ // first collect the global simple types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isSimpleType() && (types.at(i)->derivationMethod() == SchemaType::DerivationRestriction))
+ simpleTypes.append(types.at(i));
+ }
+
+ // then collect all anonymous simple types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (anonymousTypes.at(i)->isSimpleType() && (anonymousTypes.at(i)->derivationMethod() == SchemaType::DerivationRestriction))
+ simpleTypes.append(anonymousTypes.at(i));
+ }
+
+ QSet<XsdSimpleType::Ptr> visitedTypes;
+ for (int i = 0; i < simpleTypes.count(); ++i) {
+ resolveSimpleRestrictions(simpleTypes.at(i), visitedTypes);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleRestrictions(const XsdSimpleType::Ptr &simpleType, QSet<XsdSimpleType::Ptr> &visitedTypes)
+{
+ if (visitedTypes.contains(simpleType))
+ return;
+ else
+ visitedTypes.insert(simpleType);
+
+ if (simpleType->derivationMethod() != XsdSimpleType::DerivationRestriction)
+ return;
+
+ // as xs:NMTOKENS, xs:ENTITIES and xs:IDREFS are provided by our XsdSchemaTypesFactory, they are
+ // setup correctly already and shouldn't be handled here
+ if (m_predefinedSchemaTypes.contains(simpleType))
+ return;
+
+ const SchemaType::Ptr baseType = simpleType->wxsSuperType();
+ Q_ASSERT(baseType);
+
+ if (baseType->isDefinedBySchema())
+ resolveSimpleRestrictions(XsdSimpleType::Ptr(baseType), visitedTypes);
+
+ simpleType->setCategory(baseType->category());
+
+ if (simpleType->category() == XsdSimpleType::SimpleTypeAtomic) {
+ QSet<AnySimpleType::Ptr> visitedPrimitiveTypes;
+ const AnySimpleType::Ptr primitiveType = findPrimitiveType(baseType, visitedPrimitiveTypes);
+ simpleType->setPrimitiveType(primitiveType);
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeList) {
+ const XsdSimpleType::Ptr simpleBaseType = baseType;
+ simpleType->setItemType(simpleBaseType->itemType());
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ const XsdSimpleType::Ptr simpleBaseType = baseType;
+ simpleType->setMemberTypes(simpleBaseType->memberTypes());
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleListType()
+{
+ // iterate over all simple types where the item type shall be resolved
+ for (int i = 0; i < m_simpleListTypes.count(); ++i) {
+ const SimpleListType item = m_simpleListTypes.at(i);
+
+ // try to resolve the name
+ SchemaType::Ptr type = m_schema->type(item.typeName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.typeName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("item type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, item.typeName))
+ .arg(formatElement("list")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ item.simpleType->setItemType(type);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleUnionTypes()
+{
+ // iterate over all simple types where the union member types shall be resolved
+ for (int i = 0; i < m_simpleUnionTypes.count(); ++i) {
+ const SimpleUnionType item = m_simpleUnionTypes.at(i);
+
+ AnySimpleType::List memberTypes;
+
+ // iterate over all union member type names
+ const QList<QXmlName> typeNames = item.typeNames;
+ for (int j = 0; j < typeNames.count(); ++j) {
+ const QXmlName typeName = typeNames.at(j);
+
+ // try to resolve the name
+ SchemaType::Ptr type = m_schema->type(typeName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(typeName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("member type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, typeName))
+ .arg(formatElement("union")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ memberTypes.append(type);
+ }
+
+ // append the types that have been defined as <simpleType> children
+ memberTypes << item.simpleType->memberTypes();
+
+ item.simpleType->setMemberTypes(memberTypes);
+ }
+}
+
+void XsdSchemaResolver::resolveElementTypes()
+{
+ for (int i = 0; i < m_elementTypes.count(); ++i) {
+ const ElementType item = m_elementTypes.at(i);
+
+ SchemaType::Ptr type = m_schema->type(item.typeName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.typeName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, item.typeName))
+ .arg(formatElement("element")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ item.element->setType(type);
+ }
+}
+
+void XsdSchemaResolver::resolveComplexBaseTypes()
+{
+ for (int i = 0; i < m_complexBaseTypes.count(); ++i) {
+ const ComplexBaseType item = m_complexBaseTypes.at(i);
+
+ SchemaType::Ptr type = m_schema->type(item.baseName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.baseName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("base type %1 of complex type cannot be resolved").arg(formatType(m_namePool, item.baseName)), XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ if (item.complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (type->isComplexType() && type->isDefinedBySchema()) {
+ const XsdComplexType::Ptr baseType = type;
+ if (baseType->contentType()->variety() != XsdComplexType::ContentType::Simple) {
+ m_context->error(QtXmlPatterns::tr("%1 cannot have complex base type that has a %2")
+ .arg(formatElement("simpleContent"))
+ .arg(formatElement("complexContent")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+ }
+
+ item.complexType->setWxsSuperType(type);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleContentComplexTypes()
+{
+ XsdComplexType::List complexTypes;
+
+ // first collect the global complex types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isComplexType() && types.at(i)->isDefinedBySchema())
+ complexTypes.append(types.at(i));
+ }
+
+ // then collect all anonymous simple types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (anonymousTypes.at(i)->isComplexType() && anonymousTypes.at(i)->isDefinedBySchema())
+ complexTypes.append(anonymousTypes.at(i));
+ }
+
+ QSet<XsdComplexType::Ptr> visitedTypes;
+ for (int i = 0; i < complexTypes.count(); ++i) {
+ if (XsdComplexType::Ptr(complexTypes.at(i))->contentType()->variety() == XsdComplexType::ContentType::Simple)
+ resolveSimpleContentComplexTypes(complexTypes.at(i), visitedTypes);
+ }
+}
+
+void XsdSchemaResolver::resolveSimpleContentComplexTypes(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes)
+{
+ if (visitedTypes.contains(complexType))
+ return;
+ else
+ visitedTypes.insert(complexType);
+
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+
+ // at this point simple types have been resolved already, so we care about
+ // complex types here only
+
+ // http://www.w3.org/TR/xmlschema11-1/#dcl.ctd.ctsc
+ // 1
+ if (baseType->isComplexType() && baseType->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexBaseType = baseType;
+
+ resolveSimpleContentComplexTypes(complexBaseType, visitedTypes);
+
+ if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (complexType->derivationMethod() == XsdComplexType::DerivationRestriction) {
+ if (complexType->contentType()->simpleType()) {
+ // 1.1 contains the content of the <simpleType> already
+ } else {
+ // 1.2
+ const XsdSimpleType::Ptr anonType(new XsdSimpleType());
+ anonType->setCategory(complexBaseType->contentType()->simpleType()->category());
+ anonType->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+ anonType->setWxsSuperType(complexBaseType->contentType()->simpleType());
+ anonType->setFacets(complexTypeFacets(complexType));
+
+ QSet<AnySimpleType::Ptr> visitedPrimitiveTypes;
+ const AnySimpleType::Ptr primitiveType = findPrimitiveType(anonType->wxsSuperType(), visitedPrimitiveTypes);
+ anonType->setPrimitiveType(primitiveType);
+
+ complexType->contentType()->setSimpleType(anonType);
+
+ m_schema->addAnonymousType(anonType);
+ m_componentLocationHash.insert(anonType, m_componentLocationHash.value(complexType));
+ }
+ } else if (complexBaseType->derivationMethod() == XsdComplexType::DerivationExtension) { // 3
+ complexType->contentType()->setSimpleType(complexBaseType->contentType()->simpleType());
+ }
+ } else if (complexBaseType->contentType()->variety() == XsdComplexType::ContentType::Mixed &&
+ complexType->derivationMethod() == XsdComplexType::DerivationRestriction &&
+ XsdSchemaHelper::isParticleEmptiable(complexBaseType->contentType()->particle())) { // 2
+ // simple type was already set in parser
+
+ const XsdSimpleType::Ptr anonType(new XsdSimpleType());
+ anonType->setCategory(complexType->contentType()->simpleType()->category());
+ anonType->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+ anonType->setWxsSuperType(complexType->contentType()->simpleType());
+ anonType->setFacets(complexTypeFacets(complexType));
+
+ QSet<AnySimpleType::Ptr> visitedPrimitiveTypes;
+ const AnySimpleType::Ptr primitiveType = findPrimitiveType(anonType->wxsSuperType(), visitedPrimitiveTypes);
+ anonType->setPrimitiveType(primitiveType);
+
+ complexType->contentType()->setSimpleType(anonType);
+
+ m_schema->addAnonymousType(anonType);
+ m_componentLocationHash.insert(anonType, m_componentLocationHash.value(complexType));
+ } else {
+ complexType->contentType()->setSimpleType(BuiltinTypes::xsAnySimpleType);
+ }
+ } else if (baseType->isSimpleType()) { // 4
+ complexType->contentType()->setSimpleType(baseType);
+ } else { // 5
+ complexType->contentType()->setSimpleType(BuiltinTypes::xsAnySimpleType);
+ }
+}
+
+void XsdSchemaResolver::resolveComplexContentComplexTypes()
+{
+ XsdComplexType::List complexTypes;
+
+ // first collect the global complex types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isComplexType() && types.at(i)->isDefinedBySchema())
+ complexTypes.append(types.at(i));
+ }
+
+ // then collect all anonymous simple types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (anonymousTypes.at(i)->isComplexType() && anonymousTypes.at(i)->isDefinedBySchema())
+ complexTypes.append(anonymousTypes.at(i));
+ }
+
+ QSet<XsdComplexType::Ptr> visitedTypes;
+ for (int i = 0; i < complexTypes.count(); ++i) {
+ if (XsdComplexType::Ptr(complexTypes.at(i))->contentType()->variety() != XsdComplexType::ContentType::Simple)
+ resolveComplexContentComplexTypes(complexTypes.at(i), visitedTypes);
+ }
+}
+
+void XsdSchemaResolver::resolveComplexContentComplexTypes(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes)
+{
+ if (visitedTypes.contains(complexType))
+ return;
+ else
+ visitedTypes.insert(complexType);
+
+ ComplexContentType item;
+ bool foundCorrespondingItem = false;
+ for (int i = 0; i < m_complexContentTypes.count(); ++i) {
+ if (m_complexContentTypes.at(i).complexType == complexType) {
+ item = m_complexContentTypes.at(i);
+ foundCorrespondingItem = true;
+ break;
+ }
+ }
+
+ if (!foundCorrespondingItem)
+ return;
+
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+
+ // at this point simple types have been resolved already, so we care about
+ // complex types here only
+ if (baseType->isComplexType() && baseType->isDefinedBySchema())
+ resolveComplexContentComplexTypes(XsdComplexType::Ptr(baseType), visitedTypes);
+
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#dcl.ctd.ctcc.common
+
+ // 3
+ XsdParticle::Ptr effectiveContent;
+ if (!item.explicitContent) { // 3.1
+ if (item.effectiveMixed == true) { // 3.1.1
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setMinimumOccurs(1);
+ particle->setMaximumOccurs(1);
+ particle->setMaximumOccursUnbounded(false);
+
+ const XsdModelGroup::Ptr sequence(new XsdModelGroup());
+ sequence->setCompositor(XsdModelGroup::SequenceCompositor);
+ particle->setTerm(sequence);
+
+ effectiveContent = particle;
+ } else { // 3.1.2
+ effectiveContent = XsdParticle::Ptr();
+ }
+ } else { // 3.2
+ effectiveContent = item.explicitContent;
+ }
+
+ // 4
+ XsdComplexType::ContentType::Ptr explicitContentType(new XsdComplexType::ContentType());
+ if (item.complexType->derivationMethod() == XsdComplexType::DerivationRestriction) { // 4.1
+ if (!effectiveContent) { // 4.1.1
+ explicitContentType->setVariety(XsdComplexType::ContentType::Empty);
+ } else { // 4.1.2
+ if (item.effectiveMixed == true)
+ explicitContentType->setVariety(XsdComplexType::ContentType::Mixed);
+ else
+ explicitContentType->setVariety(XsdComplexType::ContentType::ElementOnly);
+
+ explicitContentType->setParticle(effectiveContent);
+ }
+ } else if (item.complexType->derivationMethod() == XsdComplexType::DerivationExtension) { // 4.2
+ const SchemaType::Ptr baseType = item.complexType->wxsSuperType();
+ if (baseType->isSimpleType() || (baseType->isComplexType() && baseType->isDefinedBySchema() && (XsdComplexType::Ptr(baseType)->contentType()->variety() == XsdComplexType::ContentType::Empty ||
+ XsdComplexType::Ptr(baseType)->contentType()->variety() == XsdComplexType::ContentType::Simple))) { // 4.2.1
+ if (!effectiveContent) {
+ explicitContentType->setVariety(XsdComplexType::ContentType::Empty);
+ } else {
+ if (item.effectiveMixed == true)
+ explicitContentType->setVariety(XsdComplexType::ContentType::Mixed);
+ else
+ explicitContentType->setVariety(XsdComplexType::ContentType::ElementOnly);
+
+ explicitContentType->setParticle(effectiveContent);
+ }
+ } else if (baseType->isComplexType() && baseType->isDefinedBySchema() && (XsdComplexType::Ptr(baseType)->contentType()->variety() == XsdComplexType::ContentType::ElementOnly ||
+ XsdComplexType::Ptr(baseType)->contentType()->variety() == XsdComplexType::ContentType::Mixed) && !effectiveContent) { // 4.2.2
+ const XsdComplexType::Ptr complexBaseType(baseType);
+
+ explicitContentType = complexBaseType->contentType();
+ } else { // 4.2.3
+ explicitContentType->setVariety(item.effectiveMixed ? XsdComplexType::ContentType::Mixed : XsdComplexType::ContentType::ElementOnly);
+
+ XsdParticle::Ptr baseParticle;
+ if (baseType == BuiltinTypes::xsAnyType) {
+ // we need a workaround here, since the xsAnyType is no real (aka XsdComplexType) complex type...
+
+ baseParticle = XsdParticle::Ptr(new XsdParticle());
+ baseParticle->setMinimumOccurs(1);
+ baseParticle->setMaximumOccurs(1);
+ baseParticle->setMaximumOccursUnbounded(false);
+
+ const XsdModelGroup::Ptr group(new XsdModelGroup());
+ group->setCompositor(XsdModelGroup::SequenceCompositor);
+
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setMinimumOccurs(0);
+ particle->setMaximumOccursUnbounded(true);
+
+ const XsdWildcard::Ptr wildcard(new XsdWildcard());
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ wildcard->setProcessContents(XsdWildcard::Lax);
+
+ particle->setTerm(wildcard);
+ XsdParticle::List particles;
+ particles.append(particle);
+ group->setParticles(particles);
+ baseParticle->setTerm(group);
+ } else {
+ const XsdComplexType::Ptr complexBaseType(baseType);
+ baseParticle = complexBaseType->contentType()->particle();
+ }
+ if (baseParticle && baseParticle->term()->isModelGroup() && (XsdModelGroup::Ptr(baseParticle->term())->compositor() == XsdModelGroup::AllCompositor) &&
+ (!item.explicitContent)) { // 4.2.3.1
+
+ explicitContentType->setParticle(baseParticle);
+ } else if (baseParticle && baseParticle->term()->isModelGroup() && (XsdModelGroup::Ptr(baseParticle->term())->compositor() == XsdModelGroup::AllCompositor) &&
+ (effectiveContent->term()->isModelGroup() && (XsdModelGroup::Ptr(effectiveContent->term())->compositor() == XsdModelGroup::AllCompositor))) { // 4.2.3.2
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setMinimumOccurs(effectiveContent->minimumOccurs());
+ particle->setMaximumOccurs(1);
+ particle->setMaximumOccursUnbounded(false);
+
+ const XsdModelGroup::Ptr group(new XsdModelGroup());
+ group->setCompositor(XsdModelGroup::AllCompositor);
+ XsdParticle::List particles = XsdModelGroup::Ptr(baseParticle->term())->particles();
+ particles << XsdModelGroup::Ptr(effectiveContent->term())->particles();
+ group->setParticles(particles);
+ particle->setTerm(group);
+
+ explicitContentType->setParticle(particle);
+ } else { // 4.2.3.3
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setMinimumOccurs(1);
+ particle->setMaximumOccurs(1);
+ particle->setMaximumOccursUnbounded(false);
+
+ const XsdModelGroup::Ptr group(new XsdModelGroup());
+ group->setCompositor(XsdModelGroup::SequenceCompositor);
+
+ if (effectiveContent && effectiveContent->term()->isModelGroup() && XsdModelGroup::Ptr(effectiveContent->term())->compositor() == XsdModelGroup::AllCompositor) {
+ m_context->error(QtXmlPatterns::tr("content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type")
+ .arg(formatType(m_namePool, complexType)).arg(formatKeyword("all")), XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+
+ if (baseParticle && baseParticle->term()->isModelGroup() && XsdModelGroup::Ptr(baseParticle->term())->compositor() == XsdModelGroup::AllCompositor) {
+ m_context->error(QtXmlPatterns::tr("complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, baseType))
+ .arg(formatKeyword("all")), XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+
+ XsdParticle::List particles;
+ if (baseParticle)
+ particles << baseParticle;
+ if (effectiveContent)
+ particles << effectiveContent;
+ group->setParticles(particles);
+ particle->setTerm(group);
+
+ explicitContentType->setParticle(particle);
+ }
+
+ if (baseType->isDefinedBySchema()) { // xs:anyType has no open content
+ const XsdComplexType::Ptr complexBaseType(baseType);
+ explicitContentType->setOpenContent(complexBaseType->contentType()->openContent());
+ }
+ }
+ }
+
+ // 5
+ XsdComplexType::OpenContent::Ptr wildcardElement;
+ if (item.complexType->contentType()->openContent()) { // 5.1
+ wildcardElement = item.complexType->contentType()->openContent();
+ } else {
+ if (m_defaultOpenContent) { // 5.2
+ if ((explicitContentType->variety() != XsdComplexType::ContentType::Empty) || // 5.2.1
+ (explicitContentType->variety() == XsdComplexType::ContentType::Empty && m_defaultOpenContentAppliesToEmpty)) { // 5.2.2
+ wildcardElement = m_defaultOpenContent;
+ }
+ }
+ }
+
+ // 6
+ if (!wildcardElement) { // 6.1
+ item.complexType->setContentType(explicitContentType);
+ } else {
+ if (wildcardElement->mode() == XsdComplexType::OpenContent::None) { // 6.2
+ const XsdComplexType::ContentType::Ptr contentType(new XsdComplexType::ContentType());
+ contentType->setVariety(explicitContentType->variety());
+ contentType->setParticle(explicitContentType->particle());
+
+ item.complexType->setContentType(contentType);
+ } else { // 6.3
+ const XsdComplexType::ContentType::Ptr contentType(new XsdComplexType::ContentType());
+
+ if (explicitContentType->variety() == XsdComplexType::ContentType::Empty)
+ contentType->setVariety(XsdComplexType::ContentType::ElementOnly);
+ else
+ contentType->setVariety(explicitContentType->variety());
+
+ if (explicitContentType->variety() == XsdComplexType::ContentType::Empty) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setMinimumOccurs(1);
+ particle->setMaximumOccurs(1);
+ const XsdModelGroup::Ptr sequence(new XsdModelGroup());
+ sequence->setCompositor(XsdModelGroup::SequenceCompositor);
+ particle->setTerm(sequence);
+ contentType->setParticle(particle);
+ } else {
+ contentType->setParticle(explicitContentType->particle());
+ }
+
+ const XsdComplexType::OpenContent::Ptr openContent(new XsdComplexType::OpenContent());
+ if (wildcardElement)
+ openContent->setMode(wildcardElement->mode());
+ else
+ openContent->setMode(XsdComplexType::OpenContent::Interleave);
+
+ if (wildcardElement)
+ openContent->setWildcard(wildcardElement->wildcard());
+
+ item.complexType->setContentType(contentType);
+ }
+ }
+}
+
+void XsdSchemaResolver::resolveAttributeTypes()
+{
+ for (int i = 0; i < m_attributeTypes.count(); ++i) {
+ const AttributeType item = m_attributeTypes.at(i);
+
+ SchemaType::Ptr type = m_schema->type(item.typeName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.typeName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, item.typeName))
+ .arg(formatElement("attribute")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ if (!type->isSimpleType() && type->category() != SchemaType::None) {
+ m_context->error(QtXmlPatterns::tr("type of %1 element must be a simple type, %2 is not")
+ .arg(formatElement("attribute"))
+ .arg(formatType(m_namePool, item.typeName)),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+
+ item.attribute->setType(type);
+ }
+}
+
+void XsdSchemaResolver::resolveAlternativeTypes()
+{
+ for (int i = 0; i < m_alternativeTypes.count(); ++i) {
+ const AlternativeType item = m_alternativeTypes.at(i);
+
+ SchemaType::Ptr type = m_schema->type(item.typeName);
+ if (!type) {
+ // maybe it's a basic type...
+ type = m_context->schemaTypeFactory()->createSchemaType(item.typeName);
+ if (!type) {
+ m_context->error(QtXmlPatterns::tr("type %1 of %2 element cannot be resolved")
+ .arg(formatType(m_namePool, item.typeName))
+ .arg(formatElement("alternative")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+ }
+
+ item.alternative->setType(type);
+ }
+
+ for (int i = 0; i < m_alternativeTypeElements.count(); ++i) {
+ const AlternativeTypeElement item = m_alternativeTypeElements.at(i);
+ item.alternative->setType(item.element->type());
+ }
+}
+
+bool hasCircularSubstitutionGroup(const XsdElement::Ptr &current, const XsdElement::Ptr &head, const NamePool::Ptr &namePool)
+{
+ if (current == head)
+ return true;
+ else {
+ const XsdElement::List elements = current->substitutionGroupAffiliations();
+ for (int i = 0; i < elements.count(); ++i) {
+ if (hasCircularSubstitutionGroup(elements.at(i), head, namePool))
+ return true;
+ }
+ }
+
+ return false;
+}
+
+void XsdSchemaResolver::resolveSubstitutionGroupAffiliations()
+{
+ for (int i = 0; i < m_substitutionGroupAffiliations.count(); ++i) {
+ const SubstitutionGroupAffiliation item = m_substitutionGroupAffiliations.at(i);
+
+ XsdElement::List affiliations;
+ for (int j = 0; j < item.elementNames.count(); ++j) {
+ const XsdElement::Ptr element = m_schema->element(item.elementNames.at(j));
+ if (!element) {
+ m_context->error(QtXmlPatterns::tr("substitution group %1 of %2 element cannot be resolved")
+ .arg(formatKeyword(m_namePool, item.elementNames.at(j)))
+ .arg(formatElement("element")),
+ XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#e-props-correct 5)
+ if (hasCircularSubstitutionGroup(element, item.element, m_namePool)) {
+ m_context->error(QtXmlPatterns::tr("substitution group %1 has circular definition").arg(formatKeyword(m_namePool, item.elementNames.at(j))), XsdSchemaContext::XSDError, item.location);
+ return;
+ }
+
+ affiliations.append(element);
+ }
+
+ item.element->setSubstitutionGroupAffiliations(affiliations);
+ }
+
+ for (int i = 0; i < m_substitutionGroupTypes.count(); ++i) {
+ const XsdElement::Ptr element = m_substitutionGroupTypes.at(i);
+ element->setType(element->substitutionGroupAffiliations().first()->type());
+ }
+}
+
+bool isSubstGroupHeadOf(const XsdElement::Ptr &head, const XsdElement::Ptr &element, const NamePool::Ptr &namePool)
+{
+ if (head->name(namePool) == element->name(namePool))
+ return true;
+
+ const XsdElement::List affiliations = element->substitutionGroupAffiliations();
+ for (int i = 0; i < affiliations.count(); ++i) {
+ if (isSubstGroupHeadOf(head, affiliations.at(i), namePool))
+ return true;
+ }
+
+ return false;
+}
+
+void XsdSchemaResolver::resolveSubstitutionGroups()
+{
+ const XsdElement::List elements = m_schema->elements();
+ for (int i = 0; i < elements.count(); ++i) {
+ const XsdElement::Ptr element = elements.at(i);
+
+ // the element is always itself in the substitution group
+ element->addSubstitutionGroup(element);
+
+ for (int j = 0; j < elements.count(); ++j) {
+ if (i == j)
+ continue;
+
+ if (isSubstGroupHeadOf(element, elements.at(j), m_namePool))
+ element->addSubstitutionGroup(elements.at(j));
+ }
+ }
+}
+
+void XsdSchemaResolver::resolveTermReferences()
+{
+ // first the global complex types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (!(types.at(i)->isComplexType()) || !types.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = types.at(i);
+ if (complexType->contentType()->variety() != XsdComplexType::ContentType::ElementOnly && complexType->contentType()->variety() != XsdComplexType::ContentType::Mixed)
+ continue;
+
+ resolveTermReference(complexType->contentType()->particle(), QSet<QXmlName>());
+ }
+
+ // then all anonymous complex types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (!(anonymousTypes.at(i)->isComplexType()) || !anonymousTypes.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = anonymousTypes.at(i);
+ if (complexType->contentType()->variety() != XsdComplexType::ContentType::ElementOnly && complexType->contentType()->variety() != XsdComplexType::ContentType::Mixed)
+ continue;
+
+ resolveTermReference(complexType->contentType()->particle(), QSet<QXmlName>());
+ }
+
+ const XsdModelGroup::List groups = m_schema->elementGroups();
+ for (int i = 0; i < groups.count(); ++i) {
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setTerm(groups.at(i));
+ resolveTermReference(particle, QSet<QXmlName>());
+ }
+}
+
+void XsdSchemaResolver::resolveTermReference(const XsdParticle::Ptr &particle, QSet<QXmlName> visitedGroups)
+{
+ if (!particle)
+ return;
+
+ const XsdTerm::Ptr term = particle->term();
+
+ // if it is a model group, we iterate over it recursive...
+ if (term->isModelGroup()) {
+ const XsdModelGroup::Ptr modelGroup = term;
+ const XsdParticle::List particles = modelGroup->particles();
+
+ for (int i = 0; i < particles.count(); ++i) {
+ resolveTermReference(particles.at(i), visitedGroups);
+ }
+
+ // check for unique names of elements inside all compositor
+ if (modelGroup->compositor() != XsdModelGroup::ChoiceCompositor) {
+ for (int i = 0; i < particles.count(); ++i) {
+ const XsdParticle::Ptr particle = particles.at(i);
+ const XsdTerm::Ptr term = particle->term();
+
+ if (!(term->isElement()))
+ continue;
+
+ for (int j = 0; j < particles.count(); ++j) {
+ const XsdParticle::Ptr otherParticle = particles.at(j);
+ const XsdTerm::Ptr otherTerm = otherParticle->term();
+
+ if (otherTerm->isElement() && i != j) {
+ const XsdElement::Ptr element = term;
+ const XsdElement::Ptr otherElement = otherTerm;
+
+ if (element->name(m_namePool) == otherElement->name(m_namePool)) {
+ if (modelGroup->compositor() == XsdModelGroup::AllCompositor) {
+ m_context->error(QtXmlPatterns::tr("duplicated element names %1 in %2 element")
+ .arg(formatKeyword(element->displayName(m_namePool)))
+ .arg(formatElement("all")),
+ XsdSchemaContext::XSDError, sourceLocation(modelGroup));
+ return;
+ } else if (modelGroup->compositor() == XsdModelGroup::SequenceCompositor) {
+ if (element->type() != otherElement->type()) { // not same variety
+ m_context->error(QtXmlPatterns::tr("duplicated element names %1 in %2 element")
+ .arg(formatKeyword(element->displayName(m_namePool)))
+ .arg(formatElement("sequence")),
+ XsdSchemaContext::XSDError, sourceLocation(modelGroup));
+ return;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return;
+ }
+
+ // ...otherwise we have reached the end of recursion...
+ if (!term->isReference())
+ return;
+
+ // ...or we have reached a reference term that must be resolved
+ const XsdReference::Ptr reference = term;
+ switch (reference->type()) {
+ case XsdReference::Element:
+ {
+ const XsdElement::Ptr element = m_schema->element(reference->referenceName());
+ if (element) {
+ particle->setTerm(element);
+ } else {
+ m_context->error(QtXmlPatterns::tr("reference %1 of %2 element cannot be resolved")
+ .arg(formatKeyword(m_namePool, reference->referenceName()))
+ .arg(formatElement("element")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return;
+ }
+ }
+ break;
+ case XsdReference::ModelGroup:
+ {
+ const XsdModelGroup::Ptr modelGroup = m_schema->elementGroup(reference->referenceName());
+ if (modelGroup) {
+ if (visitedGroups.contains(modelGroup->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("circular group reference for %1").arg(formatKeyword(modelGroup->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ } else {
+ visitedGroups.insert(modelGroup->name(m_namePool));
+ }
+
+ particle->setTerm(modelGroup);
+
+ // start recursive iteration here as well to get all references resolved
+ const XsdParticle::List particles = modelGroup->particles();
+ for (int i = 0; i < particles.count(); ++i) {
+ resolveTermReference(particles.at(i), visitedGroups);
+ }
+
+ if (modelGroup->compositor() == XsdModelGroup::AllCompositor) {
+ if (m_allGroups.contains(reference)) {
+ m_context->error(QtXmlPatterns::tr("%1 element is not allowed in this scope").arg(formatElement("all")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return;
+ }
+ if (particle->maximumOccursUnbounded() || particle->maximumOccurs() != 1) {
+ m_context->error(QtXmlPatterns::tr("%1 element cannot have %2 attribute with value other than %3")
+ .arg(formatElement("all"))
+ .arg(formatAttribute("maxOccurs"))
+ .arg(formatData("1")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return;
+ }
+ if (particle->minimumOccurs() != 0 && particle->minimumOccurs() != 1) {
+ m_context->error(QtXmlPatterns::tr("%1 element cannot have %2 attribute with value other than %3 or %4")
+ .arg(formatElement("all"))
+ .arg(formatAttribute("minOccurs"))
+ .arg(formatData("0"))
+ .arg(formatData("1")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return;
+ }
+ }
+ } else {
+ m_context->error(QtXmlPatterns::tr("reference %1 of %2 element cannot be resolved")
+ .arg(formatKeyword(m_namePool, reference->referenceName()))
+ .arg(formatElement("group")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return;
+ }
+ }
+ break;
+ }
+}
+
+void XsdSchemaResolver::resolveAttributeTermReferences()
+{
+ // first all global attribute groups
+ const XsdAttributeGroup::List attributeGroups = m_schema->attributeGroups();
+ for (int i = 0; i < attributeGroups.count(); ++i) {
+ XsdWildcard::Ptr wildcard = attributeGroups.at(i)->wildcard();
+ const XsdAttributeUse::List uses = resolveAttributeTermReferences(attributeGroups.at(i)->attributeUses(), wildcard, QSet<QXmlName>());
+ attributeGroups.at(i)->setAttributeUses(uses);
+ attributeGroups.at(i)->setWildcard(wildcard);
+ }
+
+ // then the global complex types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (!(types.at(i)->isComplexType()) || !types.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = types.at(i);
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+
+ XsdWildcard::Ptr wildcard = complexType->attributeWildcard();
+ const XsdAttributeUse::List uses = resolveAttributeTermReferences(attributeUses, wildcard, QSet<QXmlName>());
+ complexType->setAttributeUses(uses);
+ complexType->setAttributeWildcard(wildcard);
+ }
+
+ // and afterwards all anonymous complex types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (!(anonymousTypes.at(i)->isComplexType()) || !anonymousTypes.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = anonymousTypes.at(i);
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+
+ XsdWildcard::Ptr wildcard = complexType->attributeWildcard();
+ const XsdAttributeUse::List uses = resolveAttributeTermReferences(attributeUses, wildcard, QSet<QXmlName>());
+ complexType->setAttributeUses(uses);
+ complexType->setAttributeWildcard(wildcard);
+ }
+}
+
+XsdAttributeUse::List XsdSchemaResolver::resolveAttributeTermReferences(const XsdAttributeUse::List &attributeUses, XsdWildcard::Ptr &wildcard, QSet<QXmlName> visitedAttributeGroups)
+{
+ XsdAttributeUse::List resolvedAttributeUses;
+
+ for (int i = 0; i < attributeUses.count(); ++i) {
+ const XsdAttributeUse::Ptr attributeUse = attributeUses.at(i);
+ if (attributeUse->isAttributeUse()) {
+ // it is a real attribute use, so no need to resolve it
+ resolvedAttributeUses.append(attributeUse);
+ } else if (attributeUse->isReference()) {
+ // it is just a reference, so resolve it to the real attribute use
+
+ const XsdAttributeReference::Ptr reference = attributeUse;
+ if (reference->type() == XsdAttributeReference::AttributeUse) {
+
+ // lookup the real attribute
+ const XsdAttribute::Ptr attribute = m_schema->attribute(reference->referenceName());
+ if (!attribute) {
+ m_context->error(QtXmlPatterns::tr("reference %1 of %2 element cannot be resolved")
+ .arg(formatKeyword(m_namePool, reference->referenceName()))
+ .arg(formatElement("attribute")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return XsdAttributeUse::List();
+ }
+
+ // if both, reference and definition have a fixed or default value set, then they must be equal
+ if (attribute->valueConstraint() && attributeUse->valueConstraint()) {
+ if (attribute->valueConstraint()->value() != attributeUse->valueConstraint()->value()) {
+ m_context->error(QtXmlPatterns::tr("%1 or %2 attribute of reference %3 does not match with the attribute declaration %4")
+ .arg(formatAttribute("fixed"))
+ .arg(formatAttribute("default"))
+ .arg(formatKeyword(m_namePool, reference->referenceName()))
+ .arg(formatKeyword(attribute->displayName(m_namePool))),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return XsdAttributeUse::List();
+ }
+ }
+
+ attributeUse->setAttribute(attribute);
+ if (!attributeUse->valueConstraint() && attribute->valueConstraint())
+ attributeUse->setValueConstraint(XsdAttributeUse::ValueConstraint::fromAttributeValueConstraint(attribute->valueConstraint()));
+
+ resolvedAttributeUses.append(attributeUse);
+ } else if (reference->type() == XsdAttributeReference::AttributeGroup) {
+ const XsdAttributeGroup::Ptr attributeGroup = m_schema->attributeGroup(reference->referenceName());
+ if (!attributeGroup) {
+ m_context->error(QtXmlPatterns::tr("reference %1 of %2 element cannot be resolved")
+ .arg(formatKeyword(m_namePool, reference->referenceName()))
+ .arg(formatElement("attributeGroup")),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return XsdAttributeUse::List();
+ }
+ if (visitedAttributeGroups.contains(attributeGroup->name(m_namePool))) {
+ m_context->error(QtXmlPatterns::tr("attribute group %1 has circular reference").arg(formatKeyword(m_namePool, reference->referenceName())),
+ XsdSchemaContext::XSDError, reference->sourceLocation());
+ return XsdAttributeUse::List();
+ } else {
+ visitedAttributeGroups.insert(attributeGroup->name(m_namePool));
+ }
+
+ // resolve attribute wildcards as defined in http://www.w3.org/TR/xmlschema11-1/#declare-attributeGroup-wildcard
+ XsdWildcard::Ptr childWildcard;
+ resolvedAttributeUses << resolveAttributeTermReferences(attributeGroup->attributeUses(), childWildcard, visitedAttributeGroups);
+ if (!childWildcard) {
+ if (attributeGroup->wildcard()) {
+ if (wildcard) {
+ const XsdWildcard::ProcessContents contents = wildcard->processContents();
+ wildcard = XsdSchemaHelper::wildcardIntersection(wildcard, attributeGroup->wildcard());
+ wildcard->setProcessContents(contents);
+ } else {
+ wildcard = attributeGroup->wildcard();
+ }
+ }
+ } else {
+ XsdWildcard::Ptr newWildcard;
+ if (attributeGroup->wildcard()) {
+ const XsdWildcard::ProcessContents contents = attributeGroup->wildcard()->processContents();
+ newWildcard = XsdSchemaHelper::wildcardIntersection(attributeGroup->wildcard(), childWildcard);
+ newWildcard->setProcessContents(contents);
+ } else {
+ newWildcard = childWildcard;
+ }
+
+ if (wildcard) {
+ const XsdWildcard::ProcessContents contents = wildcard->processContents();
+ wildcard = XsdSchemaHelper::wildcardIntersection(wildcard, newWildcard);
+ wildcard->setProcessContents(contents);
+ } else {
+ wildcard = newWildcard;
+ }
+ }
+ }
+ }
+ }
+
+ return resolvedAttributeUses;
+}
+
+void XsdSchemaResolver::resolveAttributeInheritance()
+{
+ // collect the global and anonymous complex types
+ SchemaType::List types = m_schema->types();
+ types << m_schema->anonymousTypes();
+
+ QSet<XsdComplexType::Ptr> visitedTypes;
+ for (int i = 0; i < types.count(); ++i) {
+ if (!(types.at(i)->isComplexType()) || !types.at(i)->isDefinedBySchema())
+ continue;
+
+ const XsdComplexType::Ptr complexType = types.at(i);
+
+ resolveAttributeInheritance(complexType, visitedTypes);
+ }
+}
+
+bool isValidWildcardRestriction(const XsdWildcard::Ptr &wildcard, const XsdWildcard::Ptr &baseWildcard)
+{
+ if (wildcard->namespaceConstraint()->variety() == baseWildcard->namespaceConstraint()->variety()) {
+ if (!XsdSchemaHelper::checkWildcardProcessContents(baseWildcard, wildcard))
+ return false;
+ }
+
+ if (wildcard->namespaceConstraint()->variety() == XsdWildcard::NamespaceConstraint::Any &&
+ baseWildcard->namespaceConstraint()->variety() != XsdWildcard::NamespaceConstraint::Any ) {
+ return false;
+ }
+ if (baseWildcard->namespaceConstraint()->variety() == XsdWildcard::NamespaceConstraint::Not &&
+ wildcard->namespaceConstraint()->variety() == XsdWildcard::NamespaceConstraint::Enumeration) {
+ if (!baseWildcard->namespaceConstraint()->namespaces().intersect(wildcard->namespaceConstraint()->namespaces()).isEmpty())
+ return false;
+ }
+ if (baseWildcard->namespaceConstraint()->variety() == XsdWildcard::NamespaceConstraint::Enumeration &&
+ wildcard->namespaceConstraint()->variety() == XsdWildcard::NamespaceConstraint::Enumeration) {
+ if (!wildcard->namespaceConstraint()->namespaces().subtract(baseWildcard->namespaceConstraint()->namespaces()).isEmpty())
+ return false;
+ }
+
+ return true;
+}
+
+/*
+ * Since we inherit the attributes from our base class we have to walk up in the
+ * inheritance hierarchy first and resolve the attribute inheritance top-down.
+ */
+void XsdSchemaResolver::resolveAttributeInheritance(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes)
+{
+ if (visitedTypes.contains(complexType))
+ return;
+ else
+ visitedTypes.insert(complexType);
+
+ const SchemaType::Ptr baseType = complexType->wxsSuperType();
+ Q_ASSERT(baseType);
+
+ if (!(baseType->isComplexType()) || !baseType->isDefinedBySchema())
+ return;
+
+ const XsdComplexType::Ptr complexBaseType = baseType;
+
+ resolveAttributeInheritance(complexBaseType, visitedTypes);
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#dcl.ctd.attuses
+
+ // 1 and 2 (the attribute groups have been resolved here already)
+ const XsdAttributeUse::List uses = complexBaseType->attributeUses();
+
+ if (complexType->derivationMethod() == XsdComplexType::DerivationRestriction) { // 3.2
+ const XsdAttributeUse::List currentUses = complexType->attributeUses();
+
+ // 3.2.1 and 3.2.2 As we also keep the prohibited attributes as objects, the algorithm below
+ // handles both the same way
+
+ // add only these attribute uses of the base type that match one of the following criteria:
+ // 1: there is no attribute use with the same name in type
+ // 2: there is no attribute with the same name marked as prohibited in type
+ for (int j = 0; j < uses.count(); ++j) {
+ const XsdAttributeUse::Ptr use = uses.at(j);
+ bool found = false;
+ for (int k = 0; k < currentUses.count(); ++k) {
+ if (use->attribute()->name(m_namePool) == currentUses.at(k)->attribute()->name(m_namePool)) {
+ found = true;
+
+ // check if prohibited usage is violated
+ if ((use->useType() == XsdAttributeUse::ProhibitedUse) && (currentUses.at(k)->useType() != XsdAttributeUse::ProhibitedUse)) {
+ m_context->error(QtXmlPatterns::tr("%1 attribute in %2 must have %3 use like in base type %4")
+ .arg(formatAttribute(use->attribute()->displayName(m_namePool)))
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatData("prohibited"))
+ .arg(formatType(m_namePool, complexBaseType)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+
+ break;
+ }
+ }
+
+ if (!found && uses.at(j)->useType() != XsdAttributeUse::ProhibitedUse) {
+ complexType->addAttributeUse(uses.at(j));
+ }
+ }
+ } else if (complexType->derivationMethod() == XsdComplexType::DerivationExtension) { // 3.1
+ QHash<QXmlName, XsdAttributeUse::Ptr> availableUses;
+
+ // fill hash with attribute uses of current type for faster lookup
+ {
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+
+ for (int i = 0; i < attributeUses.count(); ++i) {
+ availableUses.insert(attributeUses.at(i)->attribute()->name(m_namePool), attributeUses.at(i));
+ }
+ }
+
+ // just add the attribute uses of the base type
+ for (int i = 0; i < uses.count(); ++i) {
+ const XsdAttributeUse::Ptr currentAttributeUse = uses.at(i);
+
+ // if the base type defines the attribute as prohibited but we override it in current type, then don't copy the prohibited attribute use
+ if ((currentAttributeUse->useType() == XsdAttributeUse::ProhibitedUse) && availableUses.contains(currentAttributeUse->attribute()->name(m_namePool)))
+ continue;
+
+ complexType->addAttributeUse(uses.at(i));
+ }
+ }
+
+ // handle attribute wildcards: @see http://www.w3.org/TR/xmlschema11-1/#dcl.ctd.anyatt
+
+ // 1
+ const XsdWildcard::Ptr completeWildcard(complexType->attributeWildcard());
+
+ if (complexType->derivationMethod() == XsdComplexType::DerivationRestriction) {
+ if (complexType->wxsSuperType()->isComplexType() && complexType->wxsSuperType()->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexBaseType(complexType->wxsSuperType());
+ if (complexType->attributeWildcard()) {
+ if (complexBaseType->attributeWildcard()) {
+ if (!isValidWildcardRestriction(complexType->attributeWildcard(), complexBaseType->attributeWildcard())) {
+ m_context->error(QtXmlPatterns::tr("attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, complexBaseType)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ } else {
+ m_context->error(QtXmlPatterns::tr("%1 has attribute wildcard but its base type %2 has not")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, complexBaseType)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+ }
+ complexType->setAttributeWildcard(completeWildcard); // 2.1
+ } else if (complexType->derivationMethod() == XsdComplexType::DerivationExtension) {
+ XsdWildcard::Ptr baseWildcard; // 2.2.1
+ if (complexType->wxsSuperType()->isComplexType() && complexType->wxsSuperType()->isDefinedBySchema())
+ baseWildcard = XsdComplexType::Ptr(complexType->wxsSuperType())->attributeWildcard(); // 2.2.1.1
+ else
+ baseWildcard = XsdWildcard::Ptr(); // 2.2.1.2
+
+ if (!baseWildcard) {
+ complexType->setAttributeWildcard(completeWildcard); // 2.2.2.1
+ } else if (!completeWildcard) {
+ complexType->setAttributeWildcard(baseWildcard); // 2.2.2.2
+ } else {
+ XsdWildcard::Ptr unionWildcard = XsdSchemaHelper::wildcardUnion(completeWildcard, baseWildcard);
+ if (unionWildcard) {
+ unionWildcard->setProcessContents(completeWildcard->processContents());
+ complexType->setAttributeWildcard(unionWildcard); // 2.2.2.3
+ } else {
+ m_context->error(QtXmlPatterns::tr("union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible")
+ .arg(formatType(m_namePool, complexType))
+ .arg(formatType(m_namePool, complexBaseType)),
+ XsdSchemaContext::XSDError, sourceLocation(complexType));
+ return;
+ }
+ }
+ }
+}
+
+void XsdSchemaResolver::resolveEnumerationFacetValues()
+{
+ XsdSimpleType::List simpleTypes;
+
+ // first collect the global simple types
+ const SchemaType::List types = m_schema->types();
+ for (int i = 0; i < types.count(); ++i) {
+ if (types.at(i)->isSimpleType())
+ simpleTypes.append(types.at(i));
+ }
+
+ // then collect all anonymous simple types
+ const SchemaType::List anonymousTypes = m_schema->anonymousTypes();
+ for (int i = 0; i < anonymousTypes.count(); ++i) {
+ if (anonymousTypes.at(i)->isSimpleType())
+ simpleTypes.append(anonymousTypes.at(i));
+ }
+ // process all simple types
+ for (int i = 0; i < simpleTypes.count(); ++i) {
+ const XsdSimpleType::Ptr simpleType = simpleTypes.at(i);
+
+ // we resolve the enumeration values only for xs:QName and xs:NOTATION based types
+ if (BuiltinTypes::xsQName->wxsTypeMatches(simpleType) ||
+ BuiltinTypes::xsNOTATION->wxsTypeMatches(simpleType)) {
+ const XsdFacet::Hash facets = simpleType->facets();
+ if (facets.contains(XsdFacet::Enumeration)) {
+ AtomicValue::List newValues;
+
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const AtomicValue::List values = facet->multiValue();
+ for (int j = 0; j < values.count(); ++j) {
+ const AtomicValue::Ptr value = values.at(j);
+
+ Q_ASSERT(m_enumerationFacetValues.contains(value));
+ const NamespaceSupport support( m_enumerationFacetValues.value(value) );
+
+ const QString qualifiedName = value->as<DerivedString<TypeString> >()->stringValue();
+ if (!XPathHelper::isQName(qualifiedName)) {
+ m_context->error(QtXmlPatterns::tr("enumeration facet contains invalid content: {%1} is not a value of type %2")
+ .arg(formatData(qualifiedName))
+ .arg(formatType(m_namePool, BuiltinTypes::xsQName)),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+
+ QXmlName qNameValue;
+ bool result = support.processName(qualifiedName, NamespaceSupport::ElementName, qNameValue);
+ if (!result) {
+ m_context->error(QtXmlPatterns::tr("namespace prefix of qualified name %1 is not defined").arg(formatData(qualifiedName)),
+ XsdSchemaContext::XSDError, sourceLocation(simpleType));
+ return;
+ }
+
+ newValues.append(QNameValue::fromValue(m_namePool, qNameValue));
+ }
+ facet->setMultiValue(newValues);
+ }
+ }
+ }
+}
+
+QSourceLocation XsdSchemaResolver::sourceLocation(const NamedSchemaComponent::Ptr component) const
+{
+ if (m_componentLocationHash.contains(component)) {
+ return m_componentLocationHash.value(component);
+ } else {
+ QSourceLocation location;
+ location.setLine(1);
+ location.setColumn(1);
+ location.setUri(QString::fromLatin1("dummyUri"));
+
+ return location;
+ }
+}
+
+XsdFacet::Hash XsdSchemaResolver::complexTypeFacets(const XsdComplexType::Ptr &complexType) const
+{
+ for (int i = 0; i < m_complexBaseTypes.count(); ++i) {
+ if (m_complexBaseTypes.at(i).complexType == complexType)
+ return m_complexBaseTypes.at(i).facets;
+ }
+
+ return XsdFacet::Hash();
+}
+
+void XsdSchemaResolver::checkRedefinedGroups()
+{
+ for (int i = 0; i < m_redefinedGroups.count(); ++i) {
+ const RedefinedGroups item = m_redefinedGroups.at(i);
+
+ // create dummy particles...
+ const XsdParticle::Ptr redefinedParticle(new XsdParticle());
+ redefinedParticle->setTerm(item.redefinedGroup);
+ const XsdParticle::Ptr particle(new XsdParticle());
+ particle->setTerm(item.group);
+
+ // so that we can pass them to XsdParticleChecker::subsumes()
+ QString errorMsg;
+ if (!XsdParticleChecker::subsumes(particle, redefinedParticle, m_context, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("%1 element %2 is not a valid restriction of the %3 element it redefines: %4")
+ .arg(formatElement("group"))
+ .arg(formatData(item.redefinedGroup->displayName(m_namePool)))
+ .arg(formatElement("group"))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(item.redefinedGroup));
+ return;
+ }
+ }
+}
+
+void XsdSchemaResolver::checkRedefinedAttributeGroups()
+{
+ for (int i = 0; i < m_redefinedAttributeGroups.count(); ++i) {
+ const RedefinedAttributeGroups item = m_redefinedAttributeGroups.at(i);
+
+ QString errorMsg;
+ if (!XsdSchemaHelper::isValidAttributeGroupRestriction(item.redefinedGroup, item.group, m_context, errorMsg)) {
+ m_context->error(QtXmlPatterns::tr("%1 element %2 is not a valid restriction of the %3 element it redefines: %4")
+ .arg(formatElement("attributeGroup"))
+ .arg(formatData(item.redefinedGroup->displayName(m_namePool)))
+ .arg(formatElement("attributeGroup"))
+ .arg(errorMsg),
+ XsdSchemaContext::XSDError, sourceLocation(item.redefinedGroup));
+ return;
+ }
+ }
+}
+
+AnySimpleType::Ptr XsdSchemaResolver::findPrimitiveType(const AnySimpleType::Ptr &type, QSet<AnySimpleType::Ptr> &visitedTypes)
+{
+ if (visitedTypes.contains(type)) {
+ // found invalid circular reference...
+ return AnySimpleType::Ptr();
+ } else {
+ visitedTypes.insert(type);
+ }
+
+ const QXmlName typeName = type->name(m_namePool);
+ if (typeName == BuiltinTypes::xsString->name(m_namePool) ||
+ typeName == BuiltinTypes::xsBoolean->name(m_namePool) ||
+ typeName == BuiltinTypes::xsFloat->name(m_namePool) ||
+ typeName == BuiltinTypes::xsDouble->name(m_namePool) ||
+ typeName == BuiltinTypes::xsDecimal->name(m_namePool) ||
+ typeName == BuiltinTypes::xsDuration->name(m_namePool) ||
+ typeName == BuiltinTypes::xsDateTime->name(m_namePool) ||
+ typeName == BuiltinTypes::xsTime->name(m_namePool) ||
+ typeName == BuiltinTypes::xsDate->name(m_namePool) ||
+ typeName == BuiltinTypes::xsGYearMonth->name(m_namePool) ||
+ typeName == BuiltinTypes::xsGYear->name(m_namePool) ||
+ typeName == BuiltinTypes::xsGMonthDay->name(m_namePool) ||
+ typeName == BuiltinTypes::xsGDay->name(m_namePool) ||
+ typeName == BuiltinTypes::xsGMonth->name(m_namePool) ||
+ typeName == BuiltinTypes::xsHexBinary->name(m_namePool) ||
+ typeName == BuiltinTypes::xsBase64Binary->name(m_namePool) ||
+ typeName == BuiltinTypes::xsAnyURI->name(m_namePool) ||
+ typeName == BuiltinTypes::xsQName->name(m_namePool) ||
+ typeName == BuiltinTypes::xsNOTATION->name(m_namePool) ||
+ typeName == BuiltinTypes::xsAnySimpleType->name(m_namePool))
+ return type;
+ else {
+ if (type->wxsSuperType())
+ return findPrimitiveType(type->wxsSuperType(), visitedTypes);
+ else {
+ return AnySimpleType::Ptr();
+ }
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschemaresolver_p.h b/src/xmlpatterns/schema/qxsdschemaresolver_p.h
new file mode 100644
index 0000000..79d2a2d
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschemaresolver_p.h
@@ -0,0 +1,578 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaResolver_H
+#define Patternist_XsdSchemaResolver_H
+
+#include "qnamespacesupport_p.h"
+#include "qschematype_p.h"
+#include "qschematypefactory_p.h"
+#include "qxsdalternative_p.h"
+#include "qxsdattribute_p.h"
+#include "qxsdattributegroup_p.h"
+#include "qxsdelement_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdnotation_p.h"
+#include "qxsdreference_p.h"
+#include "qxsdschema_p.h"
+#include "qxsdschemachecker_p.h"
+#include "qxsdsimpletype_p.h"
+
+#include <QtCore/QExplicitlySharedDataPointer>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ class XsdSchemaContext;
+ class XsdSchemaParserContext;
+
+ /**
+ * @short Encapsulates the resolving of type/element references in a schema after parsing has finished.
+ *
+ * This class collects task for resolving types or element references. After the parsing has finished,
+ * one can start the resolve process by calling resolve().
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaResolver : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdSchemaResolver> Ptr;
+
+ /**
+ * Creates a new schema resolver.
+ *
+ * @param context The schema context used for error reporting etc..
+ * @param parserContext The schema parser context where all objects to resolve belong to.
+ */
+ XsdSchemaResolver(const QExplicitlySharedDataPointer<XsdSchemaContext> &context, const XsdSchemaParserContext *parserContext);
+
+ /**
+ * Destroys the schema resolver.
+ */
+ ~XsdSchemaResolver();
+
+ /**
+ * Starts the resolve process.
+ */
+ void resolve();
+
+ /**
+ * Adds a resolve task for key references.
+ *
+ * The resolver will try to set the referencedKey property of @p keyRef to the <em>key</em> or <em>unique</em> object
+ * of @p element that has the given @p name.
+ */
+ void addKeyReference(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &keyRef, const QXmlName &name, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the base type of restriction of a simple type.
+ *
+ * The resolver will set the base type of @p simpleType to the type named by @p baseName.
+ */
+ void addSimpleRestrictionBase(const XsdSimpleType::Ptr &simpleType, const QXmlName &baseName, const QSourceLocation &location);
+
+ /**
+ * Removes the resolve task for the base type of restriction of the simple @p type.
+ */
+ void removeSimpleRestrictionBase(const XsdSimpleType::Ptr &type);
+
+ /**
+ * Adds a resolve task for the list type of a simple type.
+ *
+ * The resolver will set the itemType property of @p simpleType to the type named by @p typeName.
+ */
+ void addSimpleListType(const XsdSimpleType::Ptr &simpleType, const QXmlName &typeName, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the member types of a simple type.
+ *
+ * The resolver will set the memberTypes property of @p simpleType to the types named by @p typeNames.
+ */
+ void addSimpleUnionTypes(const XsdSimpleType::Ptr &simpleType, const QList<QXmlName> &typeNames, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the type of an element.
+ *
+ * The resolver will set the type of the @p element to the type named by @p typeName.
+ */
+ void addElementType(const XsdElement::Ptr &element, const QXmlName &typeName, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the base type of a complex type.
+ *
+ * The resolver will set the base type of @p complexType to the type named by @p baseName.
+ */
+ void addComplexBaseType(const XsdComplexType::Ptr &complexType, const QXmlName &baseName, const QSourceLocation &location, const XsdFacet::Hash &facets = XsdFacet::Hash());
+
+ /**
+ * Removes the resolve task for the base type of the complex @p type.
+ */
+ void removeComplexBaseType(const XsdComplexType::Ptr &type);
+
+ /**
+ * Adds a resolve task for the content type of a complex type.
+ *
+ * The resolver will set the content type properties for @p complexType based on the
+ * given explicit @p content and effective @p mixed value.
+ */
+ void addComplexContentType(const XsdComplexType::Ptr &complexType, const XsdParticle::Ptr &content, bool mixed);
+
+ /**
+ * Adds a resolve task for the type of an attribute.
+ *
+ * The resolver will set the type of the @p attribute to the type named by @p typeName.
+ */
+ void addAttributeType(const XsdAttribute::Ptr &attribute, const QXmlName &typeName, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the type of an alternative.
+ *
+ * The resolver will set the type of the @p alternative to the type named by @p typeName.
+ */
+ void addAlternativeType(const XsdAlternative::Ptr &alternative, const QXmlName &typeName, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for the type of an alternative.
+ *
+ * The resolver will set the type of the @p alternative to the type of the @p element after
+ * the type of the @p element has been resolved.
+ */
+ void addAlternativeType(const XsdAlternative::Ptr &alternative, const XsdElement::Ptr &element);
+
+ /**
+ * Adds a resolve task for the substituion group affiliations of an element.
+ *
+ * The resolver will set the substitution group affiliations of the @p element to the
+ * top-level element named by @p elementNames.
+ */
+ void addSubstitutionGroupAffiliation(const XsdElement::Ptr &element, const QList<QXmlName> &elementName, const QSourceLocation &location);
+
+ /**
+ * Adds a resolve task for an element that has no type specified, only a substitution group
+ * affiliation.
+ *
+ * The resolver will set the type of the substitution group affiliation as type for the element.
+ */
+ void addSubstitutionGroupType(const XsdElement::Ptr &element);
+
+ /**
+ * Adds the component location hash, so the resolver is able to report meaning full
+ * error messages.
+ */
+ void addComponentLocationHash(const QHash<NamedSchemaComponent::Ptr, QSourceLocation> &hash);
+
+ /**
+ * Add a resolve task for enumeration facet values.
+ *
+ * In case the enumeration is of type QName or NOTATION, we have to resolve the QName later,
+ * so we store the namespace bindings together with the facet value here and resolve it as soon as
+ * we have all type information available.
+ */
+ void addEnumerationFacetValue(const AtomicValue::Ptr &facetValue, const NamespaceSupport &namespaceSupport);
+
+ /**
+ * Add a check job for redefined groups.
+ *
+ * When an element group is redefined, we have to check whether the redefined group is a valid
+ * restriction of the group it redefines. As we need all type information for that, we keep them
+ * here for later checking.
+ */
+ void addRedefinedGroups(const XsdModelGroup::Ptr &redefinedGroup, const XsdModelGroup::Ptr &group);
+
+ /**
+ * Add a check job for redefined attribute groups.
+ *
+ * When an attribute group is redefined, we have to check whether the redefined group is a valid
+ * restriction of the group it redefines. As we need all type information for that, we keep them
+ * here for later checking.
+ */
+ void addRedefinedAttributeGroups(const XsdAttributeGroup::Ptr &redefinedGroup, const XsdAttributeGroup::Ptr &group);
+
+ /**
+ * Adds a check for nested <em>all</em> groups.
+ */
+ void addAllGroupCheck(const XsdReference::Ptr &reference);
+
+ /**
+ * Copies the data to resolve to an @p other resolver.
+ *
+ * @note That functionality is only used by the redefine algorithm in the XsdSchemaParser.
+ */
+ void copyDataTo(const XsdSchemaResolver::Ptr &other) const;
+
+ /**
+ * Returns the to resolve base type name for the given @p type.
+ *
+ * @note That functionality is only used by the redefine algorithm in the XsdSchemaParser.
+ */
+ QXmlName baseTypeNameOfType(const SchemaType::Ptr &type) const;
+
+ /**
+ * Returns the to resolve type name for the given @p attribute.
+ *
+ * @note That functionality is only used by the redefine algorithm in the XsdSchemaParser.
+ */
+ QXmlName typeNameOfAttribute(const XsdAttribute::Ptr &attribute) const;
+
+ /**
+ * Sets the defaultOpenContent object from the schema parser.
+ */
+ void setDefaultOpenContent(const XsdComplexType::OpenContent::Ptr &openContent, bool appliesToEmpty);
+
+ private:
+ /**
+ * Resolves key references.
+ */
+ void resolveKeyReferences();
+
+ /**
+ * Resolves the base types of simple types derived by restriction.
+ */
+ void resolveSimpleRestrictionBaseTypes();
+
+ /**
+ * Resolves the other properties except the base type
+ * of all simple restrictions.
+ */
+ void resolveSimpleRestrictions();
+
+ /**
+ * Resolves the other properties except the base type
+ * of the given simple restriction.
+ *
+ * @param simpleType The restricted type to resolve.
+ * @param visitedTypes A set of already resolved types, used for termination of recursion.
+ */
+ void resolveSimpleRestrictions(const XsdSimpleType::Ptr &simpleType, QSet<XsdSimpleType::Ptr> &visitedTypes);
+
+ /**
+ * Resolves the item type property of simple types derived by list.
+ */
+ void resolveSimpleListType();
+
+ /**
+ * Resolves the member types property of simple types derived by union.
+ */
+ void resolveSimpleUnionTypes();
+
+ /**
+ * Resolves element types.
+ */
+ void resolveElementTypes();
+
+ /**
+ * Resolves base type of complex types.
+ */
+ void resolveComplexBaseTypes();
+
+ /**
+ * Resolves the simple content model of a complex type
+ * depending on its base type.
+ */
+ void resolveSimpleContentComplexTypes();
+
+ /**
+ * Resolves the complex content model of a complex type
+ * depending on its base type.
+ */
+ void resolveComplexContentComplexTypes();
+
+ /**
+ * Resolves the simple content model of a complex type
+ * depending on its base type.
+ *
+ * @param complexType The complex type to resolve.
+ * @param visitedTypes A set of already resolved types, used for termination of recursion.
+ */
+ void resolveSimpleContentComplexTypes(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes);
+
+ /**
+ * Resolves the complex content model of a complex type
+ * depending on its base type.
+ *
+ * @param complexType The complex type to resolve.
+ * @param visitedTypes A set of already resolved types, used for termination of recursion.
+ */
+ void resolveComplexContentComplexTypes(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes);
+
+ /**
+ * Resolves attribute types.
+ */
+ void resolveAttributeTypes();
+
+ /**
+ * Resolves alternative types.
+ */
+ void resolveAlternativeTypes();
+
+ /**
+ * Resolves substitution group affiliations.
+ */
+ void resolveSubstitutionGroupAffiliations();
+
+ /**
+ * Resolves substitution groups.
+ */
+ void resolveSubstitutionGroups();
+
+ /**
+ * Resolves all XsdReferences in the schema by their corresponding XsdElement or XsdModelGroup terms.
+ */
+ void resolveTermReferences();
+
+ /**
+ * Resolves all XsdReferences in the @p particle recursive by their corresponding XsdElement or XsdModelGroup terms.
+ */
+ void resolveTermReference(const XsdParticle::Ptr &particle, QSet<QXmlName> visitedGroups);
+
+ /**
+ * Resolves all XsdAttributeReferences in the schema by their corresponding XsdAttributeUse objects.
+ */
+ void resolveAttributeTermReferences();
+
+ /**
+ * Resolves all XsdAttributeReferences in the list of @p attributeUses by their corresponding XsdAttributeUse objects.
+ */
+ XsdAttributeUse::List resolveAttributeTermReferences(const XsdAttributeUse::List &attributeUses, XsdWildcard::Ptr &wildcard, QSet<QXmlName> visitedAttributeGroups);
+
+ /**
+ * Resolves the attribute inheritance of complex types.
+ *
+ * @note This method must be called after all base types have been resolved.
+ */
+ void resolveAttributeInheritance();
+
+ /**
+ * Resolves the attribute inheritance of the given complex types.
+ *
+ * @param complexType The complex type to resolve.
+ * @param visitedTypes A set of already resolved types, used for termination of recursion.
+ *
+ * @note This method must be called after all base types have been resolved.
+ */
+ void resolveAttributeInheritance(const XsdComplexType::Ptr &complexType, QSet<XsdComplexType::Ptr> &visitedTypes);
+
+ /**
+ * Resolves the enumeration facet values for QName and NOTATION based facets.
+ */
+ void resolveEnumerationFacetValues();
+
+ /**
+ * Returns the source location of the given schema @p component or a dummy
+ * source location if the component is not found in the component location hash.
+ */
+ QSourceLocation sourceLocation(const NamedSchemaComponent::Ptr component) const;
+
+ /**
+ * Returns the facets that are marked for the given complex @p type with a simple
+ * type restriction.
+ */
+ XsdFacet::Hash complexTypeFacets(const XsdComplexType::Ptr &complexType) const;
+
+ /**
+ * Finds the primitive type for the given simple @p type.
+ *
+ * The type is found by walking up the inheritance tree, until one of the builtin
+ * primitive type definitions is reached.
+ */
+ AnySimpleType::Ptr findPrimitiveType(const AnySimpleType::Ptr &type, QSet<AnySimpleType::Ptr> &visitedTypes);
+
+ /**
+ * Checks the redefined groups.
+ */
+ void checkRedefinedGroups();
+
+ /**
+ * Checks the redefined attribute groups.
+ */
+ void checkRedefinedAttributeGroups();
+
+ class KeyReference
+ {
+ public:
+ XsdElement::Ptr element;
+ XsdIdentityConstraint::Ptr keyRef;
+ QXmlName reference;
+ QSourceLocation location;
+ };
+
+ class SimpleRestrictionBase
+ {
+ public:
+ XsdSimpleType::Ptr simpleType;
+ QXmlName baseName;
+ QSourceLocation location;
+ };
+
+ class SimpleListType
+ {
+ public:
+ XsdSimpleType::Ptr simpleType;
+ QXmlName typeName;
+ QSourceLocation location;
+ };
+
+ class SimpleUnionType
+ {
+ public:
+ XsdSimpleType::Ptr simpleType;
+ QList<QXmlName> typeNames;
+ QSourceLocation location;
+ };
+
+ class ElementType
+ {
+ public:
+ XsdElement::Ptr element;
+ QXmlName typeName;
+ QSourceLocation location;
+ };
+
+ class ComplexBaseType
+ {
+ public:
+ XsdComplexType::Ptr complexType;
+ QXmlName baseName;
+ QSourceLocation location;
+ XsdFacet::Hash facets;
+ };
+
+ class ComplexContentType
+ {
+ public:
+ XsdComplexType::Ptr complexType;
+ XsdParticle::Ptr explicitContent;
+ bool effectiveMixed;
+ };
+
+ class AttributeType
+ {
+ public:
+ XsdAttribute::Ptr attribute;
+ QXmlName typeName;
+ QSourceLocation location;
+ };
+
+ class AlternativeType
+ {
+ public:
+ XsdAlternative::Ptr alternative;
+ QXmlName typeName;
+ QSourceLocation location;
+ };
+
+ class AlternativeTypeElement
+ {
+ public:
+ XsdAlternative::Ptr alternative;
+ XsdElement::Ptr element;
+ };
+
+ class SubstitutionGroupAffiliation
+ {
+ public:
+ XsdElement::Ptr element;
+ QList<QXmlName> elementNames;
+ QSourceLocation location;
+ };
+
+ class RedefinedGroups
+ {
+ public:
+ XsdModelGroup::Ptr redefinedGroup;
+ XsdModelGroup::Ptr group;
+ };
+
+ class RedefinedAttributeGroups
+ {
+ public:
+ XsdAttributeGroup::Ptr redefinedGroup;
+ XsdAttributeGroup::Ptr group;
+ };
+
+ QVector<KeyReference> m_keyReferences;
+ QVector<SimpleRestrictionBase> m_simpleRestrictionBases;
+ QVector<SimpleListType> m_simpleListTypes;
+ QVector<SimpleUnionType> m_simpleUnionTypes;
+ QVector<ElementType> m_elementTypes;
+ QVector<ComplexBaseType> m_complexBaseTypes;
+ QVector<ComplexContentType> m_complexContentTypes;
+ QVector<AttributeType> m_attributeTypes;
+ QVector<AlternativeType> m_alternativeTypes;
+ QVector<AlternativeTypeElement> m_alternativeTypeElements;
+ QVector<SubstitutionGroupAffiliation> m_substitutionGroupAffiliations;
+ QVector<XsdElement::Ptr> m_substitutionGroupTypes;
+ QVector<RedefinedGroups> m_redefinedGroups;
+ QVector<RedefinedAttributeGroups> m_redefinedAttributeGroups;
+ QHash<AtomicValue::Ptr, NamespaceSupport> m_enumerationFacetValues;
+ QSet<XsdReference::Ptr> m_allGroups;
+
+ QExplicitlySharedDataPointer<XsdSchemaContext> m_context;
+ QExplicitlySharedDataPointer<XsdSchemaChecker> m_checker;
+ NamePool::Ptr m_namePool;
+ XsdSchema::Ptr m_schema;
+ QHash<NamedSchemaComponent::Ptr, QSourceLocation> m_componentLocationHash;
+ XsdComplexType::OpenContent::Ptr m_defaultOpenContent;
+ bool m_defaultOpenContentAppliesToEmpty;
+ SchemaType::List m_predefinedSchemaTypes;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschematoken.cpp b/src/xmlpatterns/schema/qxsdschematoken.cpp
new file mode 100644
index 0000000..e383b16
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschematoken.cpp
@@ -0,0 +1,2981 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/* NOTE: This file is AUTO GENERATED by qautomaton2cpp.xsl. */
+
+#include "qxsdschematoken_p.h"
+
+QT_BEGIN_NAMESPACE
+
+XsdSchemaToken::NodeName XsdSchemaToken::classifier2(const QChar *data)
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 100
+ };
+ if(memcmp(&data[0], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Id;
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier3(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+ if (data[1] == 108)
+
+
+ {
+
+ if(data[2] == 108)
+
+
+ return All;
+
+ }
+
+ else if (data[1] == 110)
+
+
+ {
+
+ if(data[2] == 121)
+
+
+ return Any;
+
+ }
+
+
+ }
+
+ else if (data[0] == 107)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 121
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Key;
+
+ }
+
+ else if (data[0] == 114)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 102
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Ref;
+
+ }
+
+ else if (data[0] == 117)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 115, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Use;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier4(const QChar *data)
+
+ {
+ if (data[0] == 98)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 115, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 3) == 0)
+
+
+ return Base;
+
+ }
+
+ else if (data[0] == 102)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 114, 109
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 3) == 0)
+
+
+ return Form;
+
+ }
+
+ else if (data[0] == 108)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 115, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 3) == 0)
+
+
+ return List;
+
+ }
+
+ else if (data[0] == 109)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 100, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 3) == 0)
+
+
+ return Mode;
+
+ }
+
+ else if (data[0] == 110)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 109, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 3) == 0)
+
+
+ return Name;
+
+ }
+
+ else if (data[0] == 116)
+
+
+ {
+ if (data[1] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 115, 116
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Test;
+
+ }
+
+ else if (data[1] == 121)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 112, 101
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Type;
+
+ }
+
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier5(const QChar *data)
+
+ {
+ if (data[0] == 98)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 111, 99, 107
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Block;
+
+ }
+
+ else if (data[0] == 102)
+
+
+ {
+ if (data[1] == 105)
+
+
+ {
+ if (data[2] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 100
+ };
+ if(memcmp(&data[3], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Field;
+
+ }
+
+ else if (data[2] == 110)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 108
+ };
+ if(memcmp(&data[3], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Final;
+
+ }
+
+ else if (data[2] == 120)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 100
+ };
+ if(memcmp(&data[3], &string, sizeof(QChar) * 2) == 0)
+
+
+ return Fixed;
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[0] == 103)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 114, 111, 117, 112
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Group;
+
+ }
+
+ else if (data[0] == 109)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 120, 101, 100
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Mixed;
+
+ }
+
+ else if (data[0] == 114)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 102, 101, 114
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Refer;
+
+ }
+
+ else if (data[0] == 117)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Union;
+
+ }
+
+ else if (data[0] == 118)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 108, 117, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Value;
+
+ }
+
+ else if (data[0] == 120)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 112, 97, 116, 104
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Xpath;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier6(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 115, 115, 101, 114, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Assert;
+
+ }
+
+ else if (data[0] == 99)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 104, 111, 105, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Choice;
+
+ }
+
+ else if (data[0] == 105)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 109, 112, 111, 114, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Import;
+
+ }
+
+ else if (data[0] == 107)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 121, 114, 101, 102
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Keyref;
+
+ }
+
+ else if (data[0] == 108)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 110, 103, 116, 104
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Length;
+
+ }
+
+ else if (data[0] == 112)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 117, 98, 108, 105, 99
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Public;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+ if (data[1] == 99)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 104, 101, 109, 97
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Schema;
+
+ }
+
+ else if (data[1] == 111)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 117, 114, 99, 101
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Source;
+
+ }
+
+ else if (data[1] == 121)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 115, 116, 101, 109
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 4) == 0)
+
+
+ return System;
+
+ }
+
+
+ }
+
+ else if (data[0] == 117)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 105, 113, 117, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Unique;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier7(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 112, 112, 105, 110, 102, 111
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Appinfo;
+
+ }
+
+ else if (data[0] == 100)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 102, 97, 117, 108, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Default;
+
+ }
+
+ else if (data[0] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 101, 109, 101, 110, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Element;
+
+ }
+
+ else if (data[0] == 105)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 99, 108, 117, 100, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Include;
+
+ }
+
+ else if (data[0] == 112)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 116, 116, 101, 114, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Pattern;
+
+ }
+
+ else if (data[0] == 114)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 112, 108, 97, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Replace;
+
+ }
+
+ else if (data[0] == 118)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 114, 115, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Version;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier8(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 98, 115, 116, 114, 97, 99, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Abstract;
+
+ }
+
+ else if (data[0] == 99)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 108, 108, 97, 112, 115, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Collapse;
+
+ }
+
+ else if (data[0] == 105)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 116, 101, 109, 84, 121, 112, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return ItemType;
+
+ }
+
+ else if (data[0] == 110)
+
+
+ {
+ if (data[1] == 105)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 108, 97, 98, 108, 101
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 6) == 0)
+
+
+ return Nillable;
+
+ }
+
+ else if (data[1] == 111)
+
+
+ {
+ if (data[2] == 116)
+
+
+ {
+ if (data[3] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 116, 105, 111, 110
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 4) == 0)
+
+
+ return Notation;
+
+ }
+
+ else if (data[3] == 81)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 78, 97, 109, 101
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 4) == 0)
+
+
+ return NotQName;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[0] == 111)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 118, 101, 114, 114, 105, 100, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Override;
+
+ }
+
+ else if (data[0] == 112)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 114, 101, 115, 101, 114, 118, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Preserve;
+
+ }
+
+ else if (data[0] == 114)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 100, 101, 102, 105, 110, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Redefine;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+ if (data[1] == 101)
+
+
+ {
+ if (data[2] == 108)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 99, 116, 111, 114
+ };
+ if(memcmp(&data[3], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Selector;
+
+ }
+
+ else if (data[2] == 113)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 117, 101, 110, 99, 101
+ };
+ if(memcmp(&data[3], &string, sizeof(QChar) * 5) == 0)
+
+
+ return Sequence;
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[0] == 120)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 109, 108, 58, 108, 97, 110, 103
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 7) == 0)
+
+
+ return XmlLanguage;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier9(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+ if (data[1] == 115)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 115, 101, 114, 116, 105, 111, 110
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Assertion;
+
+ }
+
+ else if (data[1] == 116)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 116, 114, 105, 98, 117, 116, 101
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 7) == 0)
+
+
+ return Attribute;
+
+ }
+
+
+ }
+
+ else if (data[0] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 120, 116, 101, 110, 115, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 8) == 0)
+
+
+ return Extension;
+
+ }
+
+ else if (data[0] == 109)
+
+
+ {
+ if (data[1] == 97)
+
+
+ {
+ if (data[2] == 120)
+
+
+ {
+ if (data[3] == 76)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 110, 103, 116, 104
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 5) == 0)
+
+
+ return MaxLength;
+
+ }
+
+ else if (data[3] == 79)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 99, 99, 117, 114, 115
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 5) == 0)
+
+
+ return MaxOccurs;
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[1] == 105)
+
+
+ {
+ if (data[2] == 110)
+
+
+ {
+ if (data[3] == 76)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 110, 103, 116, 104
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 5) == 0)
+
+
+ return MinLength;
+
+ }
+
+ else if (data[3] == 79)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 99, 99, 117, 114, 115
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 5) == 0)
+
+
+ return MinOccurs;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[0] == 110)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 109, 101, 115, 112, 97, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 8) == 0)
+
+
+ return Namespace;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier10(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 110, 111, 116, 97, 116, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 9) == 0)
+
+
+ return Annotation;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 109, 112, 108, 101, 84, 121, 112, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 9) == 0)
+
+
+ return SimpleType;
+
+ }
+
+ else if (data[0] == 119)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 104, 105, 116, 101, 83, 112, 97, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 9) == 0)
+
+
+ return WhiteSpace;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier11(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 116, 101, 114, 110, 97, 116, 105, 118, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return Alternative;
+
+ }
+
+ else if (data[0] == 99)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 109, 112, 108, 101, 120, 84, 121, 112, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return ComplexType;
+
+ }
+
+ else if (data[0] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 117, 109, 101, 114, 97, 116, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return Enumeration;
+
+ }
+
+ else if (data[0] == 109)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 109, 98, 101, 114, 84, 121, 112, 101, 115
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return MemberTypes;
+
+ }
+
+ else if (data[0] == 111)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 112, 101, 110, 67, 111, 110, 116, 101, 110, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return OpenContent;
+
+ }
+
+ else if (data[0] == 114)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 115, 116, 114, 105, 99, 116, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return Restriction;
+
+ }
+
+ else if (data[0] == 116)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 116, 97, 108, 68, 105, 103, 105, 116, 115
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 10) == 0)
+
+
+ return TotalDigits;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier12(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 11) == 0)
+
+
+ return AnyAttribute;
+
+ }
+
+ else if (data[0] == 98)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 111, 99, 107, 68, 101, 102, 97, 117, 108, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 11) == 0)
+
+
+ return BlockDefault;
+
+ }
+
+ else if (data[0] == 102)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 110, 97, 108, 68, 101, 102, 97, 117, 108, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 11) == 0)
+
+
+ return FinalDefault;
+
+ }
+
+ else if (data[0] == 109)
+
+
+ {
+ if (data[1] == 97)
+
+
+ {
+ if (data[2] == 120)
+
+
+ {
+ if (data[3] == 69)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 120, 99, 108, 117, 115, 105, 118, 101
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 8) == 0)
+
+
+ return MaxExclusive;
+
+ }
+
+ else if (data[3] == 73)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 99, 108, 117, 115, 105, 118, 101
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 8) == 0)
+
+
+ return MaxInclusive;
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[1] == 105)
+
+
+ {
+ if (data[2] == 110)
+
+
+ {
+ if (data[3] == 69)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 120, 99, 108, 117, 115, 105, 118, 101
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 8) == 0)
+
+
+ return MinExclusive;
+
+ }
+
+ else if (data[3] == 73)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 110, 99, 108, 117, 115, 105, 118, 101
+ };
+ if(memcmp(&data[4], &string, sizeof(QChar) * 8) == 0)
+
+
+ return MinInclusive;
+
+ }
+
+
+ }
+
+
+ }
+
+
+ }
+
+ else if (data[0] == 110)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 11) == 0)
+
+
+ return NotNamespace;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier13(const QChar *data)
+
+ {
+ if (data[0] == 100)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 12) == 0)
+
+
+ return Documentation;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 105, 109, 112, 108, 101, 67, 111, 110, 116, 101, 110, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 12) == 0)
+
+
+ return SimpleContent;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier14(const QChar *data)
+
+ {
+ if (data[0] == 97)
+
+
+ {
+ if (data[1] == 112)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 112, 108, 105, 101, 115, 84, 111, 69, 109, 112, 116, 121
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 12) == 0)
+
+
+ return AppliesToEmpty;
+
+ }
+
+ else if (data[1] == 116)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 116, 114, 105, 98, 117, 116, 101, 71, 114, 111, 117, 112
+ };
+ if(memcmp(&data[2], &string, sizeof(QChar) * 12) == 0)
+
+
+ return AttributeGroup;
+
+ }
+
+
+ }
+
+ else if (data[0] == 99)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 111, 109, 112, 108, 101, 120, 67, 111, 110, 116, 101, 110, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 13) == 0)
+
+
+ return ComplexContent;
+
+ }
+
+ else if (data[0] == 102)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 114, 97, 99, 116, 105, 111, 110, 68, 105, 103, 105, 116, 115
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 13) == 0)
+
+
+ return FractionDigits;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 99, 104, 101, 109, 97, 76, 111, 99, 97, 116, 105, 111, 110
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 13) == 0)
+
+
+ return SchemaLocation;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier15(const QChar *data)
+
+ {
+ if (data[0] == 112)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 114, 111, 99, 101, 115, 115, 67, 111, 110, 116, 101, 110, 116, 115
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 14) == 0)
+
+
+ return ProcessContents;
+
+ }
+
+ else if (data[0] == 116)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 114, 103, 101, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 14) == 0)
+
+
+ return TargetNamespace;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier17(const QChar *data)
+
+ {
+ if (data[0] == 100)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 102, 97, 117, 108, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 16) == 0)
+
+
+ return DefaultAttributes;
+
+ }
+
+ else if (data[0] == 115)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 71, 114, 111, 117, 112
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 16) == 0)
+
+
+ return SubstitutionGroup;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier18(const QChar *data)
+
+ {
+ if (data[0] == 100)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 101, 102, 97, 117, 108, 116, 79, 112, 101, 110, 67, 111, 110, 116, 101, 110, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 17) == 0)
+
+
+ return DefaultOpenContent;
+
+ }
+
+ else if (data[0] == 101)
+
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 108, 101, 109, 101, 110, 116, 70, 111, 114, 109, 68, 101, 102, 97, 117, 108, 116
+ };
+ if(memcmp(&data[1], &string, sizeof(QChar) * 17) == 0)
+
+
+ return ElementFormDefault;
+
+ }
+
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier20(const QChar *data)
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 97, 116, 116, 114, 105, 98, 117, 116, 101, 70, 111, 114, 109, 68, 101, 102, 97, 117, 108, 116
+ };
+ if(memcmp(&data[0], &string, sizeof(QChar) * 20) == 0)
+
+
+ return AttributeFormDefault;
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier21(const QChar *data)
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 120, 112, 97, 116, 104, 68, 101, 102, 97, 117, 108, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101
+ };
+ if(memcmp(&data[0], &string, sizeof(QChar) * 21) == 0)
+
+
+ return XPathDefaultNamespace;
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier22(const QChar *data)
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 100, 101, 102, 97, 117, 108, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 65, 112, 112, 108, 121
+ };
+ if(memcmp(&data[0], &string, sizeof(QChar) * 22) == 0)
+
+
+ return DefaultAttributesApply;
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::classifier32(const QChar *data)
+
+ {
+
+ static const unsigned short string[] =
+ {
+ 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 49, 47, 88, 77, 76, 83, 99, 104, 101, 109, 97
+ };
+ if(memcmp(&data[0], &string, sizeof(QChar) * 32) == 0)
+
+
+ return XML_NS_SCHEMA_URI;
+
+
+ return NoKeyword;
+ }
+ XsdSchemaToken::NodeName XsdSchemaToken::toToken(const QChar *data, int length)
+ {
+ switch(length)
+ {
+
+ case 2:
+ return classifier2(data);
+
+
+ case 3:
+ return classifier3(data);
+
+
+ case 4:
+ return classifier4(data);
+
+
+ case 5:
+ return classifier5(data);
+
+
+ case 6:
+ return classifier6(data);
+
+
+ case 7:
+ return classifier7(data);
+
+
+ case 8:
+ return classifier8(data);
+
+
+ case 9:
+ return classifier9(data);
+
+
+ case 10:
+ return classifier10(data);
+
+
+ case 11:
+ return classifier11(data);
+
+
+ case 12:
+ return classifier12(data);
+
+
+ case 13:
+ return classifier13(data);
+
+
+ case 14:
+ return classifier14(data);
+
+
+ case 15:
+ return classifier15(data);
+
+
+ case 17:
+ return classifier17(data);
+
+
+ case 18:
+ return classifier18(data);
+
+
+ case 20:
+ return classifier20(data);
+
+
+ case 21:
+ return classifier21(data);
+
+
+ case 22:
+ return classifier22(data);
+
+
+ case 32:
+ return classifier32(data);
+
+
+ default:
+ return NoKeyword;
+ }
+ }
+
+
+ QString XsdSchemaToken::toString(NodeName token)
+ {
+ const unsigned short *data = 0;
+ int length = 0;
+
+ switch(token)
+ {
+
+ case Abstract:
+ {
+ static const unsigned short staticallyStoredAbstract[] =
+ {
+ 97, 98, 115, 116, 114, 97, 99, 116, 0
+ };
+ data = staticallyStoredAbstract;
+ length = 8;
+ break;
+ }
+
+ case All:
+ {
+ static const unsigned short staticallyStoredAll[] =
+ {
+ 97, 108, 108, 0
+ };
+ data = staticallyStoredAll;
+ length = 3;
+ break;
+ }
+
+ case Alternative:
+ {
+ static const unsigned short staticallyStoredAlternative[] =
+ {
+ 97, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 0
+ };
+ data = staticallyStoredAlternative;
+ length = 11;
+ break;
+ }
+
+ case Annotation:
+ {
+ static const unsigned short staticallyStoredAnnotation[] =
+ {
+ 97, 110, 110, 111, 116, 97, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredAnnotation;
+ length = 10;
+ break;
+ }
+
+ case Any:
+ {
+ static const unsigned short staticallyStoredAny[] =
+ {
+ 97, 110, 121, 0
+ };
+ data = staticallyStoredAny;
+ length = 3;
+ break;
+ }
+
+ case AnyAttribute:
+ {
+ static const unsigned short staticallyStoredAnyAttribute[] =
+ {
+ 97, 110, 121, 65, 116, 116, 114, 105, 98, 117, 116, 101, 0
+ };
+ data = staticallyStoredAnyAttribute;
+ length = 12;
+ break;
+ }
+
+ case Appinfo:
+ {
+ static const unsigned short staticallyStoredAppinfo[] =
+ {
+ 97, 112, 112, 105, 110, 102, 111, 0
+ };
+ data = staticallyStoredAppinfo;
+ length = 7;
+ break;
+ }
+
+ case AppliesToEmpty:
+ {
+ static const unsigned short staticallyStoredAppliesToEmpty[] =
+ {
+ 97, 112, 112, 108, 105, 101, 115, 84, 111, 69, 109, 112, 116, 121, 0
+ };
+ data = staticallyStoredAppliesToEmpty;
+ length = 14;
+ break;
+ }
+
+ case Assert:
+ {
+ static const unsigned short staticallyStoredAssert[] =
+ {
+ 97, 115, 115, 101, 114, 116, 0
+ };
+ data = staticallyStoredAssert;
+ length = 6;
+ break;
+ }
+
+ case Assertion:
+ {
+ static const unsigned short staticallyStoredAssertion[] =
+ {
+ 97, 115, 115, 101, 114, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredAssertion;
+ length = 9;
+ break;
+ }
+
+ case Attribute:
+ {
+ static const unsigned short staticallyStoredAttribute[] =
+ {
+ 97, 116, 116, 114, 105, 98, 117, 116, 101, 0
+ };
+ data = staticallyStoredAttribute;
+ length = 9;
+ break;
+ }
+
+ case AttributeFormDefault:
+ {
+ static const unsigned short staticallyStoredAttributeFormDefault[] =
+ {
+ 97, 116, 116, 114, 105, 98, 117, 116, 101, 70, 111, 114, 109, 68, 101, 102, 97, 117, 108, 116, 0
+ };
+ data = staticallyStoredAttributeFormDefault;
+ length = 20;
+ break;
+ }
+
+ case AttributeGroup:
+ {
+ static const unsigned short staticallyStoredAttributeGroup[] =
+ {
+ 97, 116, 116, 114, 105, 98, 117, 116, 101, 71, 114, 111, 117, 112, 0
+ };
+ data = staticallyStoredAttributeGroup;
+ length = 14;
+ break;
+ }
+
+ case Base:
+ {
+ static const unsigned short staticallyStoredBase[] =
+ {
+ 98, 97, 115, 101, 0
+ };
+ data = staticallyStoredBase;
+ length = 4;
+ break;
+ }
+
+ case Block:
+ {
+ static const unsigned short staticallyStoredBlock[] =
+ {
+ 98, 108, 111, 99, 107, 0
+ };
+ data = staticallyStoredBlock;
+ length = 5;
+ break;
+ }
+
+ case BlockDefault:
+ {
+ static const unsigned short staticallyStoredBlockDefault[] =
+ {
+ 98, 108, 111, 99, 107, 68, 101, 102, 97, 117, 108, 116, 0
+ };
+ data = staticallyStoredBlockDefault;
+ length = 12;
+ break;
+ }
+
+ case Choice:
+ {
+ static const unsigned short staticallyStoredChoice[] =
+ {
+ 99, 104, 111, 105, 99, 101, 0
+ };
+ data = staticallyStoredChoice;
+ length = 6;
+ break;
+ }
+
+ case Collapse:
+ {
+ static const unsigned short staticallyStoredCollapse[] =
+ {
+ 99, 111, 108, 108, 97, 112, 115, 101, 0
+ };
+ data = staticallyStoredCollapse;
+ length = 8;
+ break;
+ }
+
+ case ComplexContent:
+ {
+ static const unsigned short staticallyStoredComplexContent[] =
+ {
+ 99, 111, 109, 112, 108, 101, 120, 67, 111, 110, 116, 101, 110, 116, 0
+ };
+ data = staticallyStoredComplexContent;
+ length = 14;
+ break;
+ }
+
+ case ComplexType:
+ {
+ static const unsigned short staticallyStoredComplexType[] =
+ {
+ 99, 111, 109, 112, 108, 101, 120, 84, 121, 112, 101, 0
+ };
+ data = staticallyStoredComplexType;
+ length = 11;
+ break;
+ }
+
+ case Default:
+ {
+ static const unsigned short staticallyStoredDefault[] =
+ {
+ 100, 101, 102, 97, 117, 108, 116, 0
+ };
+ data = staticallyStoredDefault;
+ length = 7;
+ break;
+ }
+
+ case DefaultAttributes:
+ {
+ static const unsigned short staticallyStoredDefaultAttributes[] =
+ {
+ 100, 101, 102, 97, 117, 108, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 0
+ };
+ data = staticallyStoredDefaultAttributes;
+ length = 17;
+ break;
+ }
+
+ case DefaultAttributesApply:
+ {
+ static const unsigned short staticallyStoredDefaultAttributesApply[] =
+ {
+ 100, 101, 102, 97, 117, 108, 116, 65, 116, 116, 114, 105, 98, 117, 116, 101, 115, 65, 112, 112, 108, 121, 0
+ };
+ data = staticallyStoredDefaultAttributesApply;
+ length = 22;
+ break;
+ }
+
+ case DefaultOpenContent:
+ {
+ static const unsigned short staticallyStoredDefaultOpenContent[] =
+ {
+ 100, 101, 102, 97, 117, 108, 116, 79, 112, 101, 110, 67, 111, 110, 116, 101, 110, 116, 0
+ };
+ data = staticallyStoredDefaultOpenContent;
+ length = 18;
+ break;
+ }
+
+ case Documentation:
+ {
+ static const unsigned short staticallyStoredDocumentation[] =
+ {
+ 100, 111, 99, 117, 109, 101, 110, 116, 97, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredDocumentation;
+ length = 13;
+ break;
+ }
+
+ case Element:
+ {
+ static const unsigned short staticallyStoredElement[] =
+ {
+ 101, 108, 101, 109, 101, 110, 116, 0
+ };
+ data = staticallyStoredElement;
+ length = 7;
+ break;
+ }
+
+ case ElementFormDefault:
+ {
+ static const unsigned short staticallyStoredElementFormDefault[] =
+ {
+ 101, 108, 101, 109, 101, 110, 116, 70, 111, 114, 109, 68, 101, 102, 97, 117, 108, 116, 0
+ };
+ data = staticallyStoredElementFormDefault;
+ length = 18;
+ break;
+ }
+
+ case Enumeration:
+ {
+ static const unsigned short staticallyStoredEnumeration[] =
+ {
+ 101, 110, 117, 109, 101, 114, 97, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredEnumeration;
+ length = 11;
+ break;
+ }
+
+ case Extension:
+ {
+ static const unsigned short staticallyStoredExtension[] =
+ {
+ 101, 120, 116, 101, 110, 115, 105, 111, 110, 0
+ };
+ data = staticallyStoredExtension;
+ length = 9;
+ break;
+ }
+
+ case Field:
+ {
+ static const unsigned short staticallyStoredField[] =
+ {
+ 102, 105, 101, 108, 100, 0
+ };
+ data = staticallyStoredField;
+ length = 5;
+ break;
+ }
+
+ case Final:
+ {
+ static const unsigned short staticallyStoredFinal[] =
+ {
+ 102, 105, 110, 97, 108, 0
+ };
+ data = staticallyStoredFinal;
+ length = 5;
+ break;
+ }
+
+ case FinalDefault:
+ {
+ static const unsigned short staticallyStoredFinalDefault[] =
+ {
+ 102, 105, 110, 97, 108, 68, 101, 102, 97, 117, 108, 116, 0
+ };
+ data = staticallyStoredFinalDefault;
+ length = 12;
+ break;
+ }
+
+ case Fixed:
+ {
+ static const unsigned short staticallyStoredFixed[] =
+ {
+ 102, 105, 120, 101, 100, 0
+ };
+ data = staticallyStoredFixed;
+ length = 5;
+ break;
+ }
+
+ case Form:
+ {
+ static const unsigned short staticallyStoredForm[] =
+ {
+ 102, 111, 114, 109, 0
+ };
+ data = staticallyStoredForm;
+ length = 4;
+ break;
+ }
+
+ case FractionDigits:
+ {
+ static const unsigned short staticallyStoredFractionDigits[] =
+ {
+ 102, 114, 97, 99, 116, 105, 111, 110, 68, 105, 103, 105, 116, 115, 0
+ };
+ data = staticallyStoredFractionDigits;
+ length = 14;
+ break;
+ }
+
+ case Group:
+ {
+ static const unsigned short staticallyStoredGroup[] =
+ {
+ 103, 114, 111, 117, 112, 0
+ };
+ data = staticallyStoredGroup;
+ length = 5;
+ break;
+ }
+
+ case Id:
+ {
+ static const unsigned short staticallyStoredId[] =
+ {
+ 105, 100, 0
+ };
+ data = staticallyStoredId;
+ length = 2;
+ break;
+ }
+
+ case Import:
+ {
+ static const unsigned short staticallyStoredImport[] =
+ {
+ 105, 109, 112, 111, 114, 116, 0
+ };
+ data = staticallyStoredImport;
+ length = 6;
+ break;
+ }
+
+ case Include:
+ {
+ static const unsigned short staticallyStoredInclude[] =
+ {
+ 105, 110, 99, 108, 117, 100, 101, 0
+ };
+ data = staticallyStoredInclude;
+ length = 7;
+ break;
+ }
+
+ case ItemType:
+ {
+ static const unsigned short staticallyStoredItemType[] =
+ {
+ 105, 116, 101, 109, 84, 121, 112, 101, 0
+ };
+ data = staticallyStoredItemType;
+ length = 8;
+ break;
+ }
+
+ case Key:
+ {
+ static const unsigned short staticallyStoredKey[] =
+ {
+ 107, 101, 121, 0
+ };
+ data = staticallyStoredKey;
+ length = 3;
+ break;
+ }
+
+ case Keyref:
+ {
+ static const unsigned short staticallyStoredKeyref[] =
+ {
+ 107, 101, 121, 114, 101, 102, 0
+ };
+ data = staticallyStoredKeyref;
+ length = 6;
+ break;
+ }
+
+ case Length:
+ {
+ static const unsigned short staticallyStoredLength[] =
+ {
+ 108, 101, 110, 103, 116, 104, 0
+ };
+ data = staticallyStoredLength;
+ length = 6;
+ break;
+ }
+
+ case List:
+ {
+ static const unsigned short staticallyStoredList[] =
+ {
+ 108, 105, 115, 116, 0
+ };
+ data = staticallyStoredList;
+ length = 4;
+ break;
+ }
+
+ case MaxExclusive:
+ {
+ static const unsigned short staticallyStoredMaxExclusive[] =
+ {
+ 109, 97, 120, 69, 120, 99, 108, 117, 115, 105, 118, 101, 0
+ };
+ data = staticallyStoredMaxExclusive;
+ length = 12;
+ break;
+ }
+
+ case MaxInclusive:
+ {
+ static const unsigned short staticallyStoredMaxInclusive[] =
+ {
+ 109, 97, 120, 73, 110, 99, 108, 117, 115, 105, 118, 101, 0
+ };
+ data = staticallyStoredMaxInclusive;
+ length = 12;
+ break;
+ }
+
+ case MaxLength:
+ {
+ static const unsigned short staticallyStoredMaxLength[] =
+ {
+ 109, 97, 120, 76, 101, 110, 103, 116, 104, 0
+ };
+ data = staticallyStoredMaxLength;
+ length = 9;
+ break;
+ }
+
+ case MaxOccurs:
+ {
+ static const unsigned short staticallyStoredMaxOccurs[] =
+ {
+ 109, 97, 120, 79, 99, 99, 117, 114, 115, 0
+ };
+ data = staticallyStoredMaxOccurs;
+ length = 9;
+ break;
+ }
+
+ case MemberTypes:
+ {
+ static const unsigned short staticallyStoredMemberTypes[] =
+ {
+ 109, 101, 109, 98, 101, 114, 84, 121, 112, 101, 115, 0
+ };
+ data = staticallyStoredMemberTypes;
+ length = 11;
+ break;
+ }
+
+ case MinExclusive:
+ {
+ static const unsigned short staticallyStoredMinExclusive[] =
+ {
+ 109, 105, 110, 69, 120, 99, 108, 117, 115, 105, 118, 101, 0
+ };
+ data = staticallyStoredMinExclusive;
+ length = 12;
+ break;
+ }
+
+ case MinInclusive:
+ {
+ static const unsigned short staticallyStoredMinInclusive[] =
+ {
+ 109, 105, 110, 73, 110, 99, 108, 117, 115, 105, 118, 101, 0
+ };
+ data = staticallyStoredMinInclusive;
+ length = 12;
+ break;
+ }
+
+ case MinLength:
+ {
+ static const unsigned short staticallyStoredMinLength[] =
+ {
+ 109, 105, 110, 76, 101, 110, 103, 116, 104, 0
+ };
+ data = staticallyStoredMinLength;
+ length = 9;
+ break;
+ }
+
+ case MinOccurs:
+ {
+ static const unsigned short staticallyStoredMinOccurs[] =
+ {
+ 109, 105, 110, 79, 99, 99, 117, 114, 115, 0
+ };
+ data = staticallyStoredMinOccurs;
+ length = 9;
+ break;
+ }
+
+ case Mixed:
+ {
+ static const unsigned short staticallyStoredMixed[] =
+ {
+ 109, 105, 120, 101, 100, 0
+ };
+ data = staticallyStoredMixed;
+ length = 5;
+ break;
+ }
+
+ case Mode:
+ {
+ static const unsigned short staticallyStoredMode[] =
+ {
+ 109, 111, 100, 101, 0
+ };
+ data = staticallyStoredMode;
+ length = 4;
+ break;
+ }
+
+ case Name:
+ {
+ static const unsigned short staticallyStoredName[] =
+ {
+ 110, 97, 109, 101, 0
+ };
+ data = staticallyStoredName;
+ length = 4;
+ break;
+ }
+
+ case Namespace:
+ {
+ static const unsigned short staticallyStoredNamespace[] =
+ {
+ 110, 97, 109, 101, 115, 112, 97, 99, 101, 0
+ };
+ data = staticallyStoredNamespace;
+ length = 9;
+ break;
+ }
+
+ case Nillable:
+ {
+ static const unsigned short staticallyStoredNillable[] =
+ {
+ 110, 105, 108, 108, 97, 98, 108, 101, 0
+ };
+ data = staticallyStoredNillable;
+ length = 8;
+ break;
+ }
+
+ case NotNamespace:
+ {
+ static const unsigned short staticallyStoredNotNamespace[] =
+ {
+ 110, 111, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101, 0
+ };
+ data = staticallyStoredNotNamespace;
+ length = 12;
+ break;
+ }
+
+ case NotQName:
+ {
+ static const unsigned short staticallyStoredNotQName[] =
+ {
+ 110, 111, 116, 81, 78, 97, 109, 101, 0
+ };
+ data = staticallyStoredNotQName;
+ length = 8;
+ break;
+ }
+
+ case Notation:
+ {
+ static const unsigned short staticallyStoredNotation[] =
+ {
+ 110, 111, 116, 97, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredNotation;
+ length = 8;
+ break;
+ }
+
+ case OpenContent:
+ {
+ static const unsigned short staticallyStoredOpenContent[] =
+ {
+ 111, 112, 101, 110, 67, 111, 110, 116, 101, 110, 116, 0
+ };
+ data = staticallyStoredOpenContent;
+ length = 11;
+ break;
+ }
+
+ case Override:
+ {
+ static const unsigned short staticallyStoredOverride[] =
+ {
+ 111, 118, 101, 114, 114, 105, 100, 101, 0
+ };
+ data = staticallyStoredOverride;
+ length = 8;
+ break;
+ }
+
+ case Pattern:
+ {
+ static const unsigned short staticallyStoredPattern[] =
+ {
+ 112, 97, 116, 116, 101, 114, 110, 0
+ };
+ data = staticallyStoredPattern;
+ length = 7;
+ break;
+ }
+
+ case Preserve:
+ {
+ static const unsigned short staticallyStoredPreserve[] =
+ {
+ 112, 114, 101, 115, 101, 114, 118, 101, 0
+ };
+ data = staticallyStoredPreserve;
+ length = 8;
+ break;
+ }
+
+ case ProcessContents:
+ {
+ static const unsigned short staticallyStoredProcessContents[] =
+ {
+ 112, 114, 111, 99, 101, 115, 115, 67, 111, 110, 116, 101, 110, 116, 115, 0
+ };
+ data = staticallyStoredProcessContents;
+ length = 15;
+ break;
+ }
+
+ case Public:
+ {
+ static const unsigned short staticallyStoredPublic[] =
+ {
+ 112, 117, 98, 108, 105, 99, 0
+ };
+ data = staticallyStoredPublic;
+ length = 6;
+ break;
+ }
+
+ case Redefine:
+ {
+ static const unsigned short staticallyStoredRedefine[] =
+ {
+ 114, 101, 100, 101, 102, 105, 110, 101, 0
+ };
+ data = staticallyStoredRedefine;
+ length = 8;
+ break;
+ }
+
+ case Ref:
+ {
+ static const unsigned short staticallyStoredRef[] =
+ {
+ 114, 101, 102, 0
+ };
+ data = staticallyStoredRef;
+ length = 3;
+ break;
+ }
+
+ case Refer:
+ {
+ static const unsigned short staticallyStoredRefer[] =
+ {
+ 114, 101, 102, 101, 114, 0
+ };
+ data = staticallyStoredRefer;
+ length = 5;
+ break;
+ }
+
+ case Replace:
+ {
+ static const unsigned short staticallyStoredReplace[] =
+ {
+ 114, 101, 112, 108, 97, 99, 101, 0
+ };
+ data = staticallyStoredReplace;
+ length = 7;
+ break;
+ }
+
+ case Restriction:
+ {
+ static const unsigned short staticallyStoredRestriction[] =
+ {
+ 114, 101, 115, 116, 114, 105, 99, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredRestriction;
+ length = 11;
+ break;
+ }
+
+ case Schema:
+ {
+ static const unsigned short staticallyStoredSchema[] =
+ {
+ 115, 99, 104, 101, 109, 97, 0
+ };
+ data = staticallyStoredSchema;
+ length = 6;
+ break;
+ }
+
+ case SchemaLocation:
+ {
+ static const unsigned short staticallyStoredSchemaLocation[] =
+ {
+ 115, 99, 104, 101, 109, 97, 76, 111, 99, 97, 116, 105, 111, 110, 0
+ };
+ data = staticallyStoredSchemaLocation;
+ length = 14;
+ break;
+ }
+
+ case Selector:
+ {
+ static const unsigned short staticallyStoredSelector[] =
+ {
+ 115, 101, 108, 101, 99, 116, 111, 114, 0
+ };
+ data = staticallyStoredSelector;
+ length = 8;
+ break;
+ }
+
+ case Sequence:
+ {
+ static const unsigned short staticallyStoredSequence[] =
+ {
+ 115, 101, 113, 117, 101, 110, 99, 101, 0
+ };
+ data = staticallyStoredSequence;
+ length = 8;
+ break;
+ }
+
+ case SimpleContent:
+ {
+ static const unsigned short staticallyStoredSimpleContent[] =
+ {
+ 115, 105, 109, 112, 108, 101, 67, 111, 110, 116, 101, 110, 116, 0
+ };
+ data = staticallyStoredSimpleContent;
+ length = 13;
+ break;
+ }
+
+ case SimpleType:
+ {
+ static const unsigned short staticallyStoredSimpleType[] =
+ {
+ 115, 105, 109, 112, 108, 101, 84, 121, 112, 101, 0
+ };
+ data = staticallyStoredSimpleType;
+ length = 10;
+ break;
+ }
+
+ case Source:
+ {
+ static const unsigned short staticallyStoredSource[] =
+ {
+ 115, 111, 117, 114, 99, 101, 0
+ };
+ data = staticallyStoredSource;
+ length = 6;
+ break;
+ }
+
+ case SubstitutionGroup:
+ {
+ static const unsigned short staticallyStoredSubstitutionGroup[] =
+ {
+ 115, 117, 98, 115, 116, 105, 116, 117, 116, 105, 111, 110, 71, 114, 111, 117, 112, 0
+ };
+ data = staticallyStoredSubstitutionGroup;
+ length = 17;
+ break;
+ }
+
+ case System:
+ {
+ static const unsigned short staticallyStoredSystem[] =
+ {
+ 115, 121, 115, 116, 101, 109, 0
+ };
+ data = staticallyStoredSystem;
+ length = 6;
+ break;
+ }
+
+ case TargetNamespace:
+ {
+ static const unsigned short staticallyStoredTargetNamespace[] =
+ {
+ 116, 97, 114, 103, 101, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101, 0
+ };
+ data = staticallyStoredTargetNamespace;
+ length = 15;
+ break;
+ }
+
+ case Test:
+ {
+ static const unsigned short staticallyStoredTest[] =
+ {
+ 116, 101, 115, 116, 0
+ };
+ data = staticallyStoredTest;
+ length = 4;
+ break;
+ }
+
+ case TotalDigits:
+ {
+ static const unsigned short staticallyStoredTotalDigits[] =
+ {
+ 116, 111, 116, 97, 108, 68, 105, 103, 105, 116, 115, 0
+ };
+ data = staticallyStoredTotalDigits;
+ length = 11;
+ break;
+ }
+
+ case Type:
+ {
+ static const unsigned short staticallyStoredType[] =
+ {
+ 116, 121, 112, 101, 0
+ };
+ data = staticallyStoredType;
+ length = 4;
+ break;
+ }
+
+ case Union:
+ {
+ static const unsigned short staticallyStoredUnion[] =
+ {
+ 117, 110, 105, 111, 110, 0
+ };
+ data = staticallyStoredUnion;
+ length = 5;
+ break;
+ }
+
+ case Unique:
+ {
+ static const unsigned short staticallyStoredUnique[] =
+ {
+ 117, 110, 105, 113, 117, 101, 0
+ };
+ data = staticallyStoredUnique;
+ length = 6;
+ break;
+ }
+
+ case Use:
+ {
+ static const unsigned short staticallyStoredUse[] =
+ {
+ 117, 115, 101, 0
+ };
+ data = staticallyStoredUse;
+ length = 3;
+ break;
+ }
+
+ case Value:
+ {
+ static const unsigned short staticallyStoredValue[] =
+ {
+ 118, 97, 108, 117, 101, 0
+ };
+ data = staticallyStoredValue;
+ length = 5;
+ break;
+ }
+
+ case Version:
+ {
+ static const unsigned short staticallyStoredVersion[] =
+ {
+ 118, 101, 114, 115, 105, 111, 110, 0
+ };
+ data = staticallyStoredVersion;
+ length = 7;
+ break;
+ }
+
+ case WhiteSpace:
+ {
+ static const unsigned short staticallyStoredWhiteSpace[] =
+ {
+ 119, 104, 105, 116, 101, 83, 112, 97, 99, 101, 0
+ };
+ data = staticallyStoredWhiteSpace;
+ length = 10;
+ break;
+ }
+
+ case XML_NS_SCHEMA_URI:
+ {
+ static const unsigned short staticallyStoredXML_NS_SCHEMA_URI[] =
+ {
+ 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 49, 47, 88, 77, 76, 83, 99, 104, 101, 109, 97, 0
+ };
+ data = staticallyStoredXML_NS_SCHEMA_URI;
+ length = 32;
+ break;
+ }
+
+ case XPathDefaultNamespace:
+ {
+ static const unsigned short staticallyStoredXPathDefaultNamespace[] =
+ {
+ 120, 112, 97, 116, 104, 68, 101, 102, 97, 117, 108, 116, 78, 97, 109, 101, 115, 112, 97, 99, 101, 0
+ };
+ data = staticallyStoredXPathDefaultNamespace;
+ length = 21;
+ break;
+ }
+
+ case XmlLanguage:
+ {
+ static const unsigned short staticallyStoredXmlLanguage[] =
+ {
+ 120, 109, 108, 58, 108, 97, 110, 103, 0
+ };
+ data = staticallyStoredXmlLanguage;
+ length = 8;
+ break;
+ }
+
+ case Xpath:
+ {
+ static const unsigned short staticallyStoredXpath[] =
+ {
+ 120, 112, 97, 116, 104, 0
+ };
+ data = staticallyStoredXpath;
+ length = 5;
+ break;
+ }
+
+ default:
+ /* It's either the default token, or an undefined enum
+ * value. We silence a compiler warning, and return the
+ * empty string. */
+ ;
+ }
+
+ union
+ {
+ const unsigned short *data;
+ const QChar *asQChar;
+ } converter;
+ converter.data = data;
+
+ return QString::fromRawData(converter.asQChar, length);
+ }
+
+QT_END_NAMESPACE
+
diff --git a/src/xmlpatterns/schema/qxsdschematoken_p.h b/src/xmlpatterns/schema/qxsdschematoken_p.h
new file mode 100644
index 0000000..58d1f4d
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschematoken_p.h
@@ -0,0 +1,198 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/* NOTE: This file is AUTO GENERATED by qautomaton2cpp.xsl. */
+
+#ifndef QPatternist_XsdSchemaToken_h
+#define QPatternist_XsdSchemaToken_h
+
+#include <QtCore/QString>
+
+QT_BEGIN_NAMESPACE
+
+class XsdSchemaToken
+ {
+ public:
+ enum NodeName
+
+ {
+ NoKeyword,
+Abstract,
+All,
+Alternative,
+Annotation,
+Any,
+AnyAttribute,
+Appinfo,
+AppliesToEmpty,
+Assert,
+Assertion,
+Attribute,
+AttributeFormDefault,
+AttributeGroup,
+Base,
+Block,
+BlockDefault,
+Choice,
+Collapse,
+ComplexContent,
+ComplexType,
+Default,
+DefaultAttributes,
+DefaultAttributesApply,
+DefaultOpenContent,
+Documentation,
+Element,
+ElementFormDefault,
+Enumeration,
+Extension,
+Field,
+Final,
+FinalDefault,
+Fixed,
+Form,
+FractionDigits,
+Group,
+Id,
+Import,
+Include,
+ItemType,
+Key,
+Keyref,
+Length,
+List,
+MaxExclusive,
+MaxInclusive,
+MaxLength,
+MaxOccurs,
+MemberTypes,
+MinExclusive,
+MinInclusive,
+MinLength,
+MinOccurs,
+Mixed,
+Mode,
+Name,
+Namespace,
+Nillable,
+NotNamespace,
+NotQName,
+Notation,
+OpenContent,
+Override,
+Pattern,
+Preserve,
+ProcessContents,
+Public,
+Redefine,
+Ref,
+Refer,
+Replace,
+Restriction,
+Schema,
+SchemaLocation,
+Selector,
+Sequence,
+SimpleContent,
+SimpleType,
+Source,
+SubstitutionGroup,
+System,
+TargetNamespace,
+Test,
+TotalDigits,
+Type,
+Union,
+Unique,
+Use,
+Value,
+Version,
+WhiteSpace,
+XML_NS_SCHEMA_URI,
+XPathDefaultNamespace,
+XmlLanguage,
+Xpath
+ };
+
+ static inline NodeName toToken(const QString &value);
+static inline NodeName toToken(const QStringRef &value);
+static NodeName toToken(const QChar *data, int length);
+static QString toString(NodeName token);
+
+
+ private:
+ static inline NodeName classifier2(const QChar *data);
+static inline NodeName classifier3(const QChar *data);
+static inline NodeName classifier4(const QChar *data);
+static inline NodeName classifier5(const QChar *data);
+static inline NodeName classifier6(const QChar *data);
+static inline NodeName classifier7(const QChar *data);
+static inline NodeName classifier8(const QChar *data);
+static inline NodeName classifier9(const QChar *data);
+static inline NodeName classifier10(const QChar *data);
+static inline NodeName classifier11(const QChar *data);
+static inline NodeName classifier12(const QChar *data);
+static inline NodeName classifier13(const QChar *data);
+static inline NodeName classifier14(const QChar *data);
+static inline NodeName classifier15(const QChar *data);
+static inline NodeName classifier17(const QChar *data);
+static inline NodeName classifier18(const QChar *data);
+static inline NodeName classifier20(const QChar *data);
+static inline NodeName classifier21(const QChar *data);
+static inline NodeName classifier22(const QChar *data);
+static inline NodeName classifier32(const QChar *data);
+
+ };
+
+ inline XsdSchemaToken::NodeName XsdSchemaToken::toToken(const QString &value)
+ {
+ return toToken(value.constData(), value.length());
+ }
+
+ inline XsdSchemaToken::NodeName XsdSchemaToken::toToken(const QStringRef &value)
+ {
+ return toToken(value.constData(), value.length());
+ }
+
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdschematypesfactory.cpp b/src/xmlpatterns/schema/qxsdschematypesfactory.cpp
new file mode 100644
index 0000000..b8f92a6
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschematypesfactory.cpp
@@ -0,0 +1,126 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdschematypesfactory_p.h"
+
+#include "qbasictypesfactory_p.h"
+#include "qbuiltintypes_p.h"
+#include "qderivedinteger_p.h"
+#include "qderivedstring_p.h"
+#include "qcommonnamespaces_p.h"
+#include "qxsdschematoken_p.h"
+#include "qxsdsimpletype_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaTypesFactory::XsdSchemaTypesFactory(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+{
+ m_types.reserve(3);
+
+ const XsdFacet::Ptr whiteSpaceFacet(new XsdFacet());
+ whiteSpaceFacet->setType(XsdFacet::WhiteSpace);
+ whiteSpaceFacet->setFixed(true);
+ whiteSpaceFacet->setValue(DerivedString<TypeString>::fromLexical(m_namePool, XsdSchemaToken::toString(XsdSchemaToken::Collapse)));
+
+ const XsdFacet::Ptr minLengthFacet(new XsdFacet());
+ minLengthFacet->setType(XsdFacet::MinimumLength);
+ minLengthFacet->setValue(DerivedInteger<TypeNonNegativeInteger>::fromLexical(namePool, QLatin1String("1")));
+
+ XsdFacet::Hash facets;
+ facets.insert(whiteSpaceFacet->type(), whiteSpaceFacet);
+ facets.insert(minLengthFacet->type(), minLengthFacet);
+
+ {
+ const QXmlName typeName = m_namePool->allocateQName(CommonNamespaces::WXS, QLatin1String("NMTOKENS"));
+ const XsdSimpleType::Ptr type(new XsdSimpleType());
+ type->setName(typeName);
+ type->setWxsSuperType(BuiltinTypes::xsAnySimpleType);
+ type->setCategory(XsdSimpleType::SimpleTypeList);
+ type->setItemType(BuiltinTypes::xsNMTOKEN);
+ type->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+ type->setFacets(facets);
+ m_types.insert(typeName, type);
+ }
+ {
+ const QXmlName typeName = m_namePool->allocateQName(CommonNamespaces::WXS, QLatin1String("IDREFS"));
+ const XsdSimpleType::Ptr type(new XsdSimpleType());
+ type->setName(typeName);
+ type->setWxsSuperType(BuiltinTypes::xsAnySimpleType);
+ type->setCategory(XsdSimpleType::SimpleTypeList);
+ type->setItemType(BuiltinTypes::xsIDREF);
+ type->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+ type->setFacets(facets);
+ m_types.insert(typeName, type);
+ }
+ {
+ const QXmlName typeName = m_namePool->allocateQName(CommonNamespaces::WXS, QLatin1String("ENTITIES"));
+ const XsdSimpleType::Ptr type(new XsdSimpleType());
+ type->setName(typeName);
+ type->setWxsSuperType(BuiltinTypes::xsAnySimpleType);
+ type->setCategory(XsdSimpleType::SimpleTypeList);
+ type->setItemType(BuiltinTypes::xsENTITY);
+ type->setDerivationMethod(XsdSimpleType::DerivationRestriction);
+ type->setFacets(facets);
+ m_types.insert(typeName, type);
+ }
+}
+
+SchemaType::Ptr XsdSchemaTypesFactory::createSchemaType(const QXmlName name) const
+{
+ if (m_types.contains(name)) {
+ return m_types.value(name);
+ } else {
+ if (!m_basicTypesFactory)
+ m_basicTypesFactory = BasicTypesFactory::self(m_namePool);
+
+ return m_basicTypesFactory->createSchemaType(name);
+ }
+}
+
+SchemaType::Hash XsdSchemaTypesFactory::types() const
+{
+ return m_types;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdschematypesfactory_p.h b/src/xmlpatterns/schema/qxsdschematypesfactory_p.h
new file mode 100644
index 0000000..874a701
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdschematypesfactory_p.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSchemaTypesFactory_H
+#define Patternist_XsdSchemaTypesFactory_H
+
+#include <QtCore/QHash>
+#include "qschematypefactory_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+
+ /**
+ * @short Factory for creating schema types for the types defined in XSD.
+ *
+ * @ingroup Patternist_types
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSchemaTypesFactory : public SchemaTypeFactory
+ {
+ public:
+ /**
+ * Creates a new schema type factory.
+ *
+ * @param namePool The name pool all type names belong to.
+ */
+ XsdSchemaTypesFactory(const NamePool::Ptr &namePool);
+
+ /**
+ * Creates a primitive type for @p name. If @p name is not supported,
+ * @c null is returned.
+ *
+ * @note This does not handle user defined types, only builtin types.
+ */
+ virtual SchemaType::Ptr createSchemaType(const QXmlName) const;
+
+ /**
+ * Returns a hash of all available types.
+ */
+ virtual SchemaType::Hash types() const;
+
+ private:
+ /**
+ * A dictonary of all predefined schema types.
+ */
+ SchemaType::Hash m_types;
+
+ NamePool::Ptr m_namePool;
+ mutable SchemaTypeFactory::Ptr m_basicTypesFactory;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdsimpletype.cpp b/src/xmlpatterns/schema/qxsdsimpletype.cpp
new file mode 100644
index 0000000..0365e5e
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdsimpletype.cpp
@@ -0,0 +1,148 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#include "qxsdsimpletype_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+QString XsdSimpleType::displayName(const NamePool::Ptr &np) const
+{
+ return np->displayName(name(np));
+}
+
+void XsdSimpleType::setWxsSuperType(const SchemaType::Ptr &type)
+{
+ m_superType = type;
+}
+
+SchemaType::Ptr XsdSimpleType::wxsSuperType() const
+{
+ return m_superType;
+}
+
+void XsdSimpleType::setContext(const NamedSchemaComponent::Ptr &component)
+{
+ m_context = component;
+}
+
+NamedSchemaComponent::Ptr XsdSimpleType::context() const
+{
+ return m_context;
+}
+
+void XsdSimpleType::setPrimitiveType(const AnySimpleType::Ptr &type)
+{
+ m_primitiveType = type;
+}
+
+AnySimpleType::Ptr XsdSimpleType::primitiveType() const
+{
+ return m_primitiveType;
+}
+
+void XsdSimpleType::setItemType(const AnySimpleType::Ptr &type)
+{
+ m_itemType = type;
+}
+
+AnySimpleType::Ptr XsdSimpleType::itemType() const
+{
+ return m_itemType;
+}
+
+void XsdSimpleType::setMemberTypes(const AnySimpleType::List &types)
+{
+ m_memberTypes = types;
+}
+
+AnySimpleType::List XsdSimpleType::memberTypes() const
+{
+ return m_memberTypes;
+}
+
+void XsdSimpleType::setFacets(const XsdFacet::Hash &facets)
+{
+ m_facets = facets;
+}
+
+XsdFacet::Hash XsdSimpleType::facets() const
+{
+ return m_facets;
+}
+
+void XsdSimpleType::setCategory(TypeCategory category)
+{
+ m_typeCategory = category;
+}
+
+XsdSimpleType::TypeCategory XsdSimpleType::category() const
+{
+ return m_typeCategory;
+}
+
+void XsdSimpleType::setDerivationMethod(DerivationMethod method)
+{
+ m_derivationMethod = method;
+}
+
+XsdSimpleType::DerivationMethod XsdSimpleType::derivationMethod() const
+{
+ return m_derivationMethod;
+}
+
+bool XsdSimpleType::isDefinedBySchema() const
+{
+ return true;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdsimpletype_p.h b/src/xmlpatterns/schema/qxsdsimpletype_p.h
new file mode 100644
index 0000000..d9f84c7
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdsimpletype_p.h
@@ -0,0 +1,219 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdSimpleType_H
+#define Patternist_XsdSimpleType_H
+
+#include "qanysimpletype_p.h"
+#include "qxsdfacet_p.h"
+#include "qxsduserschematype_p.h"
+
+#include <QtCore/QSet>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD simpleType object.
+ *
+ * This class represents the <em>simpleType</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema-2/#rf-defn">here</a>.
+ *
+ * It contains information from either a top-level simple type declaration (as child of a <em>schema</em> object)
+ * or a local simple type declaration (as descendant of an <em>element</em> or <em>complexType</em> object).
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSSimpleType">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdSimpleType : public XsdUserSchemaType<AnySimpleType>
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdSimpleType> Ptr;
+
+ /**
+ * Returns the display name of the simple type.
+ *
+ * @param namePool The name pool the type name is stored in.
+ */
+ virtual QString displayName(const NamePool::Ptr &namePool) const;
+
+ /**
+ * Sets the base @p type of the simple type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-basetype">Base Type Definition</a>
+ */
+ void setWxsSuperType(const SchemaType::Ptr &type);
+
+ /**
+ * Returns the base type of the simple type or an empty pointer if no base type is
+ * set.
+ */
+ virtual SchemaType::Ptr wxsSuperType() const;
+
+ /**
+ * Sets the context @p component of the simple type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#std-context">Context Definition</a>
+ */
+ void setContext(const NamedSchemaComponent::Ptr &component);
+
+ /**
+ * Returns the context component of the simple type.
+ */
+ NamedSchemaComponent::Ptr context() const;
+
+ /**
+ * Sets the primitive @p type of the simple type.
+ *
+ * The primitive type is only specified if the category is SimpleTypeAtomic.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-primitive">Primitive Type Definition</a>
+ */
+ void setPrimitiveType(const AnySimpleType::Ptr &type);
+
+ /**
+ * Returns the primitive type of the simple type or an empty pointer if the category is
+ * not SimpleTypeAtomic.
+ */
+ AnySimpleType::Ptr primitiveType() const;
+
+ /**
+ * Sets the list item @p type of the simple type.
+ *
+ * The list item type is only specified if the category is SimpleTypeList.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-itemType">Item Type Definition</a>
+ */
+ void setItemType(const AnySimpleType::Ptr &type);
+
+ /**
+ * Returns the list item type of the simple type or an empty pointer if the category is
+ * not SimpleTypeList.
+ */
+ AnySimpleType::Ptr itemType() const;
+
+ /**
+ * Sets the member @p types of the simple type.
+ *
+ * The member types are only specified if the category is SimpleTypeUnion.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-memberTypes">Member Types Definition</a>
+ */
+ void setMemberTypes(const AnySimpleType::List &types);
+
+ /**
+ * Returns the list member types of the simple type or an empty list if the category is
+ * not SimpleTypeUnion.
+ */
+ AnySimpleType::List memberTypes() const;
+
+ /**
+ * Sets the @p facets of the simple type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-facets">Facets Definition</a>
+ */
+ void setFacets(const XsdFacet::Hash &facets);
+
+ /**
+ * Returns the facets of the simple type.
+ */
+ XsdFacet::Hash facets() const;
+
+ /**
+ * Sets the @p category (variety) of the simple type.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema-2/#defn-variety">Variety Definition</a>
+ */
+ void setCategory(TypeCategory category);
+
+ /**
+ * Returns the category (variety) of the simple type.
+ */
+ virtual TypeCategory category() const;
+
+ /**
+ * Sets the derivation @p method of the simple type.
+ *
+ * @see DerivationMethod
+ */
+ void setDerivationMethod(DerivationMethod method);
+
+ /**
+ * Returns the derivation method of the simple type.
+ */
+ virtual DerivationMethod derivationMethod() const;
+
+ /**
+ * Always returns @c true.
+ */
+ virtual bool isDefinedBySchema() const;
+
+ private:
+ SchemaType::Ptr m_superType;
+ NamedSchemaComponent::Ptr m_context;
+ AnySimpleType::Ptr m_primitiveType;
+ AnySimpleType::Ptr m_itemType;
+ AnySimpleType::List m_memberTypes;
+ XsdFacet::Hash m_facets;
+ TypeCategory m_typeCategory;
+ DerivationMethod m_derivationMethod;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdstatemachine.cpp b/src/xmlpatterns/schema/qxsdstatemachine.cpp
new file mode 100644
index 0000000..0672e1a
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdstatemachine.cpp
@@ -0,0 +1,477 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*
+ * NOTE: This file is included by qxsdstatemachine_p.h
+ * if you need some includes, put them in qxsdstatemachine_p.h (outside of the namespace)
+ */
+
+template <typename TransitionType>
+XsdStateMachine<TransitionType>::XsdStateMachine()
+ : m_counter(50)
+{
+}
+
+template <typename TransitionType>
+XsdStateMachine<TransitionType>::XsdStateMachine(const NamePool::Ptr &namePool)
+ : m_namePool(namePool)
+ , m_counter(50)
+{
+}
+
+template <typename TransitionType>
+typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType>::addState(StateType type)
+{
+#ifndef QT_NO_DEBUG
+ // make sure we don't have two start states
+ if (type == StartState) {
+ QHashIterator<StateId, StateType> it(m_states);
+ while (it.hasNext()) {
+ it.next();
+ Q_ASSERT(it.value() != StartState && it.value() != StartEndState);
+ }
+ }
+#endif // QT_NO_DEBUG
+
+ // reserve new state id
+ const StateId id = ++m_counter;
+ m_states.insert(id, type);
+
+ // if it is a start state, we make it to our current state
+ if (type == StartState || type == StartEndState)
+ m_currentState = id;
+
+ return id;
+}
+
+template <typename TransitionType>
+void XsdStateMachine<TransitionType>::addTransition(StateId start, TransitionType transition, StateId end)
+{
+ QHash<TransitionType, QVector<StateId> > &hash = m_transitions[start];
+ QVector<StateId> &states = hash[transition];
+ if (!states.contains(end))
+ states.append(end);
+}
+
+template <typename TransitionType>
+void XsdStateMachine<TransitionType>::addEpsilonTransition(StateId start, StateId end)
+{
+ QVector<StateId> &states = m_epsilonTransitions[start];
+ states.append(end);
+}
+
+template <typename TransitionType>
+void XsdStateMachine<TransitionType>::reset()
+{
+ // reset the machine to the start state
+ QHashIterator<StateId, StateType> it(m_states);
+ while (it.hasNext()) {
+ it.next();
+ if (it.value() == StartState || it.value() == StartEndState) {
+ m_currentState = it.key();
+ return;
+ }
+ }
+
+ Q_ASSERT(false);
+}
+
+template <typename TransitionType>
+void XsdStateMachine<TransitionType>::clear()
+{
+ m_states.clear();
+ m_transitions.clear();
+ m_epsilonTransitions.clear();
+ m_currentState = -1;
+ m_counter = 50;
+}
+
+template <typename TransitionType>
+bool XsdStateMachine<TransitionType>::proceed(TransitionType transition)
+{
+ // check that we are not in an invalid state
+ if (!m_transitions.contains(m_currentState)) {
+ return false;
+ }
+
+ // fetch the transition entry for the current state
+ const QHash<TransitionType, QVector<StateId> > &entry = m_transitions[m_currentState];
+ if (entry.contains(transition)) { // is there an transition for the given input?
+ m_currentState = entry.value(transition).first();
+ m_lastTransition = transition;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+template <typename TransitionType>
+QList<TransitionType> XsdStateMachine<TransitionType>::possibleTransitions() const
+{
+ // check that we are not in an invalid state
+ if (!m_transitions.contains(m_currentState)) {
+ return QList<TransitionType>();
+ }
+
+ // fetch the transition entry for the current state
+ const QHash<TransitionType, QVector<StateId> > &entry = m_transitions[m_currentState];
+
+ return entry.keys();
+}
+
+template <typename TransitionType>
+template <typename InputType>
+bool XsdStateMachine<TransitionType>::proceed(InputType input)
+{
+ // check that we are not in an invalid state
+ if (!m_transitions.contains(m_currentState)) {
+ return false;
+ }
+
+ // fetch the transition entry for the current state
+ const QHash<TransitionType, QVector<StateId> > &entry = m_transitions[m_currentState];
+ QHashIterator<TransitionType, QVector<StateId> > it(entry);
+ while (it.hasNext()) {
+ it.next();
+ if (inputEqualsTransition(input, it.key())) {
+ m_currentState = it.value().first();
+ m_lastTransition = it.key();
+ return true;
+ }
+ }
+
+ return false;
+}
+
+template <typename TransitionType>
+template <typename InputType>
+bool XsdStateMachine<TransitionType>::inputEqualsTransition(InputType input, TransitionType transition) const
+{
+ return false;
+}
+
+template <typename TransitionType>
+bool XsdStateMachine<TransitionType>::inEndState() const
+{
+ // check if current state is an end state
+ return (m_states.value(m_currentState) == StartEndState || m_states.value(m_currentState) == EndState);
+}
+
+template <typename TransitionType>
+TransitionType XsdStateMachine<TransitionType>::lastTransition() const
+{
+ return m_lastTransition;
+}
+
+template <typename TransitionType>
+typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType>::startState() const
+{
+ QHashIterator<StateId, StateType> it(m_states);
+ while (it.hasNext()) {
+ it.next();
+ if (it.value() == StartState || it.value() == StartEndState)
+ return it.key();
+ }
+
+ Q_ASSERT(false); // should never be reached
+ return -1;
+}
+
+template <typename TransitionType>
+QString XsdStateMachine<TransitionType>::transitionTypeToString(TransitionType type) const
+{
+ Q_UNUSED(type)
+
+ return QString();
+}
+
+template <typename TransitionType>
+bool XsdStateMachine<TransitionType>::outputGraph(QIODevice *device, const QString &graphName) const
+{
+ if (!device->isOpen()) {
+ qWarning("device must be open for writing");
+ return false;
+ }
+
+ QByteArray graph;
+ QTextStream s(&graph);
+
+ QHashIterator<StateId, QHash<TransitionType, QVector<StateId> > > it(m_transitions);
+ QHashIterator<StateId, StateType> it3(m_states);
+
+ s << "digraph " << graphName << " {\n";
+ s << " mindist = 2.0\n";
+
+ // draw edges
+ while (it.hasNext()) {
+ it.next();
+
+ QHashIterator<TransitionType, QVector<StateId> > it2(it.value());
+ while (it2.hasNext()) {
+ it2.next();
+ for (int i = 0; i < it2.value().count(); ++i)
+ s << " " << it.key() << " -> " << it2.value().at(i) << " [label=\"" << transitionTypeToString(it2.key()) << "\"]\n";
+ }
+ }
+
+ QHashIterator<StateId, QVector<StateId> > it4(m_epsilonTransitions);
+ while (it4.hasNext()) {
+ it4.next();
+
+ const QVector<StateId> states = it4.value();
+ for (int i = 0; i < states.count(); ++i)
+ s << " " << it4.key() << " -> " << states.at(i) << " [label=\"&#949;\"]\n";
+ }
+
+ // draw node infos
+ while (it3.hasNext()) {
+ it3.next();
+
+ QString style;
+ if (it3.value() == StartState) {
+ style = QLatin1String("shape=circle, style=filled, color=blue");
+ } else if (it3.value() == StartEndState) {
+ style = QLatin1String("shape=doublecircle, style=filled, color=blue");
+ } else if (it3.value() == InternalState) {
+ style = QLatin1String("shape=circle, style=filled, color=red");
+ } else if (it3.value() == EndState) {
+ style = QLatin1String("shape=doublecircle, style=filled, color=green");
+ }
+
+ s << " " << it3.key() << " [" << style << "]\n";
+ }
+
+ s << "}\n";
+
+ s.flush();
+
+ if (device->write(graph) == -1)
+ return false;
+
+ return true;
+}
+
+
+template <typename TransitionType>
+typename XsdStateMachine<TransitionType>::StateId XsdStateMachine<TransitionType>::dfaStateForNfaState(QSet<StateId> nfaState,
+ QList< QPair<QSet<StateId>, StateId> > &stateTable,
+ XsdStateMachine<TransitionType> &dfa) const
+{
+ // check whether we have the given state in our lookup table
+ // already, in that case simply return it
+ for (int i = 0; i < stateTable.count(); ++i) {
+ if (stateTable.at(i).first == nfaState)
+ return stateTable.at(i).second;
+ }
+
+ // check if the NFA state set contains a Start or End
+ // state, in that case our new DFA state will be a
+ // Start or End state as well
+ StateType type = InternalState;
+ QSetIterator<StateId> it(nfaState);
+ bool hasStartState = false;
+ bool hasEndState = false;
+ while (it.hasNext()) {
+ const StateId state = it.next();
+ if (m_states.value(state) == EndState) {
+ hasEndState = true;
+ } else if (m_states.value(state) == StartState) {
+ hasStartState = true;
+ }
+ }
+ if (hasStartState) {
+ if (hasEndState)
+ type = StartEndState;
+ else
+ type = StartState;
+ } else if (hasEndState) {
+ type = EndState;
+ }
+
+ // create the new DFA state
+ const StateId dfaState = dfa.addState(type);
+
+ // add the new DFA state to the lookup table
+ stateTable.append(qMakePair<QSet<StateId>, StateId>(nfaState, dfaState));
+
+ return dfaState;
+}
+
+
+template <typename TransitionType>
+QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::epsilonClosure(const QSet<StateId> &input) const
+{
+ // every state can reach itself by epsilon transition, so include the input states
+ // in the result as well
+ QSet<StateId> result = input;
+
+ // add the input states to the list of to be processed states
+ QList<StateId> workStates = input.toList();
+ while (!workStates.isEmpty()) { // while there are states to be processed left...
+
+ // dequeue one state from list
+ const StateId state = workStates.takeFirst();
+
+ // get the list of states that can be reached by the epsilon transition
+ // from the current 'state'
+ const QVector<StateId> targetStates = m_epsilonTransitions.value(state);
+ for (int i = 0; i < targetStates.count(); ++i) {
+ // if we have this target state not in our result set yet...
+ if (!result.contains(targetStates.at(i))) {
+ // ... add it to the result set
+ result.insert(targetStates.at(i));
+
+ // add the target state to the list of to be processed states as well,
+ // as we want to have the epsilon transitions not only for the first
+ // level of following states
+ workStates.append(targetStates.at(i));
+ }
+ }
+ }
+
+ return result;
+}
+
+template <typename TransitionType>
+QSet<typename XsdStateMachine<TransitionType>::StateId> XsdStateMachine<TransitionType>::move(const QSet<StateId> &states, TransitionType input) const
+{
+ QSet<StateId> result;
+
+ QSetIterator<StateId> it(states);
+ while (it.hasNext()) { // iterate over all given states
+ const StateId state = it.next();
+
+ // get the transition table for the current state
+ const QHash<TransitionType, QVector<StateId> > transitions = m_transitions.value(state);
+
+ // get the target states for the given input
+ const QVector<StateId> targetStates = transitions.value(input);
+
+ // add all target states to the result
+ for (int i = 0; i < targetStates.size(); ++i)
+ result.insert(targetStates.at(i));
+ }
+
+ return result;
+}
+
+template <typename TransitionType>
+XsdStateMachine<TransitionType> XsdStateMachine<TransitionType>::toDFA() const
+{
+ XsdStateMachine<TransitionType> dfa(m_namePool);
+ dfa.m_counter = 100;
+ QList< QPair< QSet<StateId>, StateId> > table;
+ QList< QSet<StateId> > isMarked;
+
+ // search the start state as the algorithm starts with it...
+ StateId startState = -1;
+ QHashIterator<StateId, StateType> stateTypeIt(m_states);
+ while (stateTypeIt.hasNext()) {
+ stateTypeIt.next();
+ if (stateTypeIt.value() == StartState) {
+ startState = stateTypeIt.key();
+ break;
+ }
+ }
+ Q_ASSERT(startState != -1);
+
+ // our list of state set that still have to be processed
+ QList< QSet<StateId> > workStates;
+
+ // add the start state to the list of to processed state sets
+ workStates.append(epsilonClosure(QSet<StateId>() << startState));
+
+ while (!workStates.isEmpty()) { // as long as there are state sets to process left
+
+ // enqueue set of states
+ const QSet<StateId> states = workStates.takeFirst();
+
+ if (isMarked.contains(states)) // we processed this state set already
+ continue;
+
+ // mark as processed
+ isMarked.append(states);
+
+ // select a list of all inputs that are possible for
+ // the 'states' set
+ QList<TransitionType> input;
+
+ {
+ QSetIterator<StateId> it(states);
+ while (it.hasNext()) {
+ input << m_transitions.value(it.next()).keys();
+ }
+ }
+
+ // get the state in DFA that corresponds to the 'states' set in the NFA
+ const StateId dfaBegin = dfaStateForNfaState(states, table, dfa);
+
+ for (int i = 0; i < input.count(); ++i) { // for each possible input
+ // retrieve the states that can be reached from the 'states' set by the
+ // given input or by epsilon transition
+ const QSet<StateId> followStates = epsilonClosure(move(states, input.at(i)));
+
+ // get the state in DFA that corresponds to the 'followStates' set in the NFA
+ const StateId dfaEnd = dfaStateForNfaState(followStates, table, dfa);
+
+ // adds a new transition to the DFA that corresponds to the transitions between
+ // 'states' and 'followStates' in the NFA
+ dfa.addTransition(dfaBegin, input.at(i), dfaEnd);
+
+ // add the 'followStates' to the list of to be processed state sets
+ workStates.append(followStates);
+ }
+ }
+
+ return dfa;
+}
+
+template <typename TransitionType>
+QHash<typename XsdStateMachine<TransitionType>::StateId, typename XsdStateMachine<TransitionType>::StateType> XsdStateMachine<TransitionType>::states() const
+{
+ return m_states;
+}
+
+template <typename TransitionType>
+QHash<typename XsdStateMachine<TransitionType>::StateId, QHash<TransitionType, QVector<typename XsdStateMachine<TransitionType>::StateId> > > XsdStateMachine<TransitionType>::transitions() const
+{
+ return m_transitions;
+}
diff --git a/src/xmlpatterns/schema/qxsdstatemachine_p.h b/src/xmlpatterns/schema/qxsdstatemachine_p.h
new file mode 100644
index 0000000..81fb853
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdstatemachine_p.h
@@ -0,0 +1,245 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdStateMachine_H
+#define Patternist_XsdStateMachine_H
+
+#include "qnamepool_p.h"
+
+#include <QtCore/QHash>
+#include <QtCore/QSet>
+#include <QtCore/QTextStream>
+
+class QIODevice;
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A state machine used for evaluation.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ template <typename TransitionType>
+ class XsdStateMachine
+ {
+ public:
+ typedef qint32 StateId;
+
+ /**
+ * Describes the type of state.
+ */
+ enum StateType
+ {
+ StartState, ///< The state the machine will start with.
+ StartEndState, ///< The state the machine will start with, can be end state as well.
+ InternalState, ///< Any state that is not start or end state.
+ EndState ///< Any state where the machine is allowed to stop.
+ };
+
+ /**
+ * Creates a new state machine object.
+ */
+ XsdStateMachine();
+
+ /**
+ * Creates a new state machine object.
+ *
+ * The name pool to use for accessing object names.
+ */
+ XsdStateMachine(const NamePool::Ptr &namePool);
+
+ /**
+ * Adds a new state of the given @p type to the state machine.
+ *
+ * @return The id of the new state.
+ */
+ StateId addState(StateType type);
+
+ /**
+ * Adds a new @p transition to the state machine.
+ *
+ * @param start The start state.
+ * @param transition The transition to come from the start to the end state.
+ * @param end The end state.
+ */
+ void addTransition(StateId start, TransitionType transition, StateId end);
+
+ /**
+ * Adds a new epsilon @p transition to the state machine.
+ *
+ * @param start The start state.
+ * @param end The end state.
+ */
+ void addEpsilonTransition(StateId start, StateId end);
+
+ /**
+ * Resets the machine to the start state.
+ */
+ void reset();
+
+ /**
+ * Removes all states and transitions from the state machine.
+ */
+ void clear();
+
+ /**
+ * Continues execution of the machine with the given input @p transition.
+ *
+ * @return @c true if the transition was successfull, @c false otherwise.
+ */
+ bool proceed(TransitionType transition);
+
+ /**
+ * Returns the list of transitions that are reachable from the current
+ * state.
+ */
+ QList<TransitionType> possibleTransitions() const;
+
+ /**
+ * Continues execution of the machine with the given @p input.
+ *
+ * @note To use this method, inputEqualsTransition must be implemented
+ * to find the right transition to use.
+ *
+ * @return @c true if the transition was successfull, @c false otherwise.
+ */
+ template <typename InputType>
+ bool proceed(InputType input);
+
+ /**
+ * Returns whether the given @p input matches the given @p transition.
+ */
+ template <typename InputType>
+ bool inputEqualsTransition(InputType input, TransitionType transition) const;
+
+ /**
+ * Returns whether the machine is in an allowed end state.
+ */
+ bool inEndState() const;
+
+ /**
+ * Returns the last transition that was taken.
+ */
+ TransitionType lastTransition() const;
+
+ /**
+ * Returns the start state of the machine.
+ */
+ StateId startState() const;
+
+ /**
+ * This method should be redefined by template specialization for every
+ * concret TransitionType.
+ */
+ QString transitionTypeToString(TransitionType type) const;
+
+ /**
+ * Outputs the state machine in DOT format to the given
+ * output @p device.
+ */
+ bool outputGraph(QIODevice *device, const QString &graphName) const;
+
+ /**
+ * Returns a DFA that is equal to the NFA of the state machine.
+ */
+ XsdStateMachine<TransitionType> toDFA() const;
+
+ /**
+ * Returns the information of all states of the state machine.
+ */
+ QHash<StateId, StateType> states() const;
+
+ /**
+ * Returns the information of all transitions of the state machine.
+ */
+ QHash<StateId, QHash<TransitionType, QVector<StateId> > > transitions() const;
+
+ private:
+ /**
+ * Returns the DFA state for the given @p nfaStat from the given @p stateTable.
+ * If there is no corresponding DFA state yet, a new one is created.
+ */
+ StateId dfaStateForNfaState(QSet<StateId> nfaState, QList< QPair< QSet<StateId>, StateId> > &stateTable, XsdStateMachine<TransitionType> &dfa) const;
+
+ /**
+ * Returns the set of all states that can be reached from the set of @p input states
+ * by the epsilon transition.
+ */
+ QSet<StateId> epsilonClosure(const QSet<StateId> &input) const;
+
+ /**
+ * Returns the set of all states that can be reached from the set of given @p states
+ * by the given @p input.
+ */
+ QSet<StateId> move(const QSet<StateId> &states, TransitionType input) const;
+
+ NamePool::Ptr m_namePool;
+ QHash<StateId, StateType> m_states;
+ QHash<StateId, QHash<TransitionType, QVector<StateId> > > m_transitions;
+ QHash<StateId, QVector<StateId> > m_epsilonTransitions;
+ StateId m_currentState;
+ qint32 m_counter;
+ TransitionType m_lastTransition;
+ };
+
+ #include "qxsdstatemachine.cpp"
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdstatemachinebuilder.cpp b/src/xmlpatterns/schema/qxsdstatemachinebuilder.cpp
new file mode 100644
index 0000000..a9e1d98
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdstatemachinebuilder.cpp
@@ -0,0 +1,260 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdstatemachinebuilder_p.h"
+
+#include "qxsdelement_p.h"
+#include "qxsdmodelgroup_p.h"
+#include "qxsdschemahelper_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+/*
+ * This methods takes a list of objects and returns a list of list
+ * of all combinations the objects can be ordered.
+ *
+ * e.g. input = [ 1, 2, 3 ]
+ * output = [
+ * [ 1, 2, 3 ],
+ * [ 1, 3, 2 ],
+ * [ 2, 1, 3 ],
+ * [ 2, 3, 1 ],
+ * [ 3, 1, 2 ],
+ * [ 3, 2, 1 ]
+ * ]
+ *
+ * The method is used to create all possible combinations for the particles
+ * in an <all> model group.
+ */
+template <typename T>
+QList< QList<T> > allCombinations(const QList<T> &input)
+{
+ if (input.count() == 1)
+ return (QList< QList<T> >() << input);
+
+ QList< QList<T> > result;
+ for (int i = 0; i < input.count(); ++i) {
+ QList<T> subList = input;
+ T value = subList.takeAt(i);
+
+ QList< QList<T> > subLists = allCombinations(subList);
+ for (int j = 0; j < subLists.count(); ++j) {
+ subLists[j].prepend(value);
+ }
+ result << subLists;
+ }
+
+ return result;
+}
+
+XsdStateMachineBuilder::XsdStateMachineBuilder(XsdStateMachine<XsdTerm::Ptr> *machine, const NamePool::Ptr &namePool, Mode mode)
+ : m_stateMachine(machine), m_namePool(namePool), m_mode(mode)
+{
+}
+
+XsdStateMachine<XsdTerm::Ptr>::StateId XsdStateMachineBuilder::reset()
+{
+ Q_ASSERT(m_stateMachine);
+
+ m_stateMachine->clear();
+
+ return m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::EndState);
+}
+
+XsdStateMachine<XsdTerm::Ptr>::StateId XsdStateMachineBuilder::addStartState(XsdStateMachine<XsdTerm::Ptr>::StateId state)
+{
+ const XsdStateMachine<XsdTerm::Ptr>::StateId startState = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::StartState);
+ m_stateMachine->addEpsilonTransition(startState, state);
+
+ return startState;
+}
+
+/*
+ * Create the FSA according to Algorithm Tp(S) from http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html
+ */
+XsdStateMachine<XsdTerm::Ptr>::StateId XsdStateMachineBuilder::buildParticle(const XsdParticle::Ptr &particle, XsdStateMachine<XsdTerm::Ptr>::StateId endState)
+{
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentStartState = endState;
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentEndState = endState;
+
+ // 2
+ if (particle->maximumOccursUnbounded()) {
+ const XsdStateMachine<XsdTerm::Ptr>::StateId t = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::InternalState);
+ const XsdStateMachine<XsdTerm::Ptr>::StateId n = buildTerm(particle->term(), t);
+
+ m_stateMachine->addEpsilonTransition(t, n);
+ m_stateMachine->addEpsilonTransition(n, endState);
+
+ currentEndState = t;
+ currentStartState = t;
+ } else { // 3
+ int count = (particle->maximumOccurs() - particle->minimumOccurs());
+ if (count > 100)
+ count = 100;
+
+ for (int i = 0; i < count; ++i) {
+ currentStartState = buildTerm(particle->term(), currentEndState);
+ m_stateMachine->addEpsilonTransition(currentStartState, endState);
+ currentEndState = currentStartState;
+ }
+ }
+
+ int minOccurs = particle->minimumOccurs();
+ if (minOccurs > 100)
+ minOccurs = 100;
+
+ for (int i = 0; i < minOccurs; ++i) {
+ currentStartState = buildTerm(particle->term(), currentEndState);
+ currentEndState = currentStartState;
+ }
+
+ return currentStartState;
+}
+
+/*
+ * Create the FSA according to Algorithm Tt(S) from http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html
+ */
+XsdStateMachine<XsdTerm::Ptr>::StateId XsdStateMachineBuilder::buildTerm(const XsdTerm::Ptr &term, XsdStateMachine<XsdTerm::Ptr>::StateId endState)
+{
+ if (term->isWildcard()) { // 1
+ const XsdStateMachine<XsdTerm::Ptr>::StateId b = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::InternalState);
+ m_stateMachine->addTransition(b, term, endState);
+ return b;
+ } else if (term->isElement()) { // 2
+ const XsdStateMachine<XsdTerm::Ptr>::StateId b = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::InternalState);
+ m_stateMachine->addTransition(b, term, endState);
+
+ const XsdElement::Ptr element(term);
+ if (m_mode == CheckingMode) {
+ const XsdElement::List substGroups = element->substitutionGroups();
+ for (int i = 0; i < substGroups.count(); ++i)
+ m_stateMachine->addTransition(b, substGroups.at(i), endState);
+ } else if (m_mode == ValidatingMode) {
+ const XsdElement::List substGroups = element->substitutionGroups();
+ for (int i = 0; i < substGroups.count(); ++i) {
+ if (XsdSchemaHelper::substitutionGroupOkTransitive(element, substGroups.at(i), m_namePool))
+ m_stateMachine->addTransition(b, substGroups.at(i), endState);
+ }
+ }
+
+ return b;
+ } else if (term->isModelGroup()) {
+ const XsdModelGroup::Ptr group(term);
+
+ if (group->compositor() == XsdModelGroup::ChoiceCompositor) { // 3
+ const XsdStateMachine<XsdTerm::Ptr>::StateId b = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::InternalState);
+
+ for (int i = 0; i < group->particles().count(); ++i) {
+ const XsdParticle::Ptr particle(group->particles().at(i));
+ if (particle->maximumOccurs() != 0) {
+ const XsdStateMachine<XsdTerm::Ptr>::StateId state = buildParticle(particle, endState);
+ m_stateMachine->addEpsilonTransition(b, state);
+ }
+ }
+
+ return b;
+ } else if (group->compositor() == XsdModelGroup::SequenceCompositor) { // 4
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentStartState = endState;
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentEndState = endState;
+
+ for (int i = (group->particles().count() - 1); i >= 0; --i) { // iterate reverse
+ const XsdParticle::Ptr particle(group->particles().at(i));
+ if (particle->maximumOccurs() != 0) {
+ currentStartState = buildParticle(particle, currentEndState);
+ currentEndState = currentStartState;
+ }
+ }
+
+ return currentStartState;
+ } else if (group->compositor() == XsdModelGroup::AllCompositor) {
+ const XsdStateMachine<XsdTerm::Ptr>::StateId newStartState = m_stateMachine->addState(XsdStateMachine<XsdTerm::Ptr>::InternalState);
+
+ const QList<XsdParticle::List> list = allCombinations(group->particles());
+
+ for (int i = 0; i < list.count(); ++i) {
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentStartState = endState;
+ XsdStateMachine<XsdTerm::Ptr>::StateId currentEndState = endState;
+
+ const XsdParticle::List particles = list.at(i);
+ for (int j = (particles.count() - 1); j >= 0; --j) { // iterate reverse
+ const XsdParticle::Ptr particle(particles.at(j));
+ if (particle->maximumOccurs() != 0) {
+ currentStartState = buildParticle(particle, currentEndState);
+ currentEndState = currentStartState;
+ }
+ }
+ m_stateMachine->addEpsilonTransition(newStartState, currentStartState);
+ }
+
+ if (list.isEmpty())
+ return endState;
+ else
+ return newStartState;
+ }
+ }
+
+ Q_ASSERT(false);
+ return 0;
+}
+
+static void internalParticleLookupMap(const XsdParticle::Ptr &particle, QHash<XsdTerm::Ptr, XsdParticle::Ptr> &hash)
+{
+ hash.insert(particle->term(), particle);
+
+ if (particle->term()->isModelGroup()) {
+ const XsdModelGroup::Ptr group(particle->term());
+ const XsdParticle::List particles = group->particles();
+ for (int i = 0; i < particles.count(); ++i)
+ internalParticleLookupMap(particles.at(i), hash);
+ }
+}
+
+QHash<XsdTerm::Ptr, XsdParticle::Ptr> XsdStateMachineBuilder::particleLookupMap(const XsdParticle::Ptr &particle)
+{
+ QHash<XsdTerm::Ptr, XsdParticle::Ptr> result;
+ internalParticleLookupMap(particle, result);
+
+ return result;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdstatemachinebuilder_p.h b/src/xmlpatterns/schema/qxsdstatemachinebuilder_p.h
new file mode 100644
index 0000000..82eeea8
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdstatemachinebuilder_p.h
@@ -0,0 +1,141 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdStateMachineBuilder_H
+#define Patternist_XsdStateMachineBuilder_H
+
+#include "qxsdparticle_p.h"
+#include "qxsdstatemachine_p.h"
+#include "qxsdterm_p.h"
+
+#include <QtCore/QExplicitlySharedDataPointer>
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A helper class to build up validation state machines.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdStateMachineBuilder : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdStateMachineBuilder> Ptr;
+
+ enum Mode
+ {
+ CheckingMode,
+ ValidatingMode
+ };
+
+ /**
+ * Creates a new state machine builder.
+ *
+ * @param machine The state machine it should work on.
+ * @param namePool The name pool used by all schema components.
+ * @param mode The mode the machine shall be build for.
+ */
+ XsdStateMachineBuilder(XsdStateMachine<XsdTerm::Ptr> *machine, const NamePool::Ptr &namePool, Mode mode = CheckingMode);
+
+ /**
+ * Resets the state machine.
+ *
+ * @returns The initial end state.
+ */
+ XsdStateMachine<XsdTerm::Ptr>::StateId reset();
+
+ /**
+ * Prepends a start state to the given @p state.
+ * That is needed to allow the conversion of the state machine from a FSA to a DFA.
+ */
+ XsdStateMachine<XsdTerm::Ptr>::StateId addStartState(XsdStateMachine<XsdTerm::Ptr>::StateId state);
+
+ /**
+ * Creates the state machine for the given @p particle that should have the
+ * given @p endState.
+ *
+ * @returns The new start state.
+ */
+ XsdStateMachine<XsdTerm::Ptr>::StateId buildParticle(const XsdParticle::Ptr &particle, XsdStateMachine<XsdTerm::Ptr>::StateId endState);
+
+ /**
+ * Creates the state machine for the given @p term that should have the
+ * given @p endState.
+ *
+ * @returns The new start state.
+ */
+ XsdStateMachine<XsdTerm::Ptr>::StateId buildTerm(const XsdTerm::Ptr &term, XsdStateMachine<XsdTerm::Ptr>::StateId endState);
+
+ /**
+ * Returns a hash that maps each term that appears inside @p particle, to the particle it belongs.
+ *
+ * @note These information are used by XsdParticleChecker to check particle inheritance.
+ */
+ static QHash<XsdTerm::Ptr, XsdParticle::Ptr> particleLookupMap(const XsdParticle::Ptr &particle);
+
+ private:
+ XsdStateMachine<XsdTerm::Ptr> *m_stateMachine;
+ NamePool::Ptr m_namePool;
+ Mode m_mode;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdterm.cpp b/src/xmlpatterns/schema/qxsdterm.cpp
new file mode 100644
index 0000000..92ea006
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdterm.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdterm_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+bool XsdTerm::isElement() const
+{
+ return false;
+}
+
+bool XsdTerm::isModelGroup() const
+{
+ return false;
+}
+
+bool XsdTerm::isWildcard() const
+{
+ return false;
+}
+
+bool XsdTerm::isReference() const
+{
+ return false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdterm_p.h b/src/xmlpatterns/schema/qxsdterm_p.h
new file mode 100644
index 0000000..278b74d
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdterm_p.h
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdTerm_H
+#define Patternist_XsdTerm_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A base class for all particles of a model group.
+ *
+ * This class is the base class for all particles of a model group
+ * as the <em>element</em>, <em>group</em> or <em>any</em> tag, it is not supposed to
+ * be instantiated directly.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSTerm">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdTerm : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdTerm> Ptr;
+
+ /**
+ * Returns @c true if the term is an element, @c false otherwise.
+ */
+ virtual bool isElement() const;
+
+ /**
+ * Returns @c true if the term is a model group (group tag), @c false otherwise.
+ */
+ virtual bool isModelGroup() const;
+
+ /**
+ * Returns @c true if the term is a wildcard (any tag), @c false otherwise.
+ */
+ virtual bool isWildcard() const;
+
+ /**
+ * Returns @c true if the term is a reference, @c false otherwise.
+ *
+ * @note The reference term is only used internally as helper during type resolving.
+ */
+ virtual bool isReference() const;
+
+ protected:
+ /**
+ * This constructor only exists to ensure this class is subclassed.
+ */
+ inline XsdTerm() {};
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdtypechecker.cpp b/src/xmlpatterns/schema/qxsdtypechecker.cpp
new file mode 100644
index 0000000..aabfcf6
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdtypechecker.cpp
@@ -0,0 +1,1338 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdtypechecker_p.h"
+
+#include "qabstractdatetime_p.h"
+#include "qbase64binary_p.h"
+#include "qboolean_p.h"
+#include "qdecimal_p.h"
+#include "qderivedinteger_p.h"
+#include "qduration_p.h"
+#include "qgenericstaticcontext_p.h"
+#include "qhexbinary_p.h"
+#include "qnamespaceresolver_p.h"
+#include "qpatternplatform_p.h"
+#include "qqnamevalue_p.h"
+#include "qvaluefactory_p.h"
+#include "qxmlnamepool.h"
+#include "qxsdschemahelper_p.h"
+#include "qxsdschemamerger_p.h"
+#include "qxsdstatemachine_p.h"
+
+#include "qxsdschemadebugger_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdSchemaSourceLocationReflection::XsdSchemaSourceLocationReflection(const QSourceLocation &location)
+ : m_sourceLocation(location)
+{
+}
+
+const SourceLocationReflection* XsdSchemaSourceLocationReflection::actualReflection() const
+{
+ return this;
+}
+
+QSourceLocation XsdSchemaSourceLocationReflection::sourceLocation() const
+{
+ return m_sourceLocation;
+}
+
+
+static AnySimpleType::Ptr comparableType(const AnySimpleType::Ptr &type)
+{
+ if (!type->isDefinedBySchema()) {
+ return type;
+ } else {
+ const XsdSimpleType::Ptr simpleType(type);
+ if (type->category() == SchemaType::SimpleTypeAtomic) {
+ return simpleType->primitiveType();
+ } else if (type->category() == SchemaType::SimpleTypeList) {
+ return simpleType->itemType();
+ } else if (type->category() == SchemaType::SimpleTypeUnion) {
+ return simpleType->memberTypes().first();
+ }
+ }
+
+ Q_ASSERT(false);
+ return AnySimpleType::Ptr();
+}
+
+static int totalDigitsForSignedLongLong(long long value)
+{
+ QString number = QString::number(value);
+ if (number.startsWith(QLatin1Char('-')))
+ number = number.mid(1);
+
+ return number.length();
+}
+
+static int totalDigitsForUnsignedLongLong(unsigned long long value)
+{
+ const QString number = QString::number(value);
+ return number.length();
+}
+
+static int totalDigitsForDecimal(const QString &lexicalValue)
+{
+ const QLatin1Char zeroChar('0');
+ const int length = lexicalValue.length() - 1;
+
+ // strip leading zeros
+ int pos = 0;
+ while (lexicalValue.at(pos) == zeroChar && (pos != length))
+ pos++;
+
+ QString value = lexicalValue.mid(pos);
+
+ // if contains '.' strip trailing zeros
+ if (value.contains(QLatin1Char('.'))) {
+ pos = value.length() - 1;
+ while (value.at(pos) == zeroChar) {
+ pos--;
+ }
+
+ value = value.left(pos + 1);
+ }
+
+ // check number of digits of remaining string
+ int totalDigits = 0;
+ for (int i = 0; i < value.count(); ++i)
+ if (value.at(i).isDigit())
+ ++totalDigits;
+
+ if (totalDigits == 0)
+ totalDigits = 1;
+
+ return totalDigits;
+}
+
+static int fractionDigitsForDecimal(const QString &lexicalValue)
+{
+ // we use the lexical value here, as the conversion to double might strip
+ // away decimal positions
+
+ QString trimmedValue(lexicalValue.trimmed());
+ const int pos = trimmedValue.indexOf(QLatin1Char('.'));
+ if (pos == -1) // no '.' -> 0 fraction digits
+ return 0;
+ else
+ return (trimmedValue.length() - pos - 1);
+}
+
+XsdTypeChecker::XsdTypeChecker(const XsdSchemaContext::Ptr &context, const QVector<QXmlName> &namespaceBindings, const QSourceLocation &location)
+ : m_context(context)
+ , m_namePool(m_context->namePool())
+ , m_namespaceBindings(namespaceBindings)
+ , m_reflection(new XsdSchemaSourceLocationReflection(location))
+{
+}
+
+XsdTypeChecker::~XsdTypeChecker()
+{
+}
+
+QString XsdTypeChecker::normalizedValue(const QString &value, const XsdFacet::Hash &facets)
+{
+ if (!facets.contains(XsdFacet::WhiteSpace))
+ return value;
+
+ const XsdFacet::Ptr whiteSpaceFacet = facets.value(XsdFacet::WhiteSpace);
+
+ const DerivedString<TypeString>::Ptr facetValue = whiteSpaceFacet->value();
+ const QString stringValue = facetValue->stringValue();
+ if (stringValue == XsdSchemaToken::toString(XsdSchemaToken::Preserve))
+ return value;
+ else if (stringValue == XsdSchemaToken::toString(XsdSchemaToken::Replace)) {
+ QString newValue(value);
+ newValue.replace(QLatin1Char('\t'), QLatin1Char(' '));
+ newValue.replace(QLatin1Char('\n'), QLatin1Char(' '));
+ newValue.replace(QLatin1Char('\r'), QLatin1Char(' '));
+
+ return newValue;
+ } else if (stringValue == XsdSchemaToken::toString(XsdSchemaToken::Collapse)) {
+ return value.simplified();
+ }
+
+ return value;
+}
+
+XsdFacet::Hash XsdTypeChecker::mergedFacetsForType(const SchemaType::Ptr &type, const XsdSchemaContext::Ptr &context)
+{
+ if (!type)
+ return XsdFacet::Hash();
+
+ const XsdFacet::Hash baseFacets = mergedFacetsForType(type->wxsSuperType(), context);
+ const XsdFacet::Hash facets = context->facetsForType(type);
+
+ XsdFacet::Hash result = baseFacets;
+ XsdFacet::HashIterator it(facets);
+ while (it.hasNext()) {
+ it.next();
+
+ result.insert(it.key(), it.value());
+ }
+
+ return result;
+}
+
+bool XsdTypeChecker::isValidString(const QString &normalizedString, const AnySimpleType::Ptr &type, QString &errorMsg, AnySimpleType::Ptr *boundType) const
+{
+ if (type->name(m_namePool) == BuiltinTypes::xsAnySimpleType->name(m_namePool)) {
+ if (boundType)
+ *boundType = type;
+
+ return true;
+ }
+
+ if (!type->isDefinedBySchema()) {
+ // special QName check
+ if (BuiltinTypes::xsQName->wxsTypeMatches(type)) {
+ if (!XPathHelper::isQName(normalizedString)) {
+ errorMsg = QtXmlPatterns::tr("%1 is not valid according to %2").arg(formatData(normalizedString)).arg(formatType(m_namePool, type));
+ return false;
+ }
+ }
+
+ const AtomicValue::Ptr value = fromLexical(normalizedString, type, m_context, m_reflection);
+ if (value->hasError()) {
+ errorMsg = QtXmlPatterns::tr("%1 is not valid according to %2").arg(formatData(normalizedString)).arg(formatType(m_namePool, type));
+ return false;
+ }
+
+ if (!checkConstrainingFacets(value, normalizedString, type, errorMsg)) {
+ return false;
+ }
+
+ if (boundType)
+ *boundType = type;
+
+ } else {
+ const XsdSimpleType::Ptr simpleType(type);
+
+ if (simpleType->category() == XsdSimpleType::SimpleTypeAtomic) {
+ AnySimpleType::Ptr targetType = simpleType->primitiveType();
+ if (!simpleType->wxsSuperType()->isDefinedBySchema())
+ targetType = simpleType->wxsSuperType();
+
+ const AtomicValue::Ptr value = fromLexical(normalizedString, targetType, m_context, m_reflection);
+ if (value->hasError()) {
+ errorMsg = QtXmlPatterns::tr("%1 is not valid according to %2").arg(formatData(normalizedString)).arg(formatType(m_namePool, targetType));
+ return false;
+ }
+
+ if (!checkConstrainingFacets(value, normalizedString, type, errorMsg)) {
+ return false;
+ }
+
+ if (boundType)
+ *boundType = type;
+
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeList) {
+ QStringList entries = normalizedString.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < entries.count(); ++i) {
+ entries[i] = normalizedValue(entries.at(i), mergedFacetsForType(simpleType->itemType(), m_context));
+ }
+
+ if (!checkConstrainingFacetsList(entries, normalizedString, simpleType->itemType(), mergedFacetsForType(simpleType, m_context), errorMsg)) {
+ return false;
+ }
+
+ for (int i = 0; i < entries.count(); ++i) {
+ if (!isValidString(entries.at(i), simpleType->itemType(), errorMsg)) {
+ return false;
+ }
+ }
+
+ if (boundType)
+ *boundType = simpleType->itemType();
+
+ } else if (simpleType->category() == XsdSimpleType::SimpleTypeUnion) {
+ if (!checkConstrainingFacetsUnion(normalizedString, normalizedString, simpleType, mergedFacetsForType(simpleType, m_context), errorMsg)) {
+ return false;
+ }
+
+ const AnySimpleType::List memberTypes = simpleType->memberTypes();
+
+ bool foundValidType = false;
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ const XsdFacet::Hash mergedFacets = mergedFacetsForType(memberTypes.at(i), m_context);
+ if (isValidString(normalizedValue(normalizedString, mergedFacets), memberTypes.at(i), errorMsg)) {
+ foundValidType = true;
+
+ if (boundType)
+ *boundType = memberTypes.at(i);
+
+ break;
+ }
+ }
+
+ if (!foundValidType) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::valuesAreEqual(const QString &value, const QString &otherValue, const AnySimpleType::Ptr &type) const
+{
+ const AnySimpleType::Ptr targetType = comparableType(type);
+
+ // if the type is xs:anySimpleType we just do string comparison...
+ if (targetType->name(m_namePool) == BuiltinTypes::xsAnySimpleType->name(m_namePool))
+ return (value == otherValue);
+
+ if (BuiltinTypes::xsQName->wxsTypeMatches(type)) {
+ const QXmlName valueName = convertToQName(value);
+ const QXmlName otherValueName = convertToQName(otherValue);
+
+ if (valueName == otherValueName)
+ return true;
+ }
+
+ if (type->category() == SchemaType::SimpleTypeAtomic) {
+ // ... otherwise we use the casting platform for value comparison
+ const DerivedString<TypeString>::Ptr valueStr = DerivedString<TypeString>::fromLexical(m_namePool, value);
+ const DerivedString<TypeString>::Ptr otherValueStr = DerivedString<TypeString>::fromLexical(m_namePool, otherValue);
+
+ return XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, otherValueStr, targetType, m_context, m_reflection);
+ } else if (type->category() == SchemaType::SimpleTypeList) {
+ const QStringList values = value.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ const QStringList otherValues = otherValue.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ if (values.count() != otherValues.count())
+ return false;
+
+ for (int i = 0; i < values.count(); ++i) {
+ if (!valuesAreEqual(values.at(i), otherValues.at(i), XsdSimpleType::Ptr(type)->itemType()))
+ return false;
+ }
+
+ return true;
+ } else if (type->category() == SchemaType::SimpleTypeUnion) {
+ const AnySimpleType::List memberTypes = XsdSimpleType::Ptr(type)->memberTypes();
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ if (valuesAreEqual(value, otherValue, memberTypes.at(i))) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ return false;
+}
+
+bool XsdTypeChecker::checkConstrainingFacets(const AtomicValue::Ptr &value, const QString &lexicalValue, const AnySimpleType::Ptr &type, QString &errorMsg) const
+{
+ const XsdFacet::Hash facets = mergedFacetsForType(type, m_context);
+
+ if (BuiltinTypes::xsString->wxsTypeMatches(type) ||
+ BuiltinTypes::xsUntypedAtomic->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsString(value->stringValue(), facets, BuiltinTypes::xsString, errorMsg);
+ } else if (BuiltinTypes::xsAnyURI->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsString(value->stringValue(), facets, BuiltinTypes::xsAnyURI, errorMsg);
+ } else if (BuiltinTypes::xsNOTATION->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsNotation(value->as<QNameValue>()->qName(), facets, errorMsg);
+ } else if (BuiltinTypes::xsUnsignedByte->wxsTypeMatches(type) ||
+ BuiltinTypes::xsUnsignedInt->wxsTypeMatches(type) ||
+ BuiltinTypes::xsUnsignedLong->wxsTypeMatches(type) ||
+ BuiltinTypes::xsUnsignedShort->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsUnsignedInteger(value->as<Numeric>()->toUnsignedInteger(), lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsInteger->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsSignedInteger(value->as<Numeric>()->toInteger(), lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsFloat->wxsTypeMatches(type) ||
+ BuiltinTypes::xsDouble->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDouble(value->as<Numeric>()->toDouble(), lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsDecimal->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDecimal(value, lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsDateTime->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsDateTime, errorMsg);
+ } else if (BuiltinTypes::xsDate->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsDate, errorMsg);
+ } else if (BuiltinTypes::xsGYear->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsGYear, errorMsg);
+ } else if (BuiltinTypes::xsGYearMonth->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsGYearMonth, errorMsg);
+ } else if (BuiltinTypes::xsGMonth->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsGMonth, errorMsg);
+ } else if (BuiltinTypes::xsGMonthDay->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsGMonthDay, errorMsg);
+ } else if (BuiltinTypes::xsGDay->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsGDay, errorMsg);
+ } else if (BuiltinTypes::xsTime->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDateTime(value->as<AbstractDateTime>()->toDateTime(), lexicalValue, facets, BuiltinTypes::xsTime, errorMsg);
+ } else if (BuiltinTypes::xsDuration->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsDuration(value, lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsBoolean->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsBoolean(value->as<Boolean>()->value(), lexicalValue, facets, errorMsg);
+ } else if (BuiltinTypes::xsHexBinary->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsBinary(value->as<Base64Binary>()->asByteArray(), facets, BuiltinTypes::xsHexBinary, errorMsg);
+ } else if (BuiltinTypes::xsBase64Binary->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsBinary(value->as<Base64Binary>()->asByteArray(), facets, BuiltinTypes::xsBase64Binary, errorMsg);
+ } else if (BuiltinTypes::xsQName->wxsTypeMatches(type)) {
+ return checkConstrainingFacetsQName(value->as<QNameValue>()->qName(), lexicalValue, facets, errorMsg);
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsString(const QString &value, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Length)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Length);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() != value.length()) {
+ errorMsg = QtXmlPatterns::tr("string content does not match the length facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() > value.length()) {
+ errorMsg = QtXmlPatterns::tr("string content does not match the minLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() < value.length()) {
+ errorMsg = QtXmlPatterns::tr("string content does not match the maxLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(value)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("string content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const DerivedString<TypeString>::Ptr valueStr = DerivedString<TypeString>::fromLexical(m_namePool, value);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, multiValue.at(j), type, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("string content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsSignedInteger(long long value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsLong, m_context, m_reflection);
+ if (facetValue->toInteger() < value) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match the maxInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsLong, m_context, m_reflection);
+ if (facetValue->toInteger() <= value) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match the maxExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsLong, m_context, m_reflection);
+ if (facetValue->toInteger() > value) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match the minInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsLong, m_context, m_reflection);
+ if (facetValue->toInteger() >= value) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match the minExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const DerivedString<TypeString>::Ptr valueStr = DerivedString<TypeString>::fromLexical(m_namePool, QString::number(value));
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, multiValue.at(j), BuiltinTypes::xsLong, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("signed integer content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypePositiveInteger>::Ptr facetValue = facet->value();
+
+ if (totalDigitsForSignedLongLong(value) > facetValue->toInteger()) {
+ errorMsg = QtXmlPatterns::tr("signed integer content does not match in the totalDigits facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsUnsignedInteger(unsigned long long value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsUnsignedLong, m_context, m_reflection);
+ if (facetValue->toUnsignedInteger() < value) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match the maxInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsUnsignedLong, m_context, m_reflection);
+ if (facetValue->toUnsignedInteger() <= value) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match the maxExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsUnsignedLong, m_context, m_reflection);
+ if (facetValue->toUnsignedInteger() > value) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match the minInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsUnsignedLong, m_context, m_reflection);
+ if (facetValue->toUnsignedInteger() >= value) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match the minExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const DerivedString<TypeString>::Ptr valueStr = DerivedString<TypeString>::fromLexical(m_namePool, QString::number(value));
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, multiValue.at(j), BuiltinTypes::xsUnsignedLong, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypePositiveInteger>::Ptr facetValue = facet->value();
+
+ if (totalDigitsForUnsignedLongLong(value) > facetValue->toInteger()) {
+ errorMsg = QtXmlPatterns::tr("unsigned integer content does not match in the totalDigits facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsDouble(double value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsDouble, m_context, m_reflection);
+ if (facetValue->toDouble() < value) {
+ errorMsg = QtXmlPatterns::tr("double content does not match the maxInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsDouble, m_context, m_reflection);
+ if (facetValue->toDouble() <= value) {
+ errorMsg = QtXmlPatterns::tr("double content does not match the maxExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumInclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsDouble, m_context, m_reflection);
+ if (facetValue->toDouble() > value) {
+ errorMsg = QtXmlPatterns::tr("double content does not match the minInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumExclusive);
+ const Numeric::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), BuiltinTypes::xsDouble, m_context, m_reflection);
+ if (facetValue->toDouble() >= value) {
+ errorMsg = QtXmlPatterns::tr("double content does not match the minExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const DerivedString<TypeString>::Ptr valueStr = DerivedString<TypeString>::fromLexical(m_namePool, QString::number(value));
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(valueStr, AtomicComparator::OperatorEqual, multiValue.at(j), BuiltinTypes::xsDouble, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("double content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("double content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsDecimal(const AtomicValue::Ptr &value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::FractionDigits)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::FractionDigits);
+ const DerivedInteger<TypePositiveInteger>::Ptr facetValue = facet->value();
+
+ if (fractionDigitsForDecimal(lexicalValue) > facetValue->toInteger()) {
+ errorMsg = QtXmlPatterns::tr("decimal content does not match in the fractionDigits facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::TotalDigits)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::TotalDigits);
+ const DerivedInteger<TypePositiveInteger>::Ptr facetValue = facet->value();
+
+ if (totalDigitsForDecimal(lexicalValue) > facetValue->toInteger()) {
+ errorMsg = QtXmlPatterns::tr("decimal content does not match in the totalDigits facet");
+ return false;
+ }
+ }
+
+ return checkConstrainingFacetsDouble(value->as<Decimal>()->toDouble(), lexicalValue, facets, errorMsg);
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsDateTime(const QDateTime &value, const QString &lexicalValue, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumInclusive);
+ const AbstractDateTime::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ if (facetValue->toDateTime() < value) {
+ errorMsg = QtXmlPatterns::tr("date time content does not match the maxInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumExclusive);
+ const AbstractDateTime::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ if (facetValue->toDateTime() <= value) {
+ errorMsg = QtXmlPatterns::tr("date time content does not match the maxExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumInclusive);
+ const AbstractDateTime::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ if (facetValue->toDateTime() > value) {
+ errorMsg = QtXmlPatterns::tr("date time content does not match the minInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumExclusive);
+ const AbstractDateTime::Ptr facetValue = ValueFactory::fromLexical(facet->value()->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ if (facetValue->toDateTime() >= value) {
+ errorMsg = QtXmlPatterns::tr("date time content does not match the minExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const AbstractDateTime::Ptr facetValue = ValueFactory::fromLexical(multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ if (facetValue->toDateTime() == value) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("date time content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("date time content does not match pattern facet");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsDuration(const AtomicValue::Ptr&, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::MaximumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumInclusive);
+ const DerivedString<TypeString>::Ptr value = DerivedString<TypeString>::fromLexical(m_namePool, lexicalValue);
+
+ if (XsdSchemaHelper::constructAndCompare(facets.value(XsdFacet::MaximumInclusive)->value(), AtomicComparator::OperatorLessThan, value, BuiltinTypes::xsDuration, m_context, m_reflection)) {
+ errorMsg = QtXmlPatterns::tr("duration content does not match the maxInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumExclusive);
+ const DerivedString<TypeString>::Ptr value = DerivedString<TypeString>::fromLexical(m_namePool, lexicalValue);
+
+ if (XsdSchemaHelper::constructAndCompare(facets.value(XsdFacet::MaximumExclusive)->value(), AtomicComparator::OperatorLessOrEqual, value, BuiltinTypes::xsDuration, m_context, m_reflection)) {
+ errorMsg = QtXmlPatterns::tr("duration content does not match the maxExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumInclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumInclusive);
+ const DerivedString<TypeString>::Ptr value = DerivedString<TypeString>::fromLexical(m_namePool, lexicalValue);
+
+ if (XsdSchemaHelper::constructAndCompare(facets.value(XsdFacet::MinimumInclusive)->value(), AtomicComparator::OperatorGreaterThan, value, BuiltinTypes::xsDuration, m_context, m_reflection)) {
+ errorMsg = QtXmlPatterns::tr("duration content does not match the minInclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumExclusive)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumExclusive);
+ const DerivedString<TypeString>::Ptr value = DerivedString<TypeString>::fromLexical(m_namePool, lexicalValue);
+
+ if (XsdSchemaHelper::constructAndCompare(facets.value(XsdFacet::MinimumExclusive)->value(), AtomicComparator::OperatorGreaterOrEqual, value, BuiltinTypes::xsDuration, m_context, m_reflection)) {
+ errorMsg = QtXmlPatterns::tr("duration content does not match the minExclusive facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const DerivedString<TypeString>::Ptr value = DerivedString<TypeString>::fromLexical(m_namePool, lexicalValue);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(multiValue.at(j), AtomicComparator::OperatorEqual, value, BuiltinTypes::xsDuration, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("duration content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("duration content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsBoolean(bool, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("boolean content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsBinary(const QByteArray &value, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Length)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Length);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() != value.length()) {
+ errorMsg = QtXmlPatterns::tr("binary content does not match the length facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MinimumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() > value.length()) {
+ errorMsg = QtXmlPatterns::tr("binary content does not match the minLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::MaximumLength);
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr length = facet->value();
+ if (length->toInteger() < value.length()) {
+ errorMsg = QtXmlPatterns::tr("binary content does not match the maxLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const Base64Binary::Ptr binary = ValueFactory::fromLexical(multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue(), type, m_context, m_reflection);
+ const QByteArray facetValue = binary->as<Base64Binary>()->asByteArray();
+ if (value == facetValue) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("binary content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ //TODO: implement
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsQName(const QXmlName &value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Length)) {
+ // always true
+ }
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ // always true
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ // always true
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ if (!XPathHelper::isQName(lexicalValue)) {
+ errorMsg = QtXmlPatterns::tr("invalid QName content: %1").arg(formatData(lexicalValue));
+ return false;
+ }
+
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QXmlName facetValue = multiValue.at(j)->as<QNameValue>()->qName();
+
+ if (value == facetValue) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("QName content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("QName content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsNotation(const QXmlName &value, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Length)) {
+ // deprecated by spec
+ }
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ // deprecated by spec
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ // deprecated by spec
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QXmlName facetValue = multiValue.at(j)->as<QNameValue>()->qName();
+
+ if (value == facetValue) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("notation content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ //TODO: implement
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsList(const QStringList &values, const QString &lexicalValue, const AnySimpleType::Ptr &itemType, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Length)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr value = facets.value(XsdFacet::Length)->value();
+ if (value->toInteger() != values.count()) {
+ errorMsg = QtXmlPatterns::tr("list content does not match length facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MinimumLength)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr value = facets.value(XsdFacet::MinimumLength)->value();
+ if (value->toInteger() > values.count()) {
+ errorMsg = QtXmlPatterns::tr("list content does not match minLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::MaximumLength)) {
+ const DerivedInteger<TypeNonNegativeInteger>::Ptr value = facets.value(XsdFacet::MaximumLength)->value();
+ if (value->toInteger() < values.count()) {
+ errorMsg = QtXmlPatterns::tr("list content does not match maxLength facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Enumeration)) {
+
+ bool found = false;
+
+ // we have to handle lists with QName derived items differently
+ if (BuiltinTypes::xsQName->wxsTypeMatches(itemType) || BuiltinTypes::xsNOTATION->wxsTypeMatches(itemType)) {
+ // first convert the string values from the instance document to a list of QXmlName
+ QList<QXmlName> instanceValues;
+ for (int i = 0; i < values.count(); ++i) {
+ instanceValues.append(convertToQName(values.at(i)));
+ }
+
+ // fetch the values from the facet and create a list of QXmlNames for each of them
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ for (int i = 0; i < multiValue.count(); ++i) {
+ const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), QString::SkipEmptyParts);
+
+ // create the list of atomic string values
+ QList<QXmlName> facetValues;
+ for (int j = 0; j < facetValueList.count(); ++j) {
+ facetValues.append(convertToQName(facetValueList.at(j)));
+ }
+
+ // check if both lists have the same length
+ if (instanceValues.count() != facetValues.count())
+ continue;
+
+ // check if both lists are equal, that means the contain equal items in the same order
+ bool matchesAll = true;
+ for (int j = 0; j < instanceValues.count(); ++j) {
+ if (instanceValues.at(j) != facetValues.at(j)) {
+ matchesAll = false;
+ break;
+ }
+ }
+
+ if (matchesAll) {
+ found = true;
+ break;
+ }
+ }
+ } else {
+ // first convert the string values from the instance document to atomic values of type string
+ AtomicValue::List instanceValues;
+ for (int i = 0; i < values.count(); ++i) {
+ instanceValues.append(DerivedString<TypeString>::fromLexical(m_namePool, values.at(i)));
+ }
+
+ // fetch the values from the facet and create a list of atomic string values for each of them
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+
+ const AnySimpleType::Ptr targetType = comparableType(itemType);
+
+ const AtomicValue::List multiValue = facet->multiValue();
+ for (int i = 0; i < multiValue.count(); ++i) {
+ const QStringList facetValueList = multiValue.at(i)->as<DerivedString<TypeString> >()->stringValue().split(QLatin1Char(' '), QString::SkipEmptyParts);
+
+ // create the list of atomic string values
+ AtomicValue::List facetValues;
+ for (int j = 0; j < facetValueList.count(); ++j) {
+ facetValues.append(DerivedString<TypeString>::fromLexical(m_namePool, facetValueList.at(j)));
+ }
+
+ // check if both lists have the same length
+ if (instanceValues.count() != facetValues.count())
+ continue;
+
+ // check if both lists are equal, that means the contain equal items in the same order
+ bool matchesAll = true;
+ for (int j = 0; j < instanceValues.count(); ++j) {
+ if (!XsdSchemaHelper::constructAndCompare(instanceValues.at(j), AtomicComparator::OperatorEqual, facetValues.at(j), targetType, m_context, m_reflection)) {
+ matchesAll = false;
+ break;
+ }
+ }
+
+ if (matchesAll) {
+ found = true;
+ break;
+ }
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("list content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("list content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+bool XsdTypeChecker::checkConstrainingFacetsUnion(const QString &value, const QString &lexicalValue, const XsdSimpleType::Ptr &simpleType, const XsdFacet::Hash &facets, QString &errorMsg) const
+{
+ if (facets.contains(XsdFacet::Enumeration)) {
+ const AnySimpleType::List memberTypes = simpleType->memberTypes();
+
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Enumeration);
+
+ // convert the instance value into an atomic string value
+ const DerivedString<TypeString>::Ptr valueString = DerivedString<TypeString>::fromLexical(m_namePool, value);
+
+ // collect the facet values into a list of atomic string values
+ const AtomicValue::List facetValues = facet->multiValue();
+
+ // compare the instance value against the facetValues for each member type and
+ // search for a match
+
+ bool found = false;
+ for (int i = 0; i < memberTypes.count(); ++i) {
+ const AnySimpleType::Ptr targetType = comparableType(memberTypes.at(i));
+ for (int j = 0; j < facetValues.count(); ++j) {
+ if (XsdSchemaHelper::constructAndCompare(valueString, AtomicComparator::OperatorEqual, facetValues.at(j), targetType, m_context, m_reflection)) {
+ found = true;
+ break;
+ }
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("union content is not listed in the enumeration facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Pattern)) {
+ const XsdFacet::Ptr facet = facets.value(XsdFacet::Pattern);
+ const AtomicValue::List multiValue = facet->multiValue();
+ bool found = false;
+ for (int j = 0; j < multiValue.count(); ++j) {
+ const QString pattern = multiValue.at(j)->as<DerivedString<TypeString> >()->stringValue();
+ const QRegExp exp = PatternPlatform::parsePattern(pattern, m_context, m_reflection);
+ if (exp.exactMatch(lexicalValue)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ errorMsg = QtXmlPatterns::tr("union content does not match pattern facet");
+ return false;
+ }
+ }
+ if (facets.contains(XsdFacet::Assertion)) {
+ //TODO: implement
+ }
+
+ return true;
+}
+
+AtomicValue::Ptr XsdTypeChecker::fromLexical(const QString &value, const SchemaType::Ptr &type, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const
+{
+ if (type->name(m_namePool) == BuiltinTypes::xsNOTATION->name(m_namePool) || type->name(m_namePool) == BuiltinTypes::xsQName->name(m_namePool)) {
+ if (value.simplified().isEmpty())
+ return ValidationError::createError(QtXmlPatterns::tr("data of type %1 are not allowed to be empty").arg(formatType(m_namePool, BuiltinTypes::xsNOTATION)));
+
+ const QXmlName valueName = convertToQName(value);
+ return QNameValue::fromValue(m_namePool, valueName);
+ } else {
+ return ValueFactory::fromLexical(value, type, context, reflection);
+ }
+}
+
+QXmlName XsdTypeChecker::convertToQName(const QString &name) const
+{
+ const int pos = name.indexOf(QLatin1Char(':'));
+
+ QXmlName::PrefixCode prefixCode = 0;
+ QXmlName::NamespaceCode namespaceCode;
+ QXmlName::LocalNameCode localNameCode;
+ if (pos != -1) {
+ prefixCode = m_context->namePool()->allocatePrefix(name.left(pos));
+ namespaceCode = StandardNamespaces::empty;
+ for (int i = 0; i < m_namespaceBindings.count(); ++i) {
+ if (m_namespaceBindings.at(i).prefix() == prefixCode) {
+ namespaceCode = m_namespaceBindings.at(i).namespaceURI();
+ break;
+ }
+ }
+ localNameCode = m_context->namePool()->allocateLocalName(name.mid(pos + 1));
+ } else {
+ prefixCode = StandardPrefixes::empty;
+ namespaceCode = StandardNamespaces::empty;
+ for (int i = 0; i < m_namespaceBindings.count(); ++i) {
+ if (m_namespaceBindings.at(i).prefix() == prefixCode) {
+ namespaceCode = m_namespaceBindings.at(i).namespaceURI();
+ break;
+ }
+ }
+ localNameCode = m_context->namePool()->allocateLocalName(name);
+ }
+
+ return QXmlName(namespaceCode, localNameCode, prefixCode);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdtypechecker_p.h b/src/xmlpatterns/schema/qxsdtypechecker_p.h
new file mode 100644
index 0000000..4b3f7c2
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdtypechecker_p.h
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdTypeChecker_H
+#define Patternist_XsdTypeChecker_H
+
+#include <QtXmlPatterns/QSourceLocation>
+
+#include "qschematype_p.h"
+#include "qsourcelocationreflection_p.h"
+#include "qxsdschemacontext_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlQuery;
+
+namespace QPatternist
+{
+ /**
+ * @short An implementation of SourceLocationReflection that takes a QSourceLocation.
+ *
+ * This is a convenience class which provides a QSourceLocation with a SourceLocationReflection
+ * interface.
+ */
+ class XsdSchemaSourceLocationReflection : public SourceLocationReflection
+ {
+ public:
+ XsdSchemaSourceLocationReflection(const QSourceLocation &location);
+
+ virtual const SourceLocationReflection *actualReflection() const;
+ virtual QSourceLocation sourceLocation() const;
+
+ private:
+ const QSourceLocation m_sourceLocation;
+ };
+
+ /**
+ * @short The class that provides methods for checking a string against a type.
+ *
+ * The class provides functionality for type-aware string handling.
+ */
+ class XsdTypeChecker
+ {
+ public:
+ /**
+ * Creates a new type checker.
+ *
+ * @param context The schema context that is used for error reporting.
+ * @param namespaceBindings The namespace bindings that shall be used to check against xs:QName based types.
+ * @param location The source location that is used for error reporting.
+ */
+ XsdTypeChecker(const XsdSchemaContext::Ptr &context, const QVector<QXmlName> &namespaceBindings, const QSourceLocation &location);
+
+ /**
+ * Destroys the type checker.
+ */
+ ~XsdTypeChecker();
+
+ /**
+ * Returns all facets for the given @p type.
+ *
+ * The list of facets is created by following the type hierarchy from xs:anyType down to the given type
+ * and merging the facets in each step.
+ */
+ static XsdFacet::Hash mergedFacetsForType(const SchemaType::Ptr &type, const XsdSchemaContext::Ptr &context);
+
+ /**
+ * Returns the normalized value for the given @p value.
+ *
+ * The normalized value is the original value with all the white space facets
+ * applied on it.
+ *
+ * @param value The original value.
+ * @param facets The hash of all facets of the values type.
+ */
+ static QString normalizedValue(const QString &value, const XsdFacet::Hash &facets);
+
+ /**
+ * Checks whether the @p normalizedString is valid according the given @p type.
+ *
+ * @param normalizedString The string in normalized form (whitespace facets applied).
+ * @param type The type the string shall be tested against.
+ * @param errorMsg Contains the error message if the normalizedString does not match the type.
+ * @param boundType The type the data was bound to during validation.
+ *
+ * @note The @p boundType only differs from @p type if the type is derived from an based union value.
+ */
+ bool isValidString(const QString &normalizedString, const AnySimpleType::Ptr &type, QString &errorMsg, AnySimpleType::Ptr *boundType = 0) const;
+
+ /**
+ * Returns whether the given @p value and @p otherValue are of @p type and are equal.
+ */
+ bool valuesAreEqual(const QString &value, const QString &otherValue, const AnySimpleType::Ptr &type) const;
+
+ private:
+ Q_DISABLE_COPY(XsdTypeChecker)
+
+ /**
+ * Checks the given value against the facets of @p type.
+ */
+ bool checkConstrainingFacets(const AtomicValue::Ptr &value, const QString &lexicalValue, const AnySimpleType::Ptr &type, QString &errorMsg) const;
+ bool checkConstrainingFacetsString(const QString &value, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const;
+ bool checkConstrainingFacetsSignedInteger(long long value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsUnsignedInteger(unsigned long long value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsDouble(double value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsDecimal(const AtomicValue::Ptr &value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsDateTime(const QDateTime &value, const QString &lexicalValue, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const;
+ bool checkConstrainingFacetsDuration(const AtomicValue::Ptr &value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsBoolean(bool value, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsBinary(const QByteArray &value, const XsdFacet::Hash &facets, const AnySimpleType::Ptr &type, QString &errorMsg) const;
+ bool checkConstrainingFacetsQName(const QXmlName&, const QString &lexicalValue, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsNotation(const QXmlName &value, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsList(const QStringList &values, const QString &lexicalValue, const AnySimpleType::Ptr &itemType, const XsdFacet::Hash &facets, QString &errorMsg) const;
+ bool checkConstrainingFacetsUnion(const QString &value, const QString &lexicalValue, const XsdSimpleType::Ptr &simpleType, const XsdFacet::Hash &facets, QString &errorMsg) const;
+
+ /**
+ * Creates an atomic value of @p type from the given string @p value.
+ */
+ AtomicValue::Ptr fromLexical(const QString &value, const SchemaType::Ptr &type, const ReportContext::Ptr &context, const SourceLocationReflection *const reflection) const;
+
+ /**
+ * Converts a qualified name into a QXmlName according to the namespace
+ * mappings of the current node.
+ */
+ QXmlName convertToQName(const QString &name) const;
+
+ XsdSchemaContext::Ptr m_context;
+ XsdSchema::Ptr m_schema;
+ const NamePool::Ptr m_namePool;
+ QVector<QXmlName> m_namespaceBindings;
+ SourceLocationReflection* m_reflection;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsduserschematype.cpp b/src/xmlpatterns/schema/qxsduserschematype.cpp
new file mode 100644
index 0000000..a985ba4
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsduserschematype.cpp
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*
+ * NOTE: This file is included by qxsduserschematype_p.h
+ * if you need some includes, put them in qxsduserschematype_p.h (outside of the namespace)
+ */
+
+template<typename TSuperClass>
+void XsdUserSchemaType<TSuperClass>::setName(const QXmlName &name)
+{
+ m_name = name;
+}
+
+template<typename TSuperClass>
+QXmlName XsdUserSchemaType<TSuperClass>::name(const NamePool::Ptr&) const
+{
+ return m_name;
+}
+
+template<typename TSuperClass>
+QString XsdUserSchemaType<TSuperClass>::displayName(const NamePool::Ptr &np) const
+{
+ return np->displayName(m_name);
+}
+
+template<typename TSuperClass>
+void XsdUserSchemaType<TSuperClass>::setDerivationConstraints(const SchemaType::DerivationConstraints &constraints)
+{
+ m_derivationConstraints = constraints;
+}
+
+template<typename TSuperClass>
+SchemaType::DerivationConstraints XsdUserSchemaType<TSuperClass>::derivationConstraints() const
+{
+ return m_derivationConstraints;
+}
diff --git a/src/xmlpatterns/schema/qxsduserschematype_p.h b/src/xmlpatterns/schema/qxsduserschematype_p.h
new file mode 100644
index 0000000..842fb00
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsduserschematype_p.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdUserSchemaType_H
+#define Patternist_XsdUserSchemaType_H
+
+#include "qnamedschemacomponent_p.h"
+#include "qschematype_p.h"
+#include "qxsdannotated_p.h"
+
+template<typename N, typename M> class QHash;
+template<typename N> class QList;
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A base class for all user defined simple and complex types.
+ *
+ * This class was introduced to combine the SchemaType class and the
+ * NamedSchemaComponent class without explicit inheritance.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ template<typename TSuperClass>
+ class XsdUserSchemaType : public TSuperClass, public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdUserSchemaType> Ptr;
+
+ /**
+ * Sets the @p name of the type.
+ */
+ void setName(const QXmlName &name);
+
+ /**
+ * Returns the name of the type.
+ *
+ * @param namePool The pool the name belongs to.
+ */
+ virtual QXmlName name(const NamePool::Ptr &namePool) const;
+
+ /**
+ * Returns the display name of the type.
+ *
+ * @param namePool The pool the name belongs to.
+ */
+ virtual QString displayName(const NamePool::Ptr &namePool) const;
+
+ /**
+ * Sets the derivation @p constraints of the type.
+ */
+ void setDerivationConstraints(const SchemaType::DerivationConstraints &constraints);
+
+ /**
+ * Returns the derivation constraints of the type.
+ */
+ SchemaType::DerivationConstraints derivationConstraints() const;
+
+ private:
+ QXmlName m_name;
+ SchemaType::DerivationConstraints m_derivationConstraints;
+ };
+
+ #include "qxsduserschematype.cpp"
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel.cpp b/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel.cpp
new file mode 100644
index 0000000..e7a1503
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel.cpp
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdvalidatedxmlnodemodel_p.h"
+
+#include <QtCore/QUrl>
+#include <QtCore/QVariant>
+#include <QtCore/QVector>
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+XsdValidatedXmlNodeModel::XsdValidatedXmlNodeModel(const QAbstractXmlNodeModel *model)
+ : m_internalModel(model)
+{
+}
+
+XsdValidatedXmlNodeModel::~XsdValidatedXmlNodeModel()
+{
+}
+
+QUrl XsdValidatedXmlNodeModel::baseUri(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->baseUri(index);
+}
+
+QUrl XsdValidatedXmlNodeModel::documentUri(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->documentUri(index);
+}
+
+QXmlNodeModelIndex::NodeKind XsdValidatedXmlNodeModel::kind(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->kind(index);
+}
+
+QXmlNodeModelIndex::DocumentOrder XsdValidatedXmlNodeModel::compareOrder(const QXmlNodeModelIndex &index, const QXmlNodeModelIndex &otherIndex) const
+{
+ return m_internalModel->compareOrder(index, otherIndex);
+}
+
+QXmlNodeModelIndex XsdValidatedXmlNodeModel::root(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->root(index);
+}
+
+QXmlName XsdValidatedXmlNodeModel::name(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->name(index);
+}
+
+QString XsdValidatedXmlNodeModel::stringValue(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->stringValue(index);
+}
+
+QVariant XsdValidatedXmlNodeModel::typedValue(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->typedValue(index);
+}
+
+QExplicitlySharedDataPointer<QAbstractXmlForwardIterator<QXmlNodeModelIndex> > XsdValidatedXmlNodeModel::iterate(const QXmlNodeModelIndex &index, QXmlNodeModelIndex::Axis axis) const
+{
+ return m_internalModel->iterate(index, axis);
+}
+
+QPatternist::ItemIteratorPtr XsdValidatedXmlNodeModel::sequencedTypedValue(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->sequencedTypedValue(index);
+}
+
+QPatternist::ItemTypePtr XsdValidatedXmlNodeModel::type(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->type(index);
+}
+
+QXmlName::NamespaceCode XsdValidatedXmlNodeModel::namespaceForPrefix(const QXmlNodeModelIndex &index, const QXmlName::PrefixCode prefix) const
+{
+ return m_internalModel->namespaceForPrefix(index, prefix);
+}
+
+bool XsdValidatedXmlNodeModel::isDeepEqual(const QXmlNodeModelIndex &index, const QXmlNodeModelIndex &otherIndex) const
+{
+ return m_internalModel->isDeepEqual(index, otherIndex);
+}
+
+void XsdValidatedXmlNodeModel::sendNamespaces(const QXmlNodeModelIndex &index, QAbstractXmlReceiver *const receiver) const
+{
+ m_internalModel->sendNamespaces(index, receiver);
+}
+
+QVector<QXmlName> XsdValidatedXmlNodeModel::namespaceBindings(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->namespaceBindings(index);
+}
+
+QXmlNodeModelIndex XsdValidatedXmlNodeModel::elementById(const QXmlName &name) const
+{
+ return m_internalModel->elementById(name);
+}
+
+QVector<QXmlNodeModelIndex> XsdValidatedXmlNodeModel::nodesByIdref(const QXmlName &name) const
+{
+ return m_internalModel->nodesByIdref(name);
+}
+
+void XsdValidatedXmlNodeModel::copyNodeTo(const QXmlNodeModelIndex &index, QAbstractXmlReceiver *const receiver, const NodeCopySettings &settings) const
+{
+ return m_internalModel->copyNodeTo(index, receiver, settings);
+}
+
+QXmlNodeModelIndex XsdValidatedXmlNodeModel::nextFromSimpleAxis(SimpleAxis axis, const QXmlNodeModelIndex &origin) const
+{
+ return m_internalModel->nextFromSimpleAxis(axis, origin);
+}
+
+QVector<QXmlNodeModelIndex> XsdValidatedXmlNodeModel::attributes(const QXmlNodeModelIndex &index) const
+{
+ return m_internalModel->attributes(index);
+}
+
+void XsdValidatedXmlNodeModel::setAssignedElement(const QXmlNodeModelIndex &index, const XsdElement::Ptr &element)
+{
+ m_assignedElements.insert(index, element);
+}
+
+XsdElement::Ptr XsdValidatedXmlNodeModel::assignedElement(const QXmlNodeModelIndex &index) const
+{
+ if (m_assignedElements.contains(index))
+ return m_assignedElements.value(index);
+ else
+ return XsdElement::Ptr();
+}
+
+void XsdValidatedXmlNodeModel::setAssignedAttribute(const QXmlNodeModelIndex &index, const XsdAttribute::Ptr &attribute)
+{
+ m_assignedAttributes.insert(index, attribute);
+}
+
+XsdAttribute::Ptr XsdValidatedXmlNodeModel::assignedAttribute(const QXmlNodeModelIndex &index) const
+{
+ if (m_assignedAttributes.contains(index))
+ return m_assignedAttributes.value(index);
+ else
+ return XsdAttribute::Ptr();
+}
+
+void XsdValidatedXmlNodeModel::setAssignedType(const QXmlNodeModelIndex &index, const SchemaType::Ptr &type)
+{
+ m_assignedTypes.insert(index, type);
+}
+
+SchemaType::Ptr XsdValidatedXmlNodeModel::assignedType(const QXmlNodeModelIndex &index) const
+{
+ if (m_assignedTypes.contains(index))
+ return m_assignedTypes.value(index);
+ else
+ return SchemaType::Ptr();
+}
+
+void XsdValidatedXmlNodeModel::addIdIdRefBinding(const QString &id, const NamedSchemaComponent::Ptr &binding)
+{
+ m_idIdRefBindings[id].insert(binding);
+}
+
+QStringList XsdValidatedXmlNodeModel::idIdRefBindingIds() const
+{
+ return m_idIdRefBindings.keys();
+}
+
+QSet<NamedSchemaComponent::Ptr> XsdValidatedXmlNodeModel::idIdRefBindings(const QString &id) const
+{
+ return m_idIdRefBindings.value(id);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel_p.h b/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel_p.h
new file mode 100644
index 0000000..77fc8f4
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdvalidatedxmlnodemodel_p.h
@@ -0,0 +1,179 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdValidatedXmlNodeModel_H
+#define Patternist_XsdValidatedXmlNodeModel_H
+
+#include "qabstractxmlnodemodel.h"
+
+#include "qabstractxmlforwarditerator_p.h"
+#include "qitem_p.h"
+#include "qschematype_p.h"
+#include "qxsdelement_p.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short A delegate class that wraps around a QAbstractXmlNodeModel and provides
+ * additional validation specific information.
+ *
+ * This class represents the input XML document enriched with additional type
+ * information that has been assigned during validation.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdValidatedXmlNodeModel : public QAbstractXmlNodeModel
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdValidatedXmlNodeModel> Ptr;
+ typedef QList<Ptr> List;
+
+ /**
+ * Creates a new validated xml node model.
+ */
+ XsdValidatedXmlNodeModel(const QAbstractXmlNodeModel *model);
+
+ /**
+ * Destroys the validated xml node model.
+ */
+ virtual ~XsdValidatedXmlNodeModel();
+
+ virtual QUrl baseUri(const QXmlNodeModelIndex &ni) const;
+ virtual QUrl documentUri(const QXmlNodeModelIndex &ni) const;
+ virtual QXmlNodeModelIndex::NodeKind kind(const QXmlNodeModelIndex &ni) const;
+ virtual QXmlNodeModelIndex::DocumentOrder compareOrder(const QXmlNodeModelIndex &ni1, const QXmlNodeModelIndex &ni2) const;
+ virtual QXmlNodeModelIndex root(const QXmlNodeModelIndex &n) const;
+ virtual QXmlName name(const QXmlNodeModelIndex &ni) const;
+ virtual QString stringValue(const QXmlNodeModelIndex &n) const;
+ virtual QVariant typedValue(const QXmlNodeModelIndex &n) const;
+ virtual QExplicitlySharedDataPointer<QAbstractXmlForwardIterator<QXmlNodeModelIndex> > iterate(const QXmlNodeModelIndex &ni, QXmlNodeModelIndex::Axis axis) const;
+ virtual QPatternist::ItemIteratorPtr sequencedTypedValue(const QXmlNodeModelIndex &ni) const;
+ virtual QPatternist::ItemTypePtr type(const QXmlNodeModelIndex &ni) const;
+ virtual QXmlName::NamespaceCode namespaceForPrefix(const QXmlNodeModelIndex &ni, const QXmlName::PrefixCode prefix) const;
+ virtual bool isDeepEqual(const QXmlNodeModelIndex &ni1, const QXmlNodeModelIndex &ni2) const;
+ virtual void sendNamespaces(const QXmlNodeModelIndex &n, QAbstractXmlReceiver *const receiver) const;
+ virtual QVector<QXmlName> namespaceBindings(const QXmlNodeModelIndex &n) const;
+ virtual QXmlNodeModelIndex elementById(const QXmlName &NCName) const;
+ virtual QVector<QXmlNodeModelIndex> nodesByIdref(const QXmlName &NCName) const;
+ virtual void copyNodeTo(const QXmlNodeModelIndex &node, QAbstractXmlReceiver *const receiver, const NodeCopySettings &) const;
+
+ /**
+ * Sets the @p element that is assigned to the xml node at @p index.
+ */
+ void setAssignedElement(const QXmlNodeModelIndex &index, const XsdElement::Ptr &element);
+
+ /**
+ * Returns the element that is assigned to the xml node at @p index.
+ */
+ XsdElement::Ptr assignedElement(const QXmlNodeModelIndex &index) const;
+
+ /**
+ * Sets the @p attribute that is assigned to the xml node at @p index.
+ */
+ void setAssignedAttribute(const QXmlNodeModelIndex &index, const XsdAttribute::Ptr &attribute);
+
+ /**
+ * Returns the attribute that is assigned to the xml node at @p index.
+ */
+ XsdAttribute::Ptr assignedAttribute(const QXmlNodeModelIndex &index) const;
+
+ /**
+ * Sets the @p type that is assigned to the xml node at @p index.
+ *
+ * @note The type can be a different than the type of the element or
+ * attribute that is assigned to the index, since the instance
+ * document can overwrite it by xsi:type.
+ */
+ void setAssignedType(const QXmlNodeModelIndex &index, const SchemaType::Ptr &type);
+
+ /**
+ * Returns the type that is assigned to the xml node at @p index.
+ */
+ SchemaType::Ptr assignedType(const QXmlNodeModelIndex &index) const;
+
+ /**
+ * Adds the attribute or element @p binding with the given @p id.
+ */
+ void addIdIdRefBinding(const QString &id, const NamedSchemaComponent::Ptr &binding);
+
+ /**
+ * Returns a list of all binding ids.
+ */
+ QStringList idIdRefBindingIds() const;
+
+ /**
+ * Returns the set of bindings with the given @p id.
+ */
+ QSet<NamedSchemaComponent::Ptr> idIdRefBindings(const QString &id) const;
+
+ protected:
+ virtual QXmlNodeModelIndex nextFromSimpleAxis(SimpleAxis axis, const QXmlNodeModelIndex &origin) const;
+ virtual QVector<QXmlNodeModelIndex> attributes(const QXmlNodeModelIndex &element) const;
+
+ private:
+ QExplicitlySharedDataPointer<const QAbstractXmlNodeModel> m_internalModel;
+ QHash<QXmlNodeModelIndex, XsdElement::Ptr> m_assignedElements;
+ QHash<QXmlNodeModelIndex, XsdAttribute::Ptr> m_assignedAttributes;
+ QHash<QXmlNodeModelIndex, SchemaType::Ptr> m_assignedTypes;
+ QHash<QString, QSet<NamedSchemaComponent::Ptr> > m_idIdRefBindings;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
new file mode 100644
index 0000000..1505152
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader.cpp
@@ -0,0 +1,1276 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdvalidatinginstancereader_p.h"
+
+#include "qabstractdatetime_p.h"
+#include "qacceltreeresourceloader_p.h"
+#include "qbase64binary_p.h"
+#include "qboolean_p.h"
+#include "qcommonnamespaces_p.h"
+#include "qderivedinteger_p.h"
+#include "qduration_p.h"
+#include "qgenericstaticcontext_p.h"
+#include "qhexbinary_p.h"
+#include "qnamespaceresolver_p.h"
+#include "qpatternplatform_p.h"
+#include "qqnamevalue_p.h"
+#include "qsourcelocationreflection_p.h"
+#include "qvaluefactory_p.h"
+#include "qxmlnamepool.h"
+#include "qxmlquery_p.h"
+#include "qxmlschema_p.h"
+#include "qxsdschemahelper_p.h"
+#include "qxsdschemamerger_p.h"
+#include "qxsdstatemachine_p.h"
+#include "qxsdstatemachinebuilder_p.h"
+#include "qxsdtypechecker_p.h"
+
+#include "qxsdschemadebugger_p.h"
+
+#include <QtCore/QFile>
+#include <QtXmlPatterns/QXmlQuery>
+#include <QtXmlPatterns/QXmlResultItems>
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+namespace QPatternist
+{
+ template <>
+ template <>
+ bool XsdStateMachine<XsdTerm::Ptr>::inputEqualsTransition<QXmlName>(QXmlName name, XsdTerm::Ptr term) const
+ {
+ if (term->isElement()) {
+ return (XsdElement::Ptr(term)->name(m_namePool) == name);
+ } else if (term->isWildcard()) {
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ if (name.namespaceURI() == StandardNamespaces::empty) {
+ name.setNamespaceURI(m_namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+ }
+
+ return XsdSchemaHelper::wildcardAllowsExpandedName(name, XsdWildcard::Ptr(term), m_namePool);
+ }
+
+ return false;
+ }
+}
+
+XsdValidatingInstanceReader::XsdValidatingInstanceReader(XsdValidatedXmlNodeModel *model, const QUrl &documentUri, const XsdSchemaContext::Ptr &context)
+ : XsdInstanceReader(model, context)
+ , m_model(model)
+ , m_namePool(m_context->namePool())
+ , m_xsiNilName(m_namePool->allocateQName(CommonNamespaces::XSI, QLatin1String("nil")))
+ , m_xsiTypeName(m_namePool->allocateQName(CommonNamespaces::XSI, QLatin1String("type")))
+ , m_xsiSchemaLocationName(m_namePool->allocateQName(CommonNamespaces::XSI, QLatin1String("schemaLocation")))
+ , m_xsiNoNamespaceSchemaLocationName(m_namePool->allocateQName(CommonNamespaces::XSI, QLatin1String("noNamespaceSchemaLocation")))
+ , m_documentUri(documentUri)
+{
+ m_idRefsType = m_context->schemaTypeFactory()->createSchemaType(m_namePool->allocateQName(CommonNamespaces::WXS, QLatin1String("IDREFS")));
+}
+
+void XsdValidatingInstanceReader::addSchema(const XsdSchema::Ptr &schema, const QUrl &locationUrl)
+{
+ if (!m_mergedSchemas.contains(locationUrl)) {
+ m_mergedSchemas.insert(locationUrl, QStringList() << schema->targetNamespace());
+ } else {
+ QStringList &targetNamespaces = m_mergedSchemas[locationUrl];
+ if (targetNamespaces.contains(schema->targetNamespace()))
+ return;
+
+ targetNamespaces.append(schema->targetNamespace());
+ }
+
+ const XsdSchemaMerger merger(m_schema, schema);
+ m_schema = merger.mergedSchema();
+/*
+ XsdSchemaDebugger dbg(m_namePool);
+ dbg.dumpSchema(m_schema);
+*/
+}
+
+bool XsdValidatingInstanceReader::read()
+{
+ while (!atEnd()) {
+ readNext();
+
+ if (isEndElement())
+ return true;
+
+ if (isStartElement()) {
+ const QXmlName elementName = name();
+ const QXmlItem currentItem = item();
+ bool hasStateMachine = false;
+ XsdElement::Ptr processedElement;
+
+ if (!validate(hasStateMachine, processedElement))
+ return false;
+
+ read();
+
+ if (processedElement) { // for wildcard with 'skip' we have no element
+ m_model->setAssignedElement(currentItem.toNodeModelIndex(), processedElement);
+
+ // check identity constraints after all child nodes have been
+ // validated, so that we know there assigned types
+ validateIdentityConstraint(processedElement, currentItem);
+ }
+
+ if (!m_stateMachines.isEmpty() && hasStateMachine) {
+ if (!m_stateMachines.top().inEndState()) {
+ error(QtXmlPatterns::tr("element %1 is missing child element").arg(formatKeyword(m_namePool->displayName(elementName))));
+ return false;
+ }
+ m_stateMachines.pop();
+ }
+ }
+ }
+
+ // final validations
+
+ // check IDREF occurrences
+ const QStringList ids = m_model->idIdRefBindingIds();
+ QSetIterator<QString> it(m_idRefs);
+ while (it.hasNext()) {
+ const QString id = it.next();
+ if (!ids.contains(id)) {
+ error(QtXmlPatterns::tr("there is one IDREF value with no corresponding ID: %1").arg(formatKeyword(id)));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+void XsdValidatingInstanceReader::error(const QString &msg) const
+{
+ m_context.data()->error(msg, XsdSchemaContext::XSDError, sourceLocation());
+}
+
+bool XsdValidatingInstanceReader::loadSchema(const QString &targetNamespace, const QUrl &location)
+{
+ const AutoPtr<QNetworkReply> reply(AccelTreeResourceLoader::load(location, m_context->networkAccessManager(),
+ m_context, AccelTreeResourceLoader::ContinueOnError));
+ if (!reply)
+ return true;
+
+ // we have to create a separated schema context here, that however shares the type factory
+ XsdSchemaContext::Ptr context(new XsdSchemaContext(m_namePool));
+ context->m_schemaTypeFactory = m_context->m_schemaTypeFactory;
+
+ QXmlSchemaPrivate schema(context);
+ schema.load(reply.data(), location, targetNamespace);
+ if (!schema.isValid()) {
+ error(QtXmlPatterns::tr("loaded schema file is invalid"));
+ return false;
+ }
+
+ addSchema(schema.m_schemaParserContext->schema(), location);
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validate(bool &hasStateMachine, XsdElement::Ptr &processedElement)
+{
+ // first check if a custom schema is defined
+ if (hasAttribute(m_xsiSchemaLocationName)) {
+ const QString schemaLocation = attribute(m_xsiSchemaLocationName);
+ const QStringList parts = schemaLocation.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ if ((parts.count()%2) == 1) {
+ error(QtXmlPatterns::tr("%1 contains invalid data").arg(formatKeyword(m_namePool, m_xsiSchemaLocationName)));
+ return false;
+ }
+
+ for (int i = 0; i < parts.count(); i += 2) {
+ const QString identifier = QString::fromLatin1("%1 %2").arg(parts.at(i)).arg(parts.at(i + 1));
+ if (m_processedSchemaLocations.contains(identifier))
+ continue;
+ else
+ m_processedSchemaLocations.insert(identifier);
+
+ // check constraint 4) from http://www.w3.org/TR/xmlschema-1/#schema-loc (only valid for XML Schema 1.0?)
+ if (m_processedNamespaces.contains(parts.at(i))) {
+ error(QtXmlPatterns::tr("xsi:schemaLocation namespace %1 has already appeared earlier in the instance document").arg(formatKeyword(parts.at(i))));
+ return false;
+ }
+
+ QUrl url(parts.at(i + 1));
+ if (url.isRelative()) {
+ Q_ASSERT(m_documentUri.isValid());
+
+ url = m_documentUri.resolved(url);
+ }
+
+ loadSchema(parts.at(i), url);
+ }
+ }
+
+ if (hasAttribute(m_xsiNoNamespaceSchemaLocationName)) {
+ const QString schemaLocation = attribute(m_xsiNoNamespaceSchemaLocationName);
+
+ if (!m_processedSchemaLocations.contains(schemaLocation)) {
+ m_processedSchemaLocations.insert(schemaLocation);
+
+ if (m_processedNamespaces.contains(QString())) {
+ error(QtXmlPatterns::tr("xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute"));
+ return false;
+ }
+
+ QUrl url(schemaLocation);
+ if (url.isRelative()) {
+ Q_ASSERT(m_documentUri.isValid());
+
+ url = m_documentUri.resolved(url);
+ }
+
+ loadSchema(QString(), url);
+ }
+ }
+
+ m_processedNamespaces.insert(m_namePool->stringForNamespace(name().namespaceURI()));
+
+ if (!m_schema) {
+ error(QtXmlPatterns::tr("no schema defined for validation"));
+ return false;
+ }
+
+ // check if we are 'inside' a type definition
+ if (m_stateMachines.isEmpty()) {
+ // find out the type of the top-level element
+ XsdElement::Ptr element = elementByName(name());
+ if (!element) {
+ if (!hasAttribute(m_xsiTypeName)) {
+ error(QtXmlPatterns::tr("no definition for element %1 available").arg(formatKeyword(m_namePool, name())));
+ return false;
+ }
+
+ // This instance document has an element with no definition in the schema
+ // but an explicitly given type, that is fine according to the spec.
+ // We will create an element definition manually here and continue the
+ // normal validation process
+ element = XsdElement::Ptr(new XsdElement());
+ element->setName(name());
+ element->setIsAbstract(false);
+ element->setIsNillable(hasAttribute(m_xsiNilName));
+
+ const QString type = qNameAttribute(m_xsiTypeName);
+ const QXmlName typeName = convertToQName(type);
+
+ const SchemaType::Ptr elementType = typeByName(typeName);
+ if (!elementType) {
+ error(QtXmlPatterns::tr("specified type %1 is not known to the schema").arg(formatType(m_namePool, typeName)));
+ return false;
+ }
+ element->setType(elementType);
+ }
+
+ // rememeber the element we process
+ processedElement = element;
+
+ if (!validateElement(element, hasStateMachine)) {
+ return false;
+ }
+
+ } else {
+ if (!m_stateMachines.top().proceed<QXmlName>(name())) {
+ error(QtXmlPatterns::tr("element %1 is not defined in this scope").arg(formatKeyword(m_namePool, name())));
+ return false;
+ }
+
+ const XsdTerm::Ptr term = m_stateMachines.top().lastTransition();
+ if (term->isElement()) {
+ const XsdElement::Ptr element(term);
+
+ // rememeber the element we process
+ processedElement = element;
+
+ if (!validateElement(element, hasStateMachine))
+ return false;
+
+ } else {
+ const XsdWildcard::Ptr wildcard(term);
+ if (wildcard->processContents() != XsdWildcard::Skip) {
+ XsdElement::Ptr elementDeclaration = elementByName(name());
+ if (!elementDeclaration) {
+ if (hasAttribute(m_xsiTypeName)) {
+ // This instance document has an element with no definition in the schema
+ // but an explicitly given type, that is fine according to the spec.
+ // We will create an element definition manually here and continue the
+ // normal validation process
+ elementDeclaration = XsdElement::Ptr(new XsdElement());
+ elementDeclaration->setName(name());
+ elementDeclaration->setIsAbstract(false);
+ elementDeclaration->setIsNillable(hasAttribute(m_xsiNilName));
+
+ const QString type = qNameAttribute(m_xsiTypeName);
+ const QXmlName typeName = convertToQName(type);
+
+ const SchemaType::Ptr elementType = typeByName(typeName);
+ if (!elementType) {
+ error(QtXmlPatterns::tr("specified type %1 is not known to the schema").arg(formatType(m_namePool, typeName)));
+ return false;
+ }
+ elementDeclaration->setType(elementType);
+ }
+ }
+
+ if (!elementDeclaration) {
+ if (wildcard->processContents() == XsdWildcard::Strict) {
+ error(QtXmlPatterns::tr("declaration for element %1 does not exist").arg(formatKeyword(m_namePool->displayName(name()))));
+ return false;
+ } else {
+ // in this case we put a state machine for the xs:anyType on the statemachine stack,
+ // so we accept every content of this element
+
+ createAndPushStateMachine(anyType()->contentType()->particle());
+ hasStateMachine = true;
+ }
+ } else {
+ if (!validateElement(elementDeclaration, hasStateMachine)) {
+ if (wildcard->processContents() == XsdWildcard::Strict) {
+ error(QtXmlPatterns::tr("element %1 contains invalid content").arg(formatKeyword(m_namePool->displayName(name()))));
+ return false;
+ }
+ }
+
+ // rememeber the type of that element node
+ m_model->setAssignedType(item().toNodeModelIndex(), elementDeclaration->type());
+ }
+ } else { // wildcard process contents type is Skip
+ // in this case we put a state machine for the xs:anyType on the statemachine stack,
+ // so we accept every content of this element
+
+ const XsdWildcard::Ptr wildcard(new XsdWildcard());
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ wildcard->setProcessContents(XsdWildcard::Skip);
+
+ const XsdParticle::Ptr outerParticle(new XsdParticle());
+ outerParticle->setMinimumOccurs(1);
+ outerParticle->setMaximumOccurs(1);
+
+ const XsdParticle::Ptr innerParticle(new XsdParticle());
+ innerParticle->setMinimumOccurs(0);
+ innerParticle->setMaximumOccursUnbounded(true);
+ innerParticle->setTerm(wildcard);
+
+ const XsdModelGroup::Ptr outerModelGroup(new XsdModelGroup());
+ outerModelGroup->setCompositor(XsdModelGroup::SequenceCompositor);
+ outerModelGroup->setParticles(XsdParticle::List() << innerParticle);
+ outerParticle->setTerm(outerModelGroup);
+
+ createAndPushStateMachine(outerParticle);
+ hasStateMachine = true;
+ }
+ }
+ }
+
+ return true;
+}
+
+void XsdValidatingInstanceReader::createAndPushStateMachine(const XsdParticle::Ptr &particle)
+{
+ XsdStateMachine<XsdTerm::Ptr> stateMachine(m_namePool);
+
+ XsdStateMachineBuilder builder(&stateMachine, m_namePool, XsdStateMachineBuilder::ValidatingMode);
+ const XsdStateMachine<XsdTerm::Ptr>::StateId endState = builder.reset();
+ const XsdStateMachine<XsdTerm::Ptr>::StateId startState = builder.buildParticle(particle, endState);
+ builder.addStartState(startState);
+
+/*
+ QString fileName = QString("/tmp/foo_%1.dot").arg(m_namePool->displayName(complexType->name(m_namePool)));
+ QString pngFileName = QString("/tmp/foo_%1.png").arg(m_namePool->displayName(complexType->name(m_namePool)));
+ QFile file(fileName);
+ file.open(QIODevice::WriteOnly);
+ stateMachine.outputGraph(&file, "Hello");
+ file.close();
+ ::system(QString("dot -Tpng %1 -o%2").arg(fileName).arg(pngFileName).toLatin1().data());
+*/
+
+ stateMachine = stateMachine.toDFA();
+
+ m_stateMachines.push(stateMachine);
+}
+
+bool XsdValidatingInstanceReader::validateElement(const XsdElement::Ptr &declaration, bool &hasStateMachine)
+{
+ // http://www.w3.org/TR/xmlschema11-1/#d0e10998
+
+ bool isNilled = false;
+
+ // 1 tested already, 'declaration' corresponds D
+
+ // 2
+ if (declaration->isAbstract()) {
+ error(QtXmlPatterns::tr("element %1 is declared as abstract").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+
+ // 3
+ if (!declaration->isNillable()) {
+ if (hasAttribute(m_xsiNilName)) {
+ error(QtXmlPatterns::tr("element %1 is not nillable").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false; // 3.1
+ }
+ } else {
+ if (hasAttribute(m_xsiNilName)) {
+ const QString value = attribute(m_xsiNilName);
+ const Boolean::Ptr nil = Boolean::fromLexical(value);
+ if (nil->hasError()) {
+ error(QtXmlPatterns::tr("attribute %1 contains invalid data: %1").arg(formatKeyword(QLatin1String("nil"))).arg(formatData(value)));
+ return false;
+ }
+
+ // 3.2.3
+ if (nil->as<Boolean>()->value() == true) {
+ // 3.2.3.1
+ if (hasChildElement() || hasChildText()) {
+ error(QtXmlPatterns::tr("element contains content although it is nillable"));
+ return false;
+ }
+
+ // 3.2.3.2
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdElement::ValueConstraint::Fixed) {
+ error(QtXmlPatterns::tr("fixed value constrained not allowed if element is nillable"));
+ return false;
+ }
+ }
+
+ isNilled = nil->as<Boolean>()->value();
+ }
+ }
+
+ SchemaType::Ptr finalElementType = declaration->type();
+
+ // 4
+ if (hasAttribute(m_xsiTypeName)) {
+ const QString type = qNameAttribute(m_xsiTypeName);
+ const QXmlName typeName = convertToQName(type);
+
+ const SchemaType::Ptr elementType = typeByName(typeName);
+ // 4.1
+ if (!elementType) {
+ error(QtXmlPatterns::tr("specified type %1 is not known to the schema").arg(formatType(m_namePool, typeName)));
+ return false;
+ }
+
+ // 4.2
+ SchemaType::DerivationConstraints constraints = 0;
+ if (declaration->disallowedSubstitutions() & NamedSchemaComponent::ExtensionConstraint)
+ constraints |= SchemaType::ExtensionConstraint;
+ if (declaration->disallowedSubstitutions() & NamedSchemaComponent::RestrictionConstraint)
+ constraints |= SchemaType::RestrictionConstraint;
+
+ if (!XsdSchemaHelper::isValidlySubstitutable(elementType, declaration->type(), constraints)) {
+ if (declaration->type()->name(m_namePool) != BuiltinTypes::xsAnyType->name(m_namePool)) { // xs:anyType is a valid substitutable type here
+ error(QtXmlPatterns::tr("specified type %1 is not validly substitutable with element type %2").arg(formatType(m_namePool, elementType)).arg(formatType(m_namePool, declaration->type())));
+ return false;
+ }
+ }
+
+ finalElementType = elementType;
+ }
+
+ if (!validateElementType(declaration, finalElementType, isNilled, hasStateMachine))
+ return false;
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateElementType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled, bool &hasStateMachine)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e11749
+
+ // 1 checked already
+
+ // 2
+ if (type->isComplexType() && type->isDefinedBySchema()) {
+ if (XsdComplexType::Ptr(type)->isAbstract()) {
+ error(QtXmlPatterns::tr("complex type %1 is not allowed to be abstract").arg(formatType(m_namePool, type)));
+ return false;
+ }
+ }
+
+ // 3
+ if (type->isSimpleType())
+ return validateElementSimpleType(declaration, type, isNilled); // 3.1
+ else
+ return validateElementComplexType(declaration, type, isNilled, hasStateMachine); // 3.2
+}
+
+bool XsdValidatingInstanceReader::validateElementSimpleType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e11749
+
+ // 3.1.1
+ const QSet<QXmlName> allowedAttributes(QSet<QXmlName>() << m_xsiNilName << m_xsiTypeName << m_xsiSchemaLocationName << m_xsiNoNamespaceSchemaLocationName);
+ QSet<QXmlName> elementAttributes = attributeNames();
+ elementAttributes.subtract(allowedAttributes);
+ if (!elementAttributes.isEmpty()) {
+ error(QtXmlPatterns::tr("element %1 contains not allowed attributes").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+
+ // 3.1.2
+ if (hasChildElement()) {
+ error(QtXmlPatterns::tr("element %1 contains not allowed child element").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+
+ // 3.1.3
+ if (!isNilled) {
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(type, m_context);
+
+ QString actualValue;
+ if (hasChildText()) {
+ actualValue = XsdTypeChecker::normalizedValue(text(), facets);
+ } else {
+ if (declaration->valueConstraint())
+ actualValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ }
+
+ QString errorMsg;
+ AnySimpleType::Ptr boundType;
+
+ const XsdTypeChecker checker(m_context, namespaceBindings(item().toNodeModelIndex()), sourceLocation());
+ if (!checker.isValidString(actualValue, type, errorMsg, &boundType)) {
+ error(QtXmlPatterns::tr("content of element %1 does not match its type definition: %2").arg(formatKeyword(declaration->displayName(m_namePool))).arg(errorMsg));
+ return false;
+ }
+
+ // additional check
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdElement::ValueConstraint::Fixed) {
+ const QString actualConstraintValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ if (!text().isEmpty() && !checker.valuesAreEqual(actualValue, actualConstraintValue, type)) {
+ error(QtXmlPatterns::tr("content of element %1 does not match defined value constraint").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+ }
+
+ // 4 checked in validateElement already
+
+ // rememeber the type of that element node
+ m_model->setAssignedType(item().toNodeModelIndex(), type);
+
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(type, m_context);
+ const QString actualValue = XsdTypeChecker::normalizedValue(text(), facets);
+
+ if (BuiltinTypes::xsID->wxsTypeMatches(type)) {
+ addIdIdRefBinding(actualValue, declaration);
+ }
+
+ if (m_idRefsType->wxsTypeMatches(type)) {
+ const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < idRefs.count(); ++i) {
+ m_idRefs.insert(idRefs.at(i));
+ }
+ } else if (BuiltinTypes::xsIDREF->wxsTypeMatches(type)) {
+ m_idRefs.insert(actualValue);
+ }
+
+ return true;
+}
+
+static bool hasIDAttributeUse(const XsdAttributeUse::List &uses)
+{
+ const int count = uses.count();
+ for (int i = 0; i < count; ++i) {
+ if (BuiltinTypes::xsID->wxsTypeMatches(uses.at(i)->attribute()->type()))
+ return true;
+ }
+
+ return false;
+}
+
+bool XsdValidatingInstanceReader::validateElementComplexType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled, bool &hasStateMachine)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-complex-type
+
+ // 1
+ if (!isNilled) {
+ XsdComplexType::Ptr complexType;
+
+ if (type->isDefinedBySchema()) {
+ complexType = XsdComplexType::Ptr(type);
+ } else {
+ if (type->name(m_namePool) == BuiltinTypes::xsAnyType->name(m_namePool))
+ complexType = anyType();
+ }
+
+ if (complexType) {
+ // 1.1
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Empty) {
+ if (hasChildText() || hasChildElement()) {
+ error(QtXmlPatterns::tr("element %1 contains not allowed child content").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+
+ // 1.2
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Simple) {
+ if (hasChildElement()) {
+ error(QtXmlPatterns::tr("element %1 contains not allowed child element").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(complexType->contentType()->simpleType(), m_context);
+ QString actualValue;
+ if (hasChildText()) {
+ actualValue = XsdTypeChecker::normalizedValue(text(), facets);
+ } else {
+ if (declaration->valueConstraint())
+ actualValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ }
+
+ QString errorMsg;
+ AnySimpleType::Ptr boundType;
+ const XsdTypeChecker checker(m_context, namespaceBindings(item().toNodeModelIndex()), sourceLocation());
+ if (!checker.isValidString(actualValue, complexType->contentType()->simpleType(), errorMsg, &boundType)) {
+ error(QtXmlPatterns::tr("content of element %1 does not match its type definition: %2").arg(formatKeyword(declaration->displayName(m_namePool))).arg(errorMsg));
+ return false;
+ }
+
+ // additional check
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdElement::ValueConstraint::Fixed) {
+ if (!checker.valuesAreEqual(actualValue, declaration->valueConstraint()->value(), boundType)) {
+ error(QtXmlPatterns::tr("content of element %1 does not match defined value constraint").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+ }
+
+ // 1.3
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly) {
+ if (!text().simplified().isEmpty()) {
+ error(QtXmlPatterns::tr("element %1 contains not allowed text content").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+
+ // 1.4
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::ElementOnly ||
+ complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed) {
+
+ if (complexType->contentType()->particle()) {
+ createAndPushStateMachine(complexType->contentType()->particle());
+ hasStateMachine = true;
+ }
+
+ // additional check
+ if (complexType->contentType()->variety() == XsdComplexType::ContentType::Mixed) {
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdElement::ValueConstraint::Fixed) {
+ if (hasChildElement()) {
+ error(QtXmlPatterns::tr("element %1 can not contain other elements, as it has a fixed content").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(complexType->contentType()->simpleType(), m_context);
+ QString actualValue;
+ if (hasChildText()) {
+ actualValue = XsdTypeChecker::normalizedValue(text(), facets);
+ } else {
+ if (declaration->valueConstraint())
+ actualValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ }
+
+ if (actualValue != declaration->valueConstraint()->value()) {
+ error(QtXmlPatterns::tr("content of element %1 does not match defined value constraint").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (type->isDefinedBySchema()) {
+ const XsdComplexType::Ptr complexType(type);
+
+ // create a lookup hash for faster access
+ QHash<QXmlName, XsdAttributeUse::Ptr> attributeUseHash;
+ {
+ const XsdAttributeUse::List attributeUses = complexType->attributeUses();
+ for (int i = 0; i < attributeUses.count(); ++i)
+ attributeUseHash.insert(attributeUses.at(i)->attribute()->name(m_namePool), attributeUses.at(i));
+ }
+
+ const QSet<QXmlName> attributes(attributeNames());
+
+ // 3
+ QHashIterator<QXmlName, XsdAttributeUse::Ptr> usesIt(attributeUseHash);
+ while (usesIt.hasNext()) {
+ usesIt.next();
+
+ if (usesIt.value()->isRequired()) {
+ if (!attributes.contains(usesIt.key())) {
+ error(QtXmlPatterns::tr("element %1 is missing required attribute %2").arg(formatKeyword(declaration->displayName(m_namePool)))
+ .arg(formatKeyword(m_namePool->displayName(usesIt.key()))));
+ return false;
+ }
+ }
+ }
+
+ bool hasIDAttribute = hasIDAttributeUse(complexType->attributeUses());
+
+ // 2
+ QSetIterator<QXmlName> it(attributes);
+ while (it.hasNext()) {
+ const QXmlName attributeName = it.next();
+
+ // skip builtin attributes
+ if (attributeName == m_xsiNilName ||
+ attributeName == m_xsiTypeName ||
+ attributeName == m_xsiSchemaLocationName ||
+ attributeName == m_xsiNoNamespaceSchemaLocationName)
+ continue;
+
+ // 2.1
+ if (attributeUseHash.contains(attributeName) && (attributeUseHash.value(attributeName)->useType() != XsdAttributeUse::ProhibitedUse)) {
+ if (!validateAttribute(attributeUseHash.value(attributeName), attribute(attributeName)))
+ return false;
+ } else { // 2.2
+ if (complexType->attributeWildcard()) {
+ const XsdWildcard::Ptr wildcard(complexType->attributeWildcard());
+ if (!validateAttributeWildcard(attributeName, wildcard)) {
+ error(QtXmlPatterns::tr("attribute %1 does not match the attribute wildcard").arg(formatKeyword(m_namePool->displayName(attributeName))));
+ return false;
+ }
+
+ if (wildcard->processContents() != XsdWildcard::Skip) {
+ const XsdAttribute::Ptr attributeDeclaration = attributeByName(attributeName);
+
+ if (!attributeDeclaration) {
+ if (wildcard->processContents() == XsdWildcard::Strict) {
+ error(QtXmlPatterns::tr("declaration for attribute %1 does not exist").arg(formatKeyword(m_namePool->displayName(attributeName))));
+ return false;
+ }
+ } else {
+ if (BuiltinTypes::xsID->wxsTypeMatches(attributeDeclaration->type())) {
+ if (hasIDAttribute) {
+ error(QtXmlPatterns::tr("element %1 contains two attributes of type %2")
+ .arg(formatKeyword(declaration->displayName(m_namePool)))
+ .arg(formatKeyword("ID")));
+ return false;
+ }
+
+ hasIDAttribute = true;
+ }
+
+ if (!validateAttribute(attributeDeclaration, attribute(attributeName))) {
+ if (wildcard->processContents() == XsdWildcard::Strict) {
+ error(QtXmlPatterns::tr("attribute %1 contains invalid content").arg(formatKeyword(m_namePool->displayName(attributeName))));
+ return false;
+ }
+ }
+ }
+ }
+ } else {
+ error(QtXmlPatterns::tr("element %1 contains unknown attribute %2").arg(formatKeyword(declaration->displayName(m_namePool)))
+ .arg(formatKeyword(m_namePool->displayName(attributeName))));
+ return false;
+ }
+ }
+ }
+ }
+
+ // 4
+ // so what?...
+
+ // 5
+ // hmm...
+
+ // 6
+ // TODO: check assertions
+
+ // 7
+ // TODO: check type table restrictions
+
+ // rememeber the type of that element node
+ m_model->setAssignedType(item().toNodeModelIndex(), type);
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateAttribute(const XsdAttributeUse::Ptr &declaration, const QString &value)
+{
+ const AnySimpleType::Ptr attributeType = declaration->attribute()->type();
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(attributeType, m_context);
+
+ const QString actualValue = XsdTypeChecker::normalizedValue(value, facets);
+
+ QString errorMsg;
+ AnySimpleType::Ptr boundType;
+
+ const QXmlNodeModelIndex index = attributeItem(declaration->attribute()->name(m_namePool)).toNodeModelIndex();
+
+ const XsdTypeChecker checker(m_context, namespaceBindings(index), sourceLocation());
+ if (!checker.isValidString(actualValue, attributeType, errorMsg, &boundType)) {
+ error(QtXmlPatterns::tr("content of attribute %1 does not match its type definition: %2").arg(formatKeyword(declaration->attribute()->displayName(m_namePool))).arg(errorMsg));
+ return false;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-au
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdAttributeUse::ValueConstraint::Fixed) {
+ const QString actualConstraintValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ if (!checker.valuesAreEqual(actualValue, actualConstraintValue, attributeType)) {
+ error(QtXmlPatterns::tr("content of attribute %1 does not match defined value constraint").arg(formatKeyword(declaration->attribute()->displayName(m_namePool))));
+ return false;
+ }
+ }
+
+ if (BuiltinTypes::xsID->wxsTypeMatches(declaration->attribute()->type())) {
+ addIdIdRefBinding(actualValue, declaration->attribute());
+ }
+
+ if (m_idRefsType->wxsTypeMatches(declaration->attribute()->type())) {
+ const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < idRefs.count(); ++i)
+ m_idRefs.insert(idRefs.at(i));
+ } else if (BuiltinTypes::xsIDREF->wxsTypeMatches(declaration->attribute()->type())) {
+ m_idRefs.insert(actualValue);
+ }
+
+ m_model->setAssignedType(index, declaration->attribute()->type());
+ m_model->setAssignedAttribute(index, declaration->attribute());
+
+ return true;
+}
+
+//TODO: merge that with the method above
+bool XsdValidatingInstanceReader::validateAttribute(const XsdAttribute::Ptr &declaration, const QString &value)
+{
+ const AnySimpleType::Ptr attributeType = declaration->type();
+ const XsdFacet::Hash facets = XsdTypeChecker::mergedFacetsForType(attributeType, m_context);
+
+ const QString actualValue = XsdTypeChecker::normalizedValue(value, facets);
+
+ QString errorMsg;
+ AnySimpleType::Ptr boundType;
+
+ const QXmlNodeModelIndex index = attributeItem(declaration->name(m_namePool)).toNodeModelIndex();
+
+ const XsdTypeChecker checker(m_context, namespaceBindings(index), sourceLocation());
+ if (!checker.isValidString(actualValue, attributeType, errorMsg, &boundType)) {
+ error(QtXmlPatterns::tr("content of attribute %1 does not match its type definition: %2").arg(formatKeyword(declaration->displayName(m_namePool))).arg(errorMsg));
+ return false;
+ }
+
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-au
+ if (declaration->valueConstraint() && declaration->valueConstraint()->variety() == XsdAttribute::ValueConstraint::Fixed) {
+ const QString actualConstraintValue = XsdTypeChecker::normalizedValue(declaration->valueConstraint()->value(), facets);
+ if (!checker.valuesAreEqual(actualValue, actualConstraintValue, attributeType)) {
+ error(QtXmlPatterns::tr("content of attribute %1 does not match defined value constraint").arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+
+ if (BuiltinTypes::xsID->wxsTypeMatches(declaration->type())) {
+ addIdIdRefBinding(actualValue, declaration);
+ }
+
+ if (m_idRefsType->wxsTypeMatches(declaration->type())) {
+ const QStringList idRefs = actualValue.split(QLatin1Char(' '), QString::SkipEmptyParts);
+ for (int i = 0; i < idRefs.count(); ++i)
+ m_idRefs.insert(idRefs.at(i));
+ } else if (BuiltinTypes::xsIDREF->wxsTypeMatches(declaration->type())) {
+ m_idRefs.insert(actualValue);
+ }
+
+ m_model->setAssignedType(index, declaration->type());
+ m_model->setAssignedAttribute(index, declaration);
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateAttributeWildcard(const QXmlName &attributeName, const XsdWildcard::Ptr &wildcard)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#cvc-wildcard
+
+ // wildcards using XsdWildcard::absentNamespace, so we have to fix that here
+ QXmlName name(attributeName);
+ if (name.namespaceURI() == StandardNamespaces::empty) {
+ name.setNamespaceURI(m_namePool->allocateNamespace(XsdWildcard::absentNamespace()));
+ }
+
+ return XsdSchemaHelper::wildcardAllowsExpandedName(name, wildcard, m_namePool);
+}
+
+bool XsdValidatingInstanceReader::validateIdentityConstraint(const XsdElement::Ptr &element, const QXmlItem &currentItem)
+{
+ const XsdIdentityConstraint::List constraints = element->identityConstraints();
+
+ for (int i = 0; i < constraints.count(); ++i) {
+ const XsdIdentityConstraint::Ptr constraint = constraints.at(i);
+
+ TargetNode::Set targetNodeSet, qualifiedNodeSet;
+ selectNodeSets(element, currentItem, constraint, targetNodeSet, qualifiedNodeSet);
+
+ if (constraint->category() == XsdIdentityConstraint::Unique) {
+ if (!validateUniqueIdentityConstraint(element, constraint, qualifiedNodeSet))
+ return false;
+ } else if (constraint->category() == XsdIdentityConstraint::Key) {
+ if (!validateKeyIdentityConstraint(element, constraint, targetNodeSet, qualifiedNodeSet))
+ return false;
+ }
+ }
+
+ // we do the keyref check in a separated run to make sure that all keys are available
+ for (int i = 0; i < constraints.count(); ++i) {
+ const XsdIdentityConstraint::Ptr constraint = constraints.at(i);
+ if (constraint->category() == XsdIdentityConstraint::KeyReference) {
+ TargetNode::Set targetNodeSet, qualifiedNodeSet;
+ selectNodeSets(element, currentItem, constraint, targetNodeSet, qualifiedNodeSet);
+
+ if (!validateKeyRefIdentityConstraint(element, constraint, qualifiedNodeSet))
+ return false;
+ }
+ }
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateUniqueIdentityConstraint(const XsdElement::Ptr&, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &qualifiedNodeSet)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e32243
+
+ // 4.1
+ const XsdSchemaSourceLocationReflection reflection(sourceLocation());
+
+ QSetIterator<TargetNode> it(qualifiedNodeSet);
+ while (it.hasNext()) {
+ const TargetNode node = it.next();
+ QSetIterator<TargetNode> innerIt(qualifiedNodeSet);
+ while (innerIt.hasNext()) {
+ const TargetNode innerNode = innerIt.next();
+
+ if (node == innerNode) // do not compare with ourself
+ continue;
+
+ if (node.fieldsAreEqual(innerNode, m_namePool, m_context, &reflection)) {
+ error(QtXmlPatterns::tr("non-unique value found for constraint %1").arg(formatKeyword(constraint->displayName(m_namePool))));
+ return false;
+ }
+ }
+ }
+
+ m_idcKeys.insert(constraint->name(m_namePool), qualifiedNodeSet);
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateKeyIdentityConstraint(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &targetNodeSet, const TargetNode::Set &qualifiedNodeSet)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e32243
+
+ // 4.2
+ const XsdSchemaSourceLocationReflection reflection(sourceLocation());
+
+ // 4.2.1
+ if (targetNodeSet.count() != qualifiedNodeSet.count()) {
+ error(QtXmlPatterns::tr("key constraint %1 contains absent fields").arg(formatKeyword(constraint->displayName(m_namePool))));
+ return false;
+ }
+
+ // 4.2.2
+ if (!validateUniqueIdentityConstraint(element, constraint, qualifiedNodeSet))
+ return false;
+
+ // 4.2.3
+ QSetIterator<TargetNode> it(qualifiedNodeSet);
+ while (it.hasNext()) {
+ const TargetNode node = it.next();
+ const QVector<QXmlItem> fieldItems = node.fieldItems();
+ for (int i = 0; i < fieldItems.count(); ++i) {
+ const QXmlNodeModelIndex index = fieldItems.at(i).toNodeModelIndex();
+ if (m_model->kind(index) == QXmlNodeModelIndex::Element) {
+ const XsdElement::Ptr declaration = m_model->assignedElement(index);
+ if (declaration && declaration->isNillable()) {
+ error(QtXmlPatterns::tr("key constraint %1 contains references nillable element %2")
+ .arg(formatKeyword(constraint->displayName(m_namePool)))
+ .arg(formatKeyword(declaration->displayName(m_namePool))));
+ return false;
+ }
+ }
+ }
+ }
+
+ m_idcKeys.insert(constraint->name(m_namePool), qualifiedNodeSet);
+
+ return true;
+}
+
+bool XsdValidatingInstanceReader::validateKeyRefIdentityConstraint(const XsdElement::Ptr&, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &qualifiedNodeSet)
+{
+ // @see http://www.w3.org/TR/xmlschema11-1/#d0e32243
+
+ // 4.3
+ const XsdSchemaSourceLocationReflection reflection(sourceLocation());
+
+ const TargetNode::Set keySet = m_idcKeys.value(constraint->referencedKey()->name(m_namePool));
+
+ QSetIterator<TargetNode> it(qualifiedNodeSet);
+ while (it.hasNext()) {
+ const TargetNode node = it.next();
+
+ bool foundMatching = false;
+
+ QSetIterator<TargetNode> keyIt(keySet);
+ while (keyIt.hasNext()) {
+ const TargetNode keyNode = keyIt.next();
+
+ if (node.fieldsAreEqual(keyNode, m_namePool, m_context, &reflection)) {
+ foundMatching = true;
+ break;
+ }
+ }
+
+ if (!foundMatching) {
+ error(QtXmlPatterns::tr("no referenced value found for key reference %1").arg(formatKeyword(constraint->displayName(m_namePool))));
+ return false;
+ }
+ }
+
+ return true;
+}
+
+QXmlQuery XsdValidatingInstanceReader::createXQuery(const QList<QXmlName> &namespaceBindings, const QXmlItem &contextNode, const QString &queryString) const
+{
+ // create a public name pool from our name pool
+ QXmlNamePool namePool(m_namePool.data());
+
+ // the QXmlQuery shall work with the same name pool as we do
+ QXmlQuery query(namePool);
+
+ // add additional namespace bindings
+ QXmlQueryPrivate *queryPrivate = query.d;
+
+ for (int i = 0; i < namespaceBindings.count(); ++i) {
+ if (!namespaceBindings.at(i).prefix() == StandardPrefixes::empty)
+ queryPrivate->addAdditionalNamespaceBinding(namespaceBindings.at(i));
+ }
+
+ // set the context node for that query and the query string
+ query.setFocus(contextNode);
+ query.setQuery(queryString, m_documentUri);
+
+ return query;
+}
+
+bool XsdValidatingInstanceReader::selectNodeSets(const XsdElement::Ptr&, const QXmlItem &currentItem, const XsdIdentityConstraint::Ptr &constraint, TargetNode::Set &targetNodeSet, TargetNode::Set &qualifiedNodeSet)
+{
+ // at first select all target nodes
+ const XsdXPathExpression::Ptr selector = constraint->selector();
+ const XsdXPathExpression::List fields = constraint->fields();
+
+ QXmlQuery query = createXQuery(selector->namespaceBindings(), currentItem, selector->expression());
+
+ QXmlResultItems resultItems;
+ query.evaluateTo(&resultItems);
+
+ // now we iterate over all target nodes and select the fields for each node
+ QXmlItem item(resultItems.next());
+ while (!item.isNull()) {
+
+ TargetNode targetNode(item);
+
+ for (int i = 0; i < fields.count(); ++i) {
+ const XsdXPathExpression::Ptr field = fields.at(i);
+ QXmlQuery fieldQuery = createXQuery(field->namespaceBindings(), item, field->expression());
+
+ QXmlResultItems fieldResultItems;
+ fieldQuery.evaluateTo(&fieldResultItems);
+
+ // copy result into vetor for better testing...
+ QVector<QXmlItem> fieldVector;
+ QXmlItem fieldItem(fieldResultItems.next());
+ while (!fieldItem.isNull()) {
+ fieldVector.append(fieldItem);
+ fieldItem = fieldResultItems.next();
+ }
+
+ if (fieldVector.count() > 1) {
+ error(QtXmlPatterns::tr("more than one value found for field %1").arg(formatData(field->expression())));
+ return false;
+ }
+
+ if (fieldVector.count() == 1) {
+ fieldItem = fieldVector.first();
+
+ const QXmlNodeModelIndex index = fieldItem.toNodeModelIndex();
+ const SchemaType::Ptr type = m_model->assignedType(index);
+
+ bool typeOk = true;
+ if (type->isComplexType()) {
+ if (type->isDefinedBySchema()) {
+ if (XsdComplexType::Ptr(type)->contentType()->variety() != XsdComplexType::ContentType::Simple)
+ typeOk = false;
+ } else {
+ typeOk = false;
+ }
+ }
+ if (!typeOk) {
+ error(QtXmlPatterns::tr("field %1 has no simple type").arg(formatData(field->expression())));
+ return false;
+ }
+
+ SchemaType::Ptr targetType = type;
+ QString value = m_model->stringValue(fieldItem.toNodeModelIndex());
+
+ if (type->isDefinedBySchema()) {
+ if (type->isSimpleType())
+ targetType = XsdSimpleType::Ptr(type)->primitiveType();
+ else
+ targetType = XsdComplexType::Ptr(type)->contentType()->simpleType();
+ } else {
+ if (BuiltinTypes::xsAnySimpleType->name(m_namePool) == type->name(m_namePool)) {
+ targetType = BuiltinTypes::xsString;
+ value = QLatin1String("___anySimpleType_value");
+ }
+ }
+
+ // if it is xs:QName derived type, we normalize the name content
+ // and do a string comparison
+ if (BuiltinTypes::xsQName->wxsTypeMatches(type)) {
+ targetType = BuiltinTypes::xsString;
+
+ const QXmlName qName = convertToQName(value.trimmed());
+ value = QString::fromLatin1("%1:%2").arg(m_namePool->stringForNamespace(qName.namespaceURI())).arg(m_namePool->stringForLocalName(qName.localName()));
+ }
+
+ targetNode.addField(fieldItem, value, targetType);
+ } else {
+ // we add an empty entry here, that makes comparison easier later on
+ targetNode.addField(QXmlItem(), QString(), SchemaType::Ptr());
+ }
+ }
+
+ targetNodeSet.insert(targetNode);
+
+ item = resultItems.next();
+ }
+
+ // copy all items from target node set to qualified node set, that have no empty fields
+ QSetIterator<TargetNode> it(targetNodeSet);
+ while (it.hasNext()) {
+ const TargetNode node = it.next();
+ if (node.emptyFieldsCount() == 0)
+ qualifiedNodeSet.insert(node);
+ }
+
+ return true;
+}
+
+XsdElement::Ptr XsdValidatingInstanceReader::elementByName(const QXmlName &name) const
+{
+ return m_schema->element(name);
+}
+
+XsdAttribute::Ptr XsdValidatingInstanceReader::attributeByName(const QXmlName &name) const
+{
+ return m_schema->attribute(name);
+}
+
+SchemaType::Ptr XsdValidatingInstanceReader::typeByName(const QXmlName &name) const
+{
+ const SchemaType::Ptr type = m_schema->type(name);
+ if (type)
+ return type;
+
+ return m_context->schemaTypeFactory()->createSchemaType(name);
+}
+
+void XsdValidatingInstanceReader::addIdIdRefBinding(const QString &id, const NamedSchemaComponent::Ptr &binding)
+{
+ if (!m_model->idIdRefBindings(id).isEmpty()) {
+ error(QtXmlPatterns::tr("ID value '%1' is not unique").arg(formatKeyword(id)));
+ return;
+ }
+
+ m_model->addIdIdRefBinding(id, binding);
+}
+
+QString XsdValidatingInstanceReader::qNameAttribute(const QXmlName &attributeName)
+{
+ const QString value = attribute(attributeName).simplified();
+ if (!XPathHelper::isQName(value)) {
+ error(QtXmlPatterns::tr("'%1' attribute contains invalid QName content: %2").arg(m_namePool->displayName(attributeName)).arg(formatData(value)));
+ return QString();
+ } else {
+ return value;
+ }
+}
+
+XsdComplexType::Ptr XsdValidatingInstanceReader::anyType()
+{
+ if (m_anyType)
+ return m_anyType;
+
+ const XsdWildcard::Ptr wildcard(new XsdWildcard());
+ wildcard->namespaceConstraint()->setVariety(XsdWildcard::NamespaceConstraint::Any);
+ wildcard->setProcessContents(XsdWildcard::Lax);
+
+ const XsdParticle::Ptr outerParticle(new XsdParticle());
+ outerParticle->setMinimumOccurs(1);
+ outerParticle->setMaximumOccurs(1);
+
+ const XsdParticle::Ptr innerParticle(new XsdParticle());
+ innerParticle->setMinimumOccurs(0);
+ innerParticle->setMaximumOccursUnbounded(true);
+ innerParticle->setTerm(wildcard);
+
+ const XsdModelGroup::Ptr outerModelGroup(new XsdModelGroup());
+ outerModelGroup->setCompositor(XsdModelGroup::SequenceCompositor);
+ outerModelGroup->setParticles(XsdParticle::List() << innerParticle);
+ outerParticle->setTerm(outerModelGroup);
+
+ m_anyType = XsdComplexType::Ptr(new XsdComplexType());
+ m_anyType->setName(BuiltinTypes::xsAnyType->name(m_namePool));
+ m_anyType->setDerivationMethod(XsdComplexType::DerivationRestriction);
+ m_anyType->contentType()->setVariety(XsdComplexType::ContentType::Mixed);
+ m_anyType->contentType()->setParticle(outerParticle);
+ m_anyType->setAttributeWildcard(wildcard);
+ m_anyType->setIsAbstract(false);
+
+ return m_anyType;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h b/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h
new file mode 100644
index 0000000..0402e99
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdvalidatinginstancereader_p.h
@@ -0,0 +1,296 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdValidatingInstanceReader_H
+#define Patternist_XsdValidatingInstanceReader_H
+
+#include "qxsdidchelper_p.h"
+#include "qxsdinstancereader_p.h"
+#include "qxsdstatemachine_p.h"
+#include "qxsdvalidatedxmlnodemodel_p.h"
+
+#include <QtCore/QStack>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlQuery;
+
+namespace QPatternist
+{
+ /**
+ * @short The validating schema instance reader.
+ *
+ * This class reads in a xml instance document from a QAbstractXmlNodeModel and
+ * validates it against a given xml schema.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdValidatingInstanceReader : public XsdInstanceReader
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdValidatingInstanceReader> Ptr;
+
+ /**
+ * Creates a new validating instance reader that reads the data from
+ * the given @p model.
+ *
+ * @param model The model the data shall be read from.
+ * @param documentUri The uri of the document the model is from.
+ * @param context The context that is used to report errors etc.
+ */
+ XsdValidatingInstanceReader(XsdValidatedXmlNodeModel *model, const QUrl &documentUri, const XsdSchemaContext::Ptr &context);
+
+ /**
+ * Adds a new @p schema to the pool of schemas that shall be used
+ * for validation.
+ * The schema is located at the given @p url.
+ */
+ void addSchema(const XsdSchema::Ptr &schema, const QUrl &url);
+
+ /**
+ * Reads and validates the instance document.
+ */
+ bool read();
+
+ private:
+ /**
+ * Loads a schema with the given @p targetNamespace from the given @p location
+ * and adds it to the pool of schemas that are used for validation.
+ *
+ * This method is used to load schemas defined in the xsi:schemaLocation or
+ * xsi:noNamespaceSchemaLocation attributes in the instance document.
+ */
+ bool loadSchema(const QString &targetNamespace, const QUrl &location);
+
+ /**
+ * Reports an error via the report context.
+ */
+ void error(const QString &msg) const;
+
+ /**
+ * Validates the current element tag of the instance document.
+ *
+ * @param hasStateMachine Used to remember whether this element represents the start tag
+ * of a complex type and therefor pushes a new state machine on the stack.
+ * @param element Used to remember which element has been validated in this step.
+ */
+ bool validate(bool &hasStateMachine, XsdElement::Ptr &element);
+
+ /**
+ * Validates the current tag of the instance document against the given element @p declaration.
+ *
+ * @param declaration The element declaration to validate against.
+ * @param hasStateMachine Used to remember whether this element represents the start tag
+ * of a complex type and therefor pushes a new state machine on the stack.
+ */
+ bool validateElement(const XsdElement::Ptr &declaration, bool &hasStateMachine);
+
+ /**
+ * Validates the current tag of the instance document against the given @p type of the element @p declaration.
+ *
+ * @param declaration The element declaration to validate against.
+ * @param type The type to validate against.
+ * @param isNilled Defines whether the element is nilled by the instance document.
+ * @param hasStateMachine Used to remember whether this element represents the start tag
+ * of a complex type and therefor pushes a new state machine on the stack.
+ *
+ * @note The @p type can differ from the element @p declaration type if the instance document has defined
+ * it via xsi:type attribute.
+ */
+ bool validateElementType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled, bool &hasStateMachine);
+
+ /**
+ * Validates the current tag of the instance document against the given simple @p type of the element @p declaration.
+ *
+ * @param declaration The element declaration to validate against.
+ * @param type The type to validate against.
+ * @param isNilled Defines whether the element is nilled by the instance document.
+ *
+ * @note The @p type can differ from the element @p declaration type if the instance document has defined
+ * it via xsi:type attribute.
+ */
+ bool validateElementSimpleType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled);
+
+ /**
+ * Validates the current tag of the instance document against the given complex @p type of the element @p declaration.
+ *
+ * @param declaration The element declaration to validate against.
+ * @param type The type to validate against.
+ * @param isNilled Defines whether the element is nilled by the instance document.
+ * @param hasStateMachine Used to remember whether this element represents the start tag
+ * of a complex type and therefor pushes a new state machine on the stack.
+ *
+ * @note The @p type can differ from the element @p declaration type if the instance document has defined
+ * it via xsi:type attribute.
+ */
+ bool validateElementComplexType(const XsdElement::Ptr &declaration, const SchemaType::Ptr &type, bool isNilled, bool &hasStateMachine);
+
+ /**
+ * Validates the given @p value against the attribute use @p declaration.
+ */
+ bool validateAttribute(const XsdAttributeUse::Ptr &declaration, const QString &value);
+
+ /**
+ * Validates the given @p value against the attribute @p declaration.
+ */
+ bool validateAttribute(const XsdAttribute::Ptr &declaration, const QString &value);
+
+ /**
+ * Validates the given @p attributeName against the @p wildcard.
+ */
+ bool validateAttributeWildcard(const QXmlName &attributeName, const XsdWildcard::Ptr &wildcard);
+
+ /**
+ * Validates the identity constraints of an @p element.
+ */
+ bool validateIdentityConstraint(const XsdElement::Ptr &element, const QXmlItem &currentItem);
+
+ /**
+ * Validates the <em>unique</em> identity @p constraint of the @p element.
+ */
+ bool validateUniqueIdentityConstraint(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &qualifiedNodeSet);
+
+ /**
+ * Validates the <em>key</em> identity @p constraint of the @p element.
+ */
+ bool validateKeyIdentityConstraint(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &targetNodeSet, const TargetNode::Set &qualifiedNodeSet);
+
+ /**
+ * Validates the <em>keyref</em> identity @p constraint of the @p element.
+ */
+ bool validateKeyRefIdentityConstraint(const XsdElement::Ptr &element, const XsdIdentityConstraint::Ptr &constraint, const TargetNode::Set &qualifiedNodeSet);
+
+ /**
+ * Selects two sets of nodes that match the given identity @p constraint.
+ *
+ * @param element The element the identity constraint belongs to.
+ * @param currentItem The current element that will be used as focus for the XQuery.
+ * @param constraint The constraint (selector and fields) that describe the two sets.
+ * @param targetNodeSet The target node set as defined by the schema specification.
+ * @param qualifiedNodeSet The qualified node set as defined by the schema specification.
+ */
+ bool selectNodeSets(const XsdElement::Ptr &element, const QXmlItem &currentItem, const XsdIdentityConstraint::Ptr &constraint, TargetNode::Set &targetNodeSet, TargetNode::Set &qualifiedNodeSet);
+
+ /**
+ * Creates an QXmlQuery object with the defined @p namespaceBindings that has the @p contextNode as focus
+ * and will execute @p query.
+ */
+ QXmlQuery createXQuery(const QList<QXmlName> &namespaceBindings, const QXmlItem &contextNode, const QString &query) const;
+
+ /**
+ * Returns the element declaration with the given @p name from the pool of all schemas.
+ */
+ XsdElement::Ptr elementByName(const QXmlName &name) const;
+
+ /**
+ * Returns the attribute declaration with the given @p name from the pool of all schemas.
+ */
+ XsdAttribute::Ptr attributeByName(const QXmlName &name) const;
+
+ /**
+ * Returns the type declaration with the given @p name from the pool of all schemas.
+ */
+ SchemaType::Ptr typeByName(const QXmlName &name) const;
+
+ /**
+ * Adds the ID/IDREF binding to the validated model and checks for duplicates.
+ */
+ void addIdIdRefBinding(const QString &id, const NamedSchemaComponent::Ptr &binding);
+
+ /**
+ * Helper method that reads an attribute of type xs:QName and does
+ * syntax checking.
+ */
+ QString qNameAttribute(const QXmlName &attributeName);
+
+ /**
+ * Returns the xs:anyType that is used to build up the state machine.
+ * We need that as the BuiltinTypes::xsAnyType is not a XsdComplexType.
+ */
+ XsdComplexType::Ptr anyType();
+
+ /**
+ * Helper method that creates a state machine for the given @p particle
+ * and pushes it on the state machine stack.
+ */
+ void createAndPushStateMachine(const XsdParticle::Ptr &particle);
+
+ typedef QHash<QUrl, QStringList> MergedSchemas;
+ typedef QHashIterator<QUrl, QStringList> MergedSchemasIterator;
+
+ XsdValidatedXmlNodeModel::Ptr m_model;
+ MergedSchemas m_mergedSchemas;
+ XsdSchema::Ptr m_schema;
+ const NamePool::Ptr m_namePool;
+ const QXmlName m_xsiNilName;
+ const QXmlName m_xsiTypeName;
+ const QXmlName m_xsiSchemaLocationName;
+ const QXmlName m_xsiNoNamespaceSchemaLocationName;
+
+ QStack<XsdStateMachine<XsdTerm::Ptr> > m_stateMachines;
+ QUrl m_documentUri;
+ XsdComplexType::Ptr m_anyType;
+ QSet<QString> m_processedNamespaces;
+ QSet<QString> m_processedSchemaLocations;
+ QSet<QString> m_idRefs;
+ QHash<QXmlName, TargetNode::Set> m_idcKeys;
+ SchemaType::Ptr m_idRefsType;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdwildcard.cpp b/src/xmlpatterns/schema/qxsdwildcard.cpp
new file mode 100644
index 0000000..55eb4ba
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdwildcard.cpp
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdwildcard_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+QString XsdWildcard::absentNamespace()
+{
+ return QLatin1String("__ns_absent");
+}
+
+void XsdWildcard::NamespaceConstraint::setVariety(Variety variety)
+{
+ m_variety = variety;
+}
+
+XsdWildcard::NamespaceConstraint::Variety XsdWildcard::NamespaceConstraint::variety() const
+{
+ return m_variety;
+}
+
+void XsdWildcard::NamespaceConstraint::setNamespaces(const QSet<QString> &namespaces)
+{
+ m_namespaces = namespaces;
+}
+
+QSet<QString> XsdWildcard::NamespaceConstraint::namespaces() const
+{
+ return m_namespaces;
+}
+
+void XsdWildcard::NamespaceConstraint::setDisallowedNames(const QSet<QString> &names)
+{
+ m_disallowedNames = names;
+}
+
+QSet<QString> XsdWildcard::NamespaceConstraint::disallowedNames() const
+{
+ return m_disallowedNames;
+}
+
+XsdWildcard::XsdWildcard()
+ : m_namespaceConstraint(new NamespaceConstraint())
+ , m_processContents(Strict)
+{
+ m_namespaceConstraint->setVariety(NamespaceConstraint::Any);
+}
+
+bool XsdWildcard::isWildcard() const
+{
+ return true;
+}
+
+void XsdWildcard::setNamespaceConstraint(const NamespaceConstraint::Ptr &namespaceConstraint)
+{
+ m_namespaceConstraint = namespaceConstraint;
+}
+
+XsdWildcard::NamespaceConstraint::Ptr XsdWildcard::namespaceConstraint() const
+{
+ return m_namespaceConstraint;
+}
+
+void XsdWildcard::setProcessContents(ProcessContents contents)
+{
+ m_processContents = contents;
+}
+
+XsdWildcard::ProcessContents XsdWildcard::processContents() const
+{
+ return m_processContents;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdwildcard_p.h b/src/xmlpatterns/schema/qxsdwildcard_p.h
new file mode 100644
index 0000000..15fc159
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdwildcard_p.h
@@ -0,0 +1,199 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdWildcard_H
+#define Patternist_XsdWildcard_H
+
+#include "qxsdterm_p.h"
+
+#include <QtCore/QSet>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD wildcard object.
+ *
+ * This class represents the <em>wildcard</em> object of a XML schema as described
+ * <a href="http://www.w3.org/TR/xmlschema11-1/#Wildcards">here</a>.
+ *
+ * It contains information from either an <em>any</em> object or an <em>anyAttribute</em> object.
+ *
+ * @see <a href="http://www.w3.org/Submission/2004/SUBM-xmlschema-api-20040309/xml-schema-api.html#Interface-XSWildcard">XML Schema API reference</a>
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class XsdWildcard : public XsdTerm
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdWildcard> Ptr;
+
+ /**
+ * Defines the absent namespace that is used in wildcards.
+ */
+ static QString absentNamespace();
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#w-namespace_constraint">namespace constraint</a> of the wildcard.
+ */
+ class NamespaceConstraint : public QSharedData
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<NamespaceConstraint> Ptr;
+
+ /**
+ * Describes the variety of the namespace constraint.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#nc-variety">Variety Definition</a>
+ */
+ enum Variety
+ {
+ Any, ///< Any namespace is allowed.
+ Enumeration, ///< Namespaces in the namespaces set are allowed.
+ Not ///< Namespaces in the namespaces set are not allowed.
+ };
+
+ /**
+ * Sets the @p variety of the namespace constraint.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#nc-variety">Variety Definition</a>
+ */
+ void setVariety(Variety variety);
+
+ /**
+ * Returns the variety of the namespace constraint.
+ */
+ Variety variety() const;
+
+ /**
+ * Sets the set of @p namespaces of the namespace constraint.
+ */
+ void setNamespaces(const QSet<QString> &namespaces);
+
+ /**
+ * Returns the set of namespaces of the namespace constraint.
+ */
+ QSet<QString> namespaces() const;
+
+ /**
+ * Sets the set of disallowed @p names of the namespace constraint.
+ */
+ void setDisallowedNames(const QSet<QString> &names);
+
+ /**
+ * Returns the set of disallowed names of the namespace constraint.
+ */
+ QSet<QString> disallowedNames() const;
+
+ private:
+ Variety m_variety;
+ QSet<QString> m_namespaces;
+ QSet<QString> m_disallowedNames;
+ };
+
+ /**
+ * Describes the <a href="http://www.w3.org/TR/xmlschema11-1/#w-process_contents">type of content processing</a> of the wildcard.
+ */
+ enum ProcessContents
+ {
+ Strict, ///< There must be a top-level declaration for the item available, or the item must have an xsi:type, and the item must be valid as appropriate.
+ Lax, ///< If the item has a uniquely determined declaration available, it must be valid with respect to that definition.
+ Skip ///< No constraints at all: the item must simply be well-formed XML.
+ };
+
+ /**
+ * Creates a new wildcard object.
+ */
+ XsdWildcard();
+
+ /**
+ * Returns always @c true, used to avoid dynamic casts.
+ */
+ virtual bool isWildcard() const;
+
+ /**
+ * Sets the namespace @p constraint of the wildcard.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#w-namespace_constraint">Namespace Constraint Definition</a>
+ */
+ void setNamespaceConstraint(const NamespaceConstraint::Ptr &constraint);
+
+ /**
+ * Returns the namespace constraint of the wildcard.
+ */
+ NamespaceConstraint::Ptr namespaceConstraint() const;
+
+ /**
+ * Sets the process @p contents of the wildcard.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#w-process_contents">Process Contents Definition</a>
+ */
+ void setProcessContents(ProcessContents contents);
+
+ /**
+ * Returns the process contents of the wildcard.
+ */
+ ProcessContents processContents() const;
+
+ private:
+ NamespaceConstraint::Ptr m_namespaceConstraint;
+ ProcessContents m_processContents;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/qxsdxpathexpression.cpp b/src/xmlpatterns/schema/qxsdxpathexpression.cpp
new file mode 100644
index 0000000..64bd687
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdxpathexpression.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qxsdxpathexpression_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+void XsdXPathExpression::setNamespaceBindings(const QList<QXmlName> &set)
+{
+ m_namespaceBindings = set;
+}
+
+QList<QXmlName> XsdXPathExpression::namespaceBindings() const
+{
+ return m_namespaceBindings;
+}
+
+void XsdXPathExpression::setDefaultNamespace(const AnyURI::Ptr &defaultNs)
+{
+ m_defaultNamespace = defaultNs;
+}
+
+AnyURI::Ptr XsdXPathExpression::defaultNamespace() const
+{
+ return m_defaultNamespace;
+}
+
+void XsdXPathExpression::setBaseURI(const AnyURI::Ptr &uri)
+{
+ m_baseURI = uri;
+}
+
+AnyURI::Ptr XsdXPathExpression::baseURI() const
+{
+ return m_baseURI;
+}
+
+void XsdXPathExpression::setExpression(const QString &expression)
+{
+ m_expression = expression;
+}
+
+QString XsdXPathExpression::expression() const
+{
+ return m_expression;
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/schema/qxsdxpathexpression_p.h b/src/xmlpatterns/schema/qxsdxpathexpression_p.h
new file mode 100644
index 0000000..e4f5427
--- /dev/null
+++ b/src/xmlpatterns/schema/qxsdxpathexpression_p.h
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_XsdXPathExpression_H
+#define Patternist_XsdXPathExpression_H
+
+#include "qanyuri_p.h"
+#include "qnamedschemacomponent_p.h"
+#include "qxsdannotated_p.h"
+
+#include <QtCore/QList>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Represents a XSD assertion object.
+ *
+ * @ingroup Patternist_schema
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#x">XPathExpression Definition</a>
+ */
+ class XsdXPathExpression : public NamedSchemaComponent, public XsdAnnotated
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<XsdXPathExpression> Ptr;
+ typedef QList<XsdXPathExpression::Ptr> List;
+
+ /**
+ * Sets the list of namespace @p bindings of the XPath expression.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#x-namespace_bindings">Namespace Bindings Definition</a>
+ *
+ * @note We can't use a QSet<QXmlName> here, as the hash method does not take the prefix
+ * in account, so we loose entries.
+ */
+ void setNamespaceBindings(const QList<QXmlName> &bindings);
+
+ /**
+ * Returns the list of namespace bindings of the XPath expression.
+ */
+ QList<QXmlName> namespaceBindings() const;
+
+ /**
+ * Sets the default namespace of the XPath expression.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#x-default_namespace">Default Namespace Definition</a>
+ */
+ void setDefaultNamespace(const AnyURI::Ptr &defaultNamespace);
+
+ /**
+ * Returns the default namespace of the XPath expression.
+ */
+ AnyURI::Ptr defaultNamespace() const;
+
+ /**
+ * Sets the base @p uri of the XPath expression.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#x-base_URI">Base URI Definition</a>
+ */
+ void setBaseURI(const AnyURI::Ptr &uri);
+
+ /**
+ * Returns the base uri of the XPath expression.
+ */
+ AnyURI::Ptr baseURI() const;
+
+ /**
+ * Sets the @p expression string of the XPath expression.
+ *
+ * @see <a href="http://www.w3.org/TR/xmlschema11-1/#x-expression">Expression Definition</a>
+ */
+ void setExpression(const QString &expression);
+
+ /**
+ * Returns the expression string of the XPath expression.
+ */
+ QString expression() const;
+
+ private:
+ QList<QXmlName> m_namespaceBindings;
+ AnyURI::Ptr m_defaultNamespace;
+ AnyURI::Ptr m_baseURI;
+ QString m_expression;
+ };
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/schema/schema.pri b/src/xmlpatterns/schema/schema.pri
new file mode 100644
index 0000000..b00d64b
--- /dev/null
+++ b/src/xmlpatterns/schema/schema.pri
@@ -0,0 +1,93 @@
+HEADERS += $$PWD/qnamespacesupport_p.h \
+ $$PWD/qxsdalternative_p.h \
+ $$PWD/qxsdannotated_p.h \
+ $$PWD/qxsdannotation_p.h \
+ $$PWD/qxsdapplicationinformation_p.h \
+ $$PWD/qxsdassertion_p.h \
+ $$PWD/qxsdattribute_p.h \
+ $$PWD/qxsdattributereference_p.h \
+ $$PWD/qxsdattributeterm_p.h \
+ $$PWD/qxsdattributeuse_p.h \
+ $$PWD/qxsdattributegroup_p.h \
+ $$PWD/qxsdcomplextype_p.h \
+ $$PWD/qxsddocumentation_p.h \
+ $$PWD/qxsdelement_p.h \
+ $$PWD/qxsdfacet_p.h \
+ $$PWD/qxsdidcache_p.h \
+ $$PWD/qxsdidchelper_p.h \
+ $$PWD/qxsdidentityconstraint_p.h \
+ $$PWD/qxsdinstancereader_p.h \
+ $$PWD/qxsdmodelgroup_p.h \
+ $$PWD/qxsdnotation_p.h \
+ $$PWD/qxsdparticle_p.h \
+ $$PWD/qxsdparticlechecker_p.h \
+ $$PWD/qxsdreference_p.h \
+ $$PWD/qxsdsimpletype_p.h \
+ $$PWD/qxsdschema_p.h \
+ $$PWD/qxsdschemachecker_p.h \
+ $$PWD/qxsdschemacontext_p.h \
+ $$PWD/qxsdschemadebugger_p.h \
+ $$PWD/qxsdschemahelper_p.h \
+ $$PWD/qxsdschemamerger_p.h \
+ $$PWD/qxsdschemaparser_p.h \
+ $$PWD/qxsdschemaparsercontext_p.h \
+ $$PWD/qxsdschemaresolver_p.h \
+ $$PWD/qxsdschematoken_p.h \
+ $$PWD/qxsdschematypesfactory_p.h \
+ $$PWD/qxsdstatemachine_p.h \
+ $$PWD/qxsdstatemachinebuilder_p.h \
+ $$PWD/qxsdterm_p.h \
+ $$PWD/qxsdtypechecker_p.h \
+ $$PWD/qxsduserschematype_p.h \
+ $$PWD/qxsdvalidatedxmlnodemodel_p.h \
+ $$PWD/qxsdvalidatinginstancereader_p.h \
+ $$PWD/qxsdwildcard_p.h \
+ $$PWD/qxsdxpathexpression_p.h
+
+SOURCES += $$PWD/qnamespacesupport.cpp \
+ $$PWD/qxsdalternative.cpp \
+ $$PWD/qxsdannotated.cpp \
+ $$PWD/qxsdannotation.cpp \
+ $$PWD/qxsdapplicationinformation.cpp \
+ $$PWD/qxsdassertion.cpp \
+ $$PWD/qxsdattribute.cpp \
+ $$PWD/qxsdattributereference.cpp \
+ $$PWD/qxsdattributeterm.cpp \
+ $$PWD/qxsdattributeuse.cpp \
+ $$PWD/qxsdattributegroup.cpp \
+ $$PWD/qxsdcomplextype.cpp \
+ $$PWD/qxsddocumentation.cpp \
+ $$PWD/qxsdelement.cpp \
+ $$PWD/qxsdfacet.cpp \
+ $$PWD/qxsdidcache.cpp \
+ $$PWD/qxsdidchelper.cpp \
+ $$PWD/qxsdidentityconstraint.cpp \
+ $$PWD/qxsdinstancereader.cpp \
+ $$PWD/qxsdmodelgroup.cpp \
+ $$PWD/qxsdnotation.cpp \
+ $$PWD/qxsdparticle.cpp \
+ $$PWD/qxsdparticlechecker.cpp \
+ $$PWD/qxsdreference.cpp \
+ $$PWD/qxsdsimpletype.cpp \
+ $$PWD/qxsdschema.cpp \
+ $$PWD/qxsdschemachecker.cpp \
+ $$PWD/qxsdschemachecker_setup.cpp \
+ $$PWD/qxsdschemacontext.cpp \
+ $$PWD/qxsdschemadebugger.cpp \
+ $$PWD/qxsdschemahelper.cpp \
+ $$PWD/qxsdschemamerger.cpp \
+ $$PWD/qxsdschemaparser.cpp \
+ $$PWD/qxsdschemaparser_setup.cpp \
+ $$PWD/qxsdschemaparsercontext.cpp \
+ $$PWD/qxsdschemaresolver.cpp \
+ $$PWD/qxsdschematoken.cpp \
+ $$PWD/qxsdschematypesfactory.cpp \
+ $$PWD/qxsdstatemachinebuilder.cpp \
+ $$PWD/qxsdterm.cpp \
+ $$PWD/qxsdtypechecker.cpp \
+ $$PWD/qxsdwildcard.cpp \
+ $$PWD/qxsdvalidatedxmlnodemodel.cpp \
+ $$PWD/qxsdvalidatinginstancereader.cpp \
+ $$PWD/qxsdxpathexpression.cpp
+
+RESOURCES += $$PWD/builtinschemas.qrc
diff --git a/src/xmlpatterns/schema/schemas/xml.xsd b/src/xmlpatterns/schema/schemas/xml.xsd
new file mode 100644
index 0000000..eeb9db5
--- /dev/null
+++ b/src/xmlpatterns/schema/schemas/xml.xsd
@@ -0,0 +1,145 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+ <xs:documentation>
+ See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+
+ This schema document describes the XML namespace, in a form
+ suitable for import by other schema documents.
+
+ Note that local names in this namespace are intended to be defined
+ only by the World Wide Web Consortium or its subgroups. The
+ following names are currently defined in this namespace and should
+ not be used with conflicting semantics by any Working Group,
+ specification, or document instance:
+
+ base (as an attribute name): denotes an attribute whose value
+ provides a URI to be used as the base for interpreting any
+ relative URIs in the scope of the element on which it
+ appears; its value is inherited. This name is reserved
+ by virtue of its definition in the XML Base specification.
+
+ id (as an attribute name): denotes an attribute whose value
+ should be interpreted as if declared to be of type ID.
+ This name is reserved by virtue of its definition in the
+ xml:id specification.
+
+ lang (as an attribute name): denotes an attribute whose value
+ is a language code for the natural language of the content of
+ any element; its value is inherited. This name is reserved
+ by virtue of its definition in the XML specification.
+
+ space (as an attribute name): denotes an attribute whose
+ value is a keyword indicating what whitespace processing
+ discipline is intended for the content of the element; its
+ value is inherited. This name is reserved by virtue of its
+ definition in the XML specification.
+
+ Father (in any context at all): denotes Jon Bosak, the chair of
+ the original XML Working Group. This name is reserved by
+ the following decision of the W3C XML Plenary and
+ XML Coordination groups:
+
+ In appreciation for his vision, leadership and dedication
+ the W3C XML Plenary on this 10th day of February, 2000
+ reserves for Jon Bosak in perpetuity the XML name
+ xml:Father
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
+ attributes on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ &lt;schema . . .>
+ . . .
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ &lt;type . . .>
+ . . .
+ &lt;attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2007/08/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself, or with the XML namespace itself. In other words, if the XML
+ Schema or XML namespaces change, the version of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2007/08/xml.xsd will not change.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+ <xs:annotation>
+ <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
+ codes as the enumerated possible values is probably never
+ going to be a realistic possibility. See
+ RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
+ at http://www.iana.org/assignments/lang-tag-apps.htm for
+ further information.
+
+ The union allows for the 'un-declaration' of xml:lang with
+ the empty string.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType>
+ <xs:union memberTypes="xs:language">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value=""/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="id" type="xs:ID">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xml-id/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ <xs:attribute ref="xml:id"/>
+ </xs:attributeGroup>
+
+</xs:schema>
diff --git a/src/xmlpatterns/schema/tokens.xml b/src/xmlpatterns/schema/tokens.xml
new file mode 100644
index 0000000..6736ad75
--- /dev/null
+++ b/src/xmlpatterns/schema/tokens.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tokenAutomaton scope="public"
+ className="XsdSchemaToken"
+ headerFile="qxsdschematoken_p.h"
+ sourceFile="qxsdschematoken.cpp"
+ defaultToken="NoKeyword"
+ tokenEnum="NodeName"
+ hasToString="true"
+ includeGuardName="QPatternist_XsdSchemaToken_h">
+ <tokens>
+ <token>abstract</token>
+ <token>all</token>
+ <token>alternative</token>
+ <token>annotation</token>
+ <token>any</token>
+ <token>anyAttribute</token>
+ <token>appinfo</token>
+ <token>appliesToEmpty</token>
+ <token>assert</token>
+ <token>assertion</token>
+ <token>attribute</token>
+ <token>attributeFormDefault</token>
+ <token>attributeGroup</token>
+ <token>base</token>
+ <token>block</token>
+ <token>blockDefault</token>
+ <token>choice</token>
+ <token>collapse</token>
+ <token>complexContent</token>
+ <token>complexType</token>
+ <token>default</token>
+ <token>defaultAttributes</token>
+ <token>defaultAttributesApply</token>
+ <token>defaultOpenContent</token>
+ <token>documentation</token>
+ <token>element</token>
+ <token>elementFormDefault</token>
+ <token>enumeration</token>
+ <token>extension</token>
+ <token>field</token>
+ <token>final</token>
+ <token>finalDefault</token>
+ <token>fixed</token>
+ <token>form</token>
+ <token>fractionDigits</token>
+ <token>group</token>
+ <token>id</token>
+ <token>import</token>
+ <token>include</token>
+ <token>itemType</token>
+ <token>key</token>
+ <token>keyref</token>
+ <token>length</token>
+ <token>list</token>
+ <token>maxExclusive</token>
+ <token>maxInclusive</token>
+ <token>maxLength</token>
+ <token>maxOccurs</token>
+ <token>memberTypes</token>
+ <token>minExclusive</token>
+ <token>minInclusive</token>
+ <token>minLength</token>
+ <token>minOccurs</token>
+ <token>mixed</token>
+ <token>mode</token>
+ <token>name</token>
+ <token>namespace</token>
+ <token>nillable</token>
+ <token>notation</token>
+ <token>notNamespace</token>
+ <token>notQName</token>
+ <token>openContent</token>
+ <token>override</token>
+ <token>preserve</token>
+ <token>pattern</token>
+ <token>processContents</token>
+ <token>public</token>
+ <token>redefine</token>
+ <token>ref</token>
+ <token>refer</token>
+ <token>replace</token>
+ <token>restriction</token>
+ <token>schema</token>
+ <token>schemaLocation</token>
+ <token>selector</token>
+ <token>sequence</token>
+ <token>simpleContent</token>
+ <token>simpleType</token>
+ <token>source</token>
+ <token>substitutionGroup</token>
+ <token>system</token>
+ <token>targetNamespace</token>
+ <token>test</token>
+ <token>totalDigits</token>
+ <token>type</token>
+ <token>union</token>
+ <token>unique</token>
+ <token>use</token>
+ <token>value</token>
+ <token>version</token>
+ <token>whiteSpace</token>
+ <token>xpath</token>
+ <token name="XPathDefaultNamespace">xpathDefaultNamespace</token>
+ <token name="XmlLanguage">xml:lang</token>
+ <token name="XML_NS_SCHEMA_URI">http://www.w3.org/2001/XMLSchema</token>
+ </tokens>
+
+ <boilerplate>
+
+ <prolog>/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+</prolog>
+
+ </boilerplate>
+
+</tokenAutomaton>
diff --git a/src/xmlpatterns/schema/xml.xsd-LICENSE b/src/xmlpatterns/schema/xml.xsd-LICENSE
new file mode 100644
index 0000000..2c687d8
--- /dev/null
+++ b/src/xmlpatterns/schema/xml.xsd-LICENSE
@@ -0,0 +1,40 @@
+W3C® SOFTWARE NOTICE AND LICENSE
+
+This license came from: http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license. By obtaining, using and/or copying this work, you (the licensee)
+agree that you have read, understood, and will comply with the following
+terms and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and without
+fee or royalty is hereby granted, provided that you include the following on
+ALL copies of the software and documentation or portions thereof, including
+modifications:
+
+ 1. The full text of this NOTICE in a location viewable to users of the
+ redistributed or derivative work.
+ 2. Any pre-existing intellectual property disclaimers, notices, or terms
+ and conditions. If none exist, the W3C Software Short Notice should be
+ included (hypertext is preferred, text is permitted)
+ within the body of any redistributed or derivative code.
+ 3. Notice of any changes or modifications to the files, including the date
+ changes were made. (We recommend you provide URIs to the location from
+ which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE
+ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+DOCUMENTATION.
+
+The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without specific, written
+prior permission. Title to copyright in this software and any associated
+documentation will at all times remain with copyright holders.
diff --git a/src/xmlpatterns/type/qanysimpletype.cpp b/src/xmlpatterns/type/qanysimpletype.cpp
index 9e5c876..659f4499 100644
--- a/src/xmlpatterns/type/qanysimpletype.cpp
+++ b/src/xmlpatterns/type/qanysimpletype.cpp
@@ -80,4 +80,14 @@ SchemaType::DerivationMethod AnySimpleType::derivationMethod() const
return DerivationRestriction;
}
+bool AnySimpleType::isSimpleType() const
+{
+ return true;
+}
+
+bool AnySimpleType::isComplexType() const
+{
+ return false;
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/type/qanysimpletype_p.h b/src/xmlpatterns/type/qanysimpletype_p.h
index 8009c3b..a633052 100644
--- a/src/xmlpatterns/type/qanysimpletype_p.h
+++ b/src/xmlpatterns/type/qanysimpletype_p.h
@@ -73,6 +73,8 @@ namespace QPatternist
class AnySimpleType : public AnyType
{
public:
+ typedef QExplicitlySharedDataPointer<AnySimpleType> Ptr;
+ typedef QList<AnySimpleType::Ptr> List;
friend class BuiltinTypes;
virtual ~AnySimpleType();
@@ -105,6 +107,16 @@ namespace QPatternist
*/
virtual SchemaType::DerivationMethod derivationMethod() const;
+ /**
+ * Always returns @c true.
+ */
+ virtual bool isSimpleType() const;
+
+ /**
+ * Always returns @c false.
+ */
+ virtual bool isComplexType() const;
+
protected:
AnySimpleType();
diff --git a/src/xmlpatterns/type/qanytype.cpp b/src/xmlpatterns/type/qanytype.cpp
index 3d8714e..cabe56f 100644
--- a/src/xmlpatterns/type/qanytype.cpp
+++ b/src/xmlpatterns/type/qanytype.cpp
@@ -69,7 +69,7 @@ QXmlName AnyType::name(const NamePool::Ptr &np) const
return np->allocateQName(StandardNamespaces::xs, QLatin1String("anyType"));
}
-QString AnyType::displayName(const NamePool::Ptr &) const
+QString AnyType::displayName(const NamePool::Ptr &np) const
{
/* A bit faster than calling name()->displayName() */
return QLatin1String("xs:anyType");
@@ -85,9 +85,19 @@ SchemaType::TypeCategory AnyType::category() const
return None;
}
+bool AnyType::isComplexType() const
+{
+ return true;
+}
+
SchemaType::DerivationMethod AnyType::derivationMethod() const
{
return NoDerivation;
}
+SchemaType::DerivationConstraints AnyType::derivationConstraints() const
+{
+ return SchemaType::DerivationConstraints();
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/type/qanytype_p.h b/src/xmlpatterns/type/qanytype_p.h
index ae5cac8..7bc5554 100644
--- a/src/xmlpatterns/type/qanytype_p.h
+++ b/src/xmlpatterns/type/qanytype_p.h
@@ -114,6 +114,16 @@ namespace QPatternist
*/
virtual DerivationMethod derivationMethod() const;
+ /**
+ * @returns an empty set of derivation constraint flags.
+ */
+ virtual DerivationConstraints derivationConstraints() const;
+
+ /**
+ * Always returns @c true.
+ */
+ virtual bool isComplexType() const;
+
protected:
/**
* @short This constructor is protected, because this
diff --git a/src/xmlpatterns/type/qnamedschemacomponent.cpp b/src/xmlpatterns/type/qnamedschemacomponent.cpp
new file mode 100644
index 0000000..71b7519
--- /dev/null
+++ b/src/xmlpatterns/type/qnamedschemacomponent.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qnamedschemacomponent_p.h"
+
+QT_BEGIN_NAMESPACE
+
+using namespace QPatternist;
+
+NamedSchemaComponent::NamedSchemaComponent()
+{
+}
+
+NamedSchemaComponent::~NamedSchemaComponent()
+{
+}
+
+void NamedSchemaComponent::setName(const QXmlName &name)
+{
+ m_name = name;
+}
+
+QXmlName NamedSchemaComponent::name(const NamePool::Ptr&) const
+{
+ return m_name;
+}
+
+QString NamedSchemaComponent::displayName(const NamePool::Ptr &np) const
+{
+ return np->displayName(m_name);
+}
+
+QT_END_NAMESPACE
diff --git a/src/xmlpatterns/type/qnamedschemacomponent_p.h b/src/xmlpatterns/type/qnamedschemacomponent_p.h
new file mode 100644
index 0000000..70da093
--- /dev/null
+++ b/src/xmlpatterns/type/qnamedschemacomponent_p.h
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the QtXmlPatterns of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_NamedSchemaComponent_H
+#define Patternist_NamedSchemaComponent_H
+
+#include "qnamepool_p.h"
+#include "qschemacomponent_p.h"
+#include "qxmlname.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+namespace QPatternist
+{
+ /**
+ * @short Base class for all named components that can appear in a W3C XML Schema.
+ *
+ * @ingroup Patternist_types
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class NamedSchemaComponent : public SchemaComponent
+ {
+ public:
+ typedef QExplicitlySharedDataPointer<NamedSchemaComponent> Ptr;
+
+ /**
+ * Describes the blocking constraints that are given by the 'block' attributes.
+ */
+ enum BlockingConstraint
+ {
+ RestrictionConstraint = 1,
+ ExtensionConstraint = 2,
+ SubstitutionConstraint = 4
+ };
+ Q_DECLARE_FLAGS(BlockingConstraints, BlockingConstraint)
+
+ /**
+ * Creates a new named schema component.
+ */
+ NamedSchemaComponent();
+
+ /**
+ * Destroys the named schema component.
+ */
+ virtual ~NamedSchemaComponent();
+
+ /**
+ * Sets the @p name of the schema component.
+ */
+ void setName(const QXmlName &name);
+
+ /**
+ * Returns the name of the schema component.
+ *
+ * @param namePool The name pool the name belongs to.
+ */
+ virtual QXmlName name(const NamePool::Ptr &namePool) const;
+
+ /**
+ * Returns the display name of the schema component.
+ *
+ * @param namePool The name pool the name belongs to.
+ */
+ virtual QString displayName(const NamePool::Ptr &namePool) const;
+
+ private:
+ QXmlName m_name;
+ };
+
+ Q_DECLARE_OPERATORS_FOR_FLAGS(NamedSchemaComponent::BlockingConstraints)
+}
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/src/xmlpatterns/type/qprimitives_p.h b/src/xmlpatterns/type/qprimitives_p.h
index 818cb22..78bd4ae 100644
--- a/src/xmlpatterns/type/qprimitives_p.h
+++ b/src/xmlpatterns/type/qprimitives_p.h
@@ -53,6 +53,8 @@
#define Patternist_Primitives_H
#include <QtGlobal>
+#include <QtCore/QHash>
+#include <QtCore/QUrl>
/**
* @file
@@ -72,6 +74,17 @@ QT_BEGIN_NAMESPACE
class QString;
/**
+ * @internal
+ *
+ * A method to allow a QHash or QSet with QUrl
+ * as key type.
+ */
+inline uint qHash(const QUrl &uri)
+{
+ return qHash(uri.toString());
+}
+
+/**
* @short The namespace for the internal API of QtXmlPatterns
* @internal
*/
diff --git a/src/xmlpatterns/type/qschematype.cpp b/src/xmlpatterns/type/qschematype.cpp
index e7b8738..51ac41d 100644
--- a/src/xmlpatterns/type/qschematype.cpp
+++ b/src/xmlpatterns/type/qschematype.cpp
@@ -72,4 +72,9 @@ bool SchemaType::isComplexType() const
return category() == ComplexType;
}
+bool SchemaType::isDefinedBySchema() const
+{
+ return false;
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/type/qschematype_p.h b/src/xmlpatterns/type/qschematype_p.h
index 38ed9b6..eaac28a 100644
--- a/src/xmlpatterns/type/qschematype_p.h
+++ b/src/xmlpatterns/type/qschematype_p.h
@@ -57,6 +57,7 @@
#include "qxmlname.h"
template<typename N, typename M> class QHash;
+template<typename N> class QList;
QT_BEGIN_HEADER
@@ -80,6 +81,7 @@ namespace QPatternist
typedef QExplicitlySharedDataPointer<SchemaType> Ptr;
typedef QHash<QXmlName, SchemaType::Ptr> Hash;
+ typedef QList<SchemaType::Ptr> List;
/**
* Schema types are divided into different categories such as
@@ -117,6 +119,18 @@ namespace QPatternist
NoDerivation = 16
};
+ /**
+ * Describes the derivation constraints that are given by the 'final' or 'block' attributes.
+ */
+ enum DerivationConstraint
+ {
+ RestrictionConstraint = 1,
+ ExtensionConstraint = 2,
+ ListConstraint = 4,
+ UnionConstraint = 8
+ };
+ Q_DECLARE_FLAGS(DerivationConstraints, DerivationConstraint)
+
SchemaType();
virtual ~SchemaType();
@@ -137,6 +151,11 @@ namespace QPatternist
virtual DerivationMethod derivationMethod() const = 0;
/**
+ * Determines what derivation constraints exists for the type.
+ */
+ virtual DerivationConstraints derivationConstraints() const = 0;
+
+ /**
* Determines whether the type is an abstract type.
*
* @note It is important a correct value is returned, since
@@ -202,7 +221,7 @@ namespace QPatternist
* @note Do not re-implement this function, but instead override category()
* and let it return an appropriate value.
*/
- bool isSimpleType() const;
+ virtual bool isSimpleType() const;
/**
* Determines whether the type is a complex type, by introspecting
@@ -211,8 +230,15 @@ namespace QPatternist
* @note Do not re-implement this function, but instead override category()
* and let it return an appropriate value.
*/
- bool isComplexType() const;
+ virtual bool isComplexType() const;
+
+ /**
+ * Returns whether the value has been defined by a schema (is not a built in type).
+ */
+ virtual bool isDefinedBySchema() const;
};
+
+ Q_DECLARE_OPERATORS_FOR_FLAGS(SchemaType::DerivationConstraints)
}
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/type/type.pri b/src/xmlpatterns/type/type.pri
index ef5976a..5425298 100644
--- a/src/xmlpatterns/type/type.pri
+++ b/src/xmlpatterns/type/type.pri
@@ -24,6 +24,7 @@ HEADERS += $$PWD/qabstractnodetest_p.h \
$$PWD/qitemtype_p.h \
$$PWD/qlocalnametest_p.h \
$$PWD/qmultiitemtype_p.h \
+ $$PWD/qnamedschemacomponent_p.h \
$$PWD/qnamespacenametest_p.h \
$$PWD/qnonetype_p.h \
$$PWD/qnumerictype_p.h \
@@ -57,6 +58,7 @@ SOURCES += $$PWD/qabstractnodetest.cpp \
$$PWD/qitemtype.cpp \
$$PWD/qlocalnametest.cpp \
$$PWD/qmultiitemtype.cpp \
+ $$PWD/qnamedschemacomponent.cpp \
$$PWD/qnamespacenametest.cpp \
$$PWD/qnonetype.cpp \
$$PWD/qnumerictype.cpp \
diff --git a/src/xmlpatterns/utils/qpatternistlocale_p.h b/src/xmlpatterns/utils/qpatternistlocale_p.h
index 5dcd917..dc287bd 100644
--- a/src/xmlpatterns/utils/qpatternistlocale_p.h
+++ b/src/xmlpatterns/utils/qpatternistlocale_p.h
@@ -168,6 +168,16 @@ namespace QPatternist
}
/**
+ * @short Formats name of any type.
+ */
+ static inline QString formatType(const NamePool::Ptr &np, const QXmlName &name)
+ {
+ return QLatin1String("<span class='XQuery-type'>") +
+ escape(np->displayName(name)) +
+ QLatin1String("</span>");
+ }
+
+ /**
* @short Formats Cardinality.
*/
static inline QString formatType(const Cardinality &type)
diff --git a/src/xmlpatterns/utils/qxpathhelper.cpp b/src/xmlpatterns/utils/qxpathhelper.cpp
index 377d097..69f5494 100644
--- a/src/xmlpatterns/utils/qxpathhelper.cpp
+++ b/src/xmlpatterns/utils/qxpathhelper.cpp
@@ -125,4 +125,16 @@ ItemType::Ptr XPathHelper::typeFromKind(const QXmlNodeModelIndex::NodeKind nodeK
}
}
+QUrl XPathHelper::normalizeQueryURI(const QUrl &uri)
+{
+ Q_ASSERT_X(uri.isEmpty() || uri.isValid(), Q_FUNC_INFO,
+ "The URI passed to QXmlQuery::setQuery() must be valid or empty.");
+ if(uri.isEmpty())
+ return QUrl::fromLocalFile(QCoreApplication::applicationFilePath());
+ else if(uri.isRelative())
+ return QUrl::fromLocalFile(QCoreApplication::applicationFilePath()).resolved(uri);
+ else
+ return uri;
+}
+
QT_END_NAMESPACE
diff --git a/src/xmlpatterns/utils/qxpathhelper_p.h b/src/xmlpatterns/utils/qxpathhelper_p.h
index 8b7dc6e..4a37bb6 100644
--- a/src/xmlpatterns/utils/qxpathhelper_p.h
+++ b/src/xmlpatterns/utils/qxpathhelper_p.h
@@ -128,6 +128,11 @@ namespace QPatternist
static QPatternist::ItemTypePtr typeFromKind(const QXmlNodeModelIndex::NodeKind nodeKind);
/**
+ * Normalizes an @p uri by resolving it to the application directory if empty.
+ */
+ static QUrl normalizeQueryURI(const QUrl &uri);
+
+ /**
* @short Determines whether @p consists only of whitespace. Characters
* considered whitespace are the ones for which QChar::isSpace() returns @c true for.
*
diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro
index e9d8af9..fb6aa1a 100644
--- a/src/xmlpatterns/xmlpatterns.pro
+++ b/src/xmlpatterns/xmlpatterns.pro
@@ -21,6 +21,8 @@ include($$PWD/iterators/iterators.pri)
include($$PWD/janitors/janitors.pri)
include($$PWD/parser/parser.pri)
include($$PWD/projection/projection.pri)
+include($$PWD/schema/schema.pri)
+include($$PWD/schematron/schematron.pri)
include($$PWD/type/type.pri)
include($$PWD/utils/utils.pri)
include($$PWD/qobjectmodel/qobjectmodel.pri)
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index f94d428..fa1956d 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -422,9 +422,14 @@ SUBDIRS += checkxmlfiles \
qxmlnodemodelindex \
qxmlquery \
qxmlresultitems \
+ qxmlschema \
+ qxmlschemavalidator \
qxmlserializer \
xmlpatterns \
xmlpatternsdiagnosticsts \
+ xmlpatternsschema \
+ xmlpatternsschemats \
+ xmlpatternsvalidator \
xmlpatternsview \
xmlpatternsxqts \
xmlpatternsxslts
diff --git a/tests/auto/patternistheaders/tst_patternistheaders.cpp b/tests/auto/patternistheaders/tst_patternistheaders.cpp
index 00b2544..dd342ae 100644
--- a/tests/auto/patternistheaders/tst_patternistheaders.cpp
+++ b/tests/auto/patternistheaders/tst_patternistheaders.cpp
@@ -94,6 +94,10 @@ void tst_PatternistHeaders::run() const
#include <qxmlquery.h>
#include <QXmlResultItems>
#include <qxmlresultitems.h>
+#include <QXmlSchema>
+#include <qxmlschema.h>
+#include <QXmlSchemaValidator>
+#include <qxmlschemavalidator.h>
#include <QXmlSerializer>
#include <qxmlserializer.h>
@@ -122,6 +126,10 @@ void tst_PatternistHeaders::run() const
#include <QtXmlPatterns/qxmlquery.h>
#include <QtXmlPatterns/QXmlResultItems>
#include <QtXmlPatterns/qxmlresultitems.h>
+#include <QtXmlPatterns/QXmlSchema>
+#include <QtXmlPatterns/qxmlschema.h>
+#include <QtXmlPatterns/QXmlSchemaValidator>
+#include <QtXmlPatterns/qxmlschemavalidator.h>
#include <QtXmlPatterns/QXmlSerializer>
#include <QtXmlPatterns/qxmlserializer.h>
diff --git a/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp b/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp
index 7679bd8..634f692 100644
--- a/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp
+++ b/tests/auto/qabstractxmlnodemodel/tst_qabstractxmlnodemodel.cpp
@@ -45,6 +45,7 @@
#ifdef QTEST_XMLPATTERNS
+#include <QSourceLocation>
#include <QXmlFormatter>
#include <QXmlNamePool>
#include <QXmlQuery>
@@ -80,6 +81,7 @@ private Q_SLOTS:
void id() const;
void idref() const;
void typedValue() const;
+ void sourceLocation() const;
private:
QAbstractXmlNodeModel::Ptr m_nodeModel;
@@ -389,6 +391,12 @@ void tst_QAbstractXmlNodeModel::typedValue() const
QVERIFY(output.isEmpty());
}
+void tst_QAbstractXmlNodeModel::sourceLocation() const
+{
+ const QAbstractXmlNodeModel* const constModel = m_nodeModel.data();
+ const QSourceLocation location = constModel->sourceLocation(m_rootNode);
+}
+
QTEST_MAIN(tst_QAbstractXmlNodeModel)
#include "tst_qabstractxmlnodemodel.moc"
diff --git a/tests/auto/qxmlquery/tst_qxmlquery.cpp b/tests/auto/qxmlquery/tst_qxmlquery.cpp
index 30b3f50..fe9efae 100644
--- a/tests/auto/qxmlquery/tst_qxmlquery.cpp
+++ b/tests/auto/qxmlquery/tst_qxmlquery.cpp
@@ -223,6 +223,10 @@ private Q_SLOTS:
void bindVariableQXmlNameQXmlQuery() const;
void bindVariableQXmlQueryInvalidate() const;
+ void identityConstraintSuccess() const;
+ void identityConstraintFailure() const;
+ void identityConstraintFailure_data() const;
+
// TODO call all URI resolving functions where 1) the URI resolver return a null QUrl(); 2) resolves into valid, existing URI, 3) invalid, non-existing URI.
// TODO bind stringlists, variant lists, both ways.
// TODO trigger serialization error, or any error in evaluateToushCallback().
@@ -2972,6 +2976,9 @@ void tst_QXmlQuery::enumQueryLanguage() const
/* These enum values should be possible to OR for future plans. */
QCOMPARE(int(QXmlQuery::XQuery10), 1);
QCOMPARE(int(QXmlQuery::XSLT20), 2);
+ QCOMPARE(int(QXmlQuery::XmlSchema11IdentityConstraintSelector), 1024);
+ QCOMPARE(int(QXmlQuery::XmlSchema11IdentityConstraintField), 2048);
+ QCOMPARE(int(QXmlQuery::XPath20), 4096);
}
void tst_QXmlQuery::setInitialTemplateNameQXmlName() const
@@ -3274,6 +3281,157 @@ void tst_QXmlQuery::bindVariableQXmlQueryInvalidate() const
QVERIFY(!query.isValid());
}
+void tst_QXmlQuery::identityConstraintSuccess() const
+{
+ QXmlQuery::QueryLanguage queryLanguage = QXmlQuery::XmlSchema11IdentityConstraintSelector;
+
+ /* We run this code for Selector and Field. */
+ for(int i = 0; i < 3; ++i)
+ {
+ QXmlNamePool namePool;
+ QXmlResultItems result;
+ QXmlItem node;
+
+ {
+ QXmlQuery nodeSource(namePool);
+ nodeSource.setQuery(QLatin1String("<e/>"));
+
+ nodeSource.evaluateTo(&result);
+ node = result.next();
+ }
+
+ /* Basic use:
+ * 1. The focus is undefined, but it's still valid.
+ * 2. We never evaluate. */
+ {
+ QXmlQuery query(queryLanguage);
+ query.setQuery(QLatin1String("a"));
+ QVERIFY(query.isValid());
+ }
+
+ /* Basic use:
+ * 1. The focus is undefined, but it's still valid.
+ * 2. We afterwards set the focus. */
+ {
+ QXmlQuery query(queryLanguage, namePool);
+ query.setQuery(QLatin1String("a"));
+ query.setFocus(node);
+ QVERIFY(query.isValid());
+ }
+
+ /* Basic use:
+ * 1. The focus is undefined, but it's still valid.
+ * 2. We afterwards set the focus.
+ * 3. We evaluate. */
+ {
+ QXmlQuery query(queryLanguage, namePool);
+ query.setQuery(QString(QLatin1Char('.')));
+ query.setFocus(node);
+ QVERIFY(query.isValid());
+
+ QString result;
+ QVERIFY(query.evaluateTo(&result));
+ QCOMPARE(result, QString::fromLatin1("<e/>\n"));
+ }
+
+ /* A slightly more complex Field. */
+ {
+ QXmlQuery query(queryLanguage);
+ query.setQuery(QLatin1String("* | .//xml:*/."));
+ QVERIFY(query.isValid());
+ }
+
+ /* @ is only allowed in Field. */
+ if(queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintField)
+ {
+ QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintField);
+ query.setQuery(QLatin1String("@abc"));
+ QVERIFY(query.isValid());
+ }
+
+ /* Field allows attribute:: and child:: .*/
+ if(queryLanguage == QXmlQuery::XmlSchema11IdentityConstraintField)
+ {
+ QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintField);
+ query.setQuery(QLatin1String("attribute::name | child::name"));
+ QVERIFY(query.isValid());
+ }
+
+ /* Selector allows only child:: .*/
+ {
+ QXmlQuery query(QXmlQuery::XmlSchema11IdentityConstraintSelector);
+ query.setQuery(QLatin1String("child::name"));
+ QVERIFY(query.isValid());
+ }
+
+ if(i == 0)
+ queryLanguage = QXmlQuery::XmlSchema11IdentityConstraintField;
+ else if(i == 1)
+ queryLanguage = QXmlQuery::XPath20;
+ }
+}
+
+Q_DECLARE_METATYPE(QXmlQuery::QueryLanguage);
+
+/*!
+ We just do some basic tests for boot strapping and sanity checking. The actual regression
+ testing is in the Schema suite.
+ */
+void tst_QXmlQuery::identityConstraintFailure() const
+{
+ QFETCH(QXmlQuery::QueryLanguage, queryLanguage);
+ QFETCH(QString, inputQuery);
+
+ QXmlQuery query(queryLanguage);
+ MessageSilencer silencer;
+ query.setMessageHandler(&silencer);
+
+ query.setQuery(inputQuery);
+ QVERIFY(!query.isValid());
+}
+
+void tst_QXmlQuery::identityConstraintFailure_data() const
+{
+ QTest::addColumn<QXmlQuery::QueryLanguage>("queryLanguage");
+ QTest::addColumn<QString>("inputQuery");
+
+ QTest::newRow("We don't have element constructors in identity constraint pattern, "
+ "it's an XQuery feature(Selector).")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("<e/>");
+
+ QTest::newRow("We don't have functions in identity constraint pattern, "
+ "it's an XPath feature(Selector).")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("current-time()");
+
+ QTest::newRow("We don't have element constructors in identity constraint pattern, "
+ "it's an XQuery feature(Field).")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("<e/>");
+
+ QTest::newRow("We don't have functions in identity constraint pattern, "
+ "it's an XPath feature(Field).")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("current-time()");
+
+ QTest::newRow("@attributeName is disallowed for the selector.")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("@abc");
+
+ QTest::newRow("attribute:: is disallowed for the selector.")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("attribute::name");
+
+ QTest::newRow("ancestor::name is disallowed for the selector.")
+ << QXmlQuery::XmlSchema11IdentityConstraintSelector
+ << QString::fromLatin1("ancestor::name");
+
+ QTest::newRow("ancestor::name is disallowed for the field.")
+ << QXmlQuery::XmlSchema11IdentityConstraintField
+ << QString::fromLatin1("ancestor::name");
+}
+
QTEST_MAIN(tst_QXmlQuery)
#include "tst_qxmlquery.moc"
diff --git a/tests/auto/qxmlschema/.gitignore b/tests/auto/qxmlschema/.gitignore
new file mode 100644
index 0000000..5cf52a0
--- /dev/null
+++ b/tests/auto/qxmlschema/.gitignore
@@ -0,0 +1 @@
+tst_qxmlschema
diff --git a/tests/auto/qxmlschema/qxmlschema.pro b/tests/auto/qxmlschema/qxmlschema.pro
new file mode 100644
index 0000000..9dd7469
--- /dev/null
+++ b/tests/auto/qxmlschema/qxmlschema.pro
@@ -0,0 +1,4 @@
+load(qttest_p4)
+SOURCES += tst_qxmlschema.cpp
+
+include (../xmlpatterns.pri)
diff --git a/tests/auto/qxmlschema/tst_qxmlschema.cpp b/tests/auto/qxmlschema/tst_qxmlschema.cpp
new file mode 100644
index 0000000..33978e8
--- /dev/null
+++ b/tests/auto/qxmlschema/tst_qxmlschema.cpp
@@ -0,0 +1,372 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+
+#ifdef QTEST_XMLPATTERNS
+
+#include <QAbstractMessageHandler>
+#include <QAbstractUriResolver>
+#include <QtNetwork/QNetworkAccessManager>
+#include <QXmlName>
+#include <QXmlSchema>
+
+#include "../qabstracturiresolver/TestURIResolver.h"
+#include "../qxmlquery/MessageSilencer.h"
+
+/*!
+ \class tst_QXmlSchema
+ \internal
+ \brief Tests class QXmlSchema.
+
+ This test is not intended for testing the engine, but the functionality specific
+ to the QXmlSchema class.
+ */
+class tst_QXmlSchema : public QObject
+{
+ Q_OBJECT
+
+private Q_SLOTS:
+ void defaultConstructor() const;
+ void copyConstructor() const;
+ void constructorQXmlNamePool() const;
+ void copyMutationTest() const;
+
+ void isValid() const;
+ void documentUri() const;
+
+ void loadSchemaUrlSuccess() const;
+ void loadSchemaUrlFail() const;
+ void loadSchemaDeviceSuccess() const;
+ void loadSchemaDeviceFail() const;
+ void loadSchemaDataSuccess() const;
+ void loadSchemaDataFail() const;
+
+ void networkAccessManagerSignature() const;
+ void networkAccessManagerDefaultValue() const;
+ void networkAccessManager() const;
+
+ void messageHandlerSignature() const;
+ void messageHandlerDefaultValue() const;
+ void messageHandler() const;
+
+ void uriResolverSignature() const;
+ void uriResolverDefaultValue() const;
+ void uriResolver() const;
+};
+
+void tst_QXmlSchema::defaultConstructor() const
+{
+ /* Allocate instance in different orders. */
+ {
+ QXmlSchema schema;
+ }
+
+ {
+ QXmlSchema schema1;
+ QXmlSchema schema2;
+ }
+
+ {
+ QXmlSchema schema1;
+ QXmlSchema schema2;
+ QXmlSchema schema3;
+ }
+}
+
+void tst_QXmlSchema::copyConstructor() const
+{
+ /* Verify that we can take a const reference, and simply do a copy of a default constructed object. */
+ {
+ const QXmlSchema schema1;
+ QXmlSchema schema2(schema1);
+ }
+
+ /* Copy twice. */
+ {
+ const QXmlSchema schema1;
+ QXmlSchema schema2(schema1);
+ QXmlSchema schema3(schema2);
+ }
+
+ /* Verify that copying default values works. */
+ {
+ const QXmlSchema schema1;
+ const QXmlSchema schema2(schema1);
+ QCOMPARE(schema2.messageHandler(), schema1.messageHandler());
+ QCOMPARE(schema2.uriResolver(), schema1.uriResolver());
+ QCOMPARE(schema2.networkAccessManager(), schema1.networkAccessManager());
+ QCOMPARE(schema2.isValid(), schema1.isValid());
+ }
+}
+
+void tst_QXmlSchema::constructorQXmlNamePool() const
+{
+ QXmlSchema schema;
+
+ QXmlNamePool np = schema.namePool();
+
+ const QXmlName name(np, QLatin1String("localName"),
+ QLatin1String("http://example.com/"),
+ QLatin1String("prefix"));
+
+ QXmlNamePool np2(schema.namePool());
+ QCOMPARE(name.namespaceUri(np2), QString::fromLatin1("http://example.com/"));
+ QCOMPARE(name.localName(np2), QString::fromLatin1("localName"));
+ QCOMPARE(name.prefix(np2), QString::fromLatin1("prefix"));
+
+ // make sure namePool() is const
+ const QXmlSchema constSchema;
+ np = constSchema.namePool();
+}
+
+void tst_QXmlSchema::copyMutationTest() const
+{
+ QXmlSchema schema1;
+ QXmlSchema schema2(schema1);
+
+ // check that everything is equal
+ QVERIFY(schema2.messageHandler() == schema1.messageHandler());
+ QVERIFY(schema2.uriResolver() == schema1.uriResolver());
+ QVERIFY(schema2.networkAccessManager() == schema1.networkAccessManager());
+
+ MessageSilencer handler;
+ const TestURIResolver resolver;
+ QNetworkAccessManager manager;
+
+ // modify schema1
+ schema1.setMessageHandler(&handler);
+ schema1.setUriResolver(&resolver);
+ schema1.setNetworkAccessManager(&manager);
+
+ // check that schema2 is not effected by the modifications of schema1
+ QVERIFY(schema2.messageHandler() != schema1.messageHandler());
+ QVERIFY(schema2.uriResolver() != schema1.uriResolver());
+ QVERIFY(schema2.networkAccessManager() != schema1.networkAccessManager());
+
+ // modify schema1 further
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+ schema1.load(data, documentUri);
+
+ QVERIFY(schema2.isValid() != schema1.isValid());
+}
+
+void tst_QXmlSchema::isValid() const
+{
+ /* Check default value. */
+ QXmlSchema schema;
+ QVERIFY(!schema.isValid());
+}
+
+void tst_QXmlSchema::documentUri() const
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+ QXmlSchema schema;
+ schema.load(data, documentUri);
+
+ QCOMPARE(documentUri, schema.documentUri());
+}
+
+void tst_QXmlSchema::loadSchemaUrlSuccess() const
+{
+/**
+ TODO: put valid schema file on given url and enable test
+ const QUrl url("http://notavailable/");
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(url));
+*/
+}
+
+void tst_QXmlSchema::loadSchemaUrlFail() const
+{
+ const QUrl url("http://notavailable/");
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(url));
+}
+
+void tst_QXmlSchema::loadSchemaDeviceSuccess() const
+{
+ QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchema schema;
+ QVERIFY(schema.load(&buffer));
+}
+
+void tst_QXmlSchema::loadSchemaDeviceFail() const
+{
+ QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+
+ QBuffer buffer(&data);
+ // a closed device can not be loaded
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(&buffer));
+}
+
+void tst_QXmlSchema::loadSchemaDataSuccess() const
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ "</xsd:schema>" );
+ QXmlSchema schema;
+ QVERIFY(schema.load(data));
+}
+
+void tst_QXmlSchema::loadSchemaDataFail() const
+{
+ // empty schema can not be loaded
+ const QByteArray data;
+
+ QXmlSchema schema;
+ QVERIFY(!schema.load(data));
+}
+
+
+void tst_QXmlSchema::networkAccessManagerSignature() const
+{
+ /* Const object. */
+ const QXmlSchema schema;
+
+ /* The function should be const. */
+ schema.networkAccessManager();
+}
+
+void tst_QXmlSchema::networkAccessManagerDefaultValue() const
+{
+ /* Test that the default value of network access manager is not empty. */
+ {
+ QXmlSchema schema;
+ QVERIFY(schema.networkAccessManager() != static_cast<QNetworkAccessManager*>(0));
+ }
+}
+
+void tst_QXmlSchema::networkAccessManager() const
+{
+ /* Test that we return the network manager that was set. */
+ {
+ QNetworkAccessManager manager;
+ QXmlSchema schema;
+ schema.setNetworkAccessManager(&manager);
+ QCOMPARE(schema.networkAccessManager(), &manager);
+ }
+}
+
+void tst_QXmlSchema::messageHandlerSignature() const
+{
+ /* Const object. */
+ const QXmlSchema schema;
+
+ /* The function should be const. */
+ schema.messageHandler();
+}
+
+void tst_QXmlSchema::messageHandlerDefaultValue() const
+{
+ /* Test that the default value of message handler is not empty. */
+ {
+ QXmlSchema schema;
+ QVERIFY(schema.messageHandler() != static_cast<QAbstractMessageHandler*>(0));
+ }
+}
+
+void tst_QXmlSchema::messageHandler() const
+{
+ /* Test that we return the message handler that was set. */
+ {
+ MessageSilencer handler;
+
+ QXmlSchema schema;
+ schema.setMessageHandler(&handler);
+ QCOMPARE(schema.messageHandler(), &handler);
+ }
+}
+
+void tst_QXmlSchema::uriResolverSignature() const
+{
+ /* Const object. */
+ const QXmlSchema schema;
+
+ /* The function should be const. */
+ schema.uriResolver();
+
+ /* Const object. */
+ const TestURIResolver resolver;
+
+ /* This should compile */
+ QXmlSchema schema2;
+ schema2.setUriResolver(&resolver);
+}
+
+void tst_QXmlSchema::uriResolverDefaultValue() const
+{
+ /* Test that the default value of uri resolver is empty. */
+ {
+ QXmlSchema schema;
+ QVERIFY(schema.uriResolver() == static_cast<QAbstractUriResolver*>(0));
+ }
+}
+
+void tst_QXmlSchema::uriResolver() const
+{
+ /* Test that we return the uri resolver that was set. */
+ {
+ TestURIResolver resolver;
+
+ QXmlSchema schema;
+ schema.setUriResolver(&resolver);
+ QCOMPARE(schema.uriResolver(), &resolver);
+ }
+}
+
+QTEST_MAIN(tst_QXmlSchema)
+
+#include "tst_qxmlschema.moc"
+#else //QTEST_PATTERNIST
+QTEST_NOOP_MAIN
+#endif
diff --git a/tests/auto/qxmlschemavalidator/.gitignore b/tests/auto/qxmlschemavalidator/.gitignore
new file mode 100644
index 0000000..8857212
--- /dev/null
+++ b/tests/auto/qxmlschemavalidator/.gitignore
@@ -0,0 +1 @@
+tst_qxmlschemavalidator
diff --git a/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro b/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro
new file mode 100644
index 0000000..88ef317
--- /dev/null
+++ b/tests/auto/qxmlschemavalidator/qxmlschemavalidator.pro
@@ -0,0 +1,4 @@
+load(qttest_p4)
+SOURCES += tst_qxmlschemavalidator.cpp
+
+include (../xmlpatterns.pri)
diff --git a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
new file mode 100644
index 0000000..0f15bc8
--- /dev/null
+++ b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
@@ -0,0 +1,445 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+
+#ifdef QTEST_XMLPATTERNS
+
+#include <QAbstractMessageHandler>
+#include <QAbstractUriResolver>
+#include <QtNetwork/QNetworkAccessManager>
+#include <QXmlName>
+#include <QXmlSchema>
+#include <QXmlSchemaValidator>
+
+#include "../qabstracturiresolver/TestURIResolver.h"
+#include "../qxmlquery/MessageSilencer.h"
+
+/*!
+ \class tst_QXmlSchemaValidatorValidator
+ \internal
+ \brief Tests class QXmlSchemaValidator.
+
+ This test is not intended for testing the engine, but the functionality specific
+ to the QXmlSchemaValidator class.
+ */
+class tst_QXmlSchemaValidator : public QObject
+{
+ Q_OBJECT
+
+private Q_SLOTS:
+ void defaultConstructor() const;
+ void constructorQXmlNamePool() const;
+ void propertyInitialization() const;
+ void resetSchemaNamePool() const;
+
+ void loadInstanceUrlSuccess() const;
+ void loadInstanceUrlFail() const;
+ void loadInstanceDeviceSuccess() const;
+ void loadInstanceDeviceFail() const;
+ void loadInstanceDataSuccess() const;
+ void loadInstanceDataFail() const;
+
+ void networkAccessManagerSignature() const;
+ void networkAccessManagerDefaultValue() const;
+ void networkAccessManager() const;
+
+ void messageHandlerSignature() const;
+ void messageHandlerDefaultValue() const;
+ void messageHandler() const;
+
+ void uriResolverSignature() const;
+ void uriResolverDefaultValue() const;
+ void uriResolver() const;
+};
+
+static QXmlSchema createValidSchema()
+{
+ const QByteArray data( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<xsd:schema"
+ " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\""
+ " xmlns=\"http://www.qtsoftware.com/xmlschematest\""
+ " targetNamespace=\"http://www.qtsoftware.com/xmlschematest\""
+ " version=\"1.0\""
+ " elementFormDefault=\"qualified\">"
+ " <xsd:element name=\"myRoot\" type=\"xsd:string\"/>"
+ "</xsd:schema>" );
+
+ const QUrl documentUri("http://www.qtsoftware.com/xmlschematest");
+
+ QXmlSchema schema;
+ schema.load(data, documentUri);
+
+ return schema;
+}
+
+void tst_QXmlSchemaValidator::defaultConstructor() const
+{
+ /* Allocate instance in different orders. */
+ {
+ QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+ }
+
+ {
+ QXmlSchema schema1;
+ QXmlSchema schema2;
+
+ QXmlSchemaValidator validator1(schema1);
+ QXmlSchemaValidator validator2(schema2);
+ }
+
+ {
+ QXmlSchema schema;
+
+ QXmlSchemaValidator validator1(schema);
+ QXmlSchemaValidator validator2(schema);
+ }
+}
+
+void tst_QXmlSchemaValidator::propertyInitialization() const
+{
+ /* Verify that properties set in the schema are used as default values for the validator */
+ {
+ MessageSilencer handler;
+ TestURIResolver resolver;
+ QNetworkAccessManager manager;
+
+ QXmlSchema schema;
+ schema.setMessageHandler(&handler);
+ schema.setUriResolver(&resolver);
+ schema.setNetworkAccessManager(&manager);
+
+ QXmlSchemaValidator validator(schema);
+ QCOMPARE(validator.messageHandler(), &handler);
+ QCOMPARE(validator.uriResolver(), &resolver);
+ QCOMPARE(validator.networkAccessManager(), &manager);
+ }
+}
+
+void tst_QXmlSchemaValidator::constructorQXmlNamePool() const
+{
+ // test that the name pool from the schema is used by
+ // the schema validator as well
+ QXmlSchema schema;
+
+ QXmlNamePool np = schema.namePool();
+
+ const QXmlName name(np, QLatin1String("localName"),
+ QLatin1String("http://example.com/"),
+ QLatin1String("prefix"));
+
+ QXmlSchemaValidator validator(schema);
+
+ QXmlNamePool np2(validator.namePool());
+ QCOMPARE(name.namespaceUri(np2), QString::fromLatin1("http://example.com/"));
+ QCOMPARE(name.localName(np2), QString::fromLatin1("localName"));
+ QCOMPARE(name.prefix(np2), QString::fromLatin1("prefix"));
+
+ // make sure namePool() is const
+ const QXmlSchemaValidator constValidator(schema);
+ np = constValidator.namePool();
+}
+
+void tst_QXmlSchemaValidator::resetSchemaNamePool() const
+{
+ QXmlSchema schema1;
+ QXmlNamePool np1 = schema1.namePool();
+
+ const QXmlName name1(np1, QLatin1String("localName"),
+ QLatin1String("http://example.com/"),
+ QLatin1String("prefix"));
+
+ QXmlSchemaValidator validator(schema1);
+
+ {
+ QXmlNamePool compNamePool(validator.namePool());
+ QCOMPARE(name1.namespaceUri(compNamePool), QString::fromLatin1("http://example.com/"));
+ QCOMPARE(name1.localName(compNamePool), QString::fromLatin1("localName"));
+ QCOMPARE(name1.prefix(compNamePool), QString::fromLatin1("prefix"));
+ }
+
+ QXmlSchema schema2;
+ QXmlNamePool np2 = schema2.namePool();
+
+ const QXmlName name2(np2, QLatin1String("remoteName"),
+ QLatin1String("http://trolltech.com/"),
+ QLatin1String("suffix"));
+
+ // make sure that after re-setting the schema, the new namepool is used
+ validator.setSchema(schema2);
+
+ {
+ QXmlNamePool compNamePool(validator.namePool());
+ QCOMPARE(name2.namespaceUri(compNamePool), QString::fromLatin1("http://trolltech.com/"));
+ QCOMPARE(name2.localName(compNamePool), QString::fromLatin1("remoteName"));
+ QCOMPARE(name2.prefix(compNamePool), QString::fromLatin1("suffix"));
+ }
+}
+
+void tst_QXmlSchemaValidator::loadInstanceUrlSuccess() const
+{
+/*
+ TODO: put valid schema file on given url and enable test
+ const QXmlSchema schema(createValidSchema());
+ const QUrl url("http://notavailable/");
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(url));
+*/
+}
+
+void tst_QXmlSchemaValidator::loadInstanceUrlFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+ const QUrl url("http://notavailable/");
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(url));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDeviceSuccess() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+ QBuffer buffer(&data);
+ buffer.open(QIODevice::ReadOnly);
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.validate(&buffer));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDeviceFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+ QBuffer buffer(&data);
+ // a closed device can not be loaded
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(&buffer));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDataSuccess() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ const QByteArray data( "<myRoot xmlns=\"http://www.qtsoftware.com/xmlschematest\">Testme</myRoot>" );
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.validate(data));
+}
+
+void tst_QXmlSchemaValidator::loadInstanceDataFail() const
+{
+ const QXmlSchema schema(createValidSchema());
+
+ // empty instance can not be loaded
+ const QByteArray data;
+
+ QXmlSchemaValidator validator(schema);
+ QVERIFY(!validator.validate(data));
+}
+
+void tst_QXmlSchemaValidator::networkAccessManagerSignature() const
+{
+ const QXmlSchema schema;
+
+ /* Const object. */
+ const QXmlSchemaValidator validator(schema);
+
+ /* The function should be const. */
+ validator.networkAccessManager();
+}
+
+void tst_QXmlSchemaValidator::networkAccessManagerDefaultValue() const
+{
+ /* Test that the default value of network access manager is equal to the one from the schema. */
+ {
+ const QXmlSchema schema;
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.networkAccessManager() == schema.networkAccessManager());
+ }
+
+ /* Test that the default value of network access manager is equal to the one from the schema. */
+ {
+ QXmlSchema schema;
+
+ QNetworkAccessManager manager;
+ schema.setNetworkAccessManager(&manager);
+
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.networkAccessManager() == schema.networkAccessManager());
+ }
+}
+
+void tst_QXmlSchemaValidator::networkAccessManager() const
+{
+ /* Test that we return the network access manager that was set. */
+ {
+ QNetworkAccessManager manager;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setNetworkAccessManager(&manager);
+ QCOMPARE(validator.networkAccessManager(), &manager);
+ }
+
+ /* Test that we return the network access manager that was set, even if the schema changed in between. */
+ {
+ QNetworkAccessManager manager;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setNetworkAccessManager(&manager);
+
+ const QXmlSchema schema2;
+ validator.setSchema(schema2);
+
+ QCOMPARE(validator.networkAccessManager(), &manager);
+ }
+}
+
+void tst_QXmlSchemaValidator::messageHandlerSignature() const
+{
+ const QXmlSchema schema;
+
+ /* Const object. */
+ const QXmlSchemaValidator validator(schema);
+
+ /* The function should be const. */
+ validator.messageHandler();
+}
+
+void tst_QXmlSchemaValidator::messageHandlerDefaultValue() const
+{
+ /* Test that the default value of message handler is equal to the one from the schema. */
+ {
+ const QXmlSchema schema;
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.messageHandler() == schema.messageHandler());
+ }
+
+ /* Test that the default value of network access manager is equal to the one from the schema. */
+ {
+ QXmlSchema schema;
+
+ MessageSilencer handler;
+ schema.setMessageHandler(&handler);
+
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.messageHandler() == schema.messageHandler());
+ }
+}
+
+void tst_QXmlSchemaValidator::messageHandler() const
+{
+ /* Test that we return the message handler that was set. */
+ {
+ MessageSilencer handler;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setMessageHandler(&handler);
+ QCOMPARE(validator.messageHandler(), &handler);
+ }
+
+ /* Test that we return the message handler that was set, even if the schema changed in between. */
+ {
+ MessageSilencer handler;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setMessageHandler(&handler);
+
+ const QXmlSchema schema2;
+ validator.setSchema(schema2);
+
+ QCOMPARE(validator.messageHandler(), &handler);
+ }
+}
+
+void tst_QXmlSchemaValidator::uriResolverSignature() const
+{
+ const QXmlSchema schema;
+
+ /* Const object. */
+ const QXmlSchemaValidator validator(schema);
+
+ /* The function should be const. */
+ validator.uriResolver();
+
+ /* Const object. */
+ const TestURIResolver resolver;
+
+ /* This should compile */
+ QXmlSchema schema2;
+ schema2.setUriResolver(&resolver);
+}
+
+void tst_QXmlSchemaValidator::uriResolverDefaultValue() const
+{
+ /* Test that the default value of uri resolver is equal to the one from the schema. */
+ {
+ const QXmlSchema schema;
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.uriResolver() == schema.uriResolver());
+ }
+
+ /* Test that the default value of uri resolver is equal to the one from the schema. */
+ {
+ QXmlSchema schema;
+
+ TestURIResolver resolver;
+ schema.setUriResolver(&resolver);
+
+ const QXmlSchemaValidator validator(schema);
+ QVERIFY(validator.uriResolver() == schema.uriResolver());
+ }
+}
+
+void tst_QXmlSchemaValidator::uriResolver() const
+{
+ /* Test that we return the uri resolver that was set. */
+ {
+ TestURIResolver resolver;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setUriResolver(&resolver);
+ QCOMPARE(validator.uriResolver(), &resolver);
+ }
+
+ /* Test that we return the uri resolver that was set, even if the schema changed in between. */
+ {
+ TestURIResolver resolver;
+
+ const QXmlSchema schema;
+ QXmlSchemaValidator validator(schema);
+
+ validator.setUriResolver(&resolver);
+
+ const QXmlSchema schema2;
+ validator.setSchema(schema2);
+
+ QCOMPARE(validator.uriResolver(), &resolver);
+ }
+}
+
+QTEST_MAIN(tst_QXmlSchemaValidator)
+
+#include "tst_qxmlschemavalidator.moc"
+#else //QTEST_PATTERNIST
+QTEST_NOOP_MAIN
+#endif
diff --git a/tests/auto/runQtXmlPatternsTests.sh b/tests/auto/runQtXmlPatternsTests.sh
index 49ea840..41d6c83 100755
--- a/tests/auto/runQtXmlPatternsTests.sh
+++ b/tests/auto/runQtXmlPatternsTests.sh
@@ -34,6 +34,8 @@ qxmlserializer \
xmlpatterns \
xmlpatternsxqts \
xmlpatternsdiagnosticsts \
+xmlpatternsschema \
+xmlpatternsschemats \
xmlpatternsview \
xmlpatternsxslts"
diff --git a/tests/auto/xmlpatterns.pri b/tests/auto/xmlpatterns.pri
index bf13c3b..7cdd67f 100644
--- a/tests/auto/xmlpatterns.pri
+++ b/tests/auto/xmlpatterns.pri
@@ -19,3 +19,17 @@ if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
else: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}_debug
}
+INCLUDEPATH += \
+ $$QT_SOURCE_TREE/src/xmlpatterns/acceltree \
+ $$QT_SOURCE_TREE/src/xmlpatterns/api \
+ $$QT_SOURCE_TREE/src/xmlpatterns/data \
+ $$QT_SOURCE_TREE/src/xmlpatterns/environment \
+ $$QT_SOURCE_TREE/src/xmlpatterns/expr \
+ $$QT_SOURCE_TREE/src/xmlpatterns/functions \
+ $$QT_SOURCE_TREE/src/xmlpatterns/iterators \
+ $$QT_SOURCE_TREE/src/xmlpatterns/janitors \
+ $$QT_SOURCE_TREE/src/xmlpatterns/parser \
+ $$QT_SOURCE_TREE/src/xmlpatterns/projection \
+ $$QT_SOURCE_TREE/src/xmlpatterns/schema \
+ $$QT_SOURCE_TREE/src/xmlpatterns/type \
+ $$QT_SOURCE_TREE/src/xmlpatterns/utils
diff --git a/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp b/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp
index f3df426..07e1fed 100644
--- a/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp
+++ b/tests/auto/xmlpatternsdiagnosticsts/test/tst_xmlpatternsdiagnosticsts.cpp
@@ -61,7 +61,7 @@ protected:
virtual void catalogPath(QString &write) const;
};
-tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(false, true)
+tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(tst_SuiteTest::XQuerySuite, true)
{
}
diff --git a/tests/auto/xmlpatternsschema/.gitignore b/tests/auto/xmlpatternsschema/.gitignore
new file mode 100644
index 0000000..a37a2b7
--- /dev/null
+++ b/tests/auto/xmlpatternsschema/.gitignore
@@ -0,0 +1 @@
+tst_xmlpatternsschema
diff --git a/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp b/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp
new file mode 100644
index 0000000..030e9c0
--- /dev/null
+++ b/tests/auto/xmlpatternsschema/tst_xmlpatternsschema.cpp
@@ -0,0 +1,988 @@
+
+#include <QtTest/QtTest>
+
+#include "qxsdstatemachine_p.h"
+#include "qxsdschematoken_p.h"
+
+using namespace QPatternist;
+
+class tst_XMLPatternsSchema : public QObject
+{
+ Q_OBJECT
+
+ public slots:
+ void init();
+ void cleanup();
+
+ private slots:
+ void stateMachineTest1();
+ void stateMachineTest2();
+ void stateMachineTest3();
+ void stateMachineTest4();
+ void stateMachineTest5();
+ void stateMachineTest6();
+ void stateMachineTest7();
+ void stateMachineTest8();
+ void stateMachineTest9();
+ void stateMachineTest10();
+ void stateMachineTest11();
+ void stateMachineTest12();
+ void stateMachineTest13();
+ void stateMachineTest14();
+ void stateMachineTest15();
+ void stateMachineTest16();
+ void stateMachineTest17();
+ void stateMachineTest18();
+ void stateMachineTest19();
+
+ private:
+ bool runTest(const QVector<XsdSchemaToken::NodeName> &list, XsdStateMachine<XsdSchemaToken::NodeName> &machine);
+};
+
+void tst_XMLPatternsSchema::init()
+{
+}
+
+void tst_XMLPatternsSchema::cleanup()
+{
+}
+
+bool tst_XMLPatternsSchema::runTest(const QVector<XsdSchemaToken::NodeName> &list, XsdStateMachine<XsdSchemaToken::NodeName> &machine)
+{
+ machine.reset();
+ for (int i = 0; i < list.count(); ++i) {
+ if (!machine.proceed(list.at(i)))
+ return false;
+ }
+ if (!machine.inEndState())
+ return false;
+
+ return true;
+}
+
+void tst_XMLPatternsSchema::stateMachineTest1()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, simpleType?) : attribute
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+
+ QVERIFY(machine.inEndState() == true);
+ QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == true);
+ QVERIFY(machine.inEndState() == true);
+ QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == true);
+ QVERIFY(machine.inEndState() == true);
+ QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == false);
+ QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == false);
+ machine.reset();
+ QVERIFY(machine.proceed(XsdSchemaToken::SimpleType) == true);
+ QVERIFY(machine.inEndState() == true);
+ QVERIFY(machine.proceed(XsdSchemaToken::Annotation) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest2()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, ((simpleType | complexType)?, (unique | key | keyref)*)) : element
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s3);
+ machine.addTransition(startState, XsdSchemaToken::Unique, s4);
+ machine.addTransition(startState, XsdSchemaToken::Key, s5);
+ machine.addTransition(startState, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s3);
+ machine.addTransition(s1, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s1, XsdSchemaToken::Key, s5);
+ machine.addTransition(s1, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s2, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s2, XsdSchemaToken::Key, s5);
+ machine.addTransition(s2, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s3, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s3, XsdSchemaToken::Key, s5);
+ machine.addTransition(s3, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s4, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s4, XsdSchemaToken::Key, s5);
+ machine.addTransition(s4, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s5, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s5, XsdSchemaToken::Key, s5);
+ machine.addTransition(s5, XsdSchemaToken::Keyref, s6);
+
+ machine.addTransition(s6, XsdSchemaToken::Unique, s4);
+ machine.addTransition(s6, XsdSchemaToken::Key, s5);
+ machine.addTransition(s6, XsdSchemaToken::Keyref, s6);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3;
+
+ data1 << XsdSchemaToken::Annotation
+ << XsdSchemaToken::SimpleType
+ << XsdSchemaToken::Unique
+ << XsdSchemaToken::Keyref;
+
+ data2 << XsdSchemaToken::Annotation
+ << XsdSchemaToken::SimpleType
+ << XsdSchemaToken::Annotation
+ << XsdSchemaToken::Keyref;
+
+ data3 << XsdSchemaToken::Annotation
+ << XsdSchemaToken::SimpleType
+ << XsdSchemaToken::SimpleType;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == false);
+ QVERIFY(runTest(data3, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest3()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))) : complexType
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s7 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s8 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s9 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s10 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleContent, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexContent, s3);
+ machine.addTransition(startState, XsdSchemaToken::Group, s4);
+ machine.addTransition(startState, XsdSchemaToken::All, s5);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s6);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s7);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleContent, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexContent, s3);
+ machine.addTransition(s1, XsdSchemaToken::Group, s4);
+ machine.addTransition(s1, XsdSchemaToken::All, s5);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s6);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s7);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s5, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s5, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s5, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s6, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s6, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s6, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s7, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s7, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s7, XsdSchemaToken::AnyAttribute, s10);
+
+ machine.addTransition(s8, XsdSchemaToken::Attribute, s8);
+ machine.addTransition(s8, XsdSchemaToken::AttributeGroup, s9);
+ machine.addTransition(s8, XsdSchemaToken::AnyAttribute, s10);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4;
+
+ data1 << XsdSchemaToken::Annotation
+ << XsdSchemaToken::SimpleContent;
+
+ data2 << XsdSchemaToken::Group
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::AnyAttribute;
+
+ data3 << XsdSchemaToken::Group
+ << XsdSchemaToken::Choice
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::AnyAttribute;
+
+ data4 << XsdSchemaToken::Annotation
+ << XsdSchemaToken::Sequence
+ << XsdSchemaToken::AnyAttribute;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest4()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, ((attribute | attributeGroup)*, anyAttribute?)) : named attribute group/simple content extension/
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s4);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4;
+
+ data1 << XsdSchemaToken::Annotation;
+
+ data2 << XsdSchemaToken::Attribute
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::AnyAttribute;
+
+ data3 << XsdSchemaToken::Group
+ << XsdSchemaToken::Attribute
+ << XsdSchemaToken::AnyAttribute;
+
+ data4 << XsdSchemaToken::Attribute
+ << XsdSchemaToken::AnyAttribute
+ << XsdSchemaToken::Attribute;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest5()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (all | choice | sequence)?) : group
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::All, s2);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s3);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::All, s2);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s3);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s4);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::All;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Choice;
+ data4 << XsdSchemaToken::Annotation << XsdSchemaToken::Sequence;
+ data5 << XsdSchemaToken::All;
+ data6 << XsdSchemaToken::Choice;
+ data7 << XsdSchemaToken::Sequence;
+ data8 << XsdSchemaToken::Sequence << XsdSchemaToken::All;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+ QVERIFY(runTest(data6, machine) == true);
+ QVERIFY(runTest(data7, machine) == true);
+ QVERIFY(runTest(data8, machine) == false);
+ QVERIFY(runTest(data9, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest6()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, element*) : all
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Element, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Element, s2);
+
+ machine.addTransition(s2, XsdSchemaToken::Element, s2);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element;
+ data3 << XsdSchemaToken::Element;
+ data4 << XsdSchemaToken::Element << XsdSchemaToken::Sequence;
+ data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Element << XsdSchemaToken::Annotation;
+ data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation << XsdSchemaToken::Element;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == false);
+ QVERIFY(runTest(data5, machine) == false);
+ QVERIFY(runTest(data6, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest7()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (element | group | choice | sequence | any)*) : choice sequence
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s6 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Element, s2);
+ machine.addTransition(startState, XsdSchemaToken::Group, s3);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s4);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(startState, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s1, XsdSchemaToken::Element, s2);
+ machine.addTransition(s1, XsdSchemaToken::Group, s3);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s1, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s2, XsdSchemaToken::Element, s2);
+ machine.addTransition(s2, XsdSchemaToken::Group, s3);
+ machine.addTransition(s2, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s2, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s2, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s3, XsdSchemaToken::Element, s2);
+ machine.addTransition(s3, XsdSchemaToken::Group, s3);
+ machine.addTransition(s3, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s3, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s3, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s4, XsdSchemaToken::Element, s2);
+ machine.addTransition(s4, XsdSchemaToken::Group, s3);
+ machine.addTransition(s4, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s4, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s4, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s5, XsdSchemaToken::Element, s2);
+ machine.addTransition(s5, XsdSchemaToken::Group, s3);
+ machine.addTransition(s5, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s5, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s5, XsdSchemaToken::Any, s6);
+
+ machine.addTransition(s6, XsdSchemaToken::Element, s2);
+ machine.addTransition(s6, XsdSchemaToken::Group, s3);
+ machine.addTransition(s6, XsdSchemaToken::Choice, s4);
+ machine.addTransition(s6, XsdSchemaToken::Sequence, s5);
+ machine.addTransition(s6, XsdSchemaToken::Any, s6);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8, data9;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element << XsdSchemaToken::Sequence << XsdSchemaToken::Choice;
+ data3 << XsdSchemaToken::Group;
+ data4 << XsdSchemaToken::Element << XsdSchemaToken::Sequence << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest8()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?) : any/selector/field/notation/include/import/referred attribute group/anyAttribute/all facets
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Element;
+ data3 << XsdSchemaToken::Group;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == false);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest9()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (selector, field+)) : unique/key/keyref
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Selector, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Selector, s2);
+ machine.addTransition(s2, XsdSchemaToken::Field, s3);
+ machine.addTransition(s3, XsdSchemaToken::Field, s3);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Selector;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Selector << XsdSchemaToken::Field;
+ data4 << XsdSchemaToken::Selector << XsdSchemaToken::Field;
+ data5 << XsdSchemaToken::Selector << XsdSchemaToken::Field << XsdSchemaToken::Field;
+
+ QVERIFY(runTest(data1, machine) == false);
+ QVERIFY(runTest(data2, machine) == false);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest10()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (appinfo | documentation)* : annotation
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Appinfo, s1);
+ machine.addTransition(startState, XsdSchemaToken::Documentation, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Appinfo, s1);
+ machine.addTransition(s1, XsdSchemaToken::Documentation, s2);
+
+ machine.addTransition(s2, XsdSchemaToken::Appinfo, s1);
+ machine.addTransition(s2, XsdSchemaToken::Documentation, s2);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5;
+
+ data1 << XsdSchemaToken::Appinfo;
+ data2 << XsdSchemaToken::Appinfo << XsdSchemaToken::Appinfo;
+ data3 << XsdSchemaToken::Documentation << XsdSchemaToken::Appinfo << XsdSchemaToken::Documentation;
+ data4 << XsdSchemaToken::Selector << XsdSchemaToken::Field;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == false);
+ QVERIFY(runTest(data5, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest11()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (restriction | list | union)) : simpleType
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(startState, XsdSchemaToken::List, s3);
+ machine.addTransition(startState, XsdSchemaToken::Union, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(s1, XsdSchemaToken::List, s3);
+ machine.addTransition(s1, XsdSchemaToken::Union, s4);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6, data7, data8;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Restriction;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::List;
+ data4 << XsdSchemaToken::Annotation << XsdSchemaToken::Union;
+ data5 << XsdSchemaToken::Restriction;
+ data6 << XsdSchemaToken::List;
+ data7 << XsdSchemaToken::Union;
+ data8 << XsdSchemaToken::Union << XsdSchemaToken::Union;
+
+ QVERIFY(runTest(data1, machine) == false);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+ QVERIFY(runTest(data6, machine) == true);
+ QVERIFY(runTest(data7, machine) == true);
+ QVERIFY(runTest(data8, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest12()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern)*)) : simple type restriction
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::Length, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(startState, XsdSchemaToken::Pattern, s3);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::Length, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s1, XsdSchemaToken::Pattern, s3);
+
+ machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::Length, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s2, XsdSchemaToken::Pattern, s3);
+
+ machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::Length, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s3, XsdSchemaToken::Pattern, s3);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Length << XsdSchemaToken::MaxLength;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::List;
+ data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::Pattern;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest13()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, simpleType?) : list
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType;
+ data3 << XsdSchemaToken::SimpleType;
+ data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == false);
+ QVERIFY(runTest(data5, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest14()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, simpleType*) : union
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s2, XsdSchemaToken::SimpleType, s2);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType;
+ data3 << XsdSchemaToken::SimpleType;
+ data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType;
+ data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+ QVERIFY(runTest(data6, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest15()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for ((include | import | redefine | annotation)*, (((simpleType | complexType | group | attributeGroup) | element | attribute | notation), annotation*)*) : schema
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Include, s1);
+ machine.addTransition(startState, XsdSchemaToken::Import, s1);
+ machine.addTransition(startState, XsdSchemaToken::Redefine, s1);
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(startState, XsdSchemaToken::Group, s2);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(startState, XsdSchemaToken::Element, s2);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(startState, XsdSchemaToken::Notation, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Include, s1);
+ machine.addTransition(s1, XsdSchemaToken::Import, s1);
+ machine.addTransition(s1, XsdSchemaToken::Redefine, s1);
+ machine.addTransition(s1, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(s1, XsdSchemaToken::Group, s2);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s1, XsdSchemaToken::Element, s2);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s1, XsdSchemaToken::Notation, s2);
+
+ machine.addTransition(s2, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s2, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(s2, XsdSchemaToken::Group, s2);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s2, XsdSchemaToken::Element, s2);
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s2, XsdSchemaToken::Notation, s2);
+ machine.addTransition(s2, XsdSchemaToken::Annotation, s3);
+
+ machine.addTransition(s3, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s3, XsdSchemaToken::ComplexType, s2);
+ machine.addTransition(s3, XsdSchemaToken::Group, s2);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s2);
+ machine.addTransition(s3, XsdSchemaToken::Element, s2);
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s2);
+ machine.addTransition(s3, XsdSchemaToken::Notation, s2);
+ machine.addTransition(s3, XsdSchemaToken::Annotation, s3);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation << XsdSchemaToken::Import << XsdSchemaToken::SimpleType << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::SimpleType;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Import << XsdSchemaToken::Include << XsdSchemaToken::Import;
+ data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::ComplexType << XsdSchemaToken::Annotation << XsdSchemaToken::Attribute;
+ data5 << XsdSchemaToken::SimpleType << XsdSchemaToken::Include << XsdSchemaToken::Annotation << XsdSchemaToken::Attribute;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == false);
+ QVERIFY(runTest(data6, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest16()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation | (simpleType | complexType | group | attributeGroup))* : redefine
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(startState, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(startState, XsdSchemaToken::Group, s1);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s1);
+
+ machine.addTransition(s1, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s1);
+ machine.addTransition(s1, XsdSchemaToken::ComplexType, s1);
+ machine.addTransition(s1, XsdSchemaToken::Group, s1);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s1);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::SimpleType;
+ data3 << XsdSchemaToken::SimpleType;
+ data4 << XsdSchemaToken::SimpleType << XsdSchemaToken::SimpleType;
+ data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == true);
+ QVERIFY(runTest(data6, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest17()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (restriction | extension)) : simpleContent
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::InternalState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(startState, XsdSchemaToken::Extension, s2);
+
+ machine.addTransition(s1, XsdSchemaToken::Restriction, s2);
+ machine.addTransition(s1, XsdSchemaToken::Extension, s2);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Extension;
+ data3 << XsdSchemaToken::Restriction;
+ data4 << XsdSchemaToken::Extension << XsdSchemaToken::Restriction;
+ data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == false);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == true);
+ QVERIFY(runTest(data4, machine) == false);
+ QVERIFY(runTest(data5, machine) == false);
+ QVERIFY(runTest(data6, machine) == false);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest18()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (simpleType?, (minExclusive | minInclusive | maxExclusive | maxInclusive | totalDigits | fractionDigits | length | minLength | maxLength | enumeration | whiteSpace | pattern)*)?, ((attribute | attributeGroup)*, anyAttribute?)) : simpleContent restriction
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s5 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(startState, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(startState, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(startState, XsdSchemaToken::Length, s3);
+ machine.addTransition(startState, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(startState, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(startState, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(startState, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s5);
+
+ machine.addTransition(s1, XsdSchemaToken::SimpleType, s2);
+ machine.addTransition(s1, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s1, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s1, XsdSchemaToken::Length, s3);
+ machine.addTransition(s1, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s1, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s1, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s1, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s5);
+
+ machine.addTransition(s2, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s2, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s2, XsdSchemaToken::Length, s3);
+ machine.addTransition(s2, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s2, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s2, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s2, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s5);
+
+ machine.addTransition(s3, XsdSchemaToken::MinExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxExclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxInclusive, s3);
+ machine.addTransition(s3, XsdSchemaToken::TotalDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::FractionDigits, s3);
+ machine.addTransition(s3, XsdSchemaToken::Length, s3);
+ machine.addTransition(s3, XsdSchemaToken::MinLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::MaxLength, s3);
+ machine.addTransition(s3, XsdSchemaToken::Enumeration, s3);
+ machine.addTransition(s3, XsdSchemaToken::WhiteSpace, s3);
+ machine.addTransition(s3, XsdSchemaToken::Pattern, s3);
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s5);
+
+ machine.addTransition(s4, XsdSchemaToken::Attribute, s4);
+ machine.addTransition(s4, XsdSchemaToken::AttributeGroup, s4);
+ machine.addTransition(s4, XsdSchemaToken::AnyAttribute, s5);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::SimpleType << XsdSchemaToken::MinExclusive << XsdSchemaToken::MaxExclusive;
+ data3 << XsdSchemaToken::AnyAttribute << XsdSchemaToken::Attribute;
+ data4 << XsdSchemaToken::MinExclusive << XsdSchemaToken::TotalDigits << XsdSchemaToken::Enumeration;
+ data5 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == false);
+ QVERIFY(runTest(data6, machine) == true);
+}
+
+void tst_XMLPatternsSchema::stateMachineTest19()
+{
+ XsdStateMachine<XsdSchemaToken::NodeName> machine;
+
+ // setup state machine for (annotation?, (group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)) : complex content restriction/complex content extension
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId startState = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::StartEndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s1 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s2 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s3 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+ const XsdStateMachine<XsdSchemaToken::NodeName>::StateId s4 = machine.addState(XsdStateMachine<XsdSchemaToken::NodeName>::EndState);
+
+ machine.addTransition(startState, XsdSchemaToken::Annotation, s1);
+ machine.addTransition(startState, XsdSchemaToken::Group, s2);
+ machine.addTransition(startState, XsdSchemaToken::All, s2);
+ machine.addTransition(startState, XsdSchemaToken::Choice, s2);
+ machine.addTransition(startState, XsdSchemaToken::Sequence, s2);
+ machine.addTransition(startState, XsdSchemaToken::Attribute, s3);
+ machine.addTransition(startState, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(startState, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s1, XsdSchemaToken::Group, s2);
+ machine.addTransition(s1, XsdSchemaToken::All, s2);
+ machine.addTransition(s1, XsdSchemaToken::Choice, s2);
+ machine.addTransition(s1, XsdSchemaToken::Sequence, s2);
+ machine.addTransition(s1, XsdSchemaToken::Attribute, s3);
+ machine.addTransition(s1, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s1, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s2, XsdSchemaToken::Attribute, s3);
+ machine.addTransition(s2, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s2, XsdSchemaToken::AnyAttribute, s4);
+
+ machine.addTransition(s3, XsdSchemaToken::Attribute, s3);
+ machine.addTransition(s3, XsdSchemaToken::AttributeGroup, s3);
+ machine.addTransition(s3, XsdSchemaToken::AnyAttribute, s4);
+
+ QVector<XsdSchemaToken::NodeName> data1, data2, data3, data4, data5, data6;
+
+ data1 << XsdSchemaToken::Annotation;
+ data2 << XsdSchemaToken::Annotation << XsdSchemaToken::Group;
+ data3 << XsdSchemaToken::Annotation << XsdSchemaToken::Group << XsdSchemaToken::Sequence;
+ data4 << XsdSchemaToken::Attribute << XsdSchemaToken::Attribute;
+ data5 << XsdSchemaToken::Attribute << XsdSchemaToken::Sequence;
+ data6 << XsdSchemaToken::Annotation << XsdSchemaToken::Annotation;
+
+ QVERIFY(runTest(data1, machine) == true);
+ QVERIFY(runTest(data2, machine) == true);
+ QVERIFY(runTest(data3, machine) == false);
+ QVERIFY(runTest(data4, machine) == true);
+ QVERIFY(runTest(data5, machine) == false);
+ QVERIFY(runTest(data6, machine) == false);
+}
+
+QTEST_MAIN(tst_XMLPatternsSchema)
+#include "tst_xmlpatternsschema.moc"
diff --git a/tests/auto/xmlpatternsschema/xmlpatternsschema.pro b/tests/auto/xmlpatternsschema/xmlpatternsschema.pro
new file mode 100644
index 0000000..2ba869a
--- /dev/null
+++ b/tests/auto/xmlpatternsschema/xmlpatternsschema.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+SOURCES += tst_xmlpatternsschema.cpp \
+
+include (../xmlpatterns.pri)
+
+INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private
diff --git a/tests/auto/xmlpatternsschemats/.gitignore b/tests/auto/xmlpatternsschemats/.gitignore
new file mode 100644
index 0000000..5fd11f8
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/.gitignore
@@ -0,0 +1,4 @@
+CandidateBaseline.xml
+runTests
+tst_xmlpatternsschemats
+runTests
diff --git a/tests/auto/xmlpatternsschemats/Baseline.xml b/tests/auto/xmlpatternsschemats/Baseline.xml
new file mode 100644
index 0000000..9baef9c
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/Baseline.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test-suite-result xmlns="http://www.w3.org/2005/02/query-test-XQTSResult"><implementation name="Patternist" version="0.1"><organization name="K Desktop Environment(KDE)" website="http://www.kde.org/"/><submittor name="Frans Englich" email="fenglich@trolltech.com"/><description><p>Patternist is an implementation written in C++ and with the Qt/KDE libraries. It is licensed under GNU LGPL and part of KDE, the K Desktop Environment.</p></description></implementation><syntax>XQuery</syntax><test-run dateRun="2009-02-24"><test-suite version=""/></test-run><test-case name="1NISTSchema-SV-IV-atomic-decimal-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2NISTXML-SV-IV-atomic-decimal-minExclusive-1-1 tokoe:valid" result="fail"/><test-case name="3NISTXML-SV-IV-atomic-decimal-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4NISTXML-SV-IV-atomic-decimal-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="5NISTXML-SV-IV-atomic-decimal-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="6NISTXML-SV-IV-atomic-decimal-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="7NISTSchema-SV-IV-atomic-decimal-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8NISTXML-SV-IV-atomic-decimal-minExclusive-2-1 tokoe:valid" result="fail"/><test-case name="9NISTXML-SV-IV-atomic-decimal-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="10NISTXML-SV-IV-atomic-decimal-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="11NISTXML-SV-IV-atomic-decimal-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="12NISTXML-SV-IV-atomic-decimal-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="13NISTSchema-SV-IV-atomic-decimal-minExclusive-3 tokoe:valid" result="pass"/><test-case name="14NISTXML-SV-IV-atomic-decimal-minExclusive-3-1 tokoe:valid" result="fail"/><test-case name="15NISTXML-SV-IV-atomic-decimal-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="16NISTXML-SV-IV-atomic-decimal-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="17NISTXML-SV-IV-atomic-decimal-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="18NISTXML-SV-IV-atomic-decimal-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="19NISTSchema-SV-IV-atomic-decimal-minExclusive-4 tokoe:valid" result="pass"/><test-case name="20NISTXML-SV-IV-atomic-decimal-minExclusive-4-1 tokoe:valid" result="fail"/><test-case name="21NISTXML-SV-IV-atomic-decimal-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="22NISTXML-SV-IV-atomic-decimal-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="23NISTXML-SV-IV-atomic-decimal-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="24NISTXML-SV-IV-atomic-decimal-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="25NISTSchema-SV-IV-atomic-decimal-minExclusive-5 tokoe:valid" result="pass"/><test-case name="26NISTXML-SV-IV-atomic-decimal-minExclusive-5-1 tokoe:valid" result="fail"/><test-case name="27NISTSchema-SV-IV-atomic-decimal-minInclusive-1 tokoe:valid" result="pass"/><test-case name="28NISTXML-SV-IV-atomic-decimal-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="29NISTXML-SV-IV-atomic-decimal-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="30NISTXML-SV-IV-atomic-decimal-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="31NISTXML-SV-IV-atomic-decimal-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="32NISTXML-SV-IV-atomic-decimal-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="33NISTSchema-SV-IV-atomic-decimal-minInclusive-2 tokoe:valid" result="pass"/><test-case name="34NISTXML-SV-IV-atomic-decimal-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="35NISTXML-SV-IV-atomic-decimal-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="36NISTXML-SV-IV-atomic-decimal-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="37NISTXML-SV-IV-atomic-decimal-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="38NISTXML-SV-IV-atomic-decimal-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="39NISTSchema-SV-IV-atomic-decimal-minInclusive-3 tokoe:valid" result="pass"/><test-case name="40NISTXML-SV-IV-atomic-decimal-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="41NISTXML-SV-IV-atomic-decimal-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="42NISTXML-SV-IV-atomic-decimal-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="43NISTXML-SV-IV-atomic-decimal-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="44NISTXML-SV-IV-atomic-decimal-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="45NISTSchema-SV-IV-atomic-decimal-minInclusive-4 tokoe:valid" result="pass"/><test-case name="46NISTXML-SV-IV-atomic-decimal-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="47NISTXML-SV-IV-atomic-decimal-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="48NISTXML-SV-IV-atomic-decimal-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="49NISTXML-SV-IV-atomic-decimal-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="50NISTXML-SV-IV-atomic-decimal-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="51NISTSchema-SV-IV-atomic-decimal-minInclusive-5 tokoe:valid" result="pass"/><test-case name="52NISTXML-SV-IV-atomic-decimal-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="53NISTSchema-SV-IV-atomic-decimal-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="54NISTXML-SV-IV-atomic-decimal-maxExclusive-1-1 tokoe:valid" result="fail"/><test-case name="55NISTSchema-SV-IV-atomic-decimal-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="56NISTXML-SV-IV-atomic-decimal-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="57NISTXML-SV-IV-atomic-decimal-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="58NISTXML-SV-IV-atomic-decimal-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="59NISTXML-SV-IV-atomic-decimal-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="60NISTXML-SV-IV-atomic-decimal-maxExclusive-2-5 tokoe:valid" result="fail"/><test-case name="61NISTSchema-SV-IV-atomic-decimal-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="62NISTXML-SV-IV-atomic-decimal-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="63NISTXML-SV-IV-atomic-decimal-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="64NISTXML-SV-IV-atomic-decimal-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="65NISTXML-SV-IV-atomic-decimal-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="66NISTXML-SV-IV-atomic-decimal-maxExclusive-3-5 tokoe:valid" result="fail"/><test-case name="67NISTSchema-SV-IV-atomic-decimal-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="68NISTXML-SV-IV-atomic-decimal-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="69NISTXML-SV-IV-atomic-decimal-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="70NISTXML-SV-IV-atomic-decimal-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="71NISTXML-SV-IV-atomic-decimal-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="72NISTXML-SV-IV-atomic-decimal-maxExclusive-4-5 tokoe:valid" result="fail"/><test-case name="73NISTSchema-SV-IV-atomic-decimal-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="74NISTXML-SV-IV-atomic-decimal-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="75NISTXML-SV-IV-atomic-decimal-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="76NISTXML-SV-IV-atomic-decimal-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="77NISTXML-SV-IV-atomic-decimal-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="78NISTXML-SV-IV-atomic-decimal-maxExclusive-5-5 tokoe:valid" result="fail"/><test-case name="79NISTSchema-SV-IV-atomic-decimal-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="80NISTXML-SV-IV-atomic-decimal-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="81NISTSchema-SV-IV-atomic-decimal-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="82NISTXML-SV-IV-atomic-decimal-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="83NISTXML-SV-IV-atomic-decimal-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="84NISTXML-SV-IV-atomic-decimal-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="85NISTXML-SV-IV-atomic-decimal-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="86NISTXML-SV-IV-atomic-decimal-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="87NISTSchema-SV-IV-atomic-decimal-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="88NISTXML-SV-IV-atomic-decimal-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="89NISTXML-SV-IV-atomic-decimal-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="90NISTXML-SV-IV-atomic-decimal-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="91NISTXML-SV-IV-atomic-decimal-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="92NISTXML-SV-IV-atomic-decimal-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="93NISTSchema-SV-IV-atomic-decimal-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="94NISTXML-SV-IV-atomic-decimal-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="95NISTXML-SV-IV-atomic-decimal-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="96NISTXML-SV-IV-atomic-decimal-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="97NISTXML-SV-IV-atomic-decimal-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="98NISTXML-SV-IV-atomic-decimal-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="99NISTSchema-SV-IV-atomic-decimal-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="100NISTXML-SV-IV-atomic-decimal-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="101NISTXML-SV-IV-atomic-decimal-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="102NISTXML-SV-IV-atomic-decimal-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="103NISTXML-SV-IV-atomic-decimal-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="104NISTXML-SV-IV-atomic-decimal-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="105NISTSchema-SV-IV-atomic-decimal-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="106NISTXML-SV-IV-atomic-decimal-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="107NISTXML-SV-IV-atomic-decimal-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="108NISTXML-SV-IV-atomic-decimal-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="109NISTXML-SV-IV-atomic-decimal-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="110NISTXML-SV-IV-atomic-decimal-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="111NISTSchema-SV-IV-atomic-decimal-fractionDigits-2 tokoe:valid" result="pass"/><test-case name="112NISTXML-SV-IV-atomic-decimal-fractionDigits-2-1 tokoe:valid" result="pass"/><test-case name="113NISTXML-SV-IV-atomic-decimal-fractionDigits-2-2 tokoe:valid" result="pass"/><test-case name="114NISTXML-SV-IV-atomic-decimal-fractionDigits-2-3 tokoe:valid" result="pass"/><test-case name="115NISTXML-SV-IV-atomic-decimal-fractionDigits-2-4 tokoe:valid" result="pass"/><test-case name="116NISTXML-SV-IV-atomic-decimal-fractionDigits-2-5 tokoe:valid" result="pass"/><test-case name="117NISTSchema-SV-IV-atomic-decimal-fractionDigits-3 tokoe:valid" result="pass"/><test-case name="118NISTXML-SV-IV-atomic-decimal-fractionDigits-3-1 tokoe:valid" result="pass"/><test-case name="119NISTXML-SV-IV-atomic-decimal-fractionDigits-3-2 tokoe:valid" result="pass"/><test-case name="120NISTXML-SV-IV-atomic-decimal-fractionDigits-3-3 tokoe:valid" result="pass"/><test-case name="121NISTXML-SV-IV-atomic-decimal-fractionDigits-3-4 tokoe:valid" result="pass"/><test-case name="122NISTXML-SV-IV-atomic-decimal-fractionDigits-3-5 tokoe:valid" result="pass"/><test-case name="123NISTSchema-SV-IV-atomic-decimal-fractionDigits-4 tokoe:valid" result="pass"/><test-case name="124NISTXML-SV-IV-atomic-decimal-fractionDigits-4-1 tokoe:valid" result="pass"/><test-case name="125NISTXML-SV-IV-atomic-decimal-fractionDigits-4-2 tokoe:valid" result="pass"/><test-case name="126NISTXML-SV-IV-atomic-decimal-fractionDigits-4-3 tokoe:valid" result="pass"/><test-case name="127NISTXML-SV-IV-atomic-decimal-fractionDigits-4-4 tokoe:valid" result="pass"/><test-case name="128NISTXML-SV-IV-atomic-decimal-fractionDigits-4-5 tokoe:valid" result="pass"/><test-case name="129NISTSchema-SV-IV-atomic-decimal-fractionDigits-5 tokoe:valid" result="pass"/><test-case name="130NISTXML-SV-IV-atomic-decimal-fractionDigits-5-1 tokoe:valid" result="pass"/><test-case name="131NISTXML-SV-IV-atomic-decimal-fractionDigits-5-2 tokoe:valid" result="pass"/><test-case name="132NISTXML-SV-IV-atomic-decimal-fractionDigits-5-3 tokoe:valid" result="pass"/><test-case name="133NISTXML-SV-IV-atomic-decimal-fractionDigits-5-4 tokoe:valid" result="pass"/><test-case name="134NISTXML-SV-IV-atomic-decimal-fractionDigits-5-5 tokoe:valid" result="pass"/><test-case name="135NISTSchema-SV-IV-atomic-decimal-totalDigits-1 tokoe:valid" result="pass"/><test-case name="136NISTXML-SV-IV-atomic-decimal-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="137NISTXML-SV-IV-atomic-decimal-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="138NISTXML-SV-IV-atomic-decimal-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="139NISTXML-SV-IV-atomic-decimal-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="140NISTXML-SV-IV-atomic-decimal-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="141NISTSchema-SV-IV-atomic-decimal-totalDigits-2 tokoe:valid" result="pass"/><test-case name="142NISTXML-SV-IV-atomic-decimal-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="143NISTXML-SV-IV-atomic-decimal-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="144NISTXML-SV-IV-atomic-decimal-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="145NISTXML-SV-IV-atomic-decimal-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="146NISTXML-SV-IV-atomic-decimal-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="147NISTSchema-SV-IV-atomic-decimal-totalDigits-3 tokoe:valid" result="pass"/><test-case name="148NISTXML-SV-IV-atomic-decimal-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="149NISTXML-SV-IV-atomic-decimal-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="150NISTXML-SV-IV-atomic-decimal-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="151NISTXML-SV-IV-atomic-decimal-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="152NISTXML-SV-IV-atomic-decimal-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="153NISTSchema-SV-IV-atomic-decimal-totalDigits-4 tokoe:valid" result="pass"/><test-case name="154NISTXML-SV-IV-atomic-decimal-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="155NISTXML-SV-IV-atomic-decimal-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="156NISTXML-SV-IV-atomic-decimal-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="157NISTXML-SV-IV-atomic-decimal-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="158NISTXML-SV-IV-atomic-decimal-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="159NISTSchema-SV-IV-atomic-decimal-totalDigits-5 tokoe:valid" result="pass"/><test-case name="160NISTXML-SV-IV-atomic-decimal-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="161NISTXML-SV-IV-atomic-decimal-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="162NISTXML-SV-IV-atomic-decimal-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="163NISTXML-SV-IV-atomic-decimal-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="164NISTXML-SV-IV-atomic-decimal-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="165NISTSchema-SV-IV-atomic-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="166NISTXML-SV-IV-atomic-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="167NISTXML-SV-IV-atomic-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="168NISTXML-SV-IV-atomic-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="169NISTXML-SV-IV-atomic-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="170NISTXML-SV-IV-atomic-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="171NISTSchema-SV-IV-atomic-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="172NISTXML-SV-IV-atomic-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="173NISTXML-SV-IV-atomic-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="174NISTXML-SV-IV-atomic-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="175NISTXML-SV-IV-atomic-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="176NISTXML-SV-IV-atomic-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="177NISTSchema-SV-IV-atomic-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="178NISTXML-SV-IV-atomic-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="179NISTXML-SV-IV-atomic-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="180NISTXML-SV-IV-atomic-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="181NISTXML-SV-IV-atomic-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="182NISTXML-SV-IV-atomic-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="183NISTSchema-SV-IV-atomic-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="184NISTXML-SV-IV-atomic-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="185NISTXML-SV-IV-atomic-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="186NISTXML-SV-IV-atomic-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="187NISTXML-SV-IV-atomic-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="188NISTXML-SV-IV-atomic-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="189NISTSchema-SV-IV-atomic-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="190NISTXML-SV-IV-atomic-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="191NISTXML-SV-IV-atomic-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="192NISTXML-SV-IV-atomic-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="193NISTXML-SV-IV-atomic-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="194NISTXML-SV-IV-atomic-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="195NISTSchema-SV-IV-atomic-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="196NISTXML-SV-IV-atomic-decimal-enumeration-1-1 tokoe:valid" result="fail"/><test-case name="197NISTXML-SV-IV-atomic-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="198NISTXML-SV-IV-atomic-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="199NISTXML-SV-IV-atomic-decimal-enumeration-1-4 tokoe:valid" result="fail"/><test-case name="200NISTXML-SV-IV-atomic-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="201NISTSchema-SV-IV-atomic-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="202NISTXML-SV-IV-atomic-decimal-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="203NISTXML-SV-IV-atomic-decimal-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="204NISTXML-SV-IV-atomic-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="205NISTXML-SV-IV-atomic-decimal-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="206NISTXML-SV-IV-atomic-decimal-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="207NISTSchema-SV-IV-atomic-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="208NISTXML-SV-IV-atomic-decimal-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="209NISTXML-SV-IV-atomic-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="210NISTXML-SV-IV-atomic-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="211NISTXML-SV-IV-atomic-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="212NISTXML-SV-IV-atomic-decimal-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="213NISTSchema-SV-IV-atomic-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="214NISTXML-SV-IV-atomic-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="215NISTXML-SV-IV-atomic-decimal-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="216NISTXML-SV-IV-atomic-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="217NISTXML-SV-IV-atomic-decimal-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="218NISTXML-SV-IV-atomic-decimal-enumeration-4-5 tokoe:valid" result="fail"/><test-case name="219NISTSchema-SV-IV-atomic-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="220NISTXML-SV-IV-atomic-decimal-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="221NISTXML-SV-IV-atomic-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="222NISTXML-SV-IV-atomic-decimal-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="223NISTXML-SV-IV-atomic-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="224NISTXML-SV-IV-atomic-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="225NISTSchema-SV-IV-atomic-decimal-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="226NISTXML-SV-IV-atomic-decimal-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="227NISTXML-SV-IV-atomic-decimal-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="228NISTXML-SV-IV-atomic-decimal-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="229NISTXML-SV-IV-atomic-decimal-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="230NISTXML-SV-IV-atomic-decimal-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="231NISTSchema-SV-IV-atomic-integer-minExclusive-1 tokoe:valid" result="pass"/><test-case name="232NISTXML-SV-IV-atomic-integer-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="233NISTXML-SV-IV-atomic-integer-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="234NISTXML-SV-IV-atomic-integer-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="235NISTXML-SV-IV-atomic-integer-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="236NISTXML-SV-IV-atomic-integer-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="237NISTSchema-SV-IV-atomic-integer-minExclusive-2 tokoe:valid" result="pass"/><test-case name="238NISTXML-SV-IV-atomic-integer-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="239NISTXML-SV-IV-atomic-integer-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="240NISTXML-SV-IV-atomic-integer-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="241NISTXML-SV-IV-atomic-integer-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="242NISTXML-SV-IV-atomic-integer-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="243NISTSchema-SV-IV-atomic-integer-minExclusive-3 tokoe:valid" result="pass"/><test-case name="244NISTXML-SV-IV-atomic-integer-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="245NISTXML-SV-IV-atomic-integer-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="246NISTXML-SV-IV-atomic-integer-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="247NISTXML-SV-IV-atomic-integer-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="248NISTXML-SV-IV-atomic-integer-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="249NISTSchema-SV-IV-atomic-integer-minExclusive-4 tokoe:valid" result="pass"/><test-case name="250NISTXML-SV-IV-atomic-integer-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="251NISTXML-SV-IV-atomic-integer-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="252NISTXML-SV-IV-atomic-integer-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="253NISTXML-SV-IV-atomic-integer-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="254NISTXML-SV-IV-atomic-integer-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="255NISTSchema-SV-IV-atomic-integer-minExclusive-5 tokoe:valid" result="pass"/><test-case name="256NISTXML-SV-IV-atomic-integer-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="257NISTSchema-SV-IV-atomic-integer-minInclusive-1 tokoe:valid" result="pass"/><test-case name="258NISTXML-SV-IV-atomic-integer-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="259NISTXML-SV-IV-atomic-integer-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="260NISTXML-SV-IV-atomic-integer-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="261NISTXML-SV-IV-atomic-integer-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="262NISTXML-SV-IV-atomic-integer-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="263NISTSchema-SV-IV-atomic-integer-minInclusive-2 tokoe:valid" result="pass"/><test-case name="264NISTXML-SV-IV-atomic-integer-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="265NISTXML-SV-IV-atomic-integer-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="266NISTXML-SV-IV-atomic-integer-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="267NISTXML-SV-IV-atomic-integer-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="268NISTXML-SV-IV-atomic-integer-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="269NISTSchema-SV-IV-atomic-integer-minInclusive-3 tokoe:valid" result="pass"/><test-case name="270NISTXML-SV-IV-atomic-integer-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="271NISTXML-SV-IV-atomic-integer-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="272NISTXML-SV-IV-atomic-integer-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="273NISTXML-SV-IV-atomic-integer-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="274NISTXML-SV-IV-atomic-integer-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="275NISTSchema-SV-IV-atomic-integer-minInclusive-4 tokoe:valid" result="pass"/><test-case name="276NISTXML-SV-IV-atomic-integer-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="277NISTXML-SV-IV-atomic-integer-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="278NISTXML-SV-IV-atomic-integer-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="279NISTXML-SV-IV-atomic-integer-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="280NISTXML-SV-IV-atomic-integer-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="281NISTSchema-SV-IV-atomic-integer-minInclusive-5 tokoe:valid" result="pass"/><test-case name="282NISTXML-SV-IV-atomic-integer-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="283NISTSchema-SV-IV-atomic-integer-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="284NISTXML-SV-IV-atomic-integer-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="285NISTSchema-SV-IV-atomic-integer-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="286NISTXML-SV-IV-atomic-integer-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="287NISTXML-SV-IV-atomic-integer-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="288NISTXML-SV-IV-atomic-integer-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="289NISTXML-SV-IV-atomic-integer-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="290NISTXML-SV-IV-atomic-integer-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="291NISTSchema-SV-IV-atomic-integer-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="292NISTXML-SV-IV-atomic-integer-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="293NISTXML-SV-IV-atomic-integer-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="294NISTXML-SV-IV-atomic-integer-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="295NISTXML-SV-IV-atomic-integer-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="296NISTXML-SV-IV-atomic-integer-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="297NISTSchema-SV-IV-atomic-integer-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="298NISTXML-SV-IV-atomic-integer-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="299NISTXML-SV-IV-atomic-integer-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="300NISTXML-SV-IV-atomic-integer-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="301NISTXML-SV-IV-atomic-integer-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="302NISTXML-SV-IV-atomic-integer-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="303NISTSchema-SV-IV-atomic-integer-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="304NISTXML-SV-IV-atomic-integer-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="305NISTXML-SV-IV-atomic-integer-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="306NISTXML-SV-IV-atomic-integer-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="307NISTXML-SV-IV-atomic-integer-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="308NISTXML-SV-IV-atomic-integer-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="309NISTSchema-SV-IV-atomic-integer-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="310NISTXML-SV-IV-atomic-integer-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="311NISTSchema-SV-IV-atomic-integer-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="312NISTXML-SV-IV-atomic-integer-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="313NISTXML-SV-IV-atomic-integer-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="314NISTXML-SV-IV-atomic-integer-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="315NISTXML-SV-IV-atomic-integer-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="316NISTXML-SV-IV-atomic-integer-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="317NISTSchema-SV-IV-atomic-integer-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="318NISTXML-SV-IV-atomic-integer-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="319NISTXML-SV-IV-atomic-integer-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="320NISTXML-SV-IV-atomic-integer-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="321NISTXML-SV-IV-atomic-integer-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="322NISTXML-SV-IV-atomic-integer-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="323NISTSchema-SV-IV-atomic-integer-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="324NISTXML-SV-IV-atomic-integer-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="325NISTXML-SV-IV-atomic-integer-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="326NISTXML-SV-IV-atomic-integer-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="327NISTXML-SV-IV-atomic-integer-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="328NISTXML-SV-IV-atomic-integer-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="329NISTSchema-SV-IV-atomic-integer-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="330NISTXML-SV-IV-atomic-integer-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="331NISTXML-SV-IV-atomic-integer-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="332NISTXML-SV-IV-atomic-integer-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="333NISTXML-SV-IV-atomic-integer-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="334NISTXML-SV-IV-atomic-integer-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="335NISTSchema-SV-IV-atomic-integer-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="336NISTXML-SV-IV-atomic-integer-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="337NISTXML-SV-IV-atomic-integer-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="338NISTXML-SV-IV-atomic-integer-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="339NISTXML-SV-IV-atomic-integer-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="340NISTXML-SV-IV-atomic-integer-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="341NISTSchema-SV-IV-atomic-integer-totalDigits-1 tokoe:valid" result="pass"/><test-case name="342NISTXML-SV-IV-atomic-integer-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="343NISTXML-SV-IV-atomic-integer-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="344NISTXML-SV-IV-atomic-integer-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="345NISTXML-SV-IV-atomic-integer-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="346NISTXML-SV-IV-atomic-integer-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="347NISTSchema-SV-IV-atomic-integer-totalDigits-2 tokoe:valid" result="pass"/><test-case name="348NISTXML-SV-IV-atomic-integer-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="349NISTXML-SV-IV-atomic-integer-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="350NISTXML-SV-IV-atomic-integer-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="351NISTXML-SV-IV-atomic-integer-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="352NISTXML-SV-IV-atomic-integer-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="353NISTSchema-SV-IV-atomic-integer-totalDigits-3 tokoe:valid" result="pass"/><test-case name="354NISTXML-SV-IV-atomic-integer-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="355NISTXML-SV-IV-atomic-integer-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="356NISTXML-SV-IV-atomic-integer-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="357NISTXML-SV-IV-atomic-integer-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="358NISTXML-SV-IV-atomic-integer-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="359NISTSchema-SV-IV-atomic-integer-totalDigits-4 tokoe:valid" result="pass"/><test-case name="360NISTXML-SV-IV-atomic-integer-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="361NISTXML-SV-IV-atomic-integer-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="362NISTXML-SV-IV-atomic-integer-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="363NISTXML-SV-IV-atomic-integer-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="364NISTXML-SV-IV-atomic-integer-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="365NISTSchema-SV-IV-atomic-integer-totalDigits-5 tokoe:valid" result="pass"/><test-case name="366NISTXML-SV-IV-atomic-integer-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="367NISTXML-SV-IV-atomic-integer-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="368NISTXML-SV-IV-atomic-integer-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="369NISTXML-SV-IV-atomic-integer-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="370NISTXML-SV-IV-atomic-integer-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="371NISTSchema-SV-IV-atomic-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="372NISTXML-SV-IV-atomic-integer-pattern-1-1 tokoe:valid" result="pass"/><test-case name="373NISTXML-SV-IV-atomic-integer-pattern-1-2 tokoe:valid" result="pass"/><test-case name="374NISTXML-SV-IV-atomic-integer-pattern-1-3 tokoe:valid" result="pass"/><test-case name="375NISTXML-SV-IV-atomic-integer-pattern-1-4 tokoe:valid" result="pass"/><test-case name="376NISTXML-SV-IV-atomic-integer-pattern-1-5 tokoe:valid" result="pass"/><test-case name="377NISTSchema-SV-IV-atomic-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="378NISTXML-SV-IV-atomic-integer-pattern-2-1 tokoe:valid" result="pass"/><test-case name="379NISTXML-SV-IV-atomic-integer-pattern-2-2 tokoe:valid" result="pass"/><test-case name="380NISTXML-SV-IV-atomic-integer-pattern-2-3 tokoe:valid" result="pass"/><test-case name="381NISTXML-SV-IV-atomic-integer-pattern-2-4 tokoe:valid" result="pass"/><test-case name="382NISTXML-SV-IV-atomic-integer-pattern-2-5 tokoe:valid" result="pass"/><test-case name="383NISTSchema-SV-IV-atomic-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="384NISTXML-SV-IV-atomic-integer-pattern-3-1 tokoe:valid" result="pass"/><test-case name="385NISTXML-SV-IV-atomic-integer-pattern-3-2 tokoe:valid" result="pass"/><test-case name="386NISTXML-SV-IV-atomic-integer-pattern-3-3 tokoe:valid" result="pass"/><test-case name="387NISTXML-SV-IV-atomic-integer-pattern-3-4 tokoe:valid" result="pass"/><test-case name="388NISTXML-SV-IV-atomic-integer-pattern-3-5 tokoe:valid" result="pass"/><test-case name="389NISTSchema-SV-IV-atomic-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="390NISTXML-SV-IV-atomic-integer-pattern-4-1 tokoe:valid" result="pass"/><test-case name="391NISTXML-SV-IV-atomic-integer-pattern-4-2 tokoe:valid" result="pass"/><test-case name="392NISTXML-SV-IV-atomic-integer-pattern-4-3 tokoe:valid" result="pass"/><test-case name="393NISTXML-SV-IV-atomic-integer-pattern-4-4 tokoe:valid" result="pass"/><test-case name="394NISTXML-SV-IV-atomic-integer-pattern-4-5 tokoe:valid" result="pass"/><test-case name="395NISTSchema-SV-IV-atomic-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="396NISTXML-SV-IV-atomic-integer-pattern-5-1 tokoe:valid" result="pass"/><test-case name="397NISTXML-SV-IV-atomic-integer-pattern-5-2 tokoe:valid" result="pass"/><test-case name="398NISTXML-SV-IV-atomic-integer-pattern-5-3 tokoe:valid" result="pass"/><test-case name="399NISTXML-SV-IV-atomic-integer-pattern-5-4 tokoe:valid" result="pass"/><test-case name="400NISTXML-SV-IV-atomic-integer-pattern-5-5 tokoe:valid" result="pass"/><test-case name="401NISTSchema-SV-IV-atomic-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="402NISTXML-SV-IV-atomic-integer-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="403NISTXML-SV-IV-atomic-integer-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="404NISTXML-SV-IV-atomic-integer-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="405NISTXML-SV-IV-atomic-integer-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="406NISTXML-SV-IV-atomic-integer-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="407NISTSchema-SV-IV-atomic-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="408NISTXML-SV-IV-atomic-integer-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="409NISTXML-SV-IV-atomic-integer-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="410NISTXML-SV-IV-atomic-integer-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="411NISTXML-SV-IV-atomic-integer-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="412NISTXML-SV-IV-atomic-integer-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="413NISTSchema-SV-IV-atomic-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="414NISTXML-SV-IV-atomic-integer-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="415NISTXML-SV-IV-atomic-integer-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="416NISTXML-SV-IV-atomic-integer-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="417NISTXML-SV-IV-atomic-integer-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="418NISTXML-SV-IV-atomic-integer-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="419NISTSchema-SV-IV-atomic-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="420NISTXML-SV-IV-atomic-integer-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="421NISTXML-SV-IV-atomic-integer-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="422NISTXML-SV-IV-atomic-integer-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="423NISTXML-SV-IV-atomic-integer-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="424NISTXML-SV-IV-atomic-integer-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="425NISTSchema-SV-IV-atomic-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="426NISTXML-SV-IV-atomic-integer-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="427NISTXML-SV-IV-atomic-integer-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="428NISTXML-SV-IV-atomic-integer-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="429NISTXML-SV-IV-atomic-integer-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="430NISTXML-SV-IV-atomic-integer-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="431NISTSchema-SV-IV-atomic-integer-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="432NISTXML-SV-IV-atomic-integer-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="433NISTXML-SV-IV-atomic-integer-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="434NISTXML-SV-IV-atomic-integer-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="435NISTXML-SV-IV-atomic-integer-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="436NISTXML-SV-IV-atomic-integer-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="437NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="438NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="439NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="440NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="441NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="442NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="443NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="444NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="445NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="446NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="447NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="448NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="449NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="450NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="451NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="452NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="453NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="454NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="455NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="456NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="457NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="458NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="459NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="460NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="461NISTSchema-SV-IV-atomic-nonPositiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="462NISTXML-SV-IV-atomic-nonPositiveInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="463NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="464NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="465NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="466NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="467NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="468NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="469NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="470NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="471NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="472NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="473NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="474NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="475NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="476NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="477NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="478NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="479NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="480NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="481NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="482NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="483NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="484NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="485NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="486NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="487NISTSchema-SV-IV-atomic-nonPositiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="488NISTXML-SV-IV-atomic-nonPositiveInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="489NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="490NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="491NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="492NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="493NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="494NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="495NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="496NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="497NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="498NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="499NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="500NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="501NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="502NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="503NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="504NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="505NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="506NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="507NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="508NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="509NISTSchema-SV-IV-atomic-nonPositiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="510NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="511NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="512NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="513NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="514NISTXML-SV-IV-atomic-nonPositiveInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="515NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="516NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="517NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="518NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="519NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="520NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="521NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="522NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="523NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="524NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="525NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="526NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="527NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="528NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="529NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="530NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="531NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="532NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="533NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="534NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="535NISTSchema-SV-IV-atomic-nonPositiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="536NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="537NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="538NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="539NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="540NISTXML-SV-IV-atomic-nonPositiveInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="541NISTSchema-SV-IV-atomic-nonPositiveInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="542NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="543NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="544NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="545NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="546NISTXML-SV-IV-atomic-nonPositiveInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="547NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="548NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="549NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="550NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="551NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="552NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="553NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="554NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="555NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="556NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="557NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="558NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="559NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="560NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="561NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="562NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="563NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="564NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="565NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="566NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="567NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="568NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="569NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="570NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="571NISTSchema-SV-IV-atomic-nonPositiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="572NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="573NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="574NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="575NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="576NISTXML-SV-IV-atomic-nonPositiveInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="577NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="578NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="579NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="580NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="581NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="582NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="583NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="584NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="585NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="586NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="587NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="588NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="589NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="590NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="591NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="592NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="593NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="594NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="595NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="596NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="597NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="598NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="599NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="600NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="601NISTSchema-SV-IV-atomic-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="602NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="603NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="604NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="605NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="606NISTXML-SV-IV-atomic-nonPositiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="607NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="608NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="609NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="610NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="611NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="612NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="613NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="614NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="615NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="616NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="617NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="618NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="619NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="620NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="621NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="622NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="623NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="624NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="625NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="626NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="627NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="628NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="629NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="630NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="631NISTSchema-SV-IV-atomic-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="632NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="633NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="634NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="635NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="636NISTXML-SV-IV-atomic-nonPositiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="637NISTSchema-SV-IV-atomic-nonPositiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="638NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="639NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="640NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="641NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="642NISTXML-SV-IV-atomic-nonPositiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="643NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="644NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="645NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="646NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="647NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="648NISTXML-SV-IV-atomic-negativeInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="649NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="650NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="651NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="652NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="653NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="654NISTXML-SV-IV-atomic-negativeInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="655NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="656NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="657NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="658NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="659NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="660NISTXML-SV-IV-atomic-negativeInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="661NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="662NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="663NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="664NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="665NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="666NISTXML-SV-IV-atomic-negativeInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="667NISTSchema-SV-IV-atomic-negativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="668NISTXML-SV-IV-atomic-negativeInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="669NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="670NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="671NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="672NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="673NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="674NISTXML-SV-IV-atomic-negativeInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="675NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="676NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="677NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="678NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="679NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="680NISTXML-SV-IV-atomic-negativeInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="681NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="682NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="683NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="684NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="685NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="686NISTXML-SV-IV-atomic-negativeInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="687NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="688NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="689NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="690NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="691NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="692NISTXML-SV-IV-atomic-negativeInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="693NISTSchema-SV-IV-atomic-negativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="694NISTXML-SV-IV-atomic-negativeInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="695NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="696NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="697NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="698NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="699NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="700NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="701NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="702NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="703NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="704NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="705NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="706NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="707NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="708NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="709NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="710NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="711NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="712NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="713NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="714NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="715NISTSchema-SV-IV-atomic-negativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="716NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="717NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="718NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="719NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="720NISTXML-SV-IV-atomic-negativeInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="721NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="722NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="723NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="724NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="725NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="726NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="727NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="728NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="729NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="730NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="731NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="732NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="733NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="734NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="735NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="736NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="737NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="738NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="739NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="740NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="741NISTSchema-SV-IV-atomic-negativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="742NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="743NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="744NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="745NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="746NISTXML-SV-IV-atomic-negativeInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="747NISTSchema-SV-IV-atomic-negativeInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="748NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="749NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="750NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="751NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="752NISTXML-SV-IV-atomic-negativeInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="753NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="754NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="755NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="756NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="757NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="758NISTXML-SV-IV-atomic-negativeInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="759NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="760NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="761NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="762NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="763NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="764NISTXML-SV-IV-atomic-negativeInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="765NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="766NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="767NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="768NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="769NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="770NISTXML-SV-IV-atomic-negativeInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="771NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="772NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="773NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="774NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="775NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="776NISTXML-SV-IV-atomic-negativeInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="777NISTSchema-SV-IV-atomic-negativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="778NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="779NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="780NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="781NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="782NISTXML-SV-IV-atomic-negativeInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="783NISTSchema-SV-IV-atomic-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="784NISTXML-SV-IV-atomic-negativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="785NISTXML-SV-IV-atomic-negativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="786NISTXML-SV-IV-atomic-negativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="787NISTXML-SV-IV-atomic-negativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="788NISTXML-SV-IV-atomic-negativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="789NISTSchema-SV-IV-atomic-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="790NISTXML-SV-IV-atomic-negativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="791NISTXML-SV-IV-atomic-negativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="792NISTXML-SV-IV-atomic-negativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="793NISTXML-SV-IV-atomic-negativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="794NISTXML-SV-IV-atomic-negativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="795NISTSchema-SV-IV-atomic-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="796NISTXML-SV-IV-atomic-negativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="797NISTXML-SV-IV-atomic-negativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="798NISTXML-SV-IV-atomic-negativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="799NISTXML-SV-IV-atomic-negativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="800NISTXML-SV-IV-atomic-negativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="801NISTSchema-SV-IV-atomic-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="802NISTXML-SV-IV-atomic-negativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="803NISTXML-SV-IV-atomic-negativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="804NISTXML-SV-IV-atomic-negativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="805NISTXML-SV-IV-atomic-negativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="806NISTXML-SV-IV-atomic-negativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="807NISTSchema-SV-IV-atomic-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="808NISTXML-SV-IV-atomic-negativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="809NISTXML-SV-IV-atomic-negativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="810NISTXML-SV-IV-atomic-negativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="811NISTXML-SV-IV-atomic-negativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="812NISTXML-SV-IV-atomic-negativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="813NISTSchema-SV-IV-atomic-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="814NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="815NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="816NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="817NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="818NISTXML-SV-IV-atomic-negativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="819NISTSchema-SV-IV-atomic-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="820NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="821NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="822NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="823NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="824NISTXML-SV-IV-atomic-negativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="825NISTSchema-SV-IV-atomic-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="826NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="827NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="828NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="829NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="830NISTXML-SV-IV-atomic-negativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="831NISTSchema-SV-IV-atomic-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="832NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="833NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="834NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="835NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="836NISTXML-SV-IV-atomic-negativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="837NISTSchema-SV-IV-atomic-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="838NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="839NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="840NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="841NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="842NISTXML-SV-IV-atomic-negativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="843NISTSchema-SV-IV-atomic-negativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="844NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="845NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="846NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="847NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="848NISTXML-SV-IV-atomic-negativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="849NISTSchema-SV-IV-atomic-long-minExclusive-1 tokoe:valid" result="pass"/><test-case name="850NISTXML-SV-IV-atomic-long-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="851NISTXML-SV-IV-atomic-long-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="852NISTXML-SV-IV-atomic-long-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="853NISTXML-SV-IV-atomic-long-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="854NISTXML-SV-IV-atomic-long-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="855NISTSchema-SV-IV-atomic-long-minExclusive-2 tokoe:valid" result="pass"/><test-case name="856NISTXML-SV-IV-atomic-long-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="857NISTXML-SV-IV-atomic-long-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="858NISTXML-SV-IV-atomic-long-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="859NISTXML-SV-IV-atomic-long-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="860NISTXML-SV-IV-atomic-long-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="861NISTSchema-SV-IV-atomic-long-minExclusive-3 tokoe:valid" result="pass"/><test-case name="862NISTXML-SV-IV-atomic-long-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="863NISTXML-SV-IV-atomic-long-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="864NISTXML-SV-IV-atomic-long-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="865NISTXML-SV-IV-atomic-long-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="866NISTXML-SV-IV-atomic-long-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="867NISTSchema-SV-IV-atomic-long-minExclusive-4 tokoe:valid" result="pass"/><test-case name="868NISTXML-SV-IV-atomic-long-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="869NISTXML-SV-IV-atomic-long-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="870NISTXML-SV-IV-atomic-long-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="871NISTXML-SV-IV-atomic-long-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="872NISTXML-SV-IV-atomic-long-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="873NISTSchema-SV-IV-atomic-long-minExclusive-5 tokoe:valid" result="pass"/><test-case name="874NISTXML-SV-IV-atomic-long-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="875NISTSchema-SV-IV-atomic-long-minInclusive-1 tokoe:valid" result="pass"/><test-case name="876NISTXML-SV-IV-atomic-long-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="877NISTXML-SV-IV-atomic-long-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="878NISTXML-SV-IV-atomic-long-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="879NISTXML-SV-IV-atomic-long-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="880NISTXML-SV-IV-atomic-long-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="881NISTSchema-SV-IV-atomic-long-minInclusive-2 tokoe:valid" result="pass"/><test-case name="882NISTXML-SV-IV-atomic-long-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="883NISTXML-SV-IV-atomic-long-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="884NISTXML-SV-IV-atomic-long-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="885NISTXML-SV-IV-atomic-long-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="886NISTXML-SV-IV-atomic-long-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="887NISTSchema-SV-IV-atomic-long-minInclusive-3 tokoe:valid" result="pass"/><test-case name="888NISTXML-SV-IV-atomic-long-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="889NISTXML-SV-IV-atomic-long-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="890NISTXML-SV-IV-atomic-long-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="891NISTXML-SV-IV-atomic-long-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="892NISTXML-SV-IV-atomic-long-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="893NISTSchema-SV-IV-atomic-long-minInclusive-4 tokoe:valid" result="pass"/><test-case name="894NISTXML-SV-IV-atomic-long-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="895NISTXML-SV-IV-atomic-long-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="896NISTXML-SV-IV-atomic-long-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="897NISTXML-SV-IV-atomic-long-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="898NISTXML-SV-IV-atomic-long-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="899NISTSchema-SV-IV-atomic-long-minInclusive-5 tokoe:valid" result="pass"/><test-case name="900NISTXML-SV-IV-atomic-long-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="901NISTSchema-SV-IV-atomic-long-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="902NISTXML-SV-IV-atomic-long-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="903NISTSchema-SV-IV-atomic-long-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="904NISTXML-SV-IV-atomic-long-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="905NISTXML-SV-IV-atomic-long-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="906NISTXML-SV-IV-atomic-long-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="907NISTXML-SV-IV-atomic-long-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="908NISTXML-SV-IV-atomic-long-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="909NISTSchema-SV-IV-atomic-long-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="910NISTXML-SV-IV-atomic-long-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="911NISTXML-SV-IV-atomic-long-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="912NISTXML-SV-IV-atomic-long-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="913NISTXML-SV-IV-atomic-long-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="914NISTXML-SV-IV-atomic-long-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="915NISTSchema-SV-IV-atomic-long-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="916NISTXML-SV-IV-atomic-long-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="917NISTXML-SV-IV-atomic-long-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="918NISTXML-SV-IV-atomic-long-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="919NISTXML-SV-IV-atomic-long-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="920NISTXML-SV-IV-atomic-long-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="921NISTSchema-SV-IV-atomic-long-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="922NISTXML-SV-IV-atomic-long-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="923NISTXML-SV-IV-atomic-long-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="924NISTXML-SV-IV-atomic-long-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="925NISTXML-SV-IV-atomic-long-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="926NISTXML-SV-IV-atomic-long-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="927NISTSchema-SV-IV-atomic-long-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="928NISTXML-SV-IV-atomic-long-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="929NISTSchema-SV-IV-atomic-long-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="930NISTXML-SV-IV-atomic-long-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="931NISTXML-SV-IV-atomic-long-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="932NISTXML-SV-IV-atomic-long-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="933NISTXML-SV-IV-atomic-long-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="934NISTXML-SV-IV-atomic-long-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="935NISTSchema-SV-IV-atomic-long-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="936NISTXML-SV-IV-atomic-long-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="937NISTXML-SV-IV-atomic-long-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="938NISTXML-SV-IV-atomic-long-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="939NISTXML-SV-IV-atomic-long-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="940NISTXML-SV-IV-atomic-long-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="941NISTSchema-SV-IV-atomic-long-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="942NISTXML-SV-IV-atomic-long-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="943NISTXML-SV-IV-atomic-long-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="944NISTXML-SV-IV-atomic-long-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="945NISTXML-SV-IV-atomic-long-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="946NISTXML-SV-IV-atomic-long-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="947NISTSchema-SV-IV-atomic-long-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="948NISTXML-SV-IV-atomic-long-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="949NISTXML-SV-IV-atomic-long-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="950NISTXML-SV-IV-atomic-long-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="951NISTXML-SV-IV-atomic-long-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="952NISTXML-SV-IV-atomic-long-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="953NISTSchema-SV-IV-atomic-long-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="954NISTXML-SV-IV-atomic-long-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="955NISTXML-SV-IV-atomic-long-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="956NISTXML-SV-IV-atomic-long-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="957NISTXML-SV-IV-atomic-long-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="958NISTXML-SV-IV-atomic-long-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="959NISTSchema-SV-IV-atomic-long-totalDigits-1 tokoe:valid" result="pass"/><test-case name="960NISTXML-SV-IV-atomic-long-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="961NISTXML-SV-IV-atomic-long-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="962NISTXML-SV-IV-atomic-long-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="963NISTXML-SV-IV-atomic-long-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="964NISTXML-SV-IV-atomic-long-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="965NISTSchema-SV-IV-atomic-long-totalDigits-2 tokoe:valid" result="pass"/><test-case name="966NISTXML-SV-IV-atomic-long-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="967NISTXML-SV-IV-atomic-long-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="968NISTXML-SV-IV-atomic-long-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="969NISTXML-SV-IV-atomic-long-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="970NISTXML-SV-IV-atomic-long-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="971NISTSchema-SV-IV-atomic-long-totalDigits-3 tokoe:valid" result="pass"/><test-case name="972NISTXML-SV-IV-atomic-long-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="973NISTXML-SV-IV-atomic-long-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="974NISTXML-SV-IV-atomic-long-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="975NISTXML-SV-IV-atomic-long-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="976NISTXML-SV-IV-atomic-long-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="977NISTSchema-SV-IV-atomic-long-totalDigits-4 tokoe:valid" result="pass"/><test-case name="978NISTXML-SV-IV-atomic-long-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="979NISTXML-SV-IV-atomic-long-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="980NISTXML-SV-IV-atomic-long-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="981NISTXML-SV-IV-atomic-long-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="982NISTXML-SV-IV-atomic-long-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="983NISTSchema-SV-IV-atomic-long-totalDigits-5 tokoe:valid" result="pass"/><test-case name="984NISTXML-SV-IV-atomic-long-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="985NISTXML-SV-IV-atomic-long-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="986NISTXML-SV-IV-atomic-long-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="987NISTXML-SV-IV-atomic-long-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="988NISTXML-SV-IV-atomic-long-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="989NISTSchema-SV-IV-atomic-long-pattern-1 tokoe:valid" result="pass"/><test-case name="990NISTXML-SV-IV-atomic-long-pattern-1-1 tokoe:valid" result="pass"/><test-case name="991NISTXML-SV-IV-atomic-long-pattern-1-2 tokoe:valid" result="pass"/><test-case name="992NISTXML-SV-IV-atomic-long-pattern-1-3 tokoe:valid" result="pass"/><test-case name="993NISTXML-SV-IV-atomic-long-pattern-1-4 tokoe:valid" result="pass"/><test-case name="994NISTXML-SV-IV-atomic-long-pattern-1-5 tokoe:valid" result="pass"/><test-case name="995NISTSchema-SV-IV-atomic-long-pattern-2 tokoe:valid" result="pass"/><test-case name="996NISTXML-SV-IV-atomic-long-pattern-2-1 tokoe:valid" result="pass"/><test-case name="997NISTXML-SV-IV-atomic-long-pattern-2-2 tokoe:valid" result="pass"/><test-case name="998NISTXML-SV-IV-atomic-long-pattern-2-3 tokoe:valid" result="pass"/><test-case name="999NISTXML-SV-IV-atomic-long-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1000NISTXML-SV-IV-atomic-long-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1001NISTSchema-SV-IV-atomic-long-pattern-3 tokoe:valid" result="pass"/><test-case name="1002NISTXML-SV-IV-atomic-long-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1003NISTXML-SV-IV-atomic-long-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1004NISTXML-SV-IV-atomic-long-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1005NISTXML-SV-IV-atomic-long-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1006NISTXML-SV-IV-atomic-long-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1007NISTSchema-SV-IV-atomic-long-pattern-4 tokoe:valid" result="pass"/><test-case name="1008NISTXML-SV-IV-atomic-long-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1009NISTXML-SV-IV-atomic-long-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1010NISTXML-SV-IV-atomic-long-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1011NISTXML-SV-IV-atomic-long-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1012NISTXML-SV-IV-atomic-long-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1013NISTSchema-SV-IV-atomic-long-pattern-5 tokoe:valid" result="pass"/><test-case name="1014NISTXML-SV-IV-atomic-long-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1015NISTXML-SV-IV-atomic-long-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1016NISTXML-SV-IV-atomic-long-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1017NISTXML-SV-IV-atomic-long-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1018NISTXML-SV-IV-atomic-long-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1019NISTSchema-SV-IV-atomic-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="1020NISTXML-SV-IV-atomic-long-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1021NISTXML-SV-IV-atomic-long-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1022NISTXML-SV-IV-atomic-long-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1023NISTXML-SV-IV-atomic-long-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1024NISTXML-SV-IV-atomic-long-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1025NISTSchema-SV-IV-atomic-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="1026NISTXML-SV-IV-atomic-long-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1027NISTXML-SV-IV-atomic-long-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1028NISTXML-SV-IV-atomic-long-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1029NISTXML-SV-IV-atomic-long-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1030NISTXML-SV-IV-atomic-long-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1031NISTSchema-SV-IV-atomic-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="1032NISTXML-SV-IV-atomic-long-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1033NISTXML-SV-IV-atomic-long-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1034NISTXML-SV-IV-atomic-long-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1035NISTXML-SV-IV-atomic-long-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1036NISTXML-SV-IV-atomic-long-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1037NISTSchema-SV-IV-atomic-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="1038NISTXML-SV-IV-atomic-long-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1039NISTXML-SV-IV-atomic-long-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1040NISTXML-SV-IV-atomic-long-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1041NISTXML-SV-IV-atomic-long-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1042NISTXML-SV-IV-atomic-long-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1043NISTSchema-SV-IV-atomic-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="1044NISTXML-SV-IV-atomic-long-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1045NISTXML-SV-IV-atomic-long-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1046NISTXML-SV-IV-atomic-long-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1047NISTXML-SV-IV-atomic-long-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1048NISTXML-SV-IV-atomic-long-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1049NISTSchema-SV-IV-atomic-long-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1050NISTXML-SV-IV-atomic-long-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1051NISTXML-SV-IV-atomic-long-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1052NISTXML-SV-IV-atomic-long-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1053NISTXML-SV-IV-atomic-long-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1054NISTXML-SV-IV-atomic-long-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1055NISTSchema-SV-IV-atomic-int-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1056NISTXML-SV-IV-atomic-int-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1057NISTXML-SV-IV-atomic-int-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1058NISTXML-SV-IV-atomic-int-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1059NISTXML-SV-IV-atomic-int-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1060NISTXML-SV-IV-atomic-int-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1061NISTSchema-SV-IV-atomic-int-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1062NISTXML-SV-IV-atomic-int-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1063NISTXML-SV-IV-atomic-int-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1064NISTXML-SV-IV-atomic-int-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1065NISTXML-SV-IV-atomic-int-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1066NISTXML-SV-IV-atomic-int-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1067NISTSchema-SV-IV-atomic-int-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1068NISTXML-SV-IV-atomic-int-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1069NISTXML-SV-IV-atomic-int-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1070NISTXML-SV-IV-atomic-int-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1071NISTXML-SV-IV-atomic-int-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1072NISTXML-SV-IV-atomic-int-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1073NISTSchema-SV-IV-atomic-int-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1074NISTXML-SV-IV-atomic-int-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1075NISTXML-SV-IV-atomic-int-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1076NISTXML-SV-IV-atomic-int-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1077NISTXML-SV-IV-atomic-int-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1078NISTXML-SV-IV-atomic-int-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1079NISTSchema-SV-IV-atomic-int-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1080NISTXML-SV-IV-atomic-int-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1081NISTSchema-SV-IV-atomic-int-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1082NISTXML-SV-IV-atomic-int-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1083NISTXML-SV-IV-atomic-int-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1084NISTXML-SV-IV-atomic-int-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1085NISTXML-SV-IV-atomic-int-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1086NISTXML-SV-IV-atomic-int-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1087NISTSchema-SV-IV-atomic-int-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1088NISTXML-SV-IV-atomic-int-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1089NISTXML-SV-IV-atomic-int-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1090NISTXML-SV-IV-atomic-int-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1091NISTXML-SV-IV-atomic-int-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1092NISTXML-SV-IV-atomic-int-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1093NISTSchema-SV-IV-atomic-int-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1094NISTXML-SV-IV-atomic-int-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1095NISTXML-SV-IV-atomic-int-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1096NISTXML-SV-IV-atomic-int-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1097NISTXML-SV-IV-atomic-int-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1098NISTXML-SV-IV-atomic-int-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1099NISTSchema-SV-IV-atomic-int-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1100NISTXML-SV-IV-atomic-int-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1101NISTXML-SV-IV-atomic-int-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1102NISTXML-SV-IV-atomic-int-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1103NISTXML-SV-IV-atomic-int-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1104NISTXML-SV-IV-atomic-int-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1105NISTSchema-SV-IV-atomic-int-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1106NISTXML-SV-IV-atomic-int-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1107NISTSchema-SV-IV-atomic-int-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1108NISTXML-SV-IV-atomic-int-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1109NISTSchema-SV-IV-atomic-int-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1110NISTXML-SV-IV-atomic-int-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1111NISTXML-SV-IV-atomic-int-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1112NISTXML-SV-IV-atomic-int-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1113NISTXML-SV-IV-atomic-int-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1114NISTXML-SV-IV-atomic-int-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1115NISTSchema-SV-IV-atomic-int-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1116NISTXML-SV-IV-atomic-int-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1117NISTXML-SV-IV-atomic-int-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1118NISTXML-SV-IV-atomic-int-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1119NISTXML-SV-IV-atomic-int-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1120NISTXML-SV-IV-atomic-int-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1121NISTSchema-SV-IV-atomic-int-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1122NISTXML-SV-IV-atomic-int-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1123NISTXML-SV-IV-atomic-int-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1124NISTXML-SV-IV-atomic-int-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1125NISTXML-SV-IV-atomic-int-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1126NISTXML-SV-IV-atomic-int-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1127NISTSchema-SV-IV-atomic-int-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1128NISTXML-SV-IV-atomic-int-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1129NISTXML-SV-IV-atomic-int-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1130NISTXML-SV-IV-atomic-int-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1131NISTXML-SV-IV-atomic-int-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1132NISTXML-SV-IV-atomic-int-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1133NISTSchema-SV-IV-atomic-int-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1134NISTXML-SV-IV-atomic-int-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1135NISTSchema-SV-IV-atomic-int-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1136NISTXML-SV-IV-atomic-int-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1137NISTXML-SV-IV-atomic-int-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1138NISTXML-SV-IV-atomic-int-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1139NISTXML-SV-IV-atomic-int-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1140NISTXML-SV-IV-atomic-int-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1141NISTSchema-SV-IV-atomic-int-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1142NISTXML-SV-IV-atomic-int-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1143NISTXML-SV-IV-atomic-int-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1144NISTXML-SV-IV-atomic-int-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1145NISTXML-SV-IV-atomic-int-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1146NISTXML-SV-IV-atomic-int-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1147NISTSchema-SV-IV-atomic-int-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1148NISTXML-SV-IV-atomic-int-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1149NISTXML-SV-IV-atomic-int-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1150NISTXML-SV-IV-atomic-int-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1151NISTXML-SV-IV-atomic-int-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1152NISTXML-SV-IV-atomic-int-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1153NISTSchema-SV-IV-atomic-int-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1154NISTXML-SV-IV-atomic-int-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1155NISTXML-SV-IV-atomic-int-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1156NISTXML-SV-IV-atomic-int-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1157NISTXML-SV-IV-atomic-int-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1158NISTXML-SV-IV-atomic-int-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1159NISTSchema-SV-IV-atomic-int-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1160NISTXML-SV-IV-atomic-int-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1161NISTXML-SV-IV-atomic-int-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1162NISTXML-SV-IV-atomic-int-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1163NISTXML-SV-IV-atomic-int-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1164NISTXML-SV-IV-atomic-int-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1165NISTSchema-SV-IV-atomic-int-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1166NISTXML-SV-IV-atomic-int-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1167NISTXML-SV-IV-atomic-int-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1168NISTXML-SV-IV-atomic-int-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1169NISTXML-SV-IV-atomic-int-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1170NISTXML-SV-IV-atomic-int-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1171NISTSchema-SV-IV-atomic-int-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1172NISTXML-SV-IV-atomic-int-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1173NISTXML-SV-IV-atomic-int-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1174NISTXML-SV-IV-atomic-int-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1175NISTXML-SV-IV-atomic-int-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1176NISTXML-SV-IV-atomic-int-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1177NISTSchema-SV-IV-atomic-int-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1178NISTXML-SV-IV-atomic-int-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1179NISTXML-SV-IV-atomic-int-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1180NISTXML-SV-IV-atomic-int-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1181NISTXML-SV-IV-atomic-int-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1182NISTXML-SV-IV-atomic-int-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1183NISTSchema-SV-IV-atomic-int-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1184NISTXML-SV-IV-atomic-int-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1185NISTXML-SV-IV-atomic-int-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1186NISTXML-SV-IV-atomic-int-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1187NISTXML-SV-IV-atomic-int-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1188NISTXML-SV-IV-atomic-int-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1189NISTSchema-SV-IV-atomic-int-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1190NISTXML-SV-IV-atomic-int-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1191NISTXML-SV-IV-atomic-int-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1192NISTXML-SV-IV-atomic-int-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1193NISTXML-SV-IV-atomic-int-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1194NISTXML-SV-IV-atomic-int-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1195NISTSchema-SV-IV-atomic-int-pattern-1 tokoe:valid" result="pass"/><test-case name="1196NISTXML-SV-IV-atomic-int-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1197NISTXML-SV-IV-atomic-int-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1198NISTXML-SV-IV-atomic-int-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1199NISTXML-SV-IV-atomic-int-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1200NISTXML-SV-IV-atomic-int-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1201NISTSchema-SV-IV-atomic-int-pattern-2 tokoe:valid" result="pass"/><test-case name="1202NISTXML-SV-IV-atomic-int-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1203NISTXML-SV-IV-atomic-int-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1204NISTXML-SV-IV-atomic-int-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1205NISTXML-SV-IV-atomic-int-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1206NISTXML-SV-IV-atomic-int-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1207NISTSchema-SV-IV-atomic-int-pattern-3 tokoe:valid" result="pass"/><test-case name="1208NISTXML-SV-IV-atomic-int-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1209NISTXML-SV-IV-atomic-int-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1210NISTXML-SV-IV-atomic-int-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1211NISTXML-SV-IV-atomic-int-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1212NISTXML-SV-IV-atomic-int-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1213NISTSchema-SV-IV-atomic-int-pattern-4 tokoe:valid" result="pass"/><test-case name="1214NISTXML-SV-IV-atomic-int-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1215NISTXML-SV-IV-atomic-int-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1216NISTXML-SV-IV-atomic-int-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1217NISTXML-SV-IV-atomic-int-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1218NISTXML-SV-IV-atomic-int-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1219NISTSchema-SV-IV-atomic-int-pattern-5 tokoe:valid" result="pass"/><test-case name="1220NISTXML-SV-IV-atomic-int-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1221NISTXML-SV-IV-atomic-int-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1222NISTXML-SV-IV-atomic-int-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1223NISTXML-SV-IV-atomic-int-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1224NISTXML-SV-IV-atomic-int-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1225NISTSchema-SV-IV-atomic-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="1226NISTXML-SV-IV-atomic-int-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1227NISTXML-SV-IV-atomic-int-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1228NISTXML-SV-IV-atomic-int-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1229NISTXML-SV-IV-atomic-int-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1230NISTXML-SV-IV-atomic-int-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1231NISTSchema-SV-IV-atomic-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="1232NISTXML-SV-IV-atomic-int-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1233NISTXML-SV-IV-atomic-int-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1234NISTXML-SV-IV-atomic-int-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1235NISTXML-SV-IV-atomic-int-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1236NISTXML-SV-IV-atomic-int-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1237NISTSchema-SV-IV-atomic-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="1238NISTXML-SV-IV-atomic-int-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1239NISTXML-SV-IV-atomic-int-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1240NISTXML-SV-IV-atomic-int-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1241NISTXML-SV-IV-atomic-int-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1242NISTXML-SV-IV-atomic-int-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1243NISTSchema-SV-IV-atomic-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="1244NISTXML-SV-IV-atomic-int-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1245NISTXML-SV-IV-atomic-int-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1246NISTXML-SV-IV-atomic-int-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1247NISTXML-SV-IV-atomic-int-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1248NISTXML-SV-IV-atomic-int-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1249NISTSchema-SV-IV-atomic-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="1250NISTXML-SV-IV-atomic-int-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1251NISTXML-SV-IV-atomic-int-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1252NISTXML-SV-IV-atomic-int-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1253NISTXML-SV-IV-atomic-int-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1254NISTXML-SV-IV-atomic-int-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1255NISTSchema-SV-IV-atomic-int-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1256NISTXML-SV-IV-atomic-int-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1257NISTXML-SV-IV-atomic-int-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1258NISTXML-SV-IV-atomic-int-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1259NISTXML-SV-IV-atomic-int-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1260NISTXML-SV-IV-atomic-int-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1261NISTSchema-SV-IV-atomic-short-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1262NISTXML-SV-IV-atomic-short-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1263NISTXML-SV-IV-atomic-short-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1264NISTXML-SV-IV-atomic-short-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1265NISTXML-SV-IV-atomic-short-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1266NISTXML-SV-IV-atomic-short-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1267NISTSchema-SV-IV-atomic-short-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1268NISTXML-SV-IV-atomic-short-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1269NISTXML-SV-IV-atomic-short-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1270NISTXML-SV-IV-atomic-short-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1271NISTXML-SV-IV-atomic-short-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1272NISTXML-SV-IV-atomic-short-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1273NISTSchema-SV-IV-atomic-short-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1274NISTXML-SV-IV-atomic-short-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1275NISTXML-SV-IV-atomic-short-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1276NISTXML-SV-IV-atomic-short-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1277NISTXML-SV-IV-atomic-short-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1278NISTXML-SV-IV-atomic-short-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1279NISTSchema-SV-IV-atomic-short-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1280NISTXML-SV-IV-atomic-short-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1281NISTXML-SV-IV-atomic-short-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1282NISTXML-SV-IV-atomic-short-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1283NISTXML-SV-IV-atomic-short-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1284NISTXML-SV-IV-atomic-short-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1285NISTSchema-SV-IV-atomic-short-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1286NISTXML-SV-IV-atomic-short-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1287NISTSchema-SV-IV-atomic-short-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1288NISTXML-SV-IV-atomic-short-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1289NISTXML-SV-IV-atomic-short-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1290NISTXML-SV-IV-atomic-short-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1291NISTXML-SV-IV-atomic-short-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1292NISTXML-SV-IV-atomic-short-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1293NISTSchema-SV-IV-atomic-short-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1294NISTXML-SV-IV-atomic-short-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1295NISTXML-SV-IV-atomic-short-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1296NISTXML-SV-IV-atomic-short-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1297NISTXML-SV-IV-atomic-short-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1298NISTXML-SV-IV-atomic-short-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1299NISTSchema-SV-IV-atomic-short-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1300NISTXML-SV-IV-atomic-short-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1301NISTXML-SV-IV-atomic-short-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1302NISTXML-SV-IV-atomic-short-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1303NISTXML-SV-IV-atomic-short-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1304NISTXML-SV-IV-atomic-short-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1305NISTSchema-SV-IV-atomic-short-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1306NISTXML-SV-IV-atomic-short-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1307NISTXML-SV-IV-atomic-short-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1308NISTXML-SV-IV-atomic-short-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1309NISTXML-SV-IV-atomic-short-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1310NISTXML-SV-IV-atomic-short-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1311NISTSchema-SV-IV-atomic-short-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1312NISTXML-SV-IV-atomic-short-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1313NISTSchema-SV-IV-atomic-short-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1314NISTXML-SV-IV-atomic-short-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1315NISTSchema-SV-IV-atomic-short-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1316NISTXML-SV-IV-atomic-short-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1317NISTXML-SV-IV-atomic-short-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1318NISTXML-SV-IV-atomic-short-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1319NISTXML-SV-IV-atomic-short-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1320NISTXML-SV-IV-atomic-short-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1321NISTSchema-SV-IV-atomic-short-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1322NISTXML-SV-IV-atomic-short-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1323NISTXML-SV-IV-atomic-short-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1324NISTXML-SV-IV-atomic-short-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1325NISTXML-SV-IV-atomic-short-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1326NISTXML-SV-IV-atomic-short-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1327NISTSchema-SV-IV-atomic-short-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1328NISTXML-SV-IV-atomic-short-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1329NISTXML-SV-IV-atomic-short-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1330NISTXML-SV-IV-atomic-short-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1331NISTXML-SV-IV-atomic-short-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1332NISTXML-SV-IV-atomic-short-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1333NISTSchema-SV-IV-atomic-short-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1334NISTXML-SV-IV-atomic-short-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1335NISTXML-SV-IV-atomic-short-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1336NISTXML-SV-IV-atomic-short-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1337NISTXML-SV-IV-atomic-short-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1338NISTXML-SV-IV-atomic-short-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1339NISTSchema-SV-IV-atomic-short-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1340NISTXML-SV-IV-atomic-short-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1341NISTSchema-SV-IV-atomic-short-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1342NISTXML-SV-IV-atomic-short-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1343NISTXML-SV-IV-atomic-short-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1344NISTXML-SV-IV-atomic-short-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1345NISTXML-SV-IV-atomic-short-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1346NISTXML-SV-IV-atomic-short-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1347NISTSchema-SV-IV-atomic-short-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1348NISTXML-SV-IV-atomic-short-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1349NISTXML-SV-IV-atomic-short-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1350NISTXML-SV-IV-atomic-short-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1351NISTXML-SV-IV-atomic-short-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1352NISTXML-SV-IV-atomic-short-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1353NISTSchema-SV-IV-atomic-short-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1354NISTXML-SV-IV-atomic-short-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1355NISTXML-SV-IV-atomic-short-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1356NISTXML-SV-IV-atomic-short-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1357NISTXML-SV-IV-atomic-short-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1358NISTXML-SV-IV-atomic-short-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1359NISTSchema-SV-IV-atomic-short-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1360NISTXML-SV-IV-atomic-short-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1361NISTXML-SV-IV-atomic-short-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1362NISTXML-SV-IV-atomic-short-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1363NISTXML-SV-IV-atomic-short-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1364NISTXML-SV-IV-atomic-short-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1365NISTSchema-SV-IV-atomic-short-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1366NISTXML-SV-IV-atomic-short-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1367NISTXML-SV-IV-atomic-short-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1368NISTXML-SV-IV-atomic-short-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1369NISTXML-SV-IV-atomic-short-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1370NISTXML-SV-IV-atomic-short-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1371NISTSchema-SV-IV-atomic-short-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1372NISTXML-SV-IV-atomic-short-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1373NISTXML-SV-IV-atomic-short-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1374NISTXML-SV-IV-atomic-short-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1375NISTXML-SV-IV-atomic-short-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1376NISTXML-SV-IV-atomic-short-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1377NISTSchema-SV-IV-atomic-short-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1378NISTXML-SV-IV-atomic-short-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1379NISTXML-SV-IV-atomic-short-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1380NISTXML-SV-IV-atomic-short-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1381NISTXML-SV-IV-atomic-short-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1382NISTXML-SV-IV-atomic-short-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1383NISTSchema-SV-IV-atomic-short-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1384NISTXML-SV-IV-atomic-short-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1385NISTXML-SV-IV-atomic-short-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1386NISTXML-SV-IV-atomic-short-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1387NISTXML-SV-IV-atomic-short-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1388NISTXML-SV-IV-atomic-short-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1389NISTSchema-SV-IV-atomic-short-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1390NISTXML-SV-IV-atomic-short-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1391NISTXML-SV-IV-atomic-short-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1392NISTXML-SV-IV-atomic-short-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1393NISTXML-SV-IV-atomic-short-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1394NISTXML-SV-IV-atomic-short-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1395NISTSchema-SV-IV-atomic-short-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1396NISTXML-SV-IV-atomic-short-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1397NISTXML-SV-IV-atomic-short-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1398NISTXML-SV-IV-atomic-short-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1399NISTXML-SV-IV-atomic-short-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1400NISTXML-SV-IV-atomic-short-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1401NISTSchema-SV-IV-atomic-short-pattern-1 tokoe:valid" result="pass"/><test-case name="1402NISTXML-SV-IV-atomic-short-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1403NISTXML-SV-IV-atomic-short-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1404NISTXML-SV-IV-atomic-short-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1405NISTXML-SV-IV-atomic-short-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1406NISTXML-SV-IV-atomic-short-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1407NISTSchema-SV-IV-atomic-short-pattern-2 tokoe:valid" result="pass"/><test-case name="1408NISTXML-SV-IV-atomic-short-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1409NISTXML-SV-IV-atomic-short-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1410NISTXML-SV-IV-atomic-short-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1411NISTXML-SV-IV-atomic-short-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1412NISTXML-SV-IV-atomic-short-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1413NISTSchema-SV-IV-atomic-short-pattern-3 tokoe:valid" result="pass"/><test-case name="1414NISTXML-SV-IV-atomic-short-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1415NISTXML-SV-IV-atomic-short-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1416NISTXML-SV-IV-atomic-short-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1417NISTXML-SV-IV-atomic-short-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1418NISTXML-SV-IV-atomic-short-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1419NISTSchema-SV-IV-atomic-short-pattern-4 tokoe:valid" result="pass"/><test-case name="1420NISTXML-SV-IV-atomic-short-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1421NISTXML-SV-IV-atomic-short-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1422NISTXML-SV-IV-atomic-short-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1423NISTXML-SV-IV-atomic-short-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1424NISTXML-SV-IV-atomic-short-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1425NISTSchema-SV-IV-atomic-short-pattern-5 tokoe:valid" result="pass"/><test-case name="1426NISTXML-SV-IV-atomic-short-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1427NISTXML-SV-IV-atomic-short-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1428NISTXML-SV-IV-atomic-short-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1429NISTXML-SV-IV-atomic-short-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1430NISTXML-SV-IV-atomic-short-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1431NISTSchema-SV-IV-atomic-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="1432NISTXML-SV-IV-atomic-short-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1433NISTXML-SV-IV-atomic-short-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1434NISTXML-SV-IV-atomic-short-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1435NISTXML-SV-IV-atomic-short-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1436NISTXML-SV-IV-atomic-short-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1437NISTSchema-SV-IV-atomic-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="1438NISTXML-SV-IV-atomic-short-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1439NISTXML-SV-IV-atomic-short-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1440NISTXML-SV-IV-atomic-short-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1441NISTXML-SV-IV-atomic-short-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1442NISTXML-SV-IV-atomic-short-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1443NISTSchema-SV-IV-atomic-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="1444NISTXML-SV-IV-atomic-short-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1445NISTXML-SV-IV-atomic-short-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1446NISTXML-SV-IV-atomic-short-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1447NISTXML-SV-IV-atomic-short-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1448NISTXML-SV-IV-atomic-short-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1449NISTSchema-SV-IV-atomic-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="1450NISTXML-SV-IV-atomic-short-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1451NISTXML-SV-IV-atomic-short-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1452NISTXML-SV-IV-atomic-short-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1453NISTXML-SV-IV-atomic-short-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1454NISTXML-SV-IV-atomic-short-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1455NISTSchema-SV-IV-atomic-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="1456NISTXML-SV-IV-atomic-short-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1457NISTXML-SV-IV-atomic-short-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1458NISTXML-SV-IV-atomic-short-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1459NISTXML-SV-IV-atomic-short-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1460NISTXML-SV-IV-atomic-short-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1461NISTSchema-SV-IV-atomic-short-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1462NISTXML-SV-IV-atomic-short-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1463NISTXML-SV-IV-atomic-short-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1464NISTXML-SV-IV-atomic-short-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1465NISTXML-SV-IV-atomic-short-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1466NISTXML-SV-IV-atomic-short-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1467NISTSchema-SV-IV-atomic-byte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1468NISTXML-SV-IV-atomic-byte-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1469NISTXML-SV-IV-atomic-byte-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1470NISTXML-SV-IV-atomic-byte-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1471NISTXML-SV-IV-atomic-byte-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1472NISTXML-SV-IV-atomic-byte-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1473NISTSchema-SV-IV-atomic-byte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1474NISTXML-SV-IV-atomic-byte-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1475NISTXML-SV-IV-atomic-byte-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1476NISTXML-SV-IV-atomic-byte-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1477NISTXML-SV-IV-atomic-byte-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1478NISTXML-SV-IV-atomic-byte-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1479NISTSchema-SV-IV-atomic-byte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1480NISTXML-SV-IV-atomic-byte-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1481NISTXML-SV-IV-atomic-byte-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1482NISTXML-SV-IV-atomic-byte-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1483NISTXML-SV-IV-atomic-byte-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1484NISTXML-SV-IV-atomic-byte-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1485NISTSchema-SV-IV-atomic-byte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1486NISTXML-SV-IV-atomic-byte-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1487NISTXML-SV-IV-atomic-byte-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1488NISTXML-SV-IV-atomic-byte-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1489NISTXML-SV-IV-atomic-byte-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1490NISTXML-SV-IV-atomic-byte-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1491NISTSchema-SV-IV-atomic-byte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1492NISTXML-SV-IV-atomic-byte-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1493NISTSchema-SV-IV-atomic-byte-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1494NISTXML-SV-IV-atomic-byte-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1495NISTXML-SV-IV-atomic-byte-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1496NISTXML-SV-IV-atomic-byte-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1497NISTXML-SV-IV-atomic-byte-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1498NISTXML-SV-IV-atomic-byte-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1499NISTSchema-SV-IV-atomic-byte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1500NISTXML-SV-IV-atomic-byte-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1501NISTXML-SV-IV-atomic-byte-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1502NISTXML-SV-IV-atomic-byte-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1503NISTXML-SV-IV-atomic-byte-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1504NISTXML-SV-IV-atomic-byte-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1505NISTSchema-SV-IV-atomic-byte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1506NISTXML-SV-IV-atomic-byte-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1507NISTXML-SV-IV-atomic-byte-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1508NISTXML-SV-IV-atomic-byte-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1509NISTXML-SV-IV-atomic-byte-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1510NISTXML-SV-IV-atomic-byte-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1511NISTSchema-SV-IV-atomic-byte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1512NISTXML-SV-IV-atomic-byte-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1513NISTXML-SV-IV-atomic-byte-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1514NISTXML-SV-IV-atomic-byte-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1515NISTXML-SV-IV-atomic-byte-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1516NISTXML-SV-IV-atomic-byte-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1517NISTSchema-SV-IV-atomic-byte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1518NISTXML-SV-IV-atomic-byte-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1519NISTSchema-SV-IV-atomic-byte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1520NISTXML-SV-IV-atomic-byte-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1521NISTSchema-SV-IV-atomic-byte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1522NISTXML-SV-IV-atomic-byte-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1523NISTXML-SV-IV-atomic-byte-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1524NISTXML-SV-IV-atomic-byte-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1525NISTXML-SV-IV-atomic-byte-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1526NISTXML-SV-IV-atomic-byte-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1527NISTSchema-SV-IV-atomic-byte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1528NISTXML-SV-IV-atomic-byte-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1529NISTXML-SV-IV-atomic-byte-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1530NISTXML-SV-IV-atomic-byte-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1531NISTXML-SV-IV-atomic-byte-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1532NISTXML-SV-IV-atomic-byte-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1533NISTSchema-SV-IV-atomic-byte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1534NISTXML-SV-IV-atomic-byte-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1535NISTXML-SV-IV-atomic-byte-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1536NISTXML-SV-IV-atomic-byte-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1537NISTXML-SV-IV-atomic-byte-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1538NISTXML-SV-IV-atomic-byte-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1539NISTSchema-SV-IV-atomic-byte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1540NISTXML-SV-IV-atomic-byte-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1541NISTXML-SV-IV-atomic-byte-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1542NISTXML-SV-IV-atomic-byte-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1543NISTXML-SV-IV-atomic-byte-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1544NISTXML-SV-IV-atomic-byte-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1545NISTSchema-SV-IV-atomic-byte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1546NISTXML-SV-IV-atomic-byte-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1547NISTSchema-SV-IV-atomic-byte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1548NISTXML-SV-IV-atomic-byte-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1549NISTXML-SV-IV-atomic-byte-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1550NISTXML-SV-IV-atomic-byte-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1551NISTXML-SV-IV-atomic-byte-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1552NISTXML-SV-IV-atomic-byte-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1553NISTSchema-SV-IV-atomic-byte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1554NISTXML-SV-IV-atomic-byte-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1555NISTXML-SV-IV-atomic-byte-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1556NISTXML-SV-IV-atomic-byte-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1557NISTXML-SV-IV-atomic-byte-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1558NISTXML-SV-IV-atomic-byte-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1559NISTSchema-SV-IV-atomic-byte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1560NISTXML-SV-IV-atomic-byte-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1561NISTXML-SV-IV-atomic-byte-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1562NISTXML-SV-IV-atomic-byte-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1563NISTXML-SV-IV-atomic-byte-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1564NISTXML-SV-IV-atomic-byte-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1565NISTSchema-SV-IV-atomic-byte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1566NISTXML-SV-IV-atomic-byte-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1567NISTXML-SV-IV-atomic-byte-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1568NISTXML-SV-IV-atomic-byte-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1569NISTXML-SV-IV-atomic-byte-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1570NISTXML-SV-IV-atomic-byte-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1571NISTSchema-SV-IV-atomic-byte-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1572NISTXML-SV-IV-atomic-byte-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1573NISTXML-SV-IV-atomic-byte-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1574NISTXML-SV-IV-atomic-byte-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1575NISTXML-SV-IV-atomic-byte-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1576NISTXML-SV-IV-atomic-byte-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1577NISTSchema-SV-IV-atomic-byte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1578NISTXML-SV-IV-atomic-byte-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1579NISTXML-SV-IV-atomic-byte-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1580NISTXML-SV-IV-atomic-byte-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1581NISTXML-SV-IV-atomic-byte-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1582NISTXML-SV-IV-atomic-byte-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1583NISTSchema-SV-IV-atomic-byte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1584NISTXML-SV-IV-atomic-byte-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1585NISTXML-SV-IV-atomic-byte-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1586NISTXML-SV-IV-atomic-byte-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1587NISTXML-SV-IV-atomic-byte-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1588NISTXML-SV-IV-atomic-byte-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1589NISTSchema-SV-IV-atomic-byte-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1590NISTXML-SV-IV-atomic-byte-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1591NISTXML-SV-IV-atomic-byte-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1592NISTXML-SV-IV-atomic-byte-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1593NISTXML-SV-IV-atomic-byte-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1594NISTXML-SV-IV-atomic-byte-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1595NISTSchema-SV-IV-atomic-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="1596NISTXML-SV-IV-atomic-byte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1597NISTXML-SV-IV-atomic-byte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1598NISTXML-SV-IV-atomic-byte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1599NISTXML-SV-IV-atomic-byte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1600NISTXML-SV-IV-atomic-byte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1601NISTSchema-SV-IV-atomic-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="1602NISTXML-SV-IV-atomic-byte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1603NISTXML-SV-IV-atomic-byte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1604NISTXML-SV-IV-atomic-byte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1605NISTXML-SV-IV-atomic-byte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1606NISTXML-SV-IV-atomic-byte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1607NISTSchema-SV-IV-atomic-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="1608NISTXML-SV-IV-atomic-byte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1609NISTXML-SV-IV-atomic-byte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1610NISTXML-SV-IV-atomic-byte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1611NISTXML-SV-IV-atomic-byte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1612NISTXML-SV-IV-atomic-byte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1613NISTSchema-SV-IV-atomic-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="1614NISTXML-SV-IV-atomic-byte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1615NISTXML-SV-IV-atomic-byte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1616NISTXML-SV-IV-atomic-byte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1617NISTXML-SV-IV-atomic-byte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1618NISTXML-SV-IV-atomic-byte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1619NISTSchema-SV-IV-atomic-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="1620NISTXML-SV-IV-atomic-byte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1621NISTXML-SV-IV-atomic-byte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1622NISTXML-SV-IV-atomic-byte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1623NISTXML-SV-IV-atomic-byte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1624NISTXML-SV-IV-atomic-byte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1625NISTSchema-SV-IV-atomic-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="1626NISTXML-SV-IV-atomic-byte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1627NISTXML-SV-IV-atomic-byte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1628NISTXML-SV-IV-atomic-byte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1629NISTXML-SV-IV-atomic-byte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1630NISTXML-SV-IV-atomic-byte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1631NISTSchema-SV-IV-atomic-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="1632NISTXML-SV-IV-atomic-byte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1633NISTXML-SV-IV-atomic-byte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1634NISTXML-SV-IV-atomic-byte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1635NISTXML-SV-IV-atomic-byte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1636NISTXML-SV-IV-atomic-byte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1637NISTSchema-SV-IV-atomic-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="1638NISTXML-SV-IV-atomic-byte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1639NISTXML-SV-IV-atomic-byte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1640NISTXML-SV-IV-atomic-byte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1641NISTXML-SV-IV-atomic-byte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1642NISTXML-SV-IV-atomic-byte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1643NISTSchema-SV-IV-atomic-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="1644NISTXML-SV-IV-atomic-byte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1645NISTXML-SV-IV-atomic-byte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1646NISTXML-SV-IV-atomic-byte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1647NISTXML-SV-IV-atomic-byte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1648NISTXML-SV-IV-atomic-byte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1649NISTSchema-SV-IV-atomic-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="1650NISTXML-SV-IV-atomic-byte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1651NISTXML-SV-IV-atomic-byte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1652NISTXML-SV-IV-atomic-byte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1653NISTXML-SV-IV-atomic-byte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1654NISTXML-SV-IV-atomic-byte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1655NISTSchema-SV-IV-atomic-byte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1656NISTXML-SV-IV-atomic-byte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1657NISTXML-SV-IV-atomic-byte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1658NISTXML-SV-IV-atomic-byte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1659NISTXML-SV-IV-atomic-byte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1660NISTXML-SV-IV-atomic-byte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1661NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1662NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1663NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1664NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1665NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1666NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1667NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1668NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1669NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1670NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1671NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1672NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1673NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1674NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1675NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1676NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1677NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1678NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1679NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1680NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1681NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1682NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1683NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1684NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1685NISTSchema-SV-IV-atomic-nonNegativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1686NISTXML-SV-IV-atomic-nonNegativeInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1687NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1688NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1689NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1690NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1691NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1692NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1693NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1694NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1695NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1696NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1697NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1698NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1699NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1700NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1701NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1702NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1703NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1704NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1705NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1706NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1707NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1708NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1709NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1710NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1711NISTSchema-SV-IV-atomic-nonNegativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1712NISTXML-SV-IV-atomic-nonNegativeInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1713NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1714NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1715NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1716NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1717NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1718NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1719NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1720NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1721NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1722NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1723NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1724NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1725NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1726NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1727NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1728NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1729NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1730NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1731NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1732NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1733NISTSchema-SV-IV-atomic-nonNegativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1734NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1735NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1736NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1737NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1738NISTXML-SV-IV-atomic-nonNegativeInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1739NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1740NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1741NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1742NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1743NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1744NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1745NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1746NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1747NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1748NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1749NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1750NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1751NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1752NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1753NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1754NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1755NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1756NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1757NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1758NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1759NISTSchema-SV-IV-atomic-nonNegativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1760NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1761NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1762NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1763NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1764NISTXML-SV-IV-atomic-nonNegativeInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1765NISTSchema-SV-IV-atomic-nonNegativeInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1766NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1767NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1768NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1769NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1770NISTXML-SV-IV-atomic-nonNegativeInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1771NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1772NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1773NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1774NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1775NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1776NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1777NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1778NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1779NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1780NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1781NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1782NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1783NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1784NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1785NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1786NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1787NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1788NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1789NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1790NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1791NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1792NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1793NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="1794NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="1795NISTSchema-SV-IV-atomic-nonNegativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="1796NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="1797NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="1798NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="1799NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="1800NISTXML-SV-IV-atomic-nonNegativeInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="1801NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="1802NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="1803NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="1804NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="1805NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="1806NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="1807NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="1808NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="1809NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="1810NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="1811NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="1812NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="1813NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="1814NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="1815NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="1816NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="1817NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="1818NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="1819NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="1820NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="1821NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="1822NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="1823NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="1824NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="1825NISTSchema-SV-IV-atomic-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="1826NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="1827NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="1828NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="1829NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="1830NISTXML-SV-IV-atomic-nonNegativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="1831NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="1832NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="1833NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="1834NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="1835NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="1836NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="1837NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="1838NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="1839NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="1840NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="1841NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="1842NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="1843NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="1844NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="1845NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="1846NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="1847NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="1848NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="1849NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="1850NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="1851NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="1852NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="1853NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="1854NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="1855NISTSchema-SV-IV-atomic-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="1856NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="1857NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="1858NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="1859NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="1860NISTXML-SV-IV-atomic-nonNegativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="1861NISTSchema-SV-IV-atomic-nonNegativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="1862NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="1863NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="1864NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="1865NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="1866NISTXML-SV-IV-atomic-nonNegativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="1867NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-1 tokoe:valid" result="pass"/><test-case name="1868NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1869NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="1870NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="1871NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="1872NISTXML-SV-IV-atomic-unsignedLong-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="1873NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-2 tokoe:valid" result="pass"/><test-case name="1874NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1875NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1876NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1877NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1878NISTXML-SV-IV-atomic-unsignedLong-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1879NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-3 tokoe:valid" result="pass"/><test-case name="1880NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1881NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1882NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1883NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1884NISTXML-SV-IV-atomic-unsignedLong-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1885NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-4 tokoe:valid" result="pass"/><test-case name="1886NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1887NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1888NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1889NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1890NISTXML-SV-IV-atomic-unsignedLong-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1891NISTSchema-SV-IV-atomic-unsignedLong-minExclusive-5 tokoe:valid" result="pass"/><test-case name="1892NISTXML-SV-IV-atomic-unsignedLong-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1893NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-1 tokoe:valid" result="pass"/><test-case name="1894NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1895NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="1896NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="1897NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="1898NISTXML-SV-IV-atomic-unsignedLong-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="1899NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-2 tokoe:valid" result="pass"/><test-case name="1900NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1901NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1902NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1903NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1904NISTXML-SV-IV-atomic-unsignedLong-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1905NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-3 tokoe:valid" result="pass"/><test-case name="1906NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1907NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1908NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1909NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1910NISTXML-SV-IV-atomic-unsignedLong-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1911NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-4 tokoe:valid" result="pass"/><test-case name="1912NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1913NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1914NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1915NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1916NISTXML-SV-IV-atomic-unsignedLong-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1917NISTSchema-SV-IV-atomic-unsignedLong-minInclusive-5 tokoe:valid" result="pass"/><test-case name="1918NISTXML-SV-IV-atomic-unsignedLong-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1919NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="1920NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="1921NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="1922NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="1923NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="1924NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="1925NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="1926NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="1927NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="1928NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="1929NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="1930NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="1931NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="1932NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="1933NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="1934NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="1935NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="1936NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="1937NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="1938NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="1939NISTSchema-SV-IV-atomic-unsignedLong-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="1940NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="1941NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="1942NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="1943NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="1944NISTXML-SV-IV-atomic-unsignedLong-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="1945NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="1946NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="1947NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="1948NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="1949NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="1950NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="1951NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="1952NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="1953NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="1954NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="1955NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="1956NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="1957NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="1958NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="1959NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="1960NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="1961NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="1962NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="1963NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="1964NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="1965NISTSchema-SV-IV-atomic-unsignedLong-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="1966NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="1967NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="1968NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="1969NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="1970NISTXML-SV-IV-atomic-unsignedLong-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="1971NISTSchema-SV-IV-atomic-unsignedLong-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="1972NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="1973NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="1974NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="1975NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="1976NISTXML-SV-IV-atomic-unsignedLong-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="1977NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-1 tokoe:valid" result="pass"/><test-case name="1978NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="1979NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="1980NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="1981NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="1982NISTXML-SV-IV-atomic-unsignedLong-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="1983NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-2 tokoe:valid" result="pass"/><test-case name="1984NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="1985NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="1986NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="1987NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="1988NISTXML-SV-IV-atomic-unsignedLong-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="1989NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-3 tokoe:valid" result="pass"/><test-case name="1990NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="1991NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="1992NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="1993NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="1994NISTXML-SV-IV-atomic-unsignedLong-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="1995NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-4 tokoe:valid" result="pass"/><test-case name="1996NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="1997NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="1998NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="1999NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2000NISTXML-SV-IV-atomic-unsignedLong-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2001NISTSchema-SV-IV-atomic-unsignedLong-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2002NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2003NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2004NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2005NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2006NISTXML-SV-IV-atomic-unsignedLong-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2007NISTSchema-SV-IV-atomic-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="2008NISTXML-SV-IV-atomic-unsignedLong-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2009NISTXML-SV-IV-atomic-unsignedLong-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2010NISTXML-SV-IV-atomic-unsignedLong-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2011NISTXML-SV-IV-atomic-unsignedLong-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2012NISTXML-SV-IV-atomic-unsignedLong-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2013NISTSchema-SV-IV-atomic-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="2014NISTXML-SV-IV-atomic-unsignedLong-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2015NISTXML-SV-IV-atomic-unsignedLong-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2016NISTXML-SV-IV-atomic-unsignedLong-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2017NISTXML-SV-IV-atomic-unsignedLong-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2018NISTXML-SV-IV-atomic-unsignedLong-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2019NISTSchema-SV-IV-atomic-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="2020NISTXML-SV-IV-atomic-unsignedLong-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2021NISTXML-SV-IV-atomic-unsignedLong-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2022NISTXML-SV-IV-atomic-unsignedLong-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2023NISTXML-SV-IV-atomic-unsignedLong-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2024NISTXML-SV-IV-atomic-unsignedLong-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2025NISTSchema-SV-IV-atomic-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="2026NISTXML-SV-IV-atomic-unsignedLong-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2027NISTXML-SV-IV-atomic-unsignedLong-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2028NISTXML-SV-IV-atomic-unsignedLong-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2029NISTXML-SV-IV-atomic-unsignedLong-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2030NISTXML-SV-IV-atomic-unsignedLong-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2031NISTSchema-SV-IV-atomic-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="2032NISTXML-SV-IV-atomic-unsignedLong-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2033NISTXML-SV-IV-atomic-unsignedLong-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2034NISTXML-SV-IV-atomic-unsignedLong-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2035NISTXML-SV-IV-atomic-unsignedLong-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2036NISTXML-SV-IV-atomic-unsignedLong-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2037NISTSchema-SV-IV-atomic-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="2038NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2039NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2040NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2041NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2042NISTXML-SV-IV-atomic-unsignedLong-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2043NISTSchema-SV-IV-atomic-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="2044NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2045NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2046NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2047NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2048NISTXML-SV-IV-atomic-unsignedLong-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2049NISTSchema-SV-IV-atomic-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="2050NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2051NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2052NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2053NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2054NISTXML-SV-IV-atomic-unsignedLong-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2055NISTSchema-SV-IV-atomic-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="2056NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2057NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2058NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2059NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2060NISTXML-SV-IV-atomic-unsignedLong-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2061NISTSchema-SV-IV-atomic-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="2062NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2063NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2064NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2065NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2066NISTXML-SV-IV-atomic-unsignedLong-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2067NISTSchema-SV-IV-atomic-unsignedLong-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2068NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2069NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2070NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2071NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2072NISTXML-SV-IV-atomic-unsignedLong-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2073NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2074NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2075NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2076NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2077NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2078NISTXML-SV-IV-atomic-unsignedInt-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2079NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2080NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2081NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2082NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2083NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2084NISTXML-SV-IV-atomic-unsignedInt-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2085NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2086NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2087NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2088NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2089NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2090NISTXML-SV-IV-atomic-unsignedInt-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2091NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2092NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2093NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2094NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2095NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2096NISTXML-SV-IV-atomic-unsignedInt-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2097NISTSchema-SV-IV-atomic-unsignedInt-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2098NISTXML-SV-IV-atomic-unsignedInt-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2099NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2100NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2101NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2102NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2103NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2104NISTXML-SV-IV-atomic-unsignedInt-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2105NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2106NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2107NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2108NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2109NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2110NISTXML-SV-IV-atomic-unsignedInt-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2111NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2112NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2113NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2114NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2115NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2116NISTXML-SV-IV-atomic-unsignedInt-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2117NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2118NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2119NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2120NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2121NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2122NISTXML-SV-IV-atomic-unsignedInt-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2123NISTSchema-SV-IV-atomic-unsignedInt-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2124NISTXML-SV-IV-atomic-unsignedInt-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2125NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2126NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2127NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2128NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2129NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2130NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2131NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2132NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2133NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2134NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2135NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2136NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2137NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2138NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2139NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2140NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2141NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2142NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2143NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2144NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2145NISTSchema-SV-IV-atomic-unsignedInt-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2146NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2147NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2148NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2149NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2150NISTXML-SV-IV-atomic-unsignedInt-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2151NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2152NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2153NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2154NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2155NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2156NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2157NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2158NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2159NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2160NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2161NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2162NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2163NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2164NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2165NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2166NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2167NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2168NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2169NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2170NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2171NISTSchema-SV-IV-atomic-unsignedInt-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2172NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2173NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2174NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2175NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2176NISTXML-SV-IV-atomic-unsignedInt-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2177NISTSchema-SV-IV-atomic-unsignedInt-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2178NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2179NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2180NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2181NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2182NISTXML-SV-IV-atomic-unsignedInt-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2183NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2184NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2185NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2186NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2187NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2188NISTXML-SV-IV-atomic-unsignedInt-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2189NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2190NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2191NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2192NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2193NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2194NISTXML-SV-IV-atomic-unsignedInt-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2195NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2196NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2197NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2198NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2199NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2200NISTXML-SV-IV-atomic-unsignedInt-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2201NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2202NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2203NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2204NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2205NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2206NISTXML-SV-IV-atomic-unsignedInt-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2207NISTSchema-SV-IV-atomic-unsignedInt-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2208NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2209NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2210NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2211NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2212NISTXML-SV-IV-atomic-unsignedInt-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2213NISTSchema-SV-IV-atomic-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="2214NISTXML-SV-IV-atomic-unsignedInt-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2215NISTXML-SV-IV-atomic-unsignedInt-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2216NISTXML-SV-IV-atomic-unsignedInt-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2217NISTXML-SV-IV-atomic-unsignedInt-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2218NISTXML-SV-IV-atomic-unsignedInt-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2219NISTSchema-SV-IV-atomic-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="2220NISTXML-SV-IV-atomic-unsignedInt-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2221NISTXML-SV-IV-atomic-unsignedInt-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2222NISTXML-SV-IV-atomic-unsignedInt-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2223NISTXML-SV-IV-atomic-unsignedInt-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2224NISTXML-SV-IV-atomic-unsignedInt-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2225NISTSchema-SV-IV-atomic-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="2226NISTXML-SV-IV-atomic-unsignedInt-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2227NISTXML-SV-IV-atomic-unsignedInt-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2228NISTXML-SV-IV-atomic-unsignedInt-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2229NISTXML-SV-IV-atomic-unsignedInt-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2230NISTXML-SV-IV-atomic-unsignedInt-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2231NISTSchema-SV-IV-atomic-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="2232NISTXML-SV-IV-atomic-unsignedInt-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2233NISTXML-SV-IV-atomic-unsignedInt-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2234NISTXML-SV-IV-atomic-unsignedInt-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2235NISTXML-SV-IV-atomic-unsignedInt-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2236NISTXML-SV-IV-atomic-unsignedInt-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2237NISTSchema-SV-IV-atomic-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="2238NISTXML-SV-IV-atomic-unsignedInt-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2239NISTXML-SV-IV-atomic-unsignedInt-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2240NISTXML-SV-IV-atomic-unsignedInt-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2241NISTXML-SV-IV-atomic-unsignedInt-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2242NISTXML-SV-IV-atomic-unsignedInt-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2243NISTSchema-SV-IV-atomic-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="2244NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2245NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2246NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2247NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2248NISTXML-SV-IV-atomic-unsignedInt-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2249NISTSchema-SV-IV-atomic-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="2250NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2251NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2252NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2253NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2254NISTXML-SV-IV-atomic-unsignedInt-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2255NISTSchema-SV-IV-atomic-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="2256NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2257NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2258NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2259NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2260NISTXML-SV-IV-atomic-unsignedInt-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2261NISTSchema-SV-IV-atomic-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="2262NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2263NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2264NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2265NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2266NISTXML-SV-IV-atomic-unsignedInt-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2267NISTSchema-SV-IV-atomic-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="2268NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2269NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2270NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2271NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2272NISTXML-SV-IV-atomic-unsignedInt-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2273NISTSchema-SV-IV-atomic-unsignedInt-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2274NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2275NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2276NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2277NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2278NISTXML-SV-IV-atomic-unsignedInt-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2279NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2280NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2281NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2282NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2283NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2284NISTXML-SV-IV-atomic-unsignedShort-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2285NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2286NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2287NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2288NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2289NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2290NISTXML-SV-IV-atomic-unsignedShort-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2291NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2292NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2293NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2294NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2295NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2296NISTXML-SV-IV-atomic-unsignedShort-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2297NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2298NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2299NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2300NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2301NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2302NISTXML-SV-IV-atomic-unsignedShort-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2303NISTSchema-SV-IV-atomic-unsignedShort-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2304NISTXML-SV-IV-atomic-unsignedShort-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2305NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2306NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2307NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2308NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2309NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2310NISTXML-SV-IV-atomic-unsignedShort-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2311NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2312NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2313NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2314NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2315NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2316NISTXML-SV-IV-atomic-unsignedShort-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2317NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2318NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2319NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2320NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2321NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2322NISTXML-SV-IV-atomic-unsignedShort-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2323NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2324NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2325NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2326NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2327NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2328NISTXML-SV-IV-atomic-unsignedShort-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2329NISTSchema-SV-IV-atomic-unsignedShort-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2330NISTXML-SV-IV-atomic-unsignedShort-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2331NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2332NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2333NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2334NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2335NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2336NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2337NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2338NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2339NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2340NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2341NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2342NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2343NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2344NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2345NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2346NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2347NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2348NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2349NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2350NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2351NISTSchema-SV-IV-atomic-unsignedShort-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2352NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2353NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2354NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2355NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2356NISTXML-SV-IV-atomic-unsignedShort-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2357NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2358NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2359NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2360NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2361NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2362NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2363NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2364NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2365NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2366NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2367NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2368NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2369NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2370NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2371NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2372NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2373NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2374NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2375NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2376NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2377NISTSchema-SV-IV-atomic-unsignedShort-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2378NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2379NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2380NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2381NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2382NISTXML-SV-IV-atomic-unsignedShort-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2383NISTSchema-SV-IV-atomic-unsignedShort-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2384NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2385NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2386NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2387NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2388NISTXML-SV-IV-atomic-unsignedShort-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2389NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2390NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2391NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2392NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2393NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2394NISTXML-SV-IV-atomic-unsignedShort-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2395NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2396NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2397NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2398NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2399NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2400NISTXML-SV-IV-atomic-unsignedShort-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2401NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2402NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2403NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2404NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2405NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2406NISTXML-SV-IV-atomic-unsignedShort-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2407NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2408NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2409NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2410NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2411NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2412NISTXML-SV-IV-atomic-unsignedShort-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2413NISTSchema-SV-IV-atomic-unsignedShort-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2414NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2415NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2416NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2417NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2418NISTXML-SV-IV-atomic-unsignedShort-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2419NISTSchema-SV-IV-atomic-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="2420NISTXML-SV-IV-atomic-unsignedShort-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2421NISTXML-SV-IV-atomic-unsignedShort-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2422NISTXML-SV-IV-atomic-unsignedShort-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2423NISTXML-SV-IV-atomic-unsignedShort-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2424NISTXML-SV-IV-atomic-unsignedShort-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2425NISTSchema-SV-IV-atomic-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="2426NISTXML-SV-IV-atomic-unsignedShort-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2427NISTXML-SV-IV-atomic-unsignedShort-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2428NISTXML-SV-IV-atomic-unsignedShort-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2429NISTXML-SV-IV-atomic-unsignedShort-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2430NISTXML-SV-IV-atomic-unsignedShort-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2431NISTSchema-SV-IV-atomic-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="2432NISTXML-SV-IV-atomic-unsignedShort-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2433NISTXML-SV-IV-atomic-unsignedShort-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2434NISTXML-SV-IV-atomic-unsignedShort-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2435NISTXML-SV-IV-atomic-unsignedShort-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2436NISTXML-SV-IV-atomic-unsignedShort-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2437NISTSchema-SV-IV-atomic-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="2438NISTXML-SV-IV-atomic-unsignedShort-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2439NISTXML-SV-IV-atomic-unsignedShort-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2440NISTXML-SV-IV-atomic-unsignedShort-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2441NISTXML-SV-IV-atomic-unsignedShort-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2442NISTXML-SV-IV-atomic-unsignedShort-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2443NISTSchema-SV-IV-atomic-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="2444NISTXML-SV-IV-atomic-unsignedShort-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2445NISTXML-SV-IV-atomic-unsignedShort-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2446NISTXML-SV-IV-atomic-unsignedShort-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2447NISTXML-SV-IV-atomic-unsignedShort-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2448NISTXML-SV-IV-atomic-unsignedShort-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2449NISTSchema-SV-IV-atomic-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="2450NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2451NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2452NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2453NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2454NISTXML-SV-IV-atomic-unsignedShort-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2455NISTSchema-SV-IV-atomic-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="2456NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2457NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2458NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2459NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2460NISTXML-SV-IV-atomic-unsignedShort-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2461NISTSchema-SV-IV-atomic-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="2462NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2463NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2464NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2465NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2466NISTXML-SV-IV-atomic-unsignedShort-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2467NISTSchema-SV-IV-atomic-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="2468NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2469NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2470NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2471NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2472NISTXML-SV-IV-atomic-unsignedShort-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2473NISTSchema-SV-IV-atomic-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="2474NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2475NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2476NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2477NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2478NISTXML-SV-IV-atomic-unsignedShort-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2479NISTSchema-SV-IV-atomic-unsignedShort-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2480NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2481NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2482NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2483NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2484NISTXML-SV-IV-atomic-unsignedShort-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2485NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2486NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2487NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2488NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2489NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2490NISTXML-SV-IV-atomic-unsignedByte-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2491NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2492NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2493NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2494NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2495NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2496NISTXML-SV-IV-atomic-unsignedByte-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2497NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2498NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2499NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2500NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2501NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2502NISTXML-SV-IV-atomic-unsignedByte-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2503NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2504NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2505NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2506NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2507NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2508NISTXML-SV-IV-atomic-unsignedByte-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2509NISTSchema-SV-IV-atomic-unsignedByte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2510NISTXML-SV-IV-atomic-unsignedByte-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2511NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2512NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2513NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2514NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2515NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2516NISTXML-SV-IV-atomic-unsignedByte-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2517NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2518NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2519NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2520NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2521NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2522NISTXML-SV-IV-atomic-unsignedByte-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2523NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2524NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2525NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2526NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2527NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2528NISTXML-SV-IV-atomic-unsignedByte-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2529NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2530NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2531NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2532NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2533NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2534NISTXML-SV-IV-atomic-unsignedByte-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2535NISTSchema-SV-IV-atomic-unsignedByte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2536NISTXML-SV-IV-atomic-unsignedByte-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2537NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2538NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2539NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2540NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2541NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2542NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2543NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2544NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2545NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2546NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2547NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2548NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2549NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2550NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2551NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2552NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2553NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2554NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2555NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2556NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2557NISTSchema-SV-IV-atomic-unsignedByte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2558NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2559NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2560NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2561NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2562NISTXML-SV-IV-atomic-unsignedByte-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2563NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2564NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2565NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2566NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2567NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2568NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2569NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2570NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2571NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2572NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2573NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2574NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2575NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2576NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2577NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2578NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2579NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2580NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2581NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2582NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2583NISTSchema-SV-IV-atomic-unsignedByte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2584NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2585NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2586NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2587NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2588NISTXML-SV-IV-atomic-unsignedByte-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2589NISTSchema-SV-IV-atomic-unsignedByte-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2590NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2591NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2592NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2593NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2594NISTXML-SV-IV-atomic-unsignedByte-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2595NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2596NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2597NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2598NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2599NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2600NISTXML-SV-IV-atomic-unsignedByte-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2601NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2602NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2603NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2604NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2605NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2606NISTXML-SV-IV-atomic-unsignedByte-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2607NISTSchema-SV-IV-atomic-unsignedByte-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2608NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2609NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2610NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2611NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2612NISTXML-SV-IV-atomic-unsignedByte-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2613NISTSchema-SV-IV-atomic-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="2614NISTXML-SV-IV-atomic-unsignedByte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2615NISTXML-SV-IV-atomic-unsignedByte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2616NISTXML-SV-IV-atomic-unsignedByte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2617NISTXML-SV-IV-atomic-unsignedByte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2618NISTXML-SV-IV-atomic-unsignedByte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2619NISTSchema-SV-IV-atomic-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="2620NISTXML-SV-IV-atomic-unsignedByte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2621NISTXML-SV-IV-atomic-unsignedByte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2622NISTXML-SV-IV-atomic-unsignedByte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2623NISTXML-SV-IV-atomic-unsignedByte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2624NISTXML-SV-IV-atomic-unsignedByte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2625NISTSchema-SV-IV-atomic-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="2626NISTXML-SV-IV-atomic-unsignedByte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2627NISTXML-SV-IV-atomic-unsignedByte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2628NISTXML-SV-IV-atomic-unsignedByte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2629NISTXML-SV-IV-atomic-unsignedByte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2630NISTXML-SV-IV-atomic-unsignedByte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2631NISTSchema-SV-IV-atomic-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="2632NISTXML-SV-IV-atomic-unsignedByte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2633NISTXML-SV-IV-atomic-unsignedByte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2634NISTXML-SV-IV-atomic-unsignedByte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2635NISTXML-SV-IV-atomic-unsignedByte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2636NISTXML-SV-IV-atomic-unsignedByte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2637NISTSchema-SV-IV-atomic-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="2638NISTXML-SV-IV-atomic-unsignedByte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2639NISTXML-SV-IV-atomic-unsignedByte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2640NISTXML-SV-IV-atomic-unsignedByte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2641NISTXML-SV-IV-atomic-unsignedByte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2642NISTXML-SV-IV-atomic-unsignedByte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2643NISTSchema-SV-IV-atomic-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="2644NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2645NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2646NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2647NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2648NISTXML-SV-IV-atomic-unsignedByte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2649NISTSchema-SV-IV-atomic-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="2650NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2651NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2652NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2653NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2654NISTXML-SV-IV-atomic-unsignedByte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2655NISTSchema-SV-IV-atomic-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="2656NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2657NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2658NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2659NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2660NISTXML-SV-IV-atomic-unsignedByte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2661NISTSchema-SV-IV-atomic-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="2662NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2663NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2664NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2665NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2666NISTXML-SV-IV-atomic-unsignedByte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2667NISTSchema-SV-IV-atomic-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="2668NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2669NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2670NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2671NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2672NISTXML-SV-IV-atomic-unsignedByte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2673NISTSchema-SV-IV-atomic-unsignedByte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2674NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2675NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2676NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2677NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2678NISTXML-SV-IV-atomic-unsignedByte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2679NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="2680NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2681NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="2682NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="2683NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="2684NISTXML-SV-IV-atomic-positiveInteger-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="2685NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="2686NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2687NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2688NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2689NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2690NISTXML-SV-IV-atomic-positiveInteger-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2691NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="2692NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2693NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2694NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2695NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2696NISTXML-SV-IV-atomic-positiveInteger-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2697NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="2698NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2699NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2700NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2701NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2702NISTXML-SV-IV-atomic-positiveInteger-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2703NISTSchema-SV-IV-atomic-positiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="2704NISTXML-SV-IV-atomic-positiveInteger-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2705NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-1 tokoe:valid" result="pass"/><test-case name="2706NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2707NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="2708NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="2709NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="2710NISTXML-SV-IV-atomic-positiveInteger-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="2711NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="2712NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2713NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2714NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2715NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2716NISTXML-SV-IV-atomic-positiveInteger-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2717NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="2718NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2719NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2720NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2721NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2722NISTXML-SV-IV-atomic-positiveInteger-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2723NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="2724NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2725NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2726NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2727NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2728NISTXML-SV-IV-atomic-positiveInteger-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2729NISTSchema-SV-IV-atomic-positiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="2730NISTXML-SV-IV-atomic-positiveInteger-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2731NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="2732NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="2733NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="2734NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="2735NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="2736NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="2737NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="2738NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="2739NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="2740NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="2741NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="2742NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="2743NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="2744NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="2745NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="2746NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="2747NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="2748NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="2749NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="2750NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="2751NISTSchema-SV-IV-atomic-positiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="2752NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="2753NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="2754NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="2755NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="2756NISTXML-SV-IV-atomic-positiveInteger-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="2757NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="2758NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="2759NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="2760NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="2761NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="2762NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="2763NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="2764NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="2765NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="2766NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="2767NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="2768NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="2769NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="2770NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="2771NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="2772NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="2773NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="2774NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="2775NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="2776NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="2777NISTSchema-SV-IV-atomic-positiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="2778NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="2779NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="2780NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="2781NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="2782NISTXML-SV-IV-atomic-positiveInteger-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="2783NISTSchema-SV-IV-atomic-positiveInteger-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="2784NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-1 tokoe:valid" result="pass"/><test-case name="2785NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-2 tokoe:valid" result="pass"/><test-case name="2786NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-3 tokoe:valid" result="pass"/><test-case name="2787NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-4 tokoe:valid" result="pass"/><test-case name="2788NISTXML-SV-IV-atomic-positiveInteger-fractionDigits-1-5 tokoe:valid" result="pass"/><test-case name="2789NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="2790NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-1 tokoe:valid" result="pass"/><test-case name="2791NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-2 tokoe:valid" result="pass"/><test-case name="2792NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-3 tokoe:valid" result="pass"/><test-case name="2793NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-4 tokoe:valid" result="pass"/><test-case name="2794NISTXML-SV-IV-atomic-positiveInteger-totalDigits-1-5 tokoe:valid" result="pass"/><test-case name="2795NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="2796NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-1 tokoe:valid" result="pass"/><test-case name="2797NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-2 tokoe:valid" result="pass"/><test-case name="2798NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-3 tokoe:valid" result="pass"/><test-case name="2799NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-4 tokoe:valid" result="pass"/><test-case name="2800NISTXML-SV-IV-atomic-positiveInteger-totalDigits-2-5 tokoe:valid" result="pass"/><test-case name="2801NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="2802NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-1 tokoe:valid" result="pass"/><test-case name="2803NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-2 tokoe:valid" result="pass"/><test-case name="2804NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-3 tokoe:valid" result="pass"/><test-case name="2805NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-4 tokoe:valid" result="pass"/><test-case name="2806NISTXML-SV-IV-atomic-positiveInteger-totalDigits-3-5 tokoe:valid" result="pass"/><test-case name="2807NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="2808NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-1 tokoe:valid" result="pass"/><test-case name="2809NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-2 tokoe:valid" result="pass"/><test-case name="2810NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-3 tokoe:valid" result="pass"/><test-case name="2811NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-4 tokoe:valid" result="pass"/><test-case name="2812NISTXML-SV-IV-atomic-positiveInteger-totalDigits-4-5 tokoe:valid" result="pass"/><test-case name="2813NISTSchema-SV-IV-atomic-positiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="2814NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-1 tokoe:valid" result="pass"/><test-case name="2815NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-2 tokoe:valid" result="pass"/><test-case name="2816NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-3 tokoe:valid" result="pass"/><test-case name="2817NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-4 tokoe:valid" result="pass"/><test-case name="2818NISTXML-SV-IV-atomic-positiveInteger-totalDigits-5-5 tokoe:valid" result="pass"/><test-case name="2819NISTSchema-SV-IV-atomic-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="2820NISTXML-SV-IV-atomic-positiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2821NISTXML-SV-IV-atomic-positiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2822NISTXML-SV-IV-atomic-positiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2823NISTXML-SV-IV-atomic-positiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2824NISTXML-SV-IV-atomic-positiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2825NISTSchema-SV-IV-atomic-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="2826NISTXML-SV-IV-atomic-positiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2827NISTXML-SV-IV-atomic-positiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2828NISTXML-SV-IV-atomic-positiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2829NISTXML-SV-IV-atomic-positiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2830NISTXML-SV-IV-atomic-positiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2831NISTSchema-SV-IV-atomic-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="2832NISTXML-SV-IV-atomic-positiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2833NISTXML-SV-IV-atomic-positiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2834NISTXML-SV-IV-atomic-positiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2835NISTXML-SV-IV-atomic-positiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2836NISTXML-SV-IV-atomic-positiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2837NISTSchema-SV-IV-atomic-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="2838NISTXML-SV-IV-atomic-positiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2839NISTXML-SV-IV-atomic-positiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2840NISTXML-SV-IV-atomic-positiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2841NISTXML-SV-IV-atomic-positiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2842NISTXML-SV-IV-atomic-positiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2843NISTSchema-SV-IV-atomic-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="2844NISTXML-SV-IV-atomic-positiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2845NISTXML-SV-IV-atomic-positiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2846NISTXML-SV-IV-atomic-positiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2847NISTXML-SV-IV-atomic-positiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2848NISTXML-SV-IV-atomic-positiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2849NISTSchema-SV-IV-atomic-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="2850NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2851NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="2852NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2853NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2854NISTXML-SV-IV-atomic-positiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="2855NISTSchema-SV-IV-atomic-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="2856NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="2857NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="2858NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="2859NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="2860NISTXML-SV-IV-atomic-positiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="2861NISTSchema-SV-IV-atomic-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="2862NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="2863NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="2864NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="2865NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="2866NISTXML-SV-IV-atomic-positiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="2867NISTSchema-SV-IV-atomic-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="2868NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="2869NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="2870NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="2871NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="2872NISTXML-SV-IV-atomic-positiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2873NISTSchema-SV-IV-atomic-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="2874NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="2875NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="2876NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="2877NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="2878NISTXML-SV-IV-atomic-positiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="2879NISTSchema-SV-IV-atomic-positiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2880NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2881NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2882NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2883NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2884NISTXML-SV-IV-atomic-positiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2885NISTSchema-SV-IV-atomic-double-pattern-1 tokoe:valid" result="pass"/><test-case name="2886NISTXML-SV-IV-atomic-double-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2887NISTXML-SV-IV-atomic-double-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2888NISTXML-SV-IV-atomic-double-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2889NISTXML-SV-IV-atomic-double-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2890NISTXML-SV-IV-atomic-double-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2891NISTSchema-SV-IV-atomic-double-pattern-2 tokoe:valid" result="pass"/><test-case name="2892NISTXML-SV-IV-atomic-double-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2893NISTXML-SV-IV-atomic-double-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2894NISTXML-SV-IV-atomic-double-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2895NISTXML-SV-IV-atomic-double-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2896NISTXML-SV-IV-atomic-double-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2897NISTSchema-SV-IV-atomic-double-pattern-3 tokoe:valid" result="pass"/><test-case name="2898NISTXML-SV-IV-atomic-double-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2899NISTXML-SV-IV-atomic-double-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2900NISTXML-SV-IV-atomic-double-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2901NISTXML-SV-IV-atomic-double-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2902NISTXML-SV-IV-atomic-double-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2903NISTSchema-SV-IV-atomic-double-pattern-4 tokoe:valid" result="pass"/><test-case name="2904NISTXML-SV-IV-atomic-double-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2905NISTXML-SV-IV-atomic-double-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2906NISTXML-SV-IV-atomic-double-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2907NISTXML-SV-IV-atomic-double-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2908NISTXML-SV-IV-atomic-double-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2909NISTSchema-SV-IV-atomic-double-pattern-5 tokoe:valid" result="pass"/><test-case name="2910NISTXML-SV-IV-atomic-double-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2911NISTXML-SV-IV-atomic-double-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2912NISTXML-SV-IV-atomic-double-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2913NISTXML-SV-IV-atomic-double-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2914NISTXML-SV-IV-atomic-double-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2915NISTSchema-SV-IV-atomic-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="2916NISTXML-SV-IV-atomic-double-enumeration-1-1 tokoe:valid" result="fail"/><test-case name="2917NISTXML-SV-IV-atomic-double-enumeration-1-2 tokoe:valid" result="fail"/><test-case name="2918NISTXML-SV-IV-atomic-double-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="2919NISTXML-SV-IV-atomic-double-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="2920NISTXML-SV-IV-atomic-double-enumeration-1-5 tokoe:valid" result="fail"/><test-case name="2921NISTSchema-SV-IV-atomic-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="2922NISTXML-SV-IV-atomic-double-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="2923NISTXML-SV-IV-atomic-double-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="2924NISTXML-SV-IV-atomic-double-enumeration-2-3 tokoe:valid" result="fail"/><test-case name="2925NISTXML-SV-IV-atomic-double-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="2926NISTXML-SV-IV-atomic-double-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="2927NISTSchema-SV-IV-atomic-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="2928NISTXML-SV-IV-atomic-double-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="2929NISTXML-SV-IV-atomic-double-enumeration-3-2 tokoe:valid" result="fail"/><test-case name="2930NISTXML-SV-IV-atomic-double-enumeration-3-3 tokoe:valid" result="fail"/><test-case name="2931NISTXML-SV-IV-atomic-double-enumeration-3-4 tokoe:valid" result="fail"/><test-case name="2932NISTXML-SV-IV-atomic-double-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="2933NISTSchema-SV-IV-atomic-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="2934NISTXML-SV-IV-atomic-double-enumeration-4-1 tokoe:valid" result="fail"/><test-case name="2935NISTXML-SV-IV-atomic-double-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="2936NISTXML-SV-IV-atomic-double-enumeration-4-3 tokoe:valid" result="fail"/><test-case name="2937NISTXML-SV-IV-atomic-double-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="2938NISTXML-SV-IV-atomic-double-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="2939NISTSchema-SV-IV-atomic-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="2940NISTXML-SV-IV-atomic-double-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="2941NISTXML-SV-IV-atomic-double-enumeration-5-2 tokoe:valid" result="fail"/><test-case name="2942NISTXML-SV-IV-atomic-double-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="2943NISTXML-SV-IV-atomic-double-enumeration-5-4 tokoe:valid" result="fail"/><test-case name="2944NISTXML-SV-IV-atomic-double-enumeration-5-5 tokoe:valid" result="fail"/><test-case name="2945NISTSchema-SV-IV-atomic-double-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="2946NISTXML-SV-IV-atomic-double-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="2947NISTXML-SV-IV-atomic-double-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="2948NISTXML-SV-IV-atomic-double-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="2949NISTXML-SV-IV-atomic-double-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="2950NISTXML-SV-IV-atomic-double-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="2951NISTXML-SV-IV-atomic-double-whiteSpace-1-6 tokoe:valid" result="pass"/><test-case name="2952NISTXML-SV-IV-atomic-double-whiteSpace-1-7 tokoe:valid" result="pass"/><test-case name="2953NISTXML-SV-IV-atomic-double-whiteSpace-1-8 tokoe:valid" result="pass"/><test-case name="2954NISTXML-SV-IV-atomic-double-whiteSpace-1-9 tokoe:valid" result="pass"/><test-case name="2955NISTXML-SV-IV-atomic-double-whiteSpace-1-10 tokoe:valid" result="pass"/><test-case name="2956NISTXML-SV-IV-atomic-double-whiteSpace-1-11 tokoe:valid" result="pass"/><test-case name="2957NISTXML-SV-IV-atomic-double-whiteSpace-1-12 tokoe:valid" result="pass"/><test-case name="2958NISTXML-SV-IV-atomic-double-whiteSpace-1-13 tokoe:valid" result="pass"/><test-case name="2959NISTXML-SV-IV-atomic-double-whiteSpace-1-14 tokoe:valid" result="pass"/><test-case name="2960NISTXML-SV-IV-atomic-double-whiteSpace-1-15 tokoe:valid" result="pass"/><test-case name="2961NISTSchema-SV-IV-atomic-float-pattern-1 tokoe:valid" result="pass"/><test-case name="2962NISTXML-SV-IV-atomic-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="2963NISTXML-SV-IV-atomic-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="2964NISTXML-SV-IV-atomic-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="2965NISTXML-SV-IV-atomic-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="2966NISTXML-SV-IV-atomic-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="2967NISTSchema-SV-IV-atomic-float-pattern-2 tokoe:valid" result="pass"/><test-case name="2968NISTXML-SV-IV-atomic-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="2969NISTXML-SV-IV-atomic-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="2970NISTXML-SV-IV-atomic-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="2971NISTXML-SV-IV-atomic-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="2972NISTXML-SV-IV-atomic-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="2973NISTSchema-SV-IV-atomic-float-pattern-3 tokoe:valid" result="pass"/><test-case name="2974NISTXML-SV-IV-atomic-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="2975NISTXML-SV-IV-atomic-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="2976NISTXML-SV-IV-atomic-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="2977NISTXML-SV-IV-atomic-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="2978NISTXML-SV-IV-atomic-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="2979NISTSchema-SV-IV-atomic-float-pattern-4 tokoe:valid" result="pass"/><test-case name="2980NISTXML-SV-IV-atomic-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="2981NISTXML-SV-IV-atomic-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="2982NISTXML-SV-IV-atomic-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="2983NISTXML-SV-IV-atomic-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="2984NISTXML-SV-IV-atomic-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="2985NISTSchema-SV-IV-atomic-float-pattern-5 tokoe:valid" result="pass"/><test-case name="2986NISTXML-SV-IV-atomic-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="2987NISTXML-SV-IV-atomic-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="2988NISTXML-SV-IV-atomic-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="2989NISTXML-SV-IV-atomic-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="2990NISTXML-SV-IV-atomic-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="2991NISTSchema-SV-IV-atomic-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="2992NISTXML-SV-IV-atomic-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="2993NISTXML-SV-IV-atomic-float-enumeration-1-2 tokoe:valid" result="fail"/><test-case name="2994NISTXML-SV-IV-atomic-float-enumeration-1-3 tokoe:valid" result="fail"/><test-case name="2995NISTXML-SV-IV-atomic-float-enumeration-1-4 tokoe:valid" result="fail"/><test-case name="2996NISTXML-SV-IV-atomic-float-enumeration-1-5 tokoe:valid" result="fail"/><test-case name="2997NISTSchema-SV-IV-atomic-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="2998NISTXML-SV-IV-atomic-float-enumeration-2-1 tokoe:valid" result="fail"/><test-case name="2999NISTXML-SV-IV-atomic-float-enumeration-2-2 tokoe:valid" result="fail"/><test-case name="3000NISTXML-SV-IV-atomic-float-enumeration-2-3 tokoe:valid" result="fail"/><test-case name="3001NISTXML-SV-IV-atomic-float-enumeration-2-4 tokoe:valid" result="fail"/><test-case name="3002NISTXML-SV-IV-atomic-float-enumeration-2-5 tokoe:valid" result="fail"/><test-case name="3003NISTSchema-SV-IV-atomic-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="3004NISTXML-SV-IV-atomic-float-enumeration-3-1 tokoe:valid" result="fail"/><test-case name="3005NISTXML-SV-IV-atomic-float-enumeration-3-2 tokoe:valid" result="fail"/><test-case name="3006NISTXML-SV-IV-atomic-float-enumeration-3-3 tokoe:valid" result="fail"/><test-case name="3007NISTXML-SV-IV-atomic-float-enumeration-3-4 tokoe:valid" result="fail"/><test-case name="3008NISTXML-SV-IV-atomic-float-enumeration-3-5 tokoe:valid" result="fail"/><test-case name="3009NISTSchema-SV-IV-atomic-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="3010NISTXML-SV-IV-atomic-float-enumeration-4-1 tokoe:valid" result="fail"/><test-case name="3011NISTXML-SV-IV-atomic-float-enumeration-4-2 tokoe:valid" result="fail"/><test-case name="3012NISTXML-SV-IV-atomic-float-enumeration-4-3 tokoe:valid" result="fail"/><test-case name="3013NISTXML-SV-IV-atomic-float-enumeration-4-4 tokoe:valid" result="fail"/><test-case name="3014NISTXML-SV-IV-atomic-float-enumeration-4-5 tokoe:valid" result="fail"/><test-case name="3015NISTSchema-SV-IV-atomic-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="3016NISTXML-SV-IV-atomic-float-enumeration-5-1 tokoe:valid" result="fail"/><test-case name="3017NISTXML-SV-IV-atomic-float-enumeration-5-2 tokoe:valid" result="fail"/><test-case name="3018NISTXML-SV-IV-atomic-float-enumeration-5-3 tokoe:valid" result="fail"/><test-case name="3019NISTXML-SV-IV-atomic-float-enumeration-5-4 tokoe:valid" result="fail"/><test-case name="3020NISTXML-SV-IV-atomic-float-enumeration-5-5 tokoe:valid" result="fail"/><test-case name="3021NISTSchema-SV-IV-atomic-float-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3022NISTXML-SV-IV-atomic-float-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3023NISTXML-SV-IV-atomic-float-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3024NISTXML-SV-IV-atomic-float-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3025NISTXML-SV-IV-atomic-float-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3026NISTXML-SV-IV-atomic-float-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3027NISTXML-SV-IV-atomic-float-whiteSpace-1-6 tokoe:valid" result="pass"/><test-case name="3028NISTXML-SV-IV-atomic-float-whiteSpace-1-7 tokoe:valid" result="pass"/><test-case name="3029NISTXML-SV-IV-atomic-float-whiteSpace-1-8 tokoe:valid" result="pass"/><test-case name="3030NISTXML-SV-IV-atomic-float-whiteSpace-1-9 tokoe:valid" result="pass"/><test-case name="3031NISTXML-SV-IV-atomic-float-whiteSpace-1-10 tokoe:valid" result="pass"/><test-case name="3032NISTXML-SV-IV-atomic-float-whiteSpace-1-11 tokoe:valid" result="pass"/><test-case name="3033NISTXML-SV-IV-atomic-float-whiteSpace-1-12 tokoe:valid" result="pass"/><test-case name="3034NISTXML-SV-IV-atomic-float-whiteSpace-1-13 tokoe:valid" result="pass"/><test-case name="3035NISTXML-SV-IV-atomic-float-whiteSpace-1-14 tokoe:valid" result="pass"/><test-case name="3036NISTXML-SV-IV-atomic-float-whiteSpace-1-15 tokoe:valid" result="pass"/><test-case name="3037NISTSchema-SV-IV-atomic-duration-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3038NISTXML-SV-IV-atomic-duration-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3039NISTXML-SV-IV-atomic-duration-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3040NISTXML-SV-IV-atomic-duration-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3041NISTXML-SV-IV-atomic-duration-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3042NISTXML-SV-IV-atomic-duration-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3043NISTSchema-SV-IV-atomic-duration-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3044NISTXML-SV-IV-atomic-duration-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3045NISTXML-SV-IV-atomic-duration-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3046NISTXML-SV-IV-atomic-duration-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3047NISTXML-SV-IV-atomic-duration-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3048NISTXML-SV-IV-atomic-duration-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3049NISTSchema-SV-IV-atomic-duration-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3050NISTXML-SV-IV-atomic-duration-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3051NISTXML-SV-IV-atomic-duration-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3052NISTXML-SV-IV-atomic-duration-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3053NISTXML-SV-IV-atomic-duration-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3054NISTXML-SV-IV-atomic-duration-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3055NISTSchema-SV-IV-atomic-duration-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3056NISTXML-SV-IV-atomic-duration-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3057NISTXML-SV-IV-atomic-duration-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3058NISTXML-SV-IV-atomic-duration-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3059NISTXML-SV-IV-atomic-duration-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3060NISTXML-SV-IV-atomic-duration-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3061NISTSchema-SV-IV-atomic-duration-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3062NISTXML-SV-IV-atomic-duration-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3063NISTSchema-SV-IV-atomic-duration-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3064NISTXML-SV-IV-atomic-duration-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3065NISTXML-SV-IV-atomic-duration-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3066NISTXML-SV-IV-atomic-duration-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3067NISTXML-SV-IV-atomic-duration-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3068NISTXML-SV-IV-atomic-duration-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3069NISTSchema-SV-IV-atomic-duration-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3070NISTXML-SV-IV-atomic-duration-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3071NISTXML-SV-IV-atomic-duration-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3072NISTXML-SV-IV-atomic-duration-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3073NISTXML-SV-IV-atomic-duration-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3074NISTXML-SV-IV-atomic-duration-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3075NISTSchema-SV-IV-atomic-duration-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3076NISTXML-SV-IV-atomic-duration-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3077NISTXML-SV-IV-atomic-duration-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3078NISTXML-SV-IV-atomic-duration-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3079NISTXML-SV-IV-atomic-duration-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3080NISTXML-SV-IV-atomic-duration-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3081NISTSchema-SV-IV-atomic-duration-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3082NISTXML-SV-IV-atomic-duration-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3083NISTXML-SV-IV-atomic-duration-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3084NISTXML-SV-IV-atomic-duration-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3085NISTXML-SV-IV-atomic-duration-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3086NISTXML-SV-IV-atomic-duration-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3087NISTSchema-SV-IV-atomic-duration-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3088NISTXML-SV-IV-atomic-duration-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3089NISTSchema-SV-IV-atomic-duration-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3090NISTXML-SV-IV-atomic-duration-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3091NISTSchema-SV-IV-atomic-duration-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3092NISTXML-SV-IV-atomic-duration-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3093NISTXML-SV-IV-atomic-duration-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3094NISTXML-SV-IV-atomic-duration-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3095NISTXML-SV-IV-atomic-duration-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3096NISTXML-SV-IV-atomic-duration-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3097NISTSchema-SV-IV-atomic-duration-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3098NISTXML-SV-IV-atomic-duration-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3099NISTXML-SV-IV-atomic-duration-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3100NISTXML-SV-IV-atomic-duration-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3101NISTXML-SV-IV-atomic-duration-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3102NISTXML-SV-IV-atomic-duration-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3103NISTSchema-SV-IV-atomic-duration-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3104NISTXML-SV-IV-atomic-duration-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3105NISTXML-SV-IV-atomic-duration-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3106NISTXML-SV-IV-atomic-duration-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3107NISTXML-SV-IV-atomic-duration-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3108NISTXML-SV-IV-atomic-duration-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3109NISTSchema-SV-IV-atomic-duration-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3110NISTXML-SV-IV-atomic-duration-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3111NISTXML-SV-IV-atomic-duration-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3112NISTXML-SV-IV-atomic-duration-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3113NISTXML-SV-IV-atomic-duration-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3114NISTXML-SV-IV-atomic-duration-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3115NISTSchema-SV-IV-atomic-duration-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3116NISTXML-SV-IV-atomic-duration-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3117NISTSchema-SV-IV-atomic-duration-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3118NISTXML-SV-IV-atomic-duration-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3119NISTXML-SV-IV-atomic-duration-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3120NISTXML-SV-IV-atomic-duration-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3121NISTXML-SV-IV-atomic-duration-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3122NISTXML-SV-IV-atomic-duration-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3123NISTSchema-SV-IV-atomic-duration-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3124NISTXML-SV-IV-atomic-duration-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3125NISTXML-SV-IV-atomic-duration-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3126NISTXML-SV-IV-atomic-duration-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3127NISTXML-SV-IV-atomic-duration-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3128NISTXML-SV-IV-atomic-duration-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3129NISTSchema-SV-IV-atomic-duration-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3130NISTXML-SV-IV-atomic-duration-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3131NISTXML-SV-IV-atomic-duration-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3132NISTXML-SV-IV-atomic-duration-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3133NISTXML-SV-IV-atomic-duration-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3134NISTXML-SV-IV-atomic-duration-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3135NISTSchema-SV-IV-atomic-duration-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3136NISTXML-SV-IV-atomic-duration-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3137NISTXML-SV-IV-atomic-duration-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3138NISTXML-SV-IV-atomic-duration-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3139NISTXML-SV-IV-atomic-duration-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3140NISTXML-SV-IV-atomic-duration-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3141NISTSchema-SV-IV-atomic-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="3142NISTXML-SV-IV-atomic-duration-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3143NISTXML-SV-IV-atomic-duration-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3144NISTXML-SV-IV-atomic-duration-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3145NISTXML-SV-IV-atomic-duration-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3146NISTXML-SV-IV-atomic-duration-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3147NISTSchema-SV-IV-atomic-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="3148NISTXML-SV-IV-atomic-duration-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3149NISTXML-SV-IV-atomic-duration-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3150NISTXML-SV-IV-atomic-duration-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3151NISTXML-SV-IV-atomic-duration-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3152NISTXML-SV-IV-atomic-duration-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3153NISTSchema-SV-IV-atomic-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="3154NISTXML-SV-IV-atomic-duration-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3155NISTXML-SV-IV-atomic-duration-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3156NISTXML-SV-IV-atomic-duration-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3157NISTXML-SV-IV-atomic-duration-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3158NISTXML-SV-IV-atomic-duration-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3159NISTSchema-SV-IV-atomic-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="3160NISTXML-SV-IV-atomic-duration-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3161NISTXML-SV-IV-atomic-duration-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3162NISTXML-SV-IV-atomic-duration-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3163NISTXML-SV-IV-atomic-duration-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3164NISTXML-SV-IV-atomic-duration-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3165NISTSchema-SV-IV-atomic-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="3166NISTXML-SV-IV-atomic-duration-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3167NISTXML-SV-IV-atomic-duration-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3168NISTXML-SV-IV-atomic-duration-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3169NISTXML-SV-IV-atomic-duration-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3170NISTXML-SV-IV-atomic-duration-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3171NISTSchema-SV-IV-atomic-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="3172NISTXML-SV-IV-atomic-duration-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3173NISTXML-SV-IV-atomic-duration-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3174NISTXML-SV-IV-atomic-duration-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3175NISTXML-SV-IV-atomic-duration-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3176NISTXML-SV-IV-atomic-duration-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3177NISTSchema-SV-IV-atomic-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="3178NISTXML-SV-IV-atomic-duration-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3179NISTXML-SV-IV-atomic-duration-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3180NISTXML-SV-IV-atomic-duration-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3181NISTXML-SV-IV-atomic-duration-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3182NISTXML-SV-IV-atomic-duration-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3183NISTSchema-SV-IV-atomic-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="3184NISTXML-SV-IV-atomic-duration-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3185NISTXML-SV-IV-atomic-duration-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3186NISTXML-SV-IV-atomic-duration-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3187NISTXML-SV-IV-atomic-duration-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3188NISTXML-SV-IV-atomic-duration-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3189NISTSchema-SV-IV-atomic-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="3190NISTXML-SV-IV-atomic-duration-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3191NISTXML-SV-IV-atomic-duration-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3192NISTXML-SV-IV-atomic-duration-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3193NISTXML-SV-IV-atomic-duration-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3194NISTXML-SV-IV-atomic-duration-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3195NISTSchema-SV-IV-atomic-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="3196NISTXML-SV-IV-atomic-duration-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3197NISTXML-SV-IV-atomic-duration-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3198NISTXML-SV-IV-atomic-duration-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3199NISTXML-SV-IV-atomic-duration-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3200NISTXML-SV-IV-atomic-duration-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3201NISTSchema-SV-IV-atomic-duration-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3202NISTXML-SV-IV-atomic-duration-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3203NISTXML-SV-IV-atomic-duration-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3204NISTXML-SV-IV-atomic-duration-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3205NISTXML-SV-IV-atomic-duration-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3206NISTXML-SV-IV-atomic-duration-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3207NISTSchema-SV-IV-atomic-dateTime-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3208NISTXML-SV-IV-atomic-dateTime-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3209NISTXML-SV-IV-atomic-dateTime-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3210NISTXML-SV-IV-atomic-dateTime-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3211NISTXML-SV-IV-atomic-dateTime-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3212NISTXML-SV-IV-atomic-dateTime-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3213NISTSchema-SV-IV-atomic-dateTime-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3214NISTXML-SV-IV-atomic-dateTime-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3215NISTXML-SV-IV-atomic-dateTime-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3216NISTXML-SV-IV-atomic-dateTime-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3217NISTXML-SV-IV-atomic-dateTime-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3218NISTXML-SV-IV-atomic-dateTime-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3219NISTSchema-SV-IV-atomic-dateTime-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3220NISTXML-SV-IV-atomic-dateTime-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3221NISTXML-SV-IV-atomic-dateTime-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3222NISTXML-SV-IV-atomic-dateTime-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3223NISTXML-SV-IV-atomic-dateTime-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3224NISTXML-SV-IV-atomic-dateTime-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3225NISTSchema-SV-IV-atomic-dateTime-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3226NISTXML-SV-IV-atomic-dateTime-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3227NISTXML-SV-IV-atomic-dateTime-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3228NISTXML-SV-IV-atomic-dateTime-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3229NISTXML-SV-IV-atomic-dateTime-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3230NISTXML-SV-IV-atomic-dateTime-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3231NISTSchema-SV-IV-atomic-dateTime-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3232NISTXML-SV-IV-atomic-dateTime-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3233NISTSchema-SV-IV-atomic-dateTime-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3234NISTXML-SV-IV-atomic-dateTime-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3235NISTXML-SV-IV-atomic-dateTime-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3236NISTXML-SV-IV-atomic-dateTime-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3237NISTXML-SV-IV-atomic-dateTime-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3238NISTXML-SV-IV-atomic-dateTime-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3239NISTSchema-SV-IV-atomic-dateTime-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3240NISTXML-SV-IV-atomic-dateTime-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3241NISTXML-SV-IV-atomic-dateTime-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3242NISTXML-SV-IV-atomic-dateTime-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3243NISTXML-SV-IV-atomic-dateTime-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3244NISTXML-SV-IV-atomic-dateTime-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3245NISTSchema-SV-IV-atomic-dateTime-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3246NISTXML-SV-IV-atomic-dateTime-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3247NISTXML-SV-IV-atomic-dateTime-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3248NISTXML-SV-IV-atomic-dateTime-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3249NISTXML-SV-IV-atomic-dateTime-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3250NISTXML-SV-IV-atomic-dateTime-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3251NISTSchema-SV-IV-atomic-dateTime-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3252NISTXML-SV-IV-atomic-dateTime-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3253NISTXML-SV-IV-atomic-dateTime-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3254NISTXML-SV-IV-atomic-dateTime-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3255NISTXML-SV-IV-atomic-dateTime-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3256NISTXML-SV-IV-atomic-dateTime-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3257NISTSchema-SV-IV-atomic-dateTime-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3258NISTXML-SV-IV-atomic-dateTime-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3259NISTSchema-SV-IV-atomic-dateTime-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3260NISTXML-SV-IV-atomic-dateTime-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3261NISTSchema-SV-IV-atomic-dateTime-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3262NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3263NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3264NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3265NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3266NISTXML-SV-IV-atomic-dateTime-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3267NISTSchema-SV-IV-atomic-dateTime-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3268NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3269NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3270NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3271NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3272NISTXML-SV-IV-atomic-dateTime-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3273NISTSchema-SV-IV-atomic-dateTime-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3274NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3275NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3276NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3277NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3278NISTXML-SV-IV-atomic-dateTime-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3279NISTSchema-SV-IV-atomic-dateTime-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3280NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3281NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3282NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3283NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3284NISTXML-SV-IV-atomic-dateTime-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3285NISTSchema-SV-IV-atomic-dateTime-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3286NISTXML-SV-IV-atomic-dateTime-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3287NISTSchema-SV-IV-atomic-dateTime-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3288NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3289NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3290NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3291NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3292NISTXML-SV-IV-atomic-dateTime-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3293NISTSchema-SV-IV-atomic-dateTime-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3294NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3295NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3296NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3297NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3298NISTXML-SV-IV-atomic-dateTime-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3299NISTSchema-SV-IV-atomic-dateTime-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3300NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3301NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3302NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3303NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3304NISTXML-SV-IV-atomic-dateTime-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3305NISTSchema-SV-IV-atomic-dateTime-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3306NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3307NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3308NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3309NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3310NISTXML-SV-IV-atomic-dateTime-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3311NISTSchema-SV-IV-atomic-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="3312NISTXML-SV-IV-atomic-dateTime-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3313NISTXML-SV-IV-atomic-dateTime-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3314NISTXML-SV-IV-atomic-dateTime-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3315NISTXML-SV-IV-atomic-dateTime-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3316NISTXML-SV-IV-atomic-dateTime-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3317NISTSchema-SV-IV-atomic-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="3318NISTXML-SV-IV-atomic-dateTime-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3319NISTXML-SV-IV-atomic-dateTime-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3320NISTXML-SV-IV-atomic-dateTime-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3321NISTXML-SV-IV-atomic-dateTime-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3322NISTXML-SV-IV-atomic-dateTime-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3323NISTSchema-SV-IV-atomic-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="3324NISTXML-SV-IV-atomic-dateTime-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3325NISTXML-SV-IV-atomic-dateTime-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3326NISTXML-SV-IV-atomic-dateTime-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3327NISTXML-SV-IV-atomic-dateTime-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3328NISTXML-SV-IV-atomic-dateTime-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3329NISTSchema-SV-IV-atomic-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="3330NISTXML-SV-IV-atomic-dateTime-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3331NISTXML-SV-IV-atomic-dateTime-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3332NISTXML-SV-IV-atomic-dateTime-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3333NISTXML-SV-IV-atomic-dateTime-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3334NISTXML-SV-IV-atomic-dateTime-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3335NISTSchema-SV-IV-atomic-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="3336NISTXML-SV-IV-atomic-dateTime-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3337NISTXML-SV-IV-atomic-dateTime-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3338NISTXML-SV-IV-atomic-dateTime-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3339NISTXML-SV-IV-atomic-dateTime-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3340NISTXML-SV-IV-atomic-dateTime-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3341NISTSchema-SV-IV-atomic-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="3342NISTXML-SV-IV-atomic-dateTime-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3343NISTXML-SV-IV-atomic-dateTime-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3344NISTXML-SV-IV-atomic-dateTime-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3345NISTXML-SV-IV-atomic-dateTime-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3346NISTXML-SV-IV-atomic-dateTime-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3347NISTSchema-SV-IV-atomic-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="3348NISTXML-SV-IV-atomic-dateTime-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3349NISTXML-SV-IV-atomic-dateTime-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3350NISTXML-SV-IV-atomic-dateTime-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3351NISTXML-SV-IV-atomic-dateTime-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3352NISTXML-SV-IV-atomic-dateTime-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3353NISTSchema-SV-IV-atomic-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="3354NISTXML-SV-IV-atomic-dateTime-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3355NISTXML-SV-IV-atomic-dateTime-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3356NISTXML-SV-IV-atomic-dateTime-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3357NISTXML-SV-IV-atomic-dateTime-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3358NISTXML-SV-IV-atomic-dateTime-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3359NISTSchema-SV-IV-atomic-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="3360NISTXML-SV-IV-atomic-dateTime-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3361NISTXML-SV-IV-atomic-dateTime-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3362NISTXML-SV-IV-atomic-dateTime-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3363NISTXML-SV-IV-atomic-dateTime-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3364NISTXML-SV-IV-atomic-dateTime-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3365NISTSchema-SV-IV-atomic-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="3366NISTXML-SV-IV-atomic-dateTime-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3367NISTXML-SV-IV-atomic-dateTime-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3368NISTXML-SV-IV-atomic-dateTime-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3369NISTXML-SV-IV-atomic-dateTime-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3370NISTXML-SV-IV-atomic-dateTime-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3371NISTSchema-SV-IV-atomic-dateTime-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3372NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3373NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3374NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3375NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3376NISTXML-SV-IV-atomic-dateTime-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3377NISTSchema-SV-IV-atomic-time-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3378NISTXML-SV-IV-atomic-time-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3379NISTXML-SV-IV-atomic-time-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3380NISTXML-SV-IV-atomic-time-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3381NISTXML-SV-IV-atomic-time-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3382NISTXML-SV-IV-atomic-time-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3383NISTSchema-SV-IV-atomic-time-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3384NISTXML-SV-IV-atomic-time-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3385NISTXML-SV-IV-atomic-time-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3386NISTXML-SV-IV-atomic-time-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3387NISTXML-SV-IV-atomic-time-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3388NISTXML-SV-IV-atomic-time-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3389NISTSchema-SV-IV-atomic-time-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3390NISTXML-SV-IV-atomic-time-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3391NISTXML-SV-IV-atomic-time-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3392NISTXML-SV-IV-atomic-time-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3393NISTXML-SV-IV-atomic-time-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3394NISTXML-SV-IV-atomic-time-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3395NISTSchema-SV-IV-atomic-time-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3396NISTXML-SV-IV-atomic-time-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3397NISTXML-SV-IV-atomic-time-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3398NISTXML-SV-IV-atomic-time-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3399NISTXML-SV-IV-atomic-time-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3400NISTXML-SV-IV-atomic-time-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3401NISTSchema-SV-IV-atomic-time-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3402NISTXML-SV-IV-atomic-time-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3403NISTSchema-SV-IV-atomic-time-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3404NISTXML-SV-IV-atomic-time-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3405NISTXML-SV-IV-atomic-time-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3406NISTXML-SV-IV-atomic-time-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3407NISTXML-SV-IV-atomic-time-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3408NISTXML-SV-IV-atomic-time-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3409NISTSchema-SV-IV-atomic-time-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3410NISTXML-SV-IV-atomic-time-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3411NISTXML-SV-IV-atomic-time-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3412NISTXML-SV-IV-atomic-time-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3413NISTXML-SV-IV-atomic-time-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3414NISTXML-SV-IV-atomic-time-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3415NISTSchema-SV-IV-atomic-time-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3416NISTXML-SV-IV-atomic-time-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3417NISTXML-SV-IV-atomic-time-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3418NISTXML-SV-IV-atomic-time-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3419NISTXML-SV-IV-atomic-time-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3420NISTXML-SV-IV-atomic-time-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3421NISTSchema-SV-IV-atomic-time-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3422NISTXML-SV-IV-atomic-time-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3423NISTXML-SV-IV-atomic-time-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3424NISTXML-SV-IV-atomic-time-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3425NISTXML-SV-IV-atomic-time-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3426NISTXML-SV-IV-atomic-time-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3427NISTSchema-SV-IV-atomic-time-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3428NISTXML-SV-IV-atomic-time-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3429NISTSchema-SV-IV-atomic-time-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3430NISTXML-SV-IV-atomic-time-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3431NISTSchema-SV-IV-atomic-time-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3432NISTXML-SV-IV-atomic-time-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3433NISTXML-SV-IV-atomic-time-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3434NISTXML-SV-IV-atomic-time-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3435NISTXML-SV-IV-atomic-time-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3436NISTXML-SV-IV-atomic-time-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3437NISTSchema-SV-IV-atomic-time-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3438NISTXML-SV-IV-atomic-time-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3439NISTXML-SV-IV-atomic-time-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3440NISTXML-SV-IV-atomic-time-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3441NISTXML-SV-IV-atomic-time-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3442NISTXML-SV-IV-atomic-time-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3443NISTSchema-SV-IV-atomic-time-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3444NISTXML-SV-IV-atomic-time-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3445NISTXML-SV-IV-atomic-time-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3446NISTXML-SV-IV-atomic-time-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3447NISTXML-SV-IV-atomic-time-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3448NISTXML-SV-IV-atomic-time-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3449NISTSchema-SV-IV-atomic-time-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3450NISTXML-SV-IV-atomic-time-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3451NISTXML-SV-IV-atomic-time-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3452NISTXML-SV-IV-atomic-time-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3453NISTXML-SV-IV-atomic-time-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3454NISTXML-SV-IV-atomic-time-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3455NISTSchema-SV-IV-atomic-time-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3456NISTXML-SV-IV-atomic-time-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3457NISTSchema-SV-IV-atomic-time-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3458NISTXML-SV-IV-atomic-time-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3459NISTXML-SV-IV-atomic-time-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3460NISTXML-SV-IV-atomic-time-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3461NISTXML-SV-IV-atomic-time-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3462NISTXML-SV-IV-atomic-time-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3463NISTSchema-SV-IV-atomic-time-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3464NISTXML-SV-IV-atomic-time-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3465NISTXML-SV-IV-atomic-time-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3466NISTXML-SV-IV-atomic-time-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3467NISTXML-SV-IV-atomic-time-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3468NISTXML-SV-IV-atomic-time-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3469NISTSchema-SV-IV-atomic-time-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3470NISTXML-SV-IV-atomic-time-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3471NISTXML-SV-IV-atomic-time-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3472NISTXML-SV-IV-atomic-time-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3473NISTXML-SV-IV-atomic-time-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3474NISTXML-SV-IV-atomic-time-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3475NISTSchema-SV-IV-atomic-time-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3476NISTXML-SV-IV-atomic-time-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3477NISTXML-SV-IV-atomic-time-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3478NISTXML-SV-IV-atomic-time-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3479NISTXML-SV-IV-atomic-time-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3480NISTXML-SV-IV-atomic-time-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3481NISTSchema-SV-IV-atomic-time-pattern-1 tokoe:valid" result="pass"/><test-case name="3482NISTXML-SV-IV-atomic-time-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3483NISTXML-SV-IV-atomic-time-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3484NISTXML-SV-IV-atomic-time-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3485NISTXML-SV-IV-atomic-time-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3486NISTXML-SV-IV-atomic-time-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3487NISTSchema-SV-IV-atomic-time-pattern-2 tokoe:valid" result="pass"/><test-case name="3488NISTXML-SV-IV-atomic-time-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3489NISTXML-SV-IV-atomic-time-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3490NISTXML-SV-IV-atomic-time-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3491NISTXML-SV-IV-atomic-time-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3492NISTXML-SV-IV-atomic-time-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3493NISTSchema-SV-IV-atomic-time-pattern-3 tokoe:valid" result="pass"/><test-case name="3494NISTXML-SV-IV-atomic-time-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3495NISTXML-SV-IV-atomic-time-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3496NISTXML-SV-IV-atomic-time-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3497NISTXML-SV-IV-atomic-time-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3498NISTXML-SV-IV-atomic-time-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3499NISTSchema-SV-IV-atomic-time-pattern-4 tokoe:valid" result="pass"/><test-case name="3500NISTXML-SV-IV-atomic-time-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3501NISTXML-SV-IV-atomic-time-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3502NISTXML-SV-IV-atomic-time-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3503NISTXML-SV-IV-atomic-time-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3504NISTXML-SV-IV-atomic-time-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3505NISTSchema-SV-IV-atomic-time-pattern-5 tokoe:valid" result="pass"/><test-case name="3506NISTXML-SV-IV-atomic-time-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3507NISTXML-SV-IV-atomic-time-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3508NISTXML-SV-IV-atomic-time-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3509NISTXML-SV-IV-atomic-time-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3510NISTXML-SV-IV-atomic-time-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3511NISTSchema-SV-IV-atomic-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="3512NISTXML-SV-IV-atomic-time-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3513NISTXML-SV-IV-atomic-time-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3514NISTXML-SV-IV-atomic-time-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3515NISTXML-SV-IV-atomic-time-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3516NISTXML-SV-IV-atomic-time-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3517NISTSchema-SV-IV-atomic-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="3518NISTXML-SV-IV-atomic-time-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3519NISTXML-SV-IV-atomic-time-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3520NISTXML-SV-IV-atomic-time-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3521NISTXML-SV-IV-atomic-time-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3522NISTXML-SV-IV-atomic-time-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3523NISTSchema-SV-IV-atomic-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="3524NISTXML-SV-IV-atomic-time-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3525NISTXML-SV-IV-atomic-time-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3526NISTXML-SV-IV-atomic-time-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3527NISTXML-SV-IV-atomic-time-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3528NISTXML-SV-IV-atomic-time-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3529NISTSchema-SV-IV-atomic-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="3530NISTXML-SV-IV-atomic-time-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3531NISTXML-SV-IV-atomic-time-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3532NISTXML-SV-IV-atomic-time-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3533NISTXML-SV-IV-atomic-time-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3534NISTXML-SV-IV-atomic-time-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3535NISTSchema-SV-IV-atomic-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="3536NISTXML-SV-IV-atomic-time-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3537NISTXML-SV-IV-atomic-time-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3538NISTXML-SV-IV-atomic-time-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3539NISTXML-SV-IV-atomic-time-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3540NISTXML-SV-IV-atomic-time-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3541NISTSchema-SV-IV-atomic-time-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3542NISTXML-SV-IV-atomic-time-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3543NISTXML-SV-IV-atomic-time-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3544NISTXML-SV-IV-atomic-time-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3545NISTXML-SV-IV-atomic-time-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3546NISTXML-SV-IV-atomic-time-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3547NISTSchema-SV-IV-atomic-date-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3548NISTXML-SV-IV-atomic-date-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3549NISTXML-SV-IV-atomic-date-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3550NISTXML-SV-IV-atomic-date-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3551NISTXML-SV-IV-atomic-date-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3552NISTXML-SV-IV-atomic-date-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3553NISTSchema-SV-IV-atomic-date-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3554NISTXML-SV-IV-atomic-date-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3555NISTXML-SV-IV-atomic-date-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3556NISTXML-SV-IV-atomic-date-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3557NISTXML-SV-IV-atomic-date-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3558NISTXML-SV-IV-atomic-date-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3559NISTSchema-SV-IV-atomic-date-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3560NISTXML-SV-IV-atomic-date-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3561NISTXML-SV-IV-atomic-date-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3562NISTXML-SV-IV-atomic-date-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3563NISTXML-SV-IV-atomic-date-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3564NISTXML-SV-IV-atomic-date-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3565NISTSchema-SV-IV-atomic-date-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3566NISTXML-SV-IV-atomic-date-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3567NISTXML-SV-IV-atomic-date-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3568NISTXML-SV-IV-atomic-date-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3569NISTXML-SV-IV-atomic-date-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3570NISTXML-SV-IV-atomic-date-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3571NISTSchema-SV-IV-atomic-date-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3572NISTXML-SV-IV-atomic-date-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3573NISTSchema-SV-IV-atomic-date-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3574NISTXML-SV-IV-atomic-date-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3575NISTXML-SV-IV-atomic-date-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3576NISTXML-SV-IV-atomic-date-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3577NISTXML-SV-IV-atomic-date-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3578NISTXML-SV-IV-atomic-date-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3579NISTSchema-SV-IV-atomic-date-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3580NISTXML-SV-IV-atomic-date-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3581NISTXML-SV-IV-atomic-date-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3582NISTXML-SV-IV-atomic-date-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3583NISTXML-SV-IV-atomic-date-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3584NISTXML-SV-IV-atomic-date-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3585NISTSchema-SV-IV-atomic-date-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3586NISTXML-SV-IV-atomic-date-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3587NISTXML-SV-IV-atomic-date-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3588NISTXML-SV-IV-atomic-date-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3589NISTXML-SV-IV-atomic-date-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3590NISTXML-SV-IV-atomic-date-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3591NISTSchema-SV-IV-atomic-date-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3592NISTXML-SV-IV-atomic-date-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3593NISTXML-SV-IV-atomic-date-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3594NISTXML-SV-IV-atomic-date-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3595NISTXML-SV-IV-atomic-date-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3596NISTXML-SV-IV-atomic-date-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3597NISTSchema-SV-IV-atomic-date-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3598NISTXML-SV-IV-atomic-date-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3599NISTSchema-SV-IV-atomic-date-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3600NISTXML-SV-IV-atomic-date-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3601NISTSchema-SV-IV-atomic-date-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3602NISTXML-SV-IV-atomic-date-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3603NISTXML-SV-IV-atomic-date-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3604NISTXML-SV-IV-atomic-date-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3605NISTXML-SV-IV-atomic-date-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3606NISTXML-SV-IV-atomic-date-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3607NISTSchema-SV-IV-atomic-date-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3608NISTXML-SV-IV-atomic-date-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3609NISTXML-SV-IV-atomic-date-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3610NISTXML-SV-IV-atomic-date-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3611NISTXML-SV-IV-atomic-date-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3612NISTXML-SV-IV-atomic-date-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3613NISTSchema-SV-IV-atomic-date-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3614NISTXML-SV-IV-atomic-date-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3615NISTXML-SV-IV-atomic-date-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3616NISTXML-SV-IV-atomic-date-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3617NISTXML-SV-IV-atomic-date-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3618NISTXML-SV-IV-atomic-date-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3619NISTSchema-SV-IV-atomic-date-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3620NISTXML-SV-IV-atomic-date-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3621NISTXML-SV-IV-atomic-date-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3622NISTXML-SV-IV-atomic-date-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3623NISTXML-SV-IV-atomic-date-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3624NISTXML-SV-IV-atomic-date-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3625NISTSchema-SV-IV-atomic-date-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3626NISTXML-SV-IV-atomic-date-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3627NISTSchema-SV-IV-atomic-date-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3628NISTXML-SV-IV-atomic-date-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3629NISTXML-SV-IV-atomic-date-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3630NISTXML-SV-IV-atomic-date-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3631NISTXML-SV-IV-atomic-date-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3632NISTXML-SV-IV-atomic-date-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3633NISTSchema-SV-IV-atomic-date-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3634NISTXML-SV-IV-atomic-date-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3635NISTXML-SV-IV-atomic-date-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3636NISTXML-SV-IV-atomic-date-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3637NISTXML-SV-IV-atomic-date-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3638NISTXML-SV-IV-atomic-date-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3639NISTSchema-SV-IV-atomic-date-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3640NISTXML-SV-IV-atomic-date-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3641NISTXML-SV-IV-atomic-date-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3642NISTXML-SV-IV-atomic-date-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3643NISTXML-SV-IV-atomic-date-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3644NISTXML-SV-IV-atomic-date-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3645NISTSchema-SV-IV-atomic-date-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3646NISTXML-SV-IV-atomic-date-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3647NISTXML-SV-IV-atomic-date-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3648NISTXML-SV-IV-atomic-date-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3649NISTXML-SV-IV-atomic-date-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3650NISTXML-SV-IV-atomic-date-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3651NISTSchema-SV-IV-atomic-date-pattern-1 tokoe:valid" result="pass"/><test-case name="3652NISTXML-SV-IV-atomic-date-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3653NISTXML-SV-IV-atomic-date-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3654NISTXML-SV-IV-atomic-date-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3655NISTXML-SV-IV-atomic-date-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3656NISTXML-SV-IV-atomic-date-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3657NISTSchema-SV-IV-atomic-date-pattern-2 tokoe:valid" result="pass"/><test-case name="3658NISTXML-SV-IV-atomic-date-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3659NISTXML-SV-IV-atomic-date-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3660NISTXML-SV-IV-atomic-date-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3661NISTXML-SV-IV-atomic-date-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3662NISTXML-SV-IV-atomic-date-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3663NISTSchema-SV-IV-atomic-date-pattern-3 tokoe:valid" result="pass"/><test-case name="3664NISTXML-SV-IV-atomic-date-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3665NISTXML-SV-IV-atomic-date-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3666NISTXML-SV-IV-atomic-date-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3667NISTXML-SV-IV-atomic-date-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3668NISTXML-SV-IV-atomic-date-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3669NISTSchema-SV-IV-atomic-date-pattern-4 tokoe:valid" result="pass"/><test-case name="3670NISTXML-SV-IV-atomic-date-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3671NISTXML-SV-IV-atomic-date-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3672NISTXML-SV-IV-atomic-date-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3673NISTXML-SV-IV-atomic-date-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3674NISTXML-SV-IV-atomic-date-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3675NISTSchema-SV-IV-atomic-date-pattern-5 tokoe:valid" result="pass"/><test-case name="3676NISTXML-SV-IV-atomic-date-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3677NISTXML-SV-IV-atomic-date-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3678NISTXML-SV-IV-atomic-date-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3679NISTXML-SV-IV-atomic-date-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3680NISTXML-SV-IV-atomic-date-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3681NISTSchema-SV-IV-atomic-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="3682NISTXML-SV-IV-atomic-date-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3683NISTXML-SV-IV-atomic-date-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3684NISTXML-SV-IV-atomic-date-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3685NISTXML-SV-IV-atomic-date-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3686NISTXML-SV-IV-atomic-date-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3687NISTSchema-SV-IV-atomic-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="3688NISTXML-SV-IV-atomic-date-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3689NISTXML-SV-IV-atomic-date-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3690NISTXML-SV-IV-atomic-date-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3691NISTXML-SV-IV-atomic-date-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3692NISTXML-SV-IV-atomic-date-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3693NISTSchema-SV-IV-atomic-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="3694NISTXML-SV-IV-atomic-date-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3695NISTXML-SV-IV-atomic-date-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3696NISTXML-SV-IV-atomic-date-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3697NISTXML-SV-IV-atomic-date-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3698NISTXML-SV-IV-atomic-date-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3699NISTSchema-SV-IV-atomic-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="3700NISTXML-SV-IV-atomic-date-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3701NISTXML-SV-IV-atomic-date-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3702NISTXML-SV-IV-atomic-date-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3703NISTXML-SV-IV-atomic-date-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3704NISTXML-SV-IV-atomic-date-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3705NISTSchema-SV-IV-atomic-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="3706NISTXML-SV-IV-atomic-date-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3707NISTXML-SV-IV-atomic-date-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3708NISTXML-SV-IV-atomic-date-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3709NISTXML-SV-IV-atomic-date-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3710NISTXML-SV-IV-atomic-date-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3711NISTSchema-SV-IV-atomic-date-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3712NISTXML-SV-IV-atomic-date-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3713NISTXML-SV-IV-atomic-date-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3714NISTXML-SV-IV-atomic-date-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3715NISTXML-SV-IV-atomic-date-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3716NISTXML-SV-IV-atomic-date-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3717NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3718NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3719NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3720NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3721NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3722NISTXML-SV-IV-atomic-gYearMonth-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3723NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3724NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3725NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3726NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3727NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3728NISTXML-SV-IV-atomic-gYearMonth-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3729NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3730NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3731NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3732NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3733NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3734NISTXML-SV-IV-atomic-gYearMonth-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3735NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3736NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3737NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3738NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3739NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3740NISTXML-SV-IV-atomic-gYearMonth-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3741NISTSchema-SV-IV-atomic-gYearMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3742NISTXML-SV-IV-atomic-gYearMonth-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3743NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3744NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3745NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3746NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3747NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3748NISTXML-SV-IV-atomic-gYearMonth-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3749NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3750NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3751NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3752NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3753NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3754NISTXML-SV-IV-atomic-gYearMonth-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3755NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3756NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3757NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3758NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3759NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3760NISTXML-SV-IV-atomic-gYearMonth-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3761NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3762NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3763NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3764NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3765NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3766NISTXML-SV-IV-atomic-gYearMonth-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3767NISTSchema-SV-IV-atomic-gYearMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3768NISTXML-SV-IV-atomic-gYearMonth-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3769NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3770NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3771NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3772NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3773NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3774NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3775NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3776NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3777NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3778NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3779NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3780NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3781NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3782NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3783NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3784NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3785NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3786NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3787NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3788NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3789NISTSchema-SV-IV-atomic-gYearMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3790NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3791NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3792NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3793NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3794NISTXML-SV-IV-atomic-gYearMonth-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3795NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3796NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3797NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3798NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3799NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3800NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3801NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3802NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3803NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3804NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3805NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3806NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3807NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3808NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3809NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3810NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3811NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3812NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3813NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3814NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3815NISTSchema-SV-IV-atomic-gYearMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3816NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3817NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3818NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3819NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3820NISTXML-SV-IV-atomic-gYearMonth-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3821NISTSchema-SV-IV-atomic-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="3822NISTXML-SV-IV-atomic-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3823NISTXML-SV-IV-atomic-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3824NISTXML-SV-IV-atomic-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3825NISTXML-SV-IV-atomic-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3826NISTXML-SV-IV-atomic-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3827NISTSchema-SV-IV-atomic-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="3828NISTXML-SV-IV-atomic-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3829NISTXML-SV-IV-atomic-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="3830NISTXML-SV-IV-atomic-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="3831NISTXML-SV-IV-atomic-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="3832NISTXML-SV-IV-atomic-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="3833NISTSchema-SV-IV-atomic-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="3834NISTXML-SV-IV-atomic-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="3835NISTXML-SV-IV-atomic-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="3836NISTXML-SV-IV-atomic-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="3837NISTXML-SV-IV-atomic-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="3838NISTXML-SV-IV-atomic-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="3839NISTSchema-SV-IV-atomic-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="3840NISTXML-SV-IV-atomic-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="3841NISTXML-SV-IV-atomic-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="3842NISTXML-SV-IV-atomic-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="3843NISTXML-SV-IV-atomic-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="3844NISTXML-SV-IV-atomic-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="3845NISTSchema-SV-IV-atomic-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="3846NISTXML-SV-IV-atomic-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="3847NISTXML-SV-IV-atomic-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="3848NISTXML-SV-IV-atomic-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="3849NISTXML-SV-IV-atomic-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="3850NISTXML-SV-IV-atomic-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="3851NISTSchema-SV-IV-atomic-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="3852NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="3853NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="3854NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="3855NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="3856NISTXML-SV-IV-atomic-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="3857NISTSchema-SV-IV-atomic-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="3858NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="3859NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="3860NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="3861NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="3862NISTXML-SV-IV-atomic-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="3863NISTSchema-SV-IV-atomic-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="3864NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="3865NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="3866NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="3867NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="3868NISTXML-SV-IV-atomic-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="3869NISTSchema-SV-IV-atomic-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="3870NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="3871NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="3872NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="3873NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="3874NISTXML-SV-IV-atomic-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="3875NISTSchema-SV-IV-atomic-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="3876NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="3877NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="3878NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="3879NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="3880NISTXML-SV-IV-atomic-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="3881NISTSchema-SV-IV-atomic-gYearMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="3882NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="3883NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="3884NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="3885NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="3886NISTXML-SV-IV-atomic-gYearMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="3887NISTSchema-SV-IV-atomic-gYear-minExclusive-1 tokoe:valid" result="pass"/><test-case name="3888NISTXML-SV-IV-atomic-gYear-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3889NISTXML-SV-IV-atomic-gYear-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="3890NISTXML-SV-IV-atomic-gYear-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="3891NISTXML-SV-IV-atomic-gYear-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="3892NISTXML-SV-IV-atomic-gYear-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="3893NISTSchema-SV-IV-atomic-gYear-minExclusive-2 tokoe:valid" result="pass"/><test-case name="3894NISTXML-SV-IV-atomic-gYear-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3895NISTXML-SV-IV-atomic-gYear-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3896NISTXML-SV-IV-atomic-gYear-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3897NISTXML-SV-IV-atomic-gYear-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3898NISTXML-SV-IV-atomic-gYear-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3899NISTSchema-SV-IV-atomic-gYear-minExclusive-3 tokoe:valid" result="pass"/><test-case name="3900NISTXML-SV-IV-atomic-gYear-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3901NISTXML-SV-IV-atomic-gYear-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3902NISTXML-SV-IV-atomic-gYear-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3903NISTXML-SV-IV-atomic-gYear-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3904NISTXML-SV-IV-atomic-gYear-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3905NISTSchema-SV-IV-atomic-gYear-minExclusive-4 tokoe:valid" result="pass"/><test-case name="3906NISTXML-SV-IV-atomic-gYear-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3907NISTXML-SV-IV-atomic-gYear-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3908NISTXML-SV-IV-atomic-gYear-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3909NISTXML-SV-IV-atomic-gYear-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3910NISTXML-SV-IV-atomic-gYear-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3911NISTSchema-SV-IV-atomic-gYear-minExclusive-5 tokoe:valid" result="pass"/><test-case name="3912NISTXML-SV-IV-atomic-gYear-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3913NISTSchema-SV-IV-atomic-gYear-minInclusive-1 tokoe:valid" result="pass"/><test-case name="3914NISTXML-SV-IV-atomic-gYear-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3915NISTXML-SV-IV-atomic-gYear-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="3916NISTXML-SV-IV-atomic-gYear-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="3917NISTXML-SV-IV-atomic-gYear-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="3918NISTXML-SV-IV-atomic-gYear-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="3919NISTSchema-SV-IV-atomic-gYear-minInclusive-2 tokoe:valid" result="pass"/><test-case name="3920NISTXML-SV-IV-atomic-gYear-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3921NISTXML-SV-IV-atomic-gYear-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3922NISTXML-SV-IV-atomic-gYear-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3923NISTXML-SV-IV-atomic-gYear-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3924NISTXML-SV-IV-atomic-gYear-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3925NISTSchema-SV-IV-atomic-gYear-minInclusive-3 tokoe:valid" result="pass"/><test-case name="3926NISTXML-SV-IV-atomic-gYear-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3927NISTXML-SV-IV-atomic-gYear-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3928NISTXML-SV-IV-atomic-gYear-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3929NISTXML-SV-IV-atomic-gYear-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3930NISTXML-SV-IV-atomic-gYear-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3931NISTSchema-SV-IV-atomic-gYear-minInclusive-4 tokoe:valid" result="pass"/><test-case name="3932NISTXML-SV-IV-atomic-gYear-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3933NISTXML-SV-IV-atomic-gYear-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3934NISTXML-SV-IV-atomic-gYear-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3935NISTXML-SV-IV-atomic-gYear-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3936NISTXML-SV-IV-atomic-gYear-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3937NISTSchema-SV-IV-atomic-gYear-minInclusive-5 tokoe:valid" result="pass"/><test-case name="3938NISTXML-SV-IV-atomic-gYear-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3939NISTSchema-SV-IV-atomic-gYear-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="3940NISTXML-SV-IV-atomic-gYear-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="3941NISTSchema-SV-IV-atomic-gYear-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="3942NISTXML-SV-IV-atomic-gYear-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="3943NISTXML-SV-IV-atomic-gYear-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="3944NISTXML-SV-IV-atomic-gYear-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="3945NISTXML-SV-IV-atomic-gYear-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="3946NISTXML-SV-IV-atomic-gYear-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="3947NISTSchema-SV-IV-atomic-gYear-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="3948NISTXML-SV-IV-atomic-gYear-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="3949NISTXML-SV-IV-atomic-gYear-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="3950NISTXML-SV-IV-atomic-gYear-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="3951NISTXML-SV-IV-atomic-gYear-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="3952NISTXML-SV-IV-atomic-gYear-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="3953NISTSchema-SV-IV-atomic-gYear-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="3954NISTXML-SV-IV-atomic-gYear-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="3955NISTXML-SV-IV-atomic-gYear-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="3956NISTXML-SV-IV-atomic-gYear-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="3957NISTXML-SV-IV-atomic-gYear-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="3958NISTXML-SV-IV-atomic-gYear-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="3959NISTSchema-SV-IV-atomic-gYear-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="3960NISTXML-SV-IV-atomic-gYear-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="3961NISTXML-SV-IV-atomic-gYear-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="3962NISTXML-SV-IV-atomic-gYear-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="3963NISTXML-SV-IV-atomic-gYear-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="3964NISTXML-SV-IV-atomic-gYear-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="3965NISTSchema-SV-IV-atomic-gYear-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="3966NISTXML-SV-IV-atomic-gYear-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="3967NISTSchema-SV-IV-atomic-gYear-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="3968NISTXML-SV-IV-atomic-gYear-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="3969NISTXML-SV-IV-atomic-gYear-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="3970NISTXML-SV-IV-atomic-gYear-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="3971NISTXML-SV-IV-atomic-gYear-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="3972NISTXML-SV-IV-atomic-gYear-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="3973NISTSchema-SV-IV-atomic-gYear-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="3974NISTXML-SV-IV-atomic-gYear-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="3975NISTXML-SV-IV-atomic-gYear-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="3976NISTXML-SV-IV-atomic-gYear-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="3977NISTXML-SV-IV-atomic-gYear-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="3978NISTXML-SV-IV-atomic-gYear-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="3979NISTSchema-SV-IV-atomic-gYear-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="3980NISTXML-SV-IV-atomic-gYear-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="3981NISTXML-SV-IV-atomic-gYear-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="3982NISTXML-SV-IV-atomic-gYear-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="3983NISTXML-SV-IV-atomic-gYear-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="3984NISTXML-SV-IV-atomic-gYear-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="3985NISTSchema-SV-IV-atomic-gYear-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="3986NISTXML-SV-IV-atomic-gYear-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="3987NISTXML-SV-IV-atomic-gYear-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="3988NISTXML-SV-IV-atomic-gYear-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="3989NISTXML-SV-IV-atomic-gYear-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="3990NISTXML-SV-IV-atomic-gYear-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="3991NISTSchema-SV-IV-atomic-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="3992NISTXML-SV-IV-atomic-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="3993NISTXML-SV-IV-atomic-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="3994NISTXML-SV-IV-atomic-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="3995NISTXML-SV-IV-atomic-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="3996NISTXML-SV-IV-atomic-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="3997NISTSchema-SV-IV-atomic-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="3998NISTXML-SV-IV-atomic-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="3999NISTXML-SV-IV-atomic-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4000NISTXML-SV-IV-atomic-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4001NISTXML-SV-IV-atomic-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4002NISTXML-SV-IV-atomic-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4003NISTSchema-SV-IV-atomic-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="4004NISTXML-SV-IV-atomic-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4005NISTXML-SV-IV-atomic-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4006NISTXML-SV-IV-atomic-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4007NISTXML-SV-IV-atomic-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4008NISTXML-SV-IV-atomic-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4009NISTSchema-SV-IV-atomic-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="4010NISTXML-SV-IV-atomic-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4011NISTXML-SV-IV-atomic-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4012NISTXML-SV-IV-atomic-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4013NISTXML-SV-IV-atomic-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4014NISTXML-SV-IV-atomic-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4015NISTSchema-SV-IV-atomic-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="4016NISTXML-SV-IV-atomic-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4017NISTXML-SV-IV-atomic-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4018NISTXML-SV-IV-atomic-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4019NISTXML-SV-IV-atomic-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4020NISTXML-SV-IV-atomic-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4021NISTSchema-SV-IV-atomic-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="4022NISTXML-SV-IV-atomic-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4023NISTXML-SV-IV-atomic-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4024NISTXML-SV-IV-atomic-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4025NISTXML-SV-IV-atomic-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4026NISTXML-SV-IV-atomic-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4027NISTSchema-SV-IV-atomic-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="4028NISTXML-SV-IV-atomic-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4029NISTXML-SV-IV-atomic-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4030NISTXML-SV-IV-atomic-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4031NISTXML-SV-IV-atomic-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4032NISTXML-SV-IV-atomic-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4033NISTSchema-SV-IV-atomic-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="4034NISTXML-SV-IV-atomic-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4035NISTXML-SV-IV-atomic-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4036NISTXML-SV-IV-atomic-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4037NISTXML-SV-IV-atomic-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4038NISTXML-SV-IV-atomic-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4039NISTSchema-SV-IV-atomic-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="4040NISTXML-SV-IV-atomic-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4041NISTXML-SV-IV-atomic-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4042NISTXML-SV-IV-atomic-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4043NISTXML-SV-IV-atomic-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4044NISTXML-SV-IV-atomic-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4045NISTSchema-SV-IV-atomic-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="4046NISTXML-SV-IV-atomic-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4047NISTXML-SV-IV-atomic-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4048NISTXML-SV-IV-atomic-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4049NISTXML-SV-IV-atomic-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4050NISTXML-SV-IV-atomic-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4051NISTSchema-SV-IV-atomic-gYear-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4052NISTXML-SV-IV-atomic-gYear-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4053NISTXML-SV-IV-atomic-gYear-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4054NISTXML-SV-IV-atomic-gYear-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4055NISTXML-SV-IV-atomic-gYear-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4056NISTXML-SV-IV-atomic-gYear-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4057NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4058NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4059NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4060NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4061NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4062NISTXML-SV-IV-atomic-gMonthDay-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4063NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4064NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4065NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4066NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4067NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4068NISTXML-SV-IV-atomic-gMonthDay-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4069NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4070NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4071NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4072NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4073NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4074NISTXML-SV-IV-atomic-gMonthDay-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4075NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4076NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4077NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4078NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4079NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4080NISTXML-SV-IV-atomic-gMonthDay-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4081NISTSchema-SV-IV-atomic-gMonthDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4082NISTXML-SV-IV-atomic-gMonthDay-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4083NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4084NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4085NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4086NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4087NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4088NISTXML-SV-IV-atomic-gMonthDay-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4089NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4090NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4091NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4092NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4093NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4094NISTXML-SV-IV-atomic-gMonthDay-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4095NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4096NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4097NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4098NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4099NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4100NISTXML-SV-IV-atomic-gMonthDay-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4101NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4102NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4103NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4104NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4105NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4106NISTXML-SV-IV-atomic-gMonthDay-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4107NISTSchema-SV-IV-atomic-gMonthDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4108NISTXML-SV-IV-atomic-gMonthDay-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4109NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4110NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4111NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4112NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4113NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4114NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4115NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4116NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4117NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4118NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4119NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4120NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4121NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4122NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4123NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4124NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4125NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4126NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4127NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4128NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4129NISTSchema-SV-IV-atomic-gMonthDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4130NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4131NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4132NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4133NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4134NISTXML-SV-IV-atomic-gMonthDay-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4135NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4136NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4137NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4138NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4139NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4140NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4141NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4142NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4143NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4144NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4145NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4146NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4147NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4148NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4149NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4150NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4151NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4152NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4153NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4154NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4155NISTSchema-SV-IV-atomic-gMonthDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4156NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4157NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4158NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4159NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4160NISTXML-SV-IV-atomic-gMonthDay-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4161NISTSchema-SV-IV-atomic-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="4162NISTXML-SV-IV-atomic-gMonthDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4163NISTXML-SV-IV-atomic-gMonthDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4164NISTXML-SV-IV-atomic-gMonthDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4165NISTXML-SV-IV-atomic-gMonthDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4166NISTXML-SV-IV-atomic-gMonthDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4167NISTSchema-SV-IV-atomic-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="4168NISTXML-SV-IV-atomic-gMonthDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4169NISTXML-SV-IV-atomic-gMonthDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4170NISTXML-SV-IV-atomic-gMonthDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4171NISTXML-SV-IV-atomic-gMonthDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4172NISTXML-SV-IV-atomic-gMonthDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4173NISTSchema-SV-IV-atomic-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="4174NISTXML-SV-IV-atomic-gMonthDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4175NISTXML-SV-IV-atomic-gMonthDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4176NISTXML-SV-IV-atomic-gMonthDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4177NISTXML-SV-IV-atomic-gMonthDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4178NISTXML-SV-IV-atomic-gMonthDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4179NISTSchema-SV-IV-atomic-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="4180NISTXML-SV-IV-atomic-gMonthDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4181NISTXML-SV-IV-atomic-gMonthDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4182NISTXML-SV-IV-atomic-gMonthDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4183NISTXML-SV-IV-atomic-gMonthDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4184NISTXML-SV-IV-atomic-gMonthDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4185NISTSchema-SV-IV-atomic-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="4186NISTXML-SV-IV-atomic-gMonthDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4187NISTXML-SV-IV-atomic-gMonthDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4188NISTXML-SV-IV-atomic-gMonthDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4189NISTXML-SV-IV-atomic-gMonthDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4190NISTXML-SV-IV-atomic-gMonthDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4191NISTSchema-SV-IV-atomic-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="4192NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4193NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4194NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4195NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4196NISTXML-SV-IV-atomic-gMonthDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4197NISTSchema-SV-IV-atomic-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="4198NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4199NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4200NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4201NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4202NISTXML-SV-IV-atomic-gMonthDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4203NISTSchema-SV-IV-atomic-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="4204NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4205NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4206NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4207NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4208NISTXML-SV-IV-atomic-gMonthDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4209NISTSchema-SV-IV-atomic-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="4210NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4211NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4212NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4213NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4214NISTXML-SV-IV-atomic-gMonthDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4215NISTSchema-SV-IV-atomic-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="4216NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4217NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4218NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4219NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4220NISTXML-SV-IV-atomic-gMonthDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4221NISTSchema-SV-IV-atomic-gMonthDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4222NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4223NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4224NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4225NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4226NISTXML-SV-IV-atomic-gMonthDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4227NISTSchema-SV-IV-atomic-gDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4228NISTXML-SV-IV-atomic-gDay-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4229NISTXML-SV-IV-atomic-gDay-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4230NISTXML-SV-IV-atomic-gDay-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4231NISTXML-SV-IV-atomic-gDay-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4232NISTXML-SV-IV-atomic-gDay-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4233NISTSchema-SV-IV-atomic-gDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4234NISTXML-SV-IV-atomic-gDay-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4235NISTXML-SV-IV-atomic-gDay-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4236NISTXML-SV-IV-atomic-gDay-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4237NISTXML-SV-IV-atomic-gDay-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4238NISTXML-SV-IV-atomic-gDay-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4239NISTSchema-SV-IV-atomic-gDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4240NISTXML-SV-IV-atomic-gDay-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4241NISTXML-SV-IV-atomic-gDay-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4242NISTXML-SV-IV-atomic-gDay-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4243NISTXML-SV-IV-atomic-gDay-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4244NISTXML-SV-IV-atomic-gDay-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4245NISTSchema-SV-IV-atomic-gDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4246NISTXML-SV-IV-atomic-gDay-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4247NISTXML-SV-IV-atomic-gDay-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4248NISTXML-SV-IV-atomic-gDay-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4249NISTXML-SV-IV-atomic-gDay-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4250NISTXML-SV-IV-atomic-gDay-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4251NISTSchema-SV-IV-atomic-gDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4252NISTXML-SV-IV-atomic-gDay-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4253NISTSchema-SV-IV-atomic-gDay-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4254NISTXML-SV-IV-atomic-gDay-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4255NISTXML-SV-IV-atomic-gDay-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4256NISTXML-SV-IV-atomic-gDay-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4257NISTXML-SV-IV-atomic-gDay-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4258NISTXML-SV-IV-atomic-gDay-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4259NISTSchema-SV-IV-atomic-gDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4260NISTXML-SV-IV-atomic-gDay-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4261NISTXML-SV-IV-atomic-gDay-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4262NISTXML-SV-IV-atomic-gDay-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4263NISTXML-SV-IV-atomic-gDay-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4264NISTXML-SV-IV-atomic-gDay-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4265NISTSchema-SV-IV-atomic-gDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4266NISTXML-SV-IV-atomic-gDay-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4267NISTXML-SV-IV-atomic-gDay-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4268NISTXML-SV-IV-atomic-gDay-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4269NISTXML-SV-IV-atomic-gDay-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4270NISTXML-SV-IV-atomic-gDay-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4271NISTSchema-SV-IV-atomic-gDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4272NISTXML-SV-IV-atomic-gDay-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4273NISTXML-SV-IV-atomic-gDay-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4274NISTXML-SV-IV-atomic-gDay-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4275NISTXML-SV-IV-atomic-gDay-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4276NISTXML-SV-IV-atomic-gDay-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4277NISTSchema-SV-IV-atomic-gDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4278NISTXML-SV-IV-atomic-gDay-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4279NISTSchema-SV-IV-atomic-gDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4280NISTXML-SV-IV-atomic-gDay-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4281NISTSchema-SV-IV-atomic-gDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4282NISTXML-SV-IV-atomic-gDay-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4283NISTXML-SV-IV-atomic-gDay-maxExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4284NISTXML-SV-IV-atomic-gDay-maxExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4285NISTXML-SV-IV-atomic-gDay-maxExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4286NISTXML-SV-IV-atomic-gDay-maxExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4287NISTSchema-SV-IV-atomic-gDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4288NISTXML-SV-IV-atomic-gDay-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4289NISTXML-SV-IV-atomic-gDay-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4290NISTXML-SV-IV-atomic-gDay-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4291NISTXML-SV-IV-atomic-gDay-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4292NISTXML-SV-IV-atomic-gDay-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4293NISTSchema-SV-IV-atomic-gDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4294NISTXML-SV-IV-atomic-gDay-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4295NISTXML-SV-IV-atomic-gDay-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4296NISTXML-SV-IV-atomic-gDay-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4297NISTXML-SV-IV-atomic-gDay-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4298NISTXML-SV-IV-atomic-gDay-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4299NISTSchema-SV-IV-atomic-gDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4300NISTXML-SV-IV-atomic-gDay-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4301NISTXML-SV-IV-atomic-gDay-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4302NISTXML-SV-IV-atomic-gDay-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4303NISTXML-SV-IV-atomic-gDay-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4304NISTXML-SV-IV-atomic-gDay-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4305NISTSchema-SV-IV-atomic-gDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4306NISTXML-SV-IV-atomic-gDay-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4307NISTSchema-SV-IV-atomic-gDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4308NISTXML-SV-IV-atomic-gDay-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4309NISTXML-SV-IV-atomic-gDay-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4310NISTXML-SV-IV-atomic-gDay-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4311NISTXML-SV-IV-atomic-gDay-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4312NISTXML-SV-IV-atomic-gDay-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4313NISTSchema-SV-IV-atomic-gDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4314NISTXML-SV-IV-atomic-gDay-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4315NISTSchema-SV-IV-atomic-gDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4316NISTXML-SV-IV-atomic-gDay-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4317NISTXML-SV-IV-atomic-gDay-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4318NISTXML-SV-IV-atomic-gDay-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4319NISTXML-SV-IV-atomic-gDay-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4320NISTXML-SV-IV-atomic-gDay-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4321NISTSchema-SV-IV-atomic-gDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4322NISTXML-SV-IV-atomic-gDay-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4323NISTXML-SV-IV-atomic-gDay-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4324NISTXML-SV-IV-atomic-gDay-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4325NISTXML-SV-IV-atomic-gDay-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4326NISTXML-SV-IV-atomic-gDay-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4327NISTSchema-SV-IV-atomic-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="4328NISTXML-SV-IV-atomic-gDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4329NISTXML-SV-IV-atomic-gDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4330NISTXML-SV-IV-atomic-gDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4331NISTXML-SV-IV-atomic-gDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4332NISTXML-SV-IV-atomic-gDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4333NISTSchema-SV-IV-atomic-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="4334NISTXML-SV-IV-atomic-gDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4335NISTXML-SV-IV-atomic-gDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4336NISTXML-SV-IV-atomic-gDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4337NISTXML-SV-IV-atomic-gDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4338NISTXML-SV-IV-atomic-gDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4339NISTSchema-SV-IV-atomic-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="4340NISTXML-SV-IV-atomic-gDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4341NISTXML-SV-IV-atomic-gDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4342NISTXML-SV-IV-atomic-gDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4343NISTXML-SV-IV-atomic-gDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4344NISTXML-SV-IV-atomic-gDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4345NISTSchema-SV-IV-atomic-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="4346NISTXML-SV-IV-atomic-gDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4347NISTXML-SV-IV-atomic-gDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4348NISTXML-SV-IV-atomic-gDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4349NISTXML-SV-IV-atomic-gDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4350NISTXML-SV-IV-atomic-gDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4351NISTSchema-SV-IV-atomic-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="4352NISTXML-SV-IV-atomic-gDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4353NISTXML-SV-IV-atomic-gDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4354NISTXML-SV-IV-atomic-gDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4355NISTXML-SV-IV-atomic-gDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4356NISTXML-SV-IV-atomic-gDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4357NISTSchema-SV-IV-atomic-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="4358NISTXML-SV-IV-atomic-gDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4359NISTXML-SV-IV-atomic-gDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4360NISTXML-SV-IV-atomic-gDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4361NISTXML-SV-IV-atomic-gDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4362NISTXML-SV-IV-atomic-gDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4363NISTSchema-SV-IV-atomic-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="4364NISTXML-SV-IV-atomic-gDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4365NISTXML-SV-IV-atomic-gDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4366NISTXML-SV-IV-atomic-gDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4367NISTXML-SV-IV-atomic-gDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4368NISTXML-SV-IV-atomic-gDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4369NISTSchema-SV-IV-atomic-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="4370NISTXML-SV-IV-atomic-gDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4371NISTXML-SV-IV-atomic-gDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4372NISTXML-SV-IV-atomic-gDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4373NISTXML-SV-IV-atomic-gDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4374NISTXML-SV-IV-atomic-gDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4375NISTSchema-SV-IV-atomic-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="4376NISTXML-SV-IV-atomic-gDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4377NISTXML-SV-IV-atomic-gDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4378NISTXML-SV-IV-atomic-gDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4379NISTXML-SV-IV-atomic-gDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4380NISTXML-SV-IV-atomic-gDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4381NISTSchema-SV-IV-atomic-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="4382NISTXML-SV-IV-atomic-gDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4383NISTXML-SV-IV-atomic-gDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4384NISTXML-SV-IV-atomic-gDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4385NISTXML-SV-IV-atomic-gDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4386NISTXML-SV-IV-atomic-gDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4387NISTSchema-SV-IV-atomic-gDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4388NISTXML-SV-IV-atomic-gDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4389NISTXML-SV-IV-atomic-gDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4390NISTXML-SV-IV-atomic-gDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4391NISTXML-SV-IV-atomic-gDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4392NISTXML-SV-IV-atomic-gDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4393NISTSchema-SV-IV-atomic-gMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="4394NISTXML-SV-IV-atomic-gMonth-minExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4395NISTXML-SV-IV-atomic-gMonth-minExclusive-1-2 tokoe:valid" result="pass"/><test-case name="4396NISTXML-SV-IV-atomic-gMonth-minExclusive-1-3 tokoe:valid" result="pass"/><test-case name="4397NISTXML-SV-IV-atomic-gMonth-minExclusive-1-4 tokoe:valid" result="pass"/><test-case name="4398NISTXML-SV-IV-atomic-gMonth-minExclusive-1-5 tokoe:valid" result="pass"/><test-case name="4399NISTSchema-SV-IV-atomic-gMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="4400NISTXML-SV-IV-atomic-gMonth-minExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4401NISTXML-SV-IV-atomic-gMonth-minExclusive-2-2 tokoe:valid" result="pass"/><test-case name="4402NISTXML-SV-IV-atomic-gMonth-minExclusive-2-3 tokoe:valid" result="pass"/><test-case name="4403NISTXML-SV-IV-atomic-gMonth-minExclusive-2-4 tokoe:valid" result="pass"/><test-case name="4404NISTXML-SV-IV-atomic-gMonth-minExclusive-2-5 tokoe:valid" result="pass"/><test-case name="4405NISTSchema-SV-IV-atomic-gMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="4406NISTXML-SV-IV-atomic-gMonth-minExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4407NISTXML-SV-IV-atomic-gMonth-minExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4408NISTXML-SV-IV-atomic-gMonth-minExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4409NISTXML-SV-IV-atomic-gMonth-minExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4410NISTXML-SV-IV-atomic-gMonth-minExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4411NISTSchema-SV-IV-atomic-gMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="4412NISTXML-SV-IV-atomic-gMonth-minExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4413NISTXML-SV-IV-atomic-gMonth-minExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4414NISTXML-SV-IV-atomic-gMonth-minExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4415NISTXML-SV-IV-atomic-gMonth-minExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4416NISTXML-SV-IV-atomic-gMonth-minExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4417NISTSchema-SV-IV-atomic-gMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="4418NISTXML-SV-IV-atomic-gMonth-minExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4419NISTSchema-SV-IV-atomic-gMonth-minInclusive-1 tokoe:valid" result="pass"/><test-case name="4420NISTXML-SV-IV-atomic-gMonth-minInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4421NISTXML-SV-IV-atomic-gMonth-minInclusive-1-2 tokoe:valid" result="pass"/><test-case name="4422NISTXML-SV-IV-atomic-gMonth-minInclusive-1-3 tokoe:valid" result="pass"/><test-case name="4423NISTXML-SV-IV-atomic-gMonth-minInclusive-1-4 tokoe:valid" result="pass"/><test-case name="4424NISTXML-SV-IV-atomic-gMonth-minInclusive-1-5 tokoe:valid" result="pass"/><test-case name="4425NISTSchema-SV-IV-atomic-gMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="4426NISTXML-SV-IV-atomic-gMonth-minInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4427NISTXML-SV-IV-atomic-gMonth-minInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4428NISTXML-SV-IV-atomic-gMonth-minInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4429NISTXML-SV-IV-atomic-gMonth-minInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4430NISTXML-SV-IV-atomic-gMonth-minInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4431NISTSchema-SV-IV-atomic-gMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="4432NISTXML-SV-IV-atomic-gMonth-minInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4433NISTXML-SV-IV-atomic-gMonth-minInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4434NISTXML-SV-IV-atomic-gMonth-minInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4435NISTXML-SV-IV-atomic-gMonth-minInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4436NISTXML-SV-IV-atomic-gMonth-minInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4437NISTSchema-SV-IV-atomic-gMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="4438NISTXML-SV-IV-atomic-gMonth-minInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4439NISTXML-SV-IV-atomic-gMonth-minInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4440NISTXML-SV-IV-atomic-gMonth-minInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4441NISTXML-SV-IV-atomic-gMonth-minInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4442NISTXML-SV-IV-atomic-gMonth-minInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4443NISTSchema-SV-IV-atomic-gMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="4444NISTXML-SV-IV-atomic-gMonth-minInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4445NISTSchema-SV-IV-atomic-gMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="4446NISTXML-SV-IV-atomic-gMonth-maxExclusive-1-1 tokoe:valid" result="pass"/><test-case name="4447NISTSchema-SV-IV-atomic-gMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="4448NISTXML-SV-IV-atomic-gMonth-maxExclusive-2-1 tokoe:valid" result="pass"/><test-case name="4449NISTSchema-SV-IV-atomic-gMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="4450NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-1 tokoe:valid" result="pass"/><test-case name="4451NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-2 tokoe:valid" result="pass"/><test-case name="4452NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-3 tokoe:valid" result="pass"/><test-case name="4453NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-4 tokoe:valid" result="pass"/><test-case name="4454NISTXML-SV-IV-atomic-gMonth-maxExclusive-3-5 tokoe:valid" result="pass"/><test-case name="4455NISTSchema-SV-IV-atomic-gMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="4456NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-1 tokoe:valid" result="pass"/><test-case name="4457NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-2 tokoe:valid" result="pass"/><test-case name="4458NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-3 tokoe:valid" result="pass"/><test-case name="4459NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-4 tokoe:valid" result="pass"/><test-case name="4460NISTXML-SV-IV-atomic-gMonth-maxExclusive-4-5 tokoe:valid" result="pass"/><test-case name="4461NISTSchema-SV-IV-atomic-gMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="4462NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-1 tokoe:valid" result="pass"/><test-case name="4463NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-2 tokoe:valid" result="pass"/><test-case name="4464NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-3 tokoe:valid" result="pass"/><test-case name="4465NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-4 tokoe:valid" result="pass"/><test-case name="4466NISTXML-SV-IV-atomic-gMonth-maxExclusive-5-5 tokoe:valid" result="pass"/><test-case name="4467NISTSchema-SV-IV-atomic-gMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="4468NISTXML-SV-IV-atomic-gMonth-maxInclusive-1-1 tokoe:valid" result="pass"/><test-case name="4469NISTSchema-SV-IV-atomic-gMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="4470NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-1 tokoe:valid" result="pass"/><test-case name="4471NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-2 tokoe:valid" result="pass"/><test-case name="4472NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-3 tokoe:valid" result="pass"/><test-case name="4473NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-4 tokoe:valid" result="pass"/><test-case name="4474NISTXML-SV-IV-atomic-gMonth-maxInclusive-2-5 tokoe:valid" result="pass"/><test-case name="4475NISTSchema-SV-IV-atomic-gMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="4476NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-1 tokoe:valid" result="pass"/><test-case name="4477NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-2 tokoe:valid" result="pass"/><test-case name="4478NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-3 tokoe:valid" result="pass"/><test-case name="4479NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-4 tokoe:valid" result="pass"/><test-case name="4480NISTXML-SV-IV-atomic-gMonth-maxInclusive-3-5 tokoe:valid" result="pass"/><test-case name="4481NISTSchema-SV-IV-atomic-gMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="4482NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-1 tokoe:valid" result="pass"/><test-case name="4483NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-2 tokoe:valid" result="pass"/><test-case name="4484NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-3 tokoe:valid" result="pass"/><test-case name="4485NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-4 tokoe:valid" result="pass"/><test-case name="4486NISTXML-SV-IV-atomic-gMonth-maxInclusive-4-5 tokoe:valid" result="pass"/><test-case name="4487NISTSchema-SV-IV-atomic-gMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="4488NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-1 tokoe:valid" result="pass"/><test-case name="4489NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-2 tokoe:valid" result="pass"/><test-case name="4490NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-3 tokoe:valid" result="pass"/><test-case name="4491NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-4 tokoe:valid" result="pass"/><test-case name="4492NISTXML-SV-IV-atomic-gMonth-maxInclusive-5-5 tokoe:valid" result="pass"/><test-case name="4493NISTSchema-SV-IV-atomic-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="4494NISTXML-SV-IV-atomic-gMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4495NISTXML-SV-IV-atomic-gMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4496NISTXML-SV-IV-atomic-gMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4497NISTXML-SV-IV-atomic-gMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4498NISTXML-SV-IV-atomic-gMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4499NISTSchema-SV-IV-atomic-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="4500NISTXML-SV-IV-atomic-gMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4501NISTXML-SV-IV-atomic-gMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4502NISTXML-SV-IV-atomic-gMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4503NISTXML-SV-IV-atomic-gMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4504NISTXML-SV-IV-atomic-gMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4505NISTSchema-SV-IV-atomic-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="4506NISTXML-SV-IV-atomic-gMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4507NISTXML-SV-IV-atomic-gMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4508NISTXML-SV-IV-atomic-gMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4509NISTXML-SV-IV-atomic-gMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4510NISTXML-SV-IV-atomic-gMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4511NISTSchema-SV-IV-atomic-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="4512NISTXML-SV-IV-atomic-gMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4513NISTXML-SV-IV-atomic-gMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4514NISTXML-SV-IV-atomic-gMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4515NISTXML-SV-IV-atomic-gMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4516NISTXML-SV-IV-atomic-gMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4517NISTSchema-SV-IV-atomic-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="4518NISTXML-SV-IV-atomic-gMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4519NISTXML-SV-IV-atomic-gMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4520NISTXML-SV-IV-atomic-gMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4521NISTXML-SV-IV-atomic-gMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4522NISTXML-SV-IV-atomic-gMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4523NISTSchema-SV-IV-atomic-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="4524NISTXML-SV-IV-atomic-gMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4525NISTXML-SV-IV-atomic-gMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4526NISTXML-SV-IV-atomic-gMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4527NISTXML-SV-IV-atomic-gMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4528NISTXML-SV-IV-atomic-gMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4529NISTSchema-SV-IV-atomic-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="4530NISTXML-SV-IV-atomic-gMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4531NISTXML-SV-IV-atomic-gMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4532NISTXML-SV-IV-atomic-gMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4533NISTXML-SV-IV-atomic-gMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4534NISTXML-SV-IV-atomic-gMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4535NISTSchema-SV-IV-atomic-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="4536NISTXML-SV-IV-atomic-gMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4537NISTXML-SV-IV-atomic-gMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4538NISTXML-SV-IV-atomic-gMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4539NISTXML-SV-IV-atomic-gMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4540NISTXML-SV-IV-atomic-gMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4541NISTSchema-SV-IV-atomic-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="4542NISTXML-SV-IV-atomic-gMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4543NISTXML-SV-IV-atomic-gMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4544NISTXML-SV-IV-atomic-gMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4545NISTXML-SV-IV-atomic-gMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4546NISTXML-SV-IV-atomic-gMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4547NISTSchema-SV-IV-atomic-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="4548NISTXML-SV-IV-atomic-gMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4549NISTXML-SV-IV-atomic-gMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4550NISTXML-SV-IV-atomic-gMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4551NISTXML-SV-IV-atomic-gMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4552NISTXML-SV-IV-atomic-gMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4553NISTSchema-SV-IV-atomic-gMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4554NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4555NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4556NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4557NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4558NISTXML-SV-IV-atomic-gMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4559NISTSchema-SV-IV-atomic-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="4560NISTXML-SV-IV-atomic-string-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4561NISTXML-SV-IV-atomic-string-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4562NISTXML-SV-IV-atomic-string-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4563NISTXML-SV-IV-atomic-string-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4564NISTXML-SV-IV-atomic-string-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4565NISTSchema-SV-IV-atomic-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="4566NISTXML-SV-IV-atomic-string-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4567NISTXML-SV-IV-atomic-string-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4568NISTXML-SV-IV-atomic-string-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4569NISTXML-SV-IV-atomic-string-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4570NISTXML-SV-IV-atomic-string-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4571NISTSchema-SV-IV-atomic-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="4572NISTXML-SV-IV-atomic-string-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4573NISTXML-SV-IV-atomic-string-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4574NISTXML-SV-IV-atomic-string-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4575NISTXML-SV-IV-atomic-string-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4576NISTXML-SV-IV-atomic-string-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4577NISTSchema-SV-IV-atomic-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="4578NISTXML-SV-IV-atomic-string-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4579NISTXML-SV-IV-atomic-string-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4580NISTXML-SV-IV-atomic-string-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4581NISTXML-SV-IV-atomic-string-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4582NISTXML-SV-IV-atomic-string-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4583NISTSchema-SV-IV-atomic-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="4584NISTXML-SV-IV-atomic-string-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4585NISTXML-SV-IV-atomic-string-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4586NISTXML-SV-IV-atomic-string-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4587NISTXML-SV-IV-atomic-string-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4588NISTXML-SV-IV-atomic-string-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4589NISTSchema-SV-IV-atomic-string-minLength-1 tokoe:valid" result="pass"/><test-case name="4590NISTXML-SV-IV-atomic-string-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4591NISTXML-SV-IV-atomic-string-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4592NISTXML-SV-IV-atomic-string-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4593NISTXML-SV-IV-atomic-string-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4594NISTXML-SV-IV-atomic-string-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4595NISTSchema-SV-IV-atomic-string-minLength-2 tokoe:valid" result="pass"/><test-case name="4596NISTXML-SV-IV-atomic-string-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4597NISTXML-SV-IV-atomic-string-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4598NISTXML-SV-IV-atomic-string-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4599NISTXML-SV-IV-atomic-string-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4600NISTXML-SV-IV-atomic-string-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4601NISTSchema-SV-IV-atomic-string-minLength-3 tokoe:valid" result="pass"/><test-case name="4602NISTXML-SV-IV-atomic-string-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4603NISTXML-SV-IV-atomic-string-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4604NISTXML-SV-IV-atomic-string-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4605NISTXML-SV-IV-atomic-string-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4606NISTXML-SV-IV-atomic-string-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4607NISTSchema-SV-IV-atomic-string-minLength-4 tokoe:valid" result="pass"/><test-case name="4608NISTXML-SV-IV-atomic-string-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4609NISTXML-SV-IV-atomic-string-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4610NISTXML-SV-IV-atomic-string-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4611NISTXML-SV-IV-atomic-string-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4612NISTXML-SV-IV-atomic-string-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4613NISTSchema-SV-IV-atomic-string-minLength-5 tokoe:valid" result="pass"/><test-case name="4614NISTXML-SV-IV-atomic-string-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4615NISTXML-SV-IV-atomic-string-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4616NISTXML-SV-IV-atomic-string-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4617NISTXML-SV-IV-atomic-string-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4618NISTXML-SV-IV-atomic-string-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4619NISTSchema-SV-IV-atomic-string-length-1 tokoe:valid" result="pass"/><test-case name="4620NISTXML-SV-IV-atomic-string-length-1-1 tokoe:valid" result="pass"/><test-case name="4621NISTXML-SV-IV-atomic-string-length-1-2 tokoe:valid" result="pass"/><test-case name="4622NISTXML-SV-IV-atomic-string-length-1-3 tokoe:valid" result="pass"/><test-case name="4623NISTXML-SV-IV-atomic-string-length-1-4 tokoe:valid" result="pass"/><test-case name="4624NISTXML-SV-IV-atomic-string-length-1-5 tokoe:valid" result="pass"/><test-case name="4625NISTSchema-SV-IV-atomic-string-length-2 tokoe:valid" result="pass"/><test-case name="4626NISTXML-SV-IV-atomic-string-length-2-1 tokoe:valid" result="pass"/><test-case name="4627NISTXML-SV-IV-atomic-string-length-2-2 tokoe:valid" result="pass"/><test-case name="4628NISTXML-SV-IV-atomic-string-length-2-3 tokoe:valid" result="pass"/><test-case name="4629NISTXML-SV-IV-atomic-string-length-2-4 tokoe:valid" result="pass"/><test-case name="4630NISTXML-SV-IV-atomic-string-length-2-5 tokoe:valid" result="pass"/><test-case name="4631NISTSchema-SV-IV-atomic-string-length-3 tokoe:valid" result="pass"/><test-case name="4632NISTXML-SV-IV-atomic-string-length-3-1 tokoe:valid" result="pass"/><test-case name="4633NISTXML-SV-IV-atomic-string-length-3-2 tokoe:valid" result="pass"/><test-case name="4634NISTXML-SV-IV-atomic-string-length-3-3 tokoe:valid" result="pass"/><test-case name="4635NISTXML-SV-IV-atomic-string-length-3-4 tokoe:valid" result="pass"/><test-case name="4636NISTXML-SV-IV-atomic-string-length-3-5 tokoe:valid" result="pass"/><test-case name="4637NISTSchema-SV-IV-atomic-string-length-4 tokoe:valid" result="pass"/><test-case name="4638NISTXML-SV-IV-atomic-string-length-4-1 tokoe:valid" result="pass"/><test-case name="4639NISTXML-SV-IV-atomic-string-length-4-2 tokoe:valid" result="pass"/><test-case name="4640NISTXML-SV-IV-atomic-string-length-4-3 tokoe:valid" result="pass"/><test-case name="4641NISTXML-SV-IV-atomic-string-length-4-4 tokoe:valid" result="pass"/><test-case name="4642NISTXML-SV-IV-atomic-string-length-4-5 tokoe:valid" result="pass"/><test-case name="4643NISTSchema-SV-IV-atomic-string-length-5 tokoe:valid" result="pass"/><test-case name="4644NISTXML-SV-IV-atomic-string-length-5-1 tokoe:valid" result="pass"/><test-case name="4645NISTXML-SV-IV-atomic-string-length-5-2 tokoe:valid" result="pass"/><test-case name="4646NISTXML-SV-IV-atomic-string-length-5-3 tokoe:valid" result="pass"/><test-case name="4647NISTXML-SV-IV-atomic-string-length-5-4 tokoe:valid" result="pass"/><test-case name="4648NISTXML-SV-IV-atomic-string-length-5-5 tokoe:valid" result="pass"/><test-case name="4649NISTSchema-SV-IV-atomic-string-pattern-1 tokoe:valid" result="pass"/><test-case name="4650NISTXML-SV-IV-atomic-string-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4651NISTXML-SV-IV-atomic-string-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4652NISTXML-SV-IV-atomic-string-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4653NISTXML-SV-IV-atomic-string-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4654NISTXML-SV-IV-atomic-string-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4655NISTSchema-SV-IV-atomic-string-pattern-2 tokoe:valid" result="pass"/><test-case name="4656NISTXML-SV-IV-atomic-string-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4657NISTXML-SV-IV-atomic-string-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4658NISTXML-SV-IV-atomic-string-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4659NISTXML-SV-IV-atomic-string-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4660NISTXML-SV-IV-atomic-string-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4661NISTSchema-SV-IV-atomic-string-pattern-3 tokoe:valid" result="pass"/><test-case name="4662NISTXML-SV-IV-atomic-string-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4663NISTXML-SV-IV-atomic-string-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4664NISTXML-SV-IV-atomic-string-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4665NISTXML-SV-IV-atomic-string-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4666NISTXML-SV-IV-atomic-string-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4667NISTSchema-SV-IV-atomic-string-pattern-4 tokoe:valid" result="pass"/><test-case name="4668NISTXML-SV-IV-atomic-string-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4669NISTXML-SV-IV-atomic-string-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4670NISTXML-SV-IV-atomic-string-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4671NISTXML-SV-IV-atomic-string-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4672NISTXML-SV-IV-atomic-string-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4673NISTSchema-SV-IV-atomic-string-pattern-5 tokoe:valid" result="pass"/><test-case name="4674NISTXML-SV-IV-atomic-string-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4675NISTXML-SV-IV-atomic-string-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4676NISTXML-SV-IV-atomic-string-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4677NISTXML-SV-IV-atomic-string-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4678NISTXML-SV-IV-atomic-string-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4679NISTSchema-SV-IV-atomic-string-enumeration-1 tokoe:valid" result="pass"/><test-case name="4680NISTXML-SV-IV-atomic-string-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4681NISTXML-SV-IV-atomic-string-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4682NISTXML-SV-IV-atomic-string-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4683NISTXML-SV-IV-atomic-string-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4684NISTXML-SV-IV-atomic-string-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4685NISTSchema-SV-IV-atomic-string-enumeration-2 tokoe:valid" result="pass"/><test-case name="4686NISTXML-SV-IV-atomic-string-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4687NISTXML-SV-IV-atomic-string-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4688NISTXML-SV-IV-atomic-string-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4689NISTXML-SV-IV-atomic-string-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4690NISTXML-SV-IV-atomic-string-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4691NISTSchema-SV-IV-atomic-string-enumeration-3 tokoe:valid" result="pass"/><test-case name="4692NISTXML-SV-IV-atomic-string-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4693NISTXML-SV-IV-atomic-string-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4694NISTXML-SV-IV-atomic-string-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4695NISTXML-SV-IV-atomic-string-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4696NISTXML-SV-IV-atomic-string-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4697NISTSchema-SV-IV-atomic-string-enumeration-4 tokoe:valid" result="pass"/><test-case name="4698NISTXML-SV-IV-atomic-string-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4699NISTXML-SV-IV-atomic-string-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4700NISTXML-SV-IV-atomic-string-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4701NISTXML-SV-IV-atomic-string-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4702NISTXML-SV-IV-atomic-string-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4703NISTSchema-SV-IV-atomic-string-enumeration-5 tokoe:valid" result="pass"/><test-case name="4704NISTXML-SV-IV-atomic-string-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4705NISTXML-SV-IV-atomic-string-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4706NISTXML-SV-IV-atomic-string-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4707NISTXML-SV-IV-atomic-string-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4708NISTXML-SV-IV-atomic-string-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4709NISTSchema-SV-IV-atomic-string-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4710NISTXML-SV-IV-atomic-string-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4711NISTXML-SV-IV-atomic-string-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4712NISTXML-SV-IV-atomic-string-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4713NISTXML-SV-IV-atomic-string-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4714NISTXML-SV-IV-atomic-string-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4715NISTSchema-SV-IV-atomic-string-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="4716NISTXML-SV-IV-atomic-string-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="4717NISTXML-SV-IV-atomic-string-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="4718NISTXML-SV-IV-atomic-string-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="4719NISTXML-SV-IV-atomic-string-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="4720NISTXML-SV-IV-atomic-string-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="4721NISTSchema-SV-IV-atomic-string-whiteSpace-3 tokoe:valid" result="pass"/><test-case name="4722NISTXML-SV-IV-atomic-string-whiteSpace-3-1 tokoe:valid" result="pass"/><test-case name="4723NISTXML-SV-IV-atomic-string-whiteSpace-3-2 tokoe:valid" result="pass"/><test-case name="4724NISTXML-SV-IV-atomic-string-whiteSpace-3-3 tokoe:valid" result="pass"/><test-case name="4725NISTXML-SV-IV-atomic-string-whiteSpace-3-4 tokoe:valid" result="pass"/><test-case name="4726NISTXML-SV-IV-atomic-string-whiteSpace-3-5 tokoe:valid" result="pass"/><test-case name="4727NISTSchema-SV-IV-atomic-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="4728NISTXML-SV-IV-atomic-normalizedString-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4729NISTXML-SV-IV-atomic-normalizedString-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4730NISTXML-SV-IV-atomic-normalizedString-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4731NISTXML-SV-IV-atomic-normalizedString-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4732NISTXML-SV-IV-atomic-normalizedString-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4733NISTSchema-SV-IV-atomic-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="4734NISTXML-SV-IV-atomic-normalizedString-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4735NISTXML-SV-IV-atomic-normalizedString-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4736NISTXML-SV-IV-atomic-normalizedString-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4737NISTXML-SV-IV-atomic-normalizedString-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4738NISTXML-SV-IV-atomic-normalizedString-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4739NISTSchema-SV-IV-atomic-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="4740NISTXML-SV-IV-atomic-normalizedString-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4741NISTXML-SV-IV-atomic-normalizedString-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4742NISTXML-SV-IV-atomic-normalizedString-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4743NISTXML-SV-IV-atomic-normalizedString-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4744NISTXML-SV-IV-atomic-normalizedString-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4745NISTSchema-SV-IV-atomic-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="4746NISTXML-SV-IV-atomic-normalizedString-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4747NISTXML-SV-IV-atomic-normalizedString-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4748NISTXML-SV-IV-atomic-normalizedString-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4749NISTXML-SV-IV-atomic-normalizedString-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4750NISTXML-SV-IV-atomic-normalizedString-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4751NISTSchema-SV-IV-atomic-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="4752NISTXML-SV-IV-atomic-normalizedString-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4753NISTXML-SV-IV-atomic-normalizedString-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4754NISTXML-SV-IV-atomic-normalizedString-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4755NISTXML-SV-IV-atomic-normalizedString-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4756NISTXML-SV-IV-atomic-normalizedString-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4757NISTSchema-SV-IV-atomic-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="4758NISTXML-SV-IV-atomic-normalizedString-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4759NISTXML-SV-IV-atomic-normalizedString-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4760NISTXML-SV-IV-atomic-normalizedString-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4761NISTXML-SV-IV-atomic-normalizedString-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4762NISTXML-SV-IV-atomic-normalizedString-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4763NISTSchema-SV-IV-atomic-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="4764NISTXML-SV-IV-atomic-normalizedString-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4765NISTXML-SV-IV-atomic-normalizedString-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4766NISTXML-SV-IV-atomic-normalizedString-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4767NISTXML-SV-IV-atomic-normalizedString-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4768NISTXML-SV-IV-atomic-normalizedString-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4769NISTSchema-SV-IV-atomic-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="4770NISTXML-SV-IV-atomic-normalizedString-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4771NISTXML-SV-IV-atomic-normalizedString-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4772NISTXML-SV-IV-atomic-normalizedString-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4773NISTXML-SV-IV-atomic-normalizedString-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4774NISTXML-SV-IV-atomic-normalizedString-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4775NISTSchema-SV-IV-atomic-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="4776NISTXML-SV-IV-atomic-normalizedString-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4777NISTXML-SV-IV-atomic-normalizedString-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4778NISTXML-SV-IV-atomic-normalizedString-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4779NISTXML-SV-IV-atomic-normalizedString-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4780NISTXML-SV-IV-atomic-normalizedString-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4781NISTSchema-SV-IV-atomic-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="4782NISTXML-SV-IV-atomic-normalizedString-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4783NISTXML-SV-IV-atomic-normalizedString-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4784NISTXML-SV-IV-atomic-normalizedString-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4785NISTXML-SV-IV-atomic-normalizedString-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4786NISTXML-SV-IV-atomic-normalizedString-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4787NISTSchema-SV-IV-atomic-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="4788NISTXML-SV-IV-atomic-normalizedString-length-1-1 tokoe:valid" result="pass"/><test-case name="4789NISTXML-SV-IV-atomic-normalizedString-length-1-2 tokoe:valid" result="pass"/><test-case name="4790NISTXML-SV-IV-atomic-normalizedString-length-1-3 tokoe:valid" result="pass"/><test-case name="4791NISTXML-SV-IV-atomic-normalizedString-length-1-4 tokoe:valid" result="pass"/><test-case name="4792NISTXML-SV-IV-atomic-normalizedString-length-1-5 tokoe:valid" result="pass"/><test-case name="4793NISTSchema-SV-IV-atomic-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="4794NISTXML-SV-IV-atomic-normalizedString-length-2-1 tokoe:valid" result="pass"/><test-case name="4795NISTXML-SV-IV-atomic-normalizedString-length-2-2 tokoe:valid" result="pass"/><test-case name="4796NISTXML-SV-IV-atomic-normalizedString-length-2-3 tokoe:valid" result="pass"/><test-case name="4797NISTXML-SV-IV-atomic-normalizedString-length-2-4 tokoe:valid" result="pass"/><test-case name="4798NISTXML-SV-IV-atomic-normalizedString-length-2-5 tokoe:valid" result="pass"/><test-case name="4799NISTSchema-SV-IV-atomic-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="4800NISTXML-SV-IV-atomic-normalizedString-length-3-1 tokoe:valid" result="pass"/><test-case name="4801NISTXML-SV-IV-atomic-normalizedString-length-3-2 tokoe:valid" result="pass"/><test-case name="4802NISTXML-SV-IV-atomic-normalizedString-length-3-3 tokoe:valid" result="pass"/><test-case name="4803NISTXML-SV-IV-atomic-normalizedString-length-3-4 tokoe:valid" result="pass"/><test-case name="4804NISTXML-SV-IV-atomic-normalizedString-length-3-5 tokoe:valid" result="pass"/><test-case name="4805NISTSchema-SV-IV-atomic-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="4806NISTXML-SV-IV-atomic-normalizedString-length-4-1 tokoe:valid" result="pass"/><test-case name="4807NISTXML-SV-IV-atomic-normalizedString-length-4-2 tokoe:valid" result="pass"/><test-case name="4808NISTXML-SV-IV-atomic-normalizedString-length-4-3 tokoe:valid" result="pass"/><test-case name="4809NISTXML-SV-IV-atomic-normalizedString-length-4-4 tokoe:valid" result="pass"/><test-case name="4810NISTXML-SV-IV-atomic-normalizedString-length-4-5 tokoe:valid" result="pass"/><test-case name="4811NISTSchema-SV-IV-atomic-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="4812NISTXML-SV-IV-atomic-normalizedString-length-5-1 tokoe:valid" result="pass"/><test-case name="4813NISTXML-SV-IV-atomic-normalizedString-length-5-2 tokoe:valid" result="pass"/><test-case name="4814NISTXML-SV-IV-atomic-normalizedString-length-5-3 tokoe:valid" result="pass"/><test-case name="4815NISTXML-SV-IV-atomic-normalizedString-length-5-4 tokoe:valid" result="pass"/><test-case name="4816NISTXML-SV-IV-atomic-normalizedString-length-5-5 tokoe:valid" result="pass"/><test-case name="4817NISTSchema-SV-IV-atomic-normalizedString-pattern-1 tokoe:valid" result="pass"/><test-case name="4818NISTXML-SV-IV-atomic-normalizedString-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4819NISTXML-SV-IV-atomic-normalizedString-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4820NISTXML-SV-IV-atomic-normalizedString-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4821NISTXML-SV-IV-atomic-normalizedString-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4822NISTXML-SV-IV-atomic-normalizedString-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4823NISTSchema-SV-IV-atomic-normalizedString-pattern-2 tokoe:valid" result="pass"/><test-case name="4824NISTXML-SV-IV-atomic-normalizedString-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4825NISTXML-SV-IV-atomic-normalizedString-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4826NISTXML-SV-IV-atomic-normalizedString-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4827NISTXML-SV-IV-atomic-normalizedString-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4828NISTXML-SV-IV-atomic-normalizedString-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4829NISTSchema-SV-IV-atomic-normalizedString-pattern-3 tokoe:valid" result="pass"/><test-case name="4830NISTXML-SV-IV-atomic-normalizedString-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4831NISTXML-SV-IV-atomic-normalizedString-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4832NISTXML-SV-IV-atomic-normalizedString-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4833NISTXML-SV-IV-atomic-normalizedString-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4834NISTXML-SV-IV-atomic-normalizedString-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4835NISTSchema-SV-IV-atomic-normalizedString-pattern-4 tokoe:valid" result="pass"/><test-case name="4836NISTXML-SV-IV-atomic-normalizedString-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4837NISTXML-SV-IV-atomic-normalizedString-pattern-4-2 tokoe:valid" result="pass"/><test-case name="4838NISTXML-SV-IV-atomic-normalizedString-pattern-4-3 tokoe:valid" result="pass"/><test-case name="4839NISTXML-SV-IV-atomic-normalizedString-pattern-4-4 tokoe:valid" result="pass"/><test-case name="4840NISTXML-SV-IV-atomic-normalizedString-pattern-4-5 tokoe:valid" result="pass"/><test-case name="4841NISTSchema-SV-IV-atomic-normalizedString-pattern-5 tokoe:valid" result="pass"/><test-case name="4842NISTXML-SV-IV-atomic-normalizedString-pattern-5-1 tokoe:valid" result="pass"/><test-case name="4843NISTXML-SV-IV-atomic-normalizedString-pattern-5-2 tokoe:valid" result="pass"/><test-case name="4844NISTXML-SV-IV-atomic-normalizedString-pattern-5-3 tokoe:valid" result="pass"/><test-case name="4845NISTXML-SV-IV-atomic-normalizedString-pattern-5-4 tokoe:valid" result="pass"/><test-case name="4846NISTXML-SV-IV-atomic-normalizedString-pattern-5-5 tokoe:valid" result="pass"/><test-case name="4847NISTSchema-SV-IV-atomic-normalizedString-enumeration-1 tokoe:valid" result="pass"/><test-case name="4848NISTXML-SV-IV-atomic-normalizedString-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="4849NISTXML-SV-IV-atomic-normalizedString-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="4850NISTXML-SV-IV-atomic-normalizedString-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="4851NISTXML-SV-IV-atomic-normalizedString-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="4852NISTXML-SV-IV-atomic-normalizedString-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="4853NISTSchema-SV-IV-atomic-normalizedString-enumeration-2 tokoe:valid" result="pass"/><test-case name="4854NISTXML-SV-IV-atomic-normalizedString-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="4855NISTXML-SV-IV-atomic-normalizedString-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="4856NISTXML-SV-IV-atomic-normalizedString-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="4857NISTXML-SV-IV-atomic-normalizedString-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="4858NISTXML-SV-IV-atomic-normalizedString-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="4859NISTSchema-SV-IV-atomic-normalizedString-enumeration-3 tokoe:valid" result="pass"/><test-case name="4860NISTXML-SV-IV-atomic-normalizedString-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="4861NISTXML-SV-IV-atomic-normalizedString-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="4862NISTXML-SV-IV-atomic-normalizedString-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="4863NISTXML-SV-IV-atomic-normalizedString-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="4864NISTXML-SV-IV-atomic-normalizedString-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="4865NISTSchema-SV-IV-atomic-normalizedString-enumeration-4 tokoe:valid" result="pass"/><test-case name="4866NISTXML-SV-IV-atomic-normalizedString-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="4867NISTXML-SV-IV-atomic-normalizedString-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="4868NISTXML-SV-IV-atomic-normalizedString-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="4869NISTXML-SV-IV-atomic-normalizedString-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="4870NISTXML-SV-IV-atomic-normalizedString-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="4871NISTSchema-SV-IV-atomic-normalizedString-enumeration-5 tokoe:valid" result="pass"/><test-case name="4872NISTXML-SV-IV-atomic-normalizedString-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="4873NISTXML-SV-IV-atomic-normalizedString-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="4874NISTXML-SV-IV-atomic-normalizedString-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="4875NISTXML-SV-IV-atomic-normalizedString-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="4876NISTXML-SV-IV-atomic-normalizedString-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="4877NISTSchema-SV-IV-atomic-normalizedString-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="4878NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="4879NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="4880NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="4881NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="4882NISTXML-SV-IV-atomic-normalizedString-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="4883NISTSchema-SV-IV-atomic-normalizedString-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="4884NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="4885NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="4886NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="4887NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="4888NISTXML-SV-IV-atomic-normalizedString-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="4889NISTSchema-SV-IV-atomic-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="4890NISTXML-SV-IV-atomic-token-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="4891NISTXML-SV-IV-atomic-token-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="4892NISTXML-SV-IV-atomic-token-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="4893NISTXML-SV-IV-atomic-token-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="4894NISTXML-SV-IV-atomic-token-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="4895NISTSchema-SV-IV-atomic-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="4896NISTXML-SV-IV-atomic-token-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="4897NISTXML-SV-IV-atomic-token-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="4898NISTXML-SV-IV-atomic-token-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="4899NISTXML-SV-IV-atomic-token-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="4900NISTXML-SV-IV-atomic-token-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="4901NISTSchema-SV-IV-atomic-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="4902NISTXML-SV-IV-atomic-token-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="4903NISTXML-SV-IV-atomic-token-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="4904NISTXML-SV-IV-atomic-token-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="4905NISTXML-SV-IV-atomic-token-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="4906NISTXML-SV-IV-atomic-token-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="4907NISTSchema-SV-IV-atomic-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="4908NISTXML-SV-IV-atomic-token-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="4909NISTXML-SV-IV-atomic-token-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="4910NISTXML-SV-IV-atomic-token-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="4911NISTXML-SV-IV-atomic-token-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="4912NISTXML-SV-IV-atomic-token-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="4913NISTSchema-SV-IV-atomic-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="4914NISTXML-SV-IV-atomic-token-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="4915NISTXML-SV-IV-atomic-token-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="4916NISTXML-SV-IV-atomic-token-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="4917NISTXML-SV-IV-atomic-token-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="4918NISTXML-SV-IV-atomic-token-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="4919NISTSchema-SV-IV-atomic-token-minLength-1 tokoe:valid" result="pass"/><test-case name="4920NISTXML-SV-IV-atomic-token-minLength-1-1 tokoe:valid" result="pass"/><test-case name="4921NISTXML-SV-IV-atomic-token-minLength-1-2 tokoe:valid" result="pass"/><test-case name="4922NISTXML-SV-IV-atomic-token-minLength-1-3 tokoe:valid" result="pass"/><test-case name="4923NISTXML-SV-IV-atomic-token-minLength-1-4 tokoe:valid" result="pass"/><test-case name="4924NISTXML-SV-IV-atomic-token-minLength-1-5 tokoe:valid" result="pass"/><test-case name="4925NISTSchema-SV-IV-atomic-token-minLength-2 tokoe:valid" result="pass"/><test-case name="4926NISTXML-SV-IV-atomic-token-minLength-2-1 tokoe:valid" result="pass"/><test-case name="4927NISTXML-SV-IV-atomic-token-minLength-2-2 tokoe:valid" result="pass"/><test-case name="4928NISTXML-SV-IV-atomic-token-minLength-2-3 tokoe:valid" result="pass"/><test-case name="4929NISTXML-SV-IV-atomic-token-minLength-2-4 tokoe:valid" result="pass"/><test-case name="4930NISTXML-SV-IV-atomic-token-minLength-2-5 tokoe:valid" result="pass"/><test-case name="4931NISTSchema-SV-IV-atomic-token-minLength-3 tokoe:valid" result="pass"/><test-case name="4932NISTXML-SV-IV-atomic-token-minLength-3-1 tokoe:valid" result="pass"/><test-case name="4933NISTXML-SV-IV-atomic-token-minLength-3-2 tokoe:valid" result="pass"/><test-case name="4934NISTXML-SV-IV-atomic-token-minLength-3-3 tokoe:valid" result="pass"/><test-case name="4935NISTXML-SV-IV-atomic-token-minLength-3-4 tokoe:valid" result="pass"/><test-case name="4936NISTXML-SV-IV-atomic-token-minLength-3-5 tokoe:valid" result="pass"/><test-case name="4937NISTSchema-SV-IV-atomic-token-minLength-4 tokoe:valid" result="pass"/><test-case name="4938NISTXML-SV-IV-atomic-token-minLength-4-1 tokoe:valid" result="pass"/><test-case name="4939NISTXML-SV-IV-atomic-token-minLength-4-2 tokoe:valid" result="pass"/><test-case name="4940NISTXML-SV-IV-atomic-token-minLength-4-3 tokoe:valid" result="pass"/><test-case name="4941NISTXML-SV-IV-atomic-token-minLength-4-4 tokoe:valid" result="pass"/><test-case name="4942NISTXML-SV-IV-atomic-token-minLength-4-5 tokoe:valid" result="pass"/><test-case name="4943NISTSchema-SV-IV-atomic-token-minLength-5 tokoe:valid" result="pass"/><test-case name="4944NISTXML-SV-IV-atomic-token-minLength-5-1 tokoe:valid" result="pass"/><test-case name="4945NISTXML-SV-IV-atomic-token-minLength-5-2 tokoe:valid" result="pass"/><test-case name="4946NISTXML-SV-IV-atomic-token-minLength-5-3 tokoe:valid" result="pass"/><test-case name="4947NISTXML-SV-IV-atomic-token-minLength-5-4 tokoe:valid" result="pass"/><test-case name="4948NISTXML-SV-IV-atomic-token-minLength-5-5 tokoe:valid" result="pass"/><test-case name="4949NISTSchema-SV-IV-atomic-token-length-1 tokoe:valid" result="pass"/><test-case name="4950NISTXML-SV-IV-atomic-token-length-1-1 tokoe:valid" result="pass"/><test-case name="4951NISTXML-SV-IV-atomic-token-length-1-2 tokoe:valid" result="pass"/><test-case name="4952NISTXML-SV-IV-atomic-token-length-1-3 tokoe:valid" result="pass"/><test-case name="4953NISTXML-SV-IV-atomic-token-length-1-4 tokoe:valid" result="pass"/><test-case name="4954NISTXML-SV-IV-atomic-token-length-1-5 tokoe:valid" result="pass"/><test-case name="4955NISTSchema-SV-IV-atomic-token-length-2 tokoe:valid" result="pass"/><test-case name="4956NISTXML-SV-IV-atomic-token-length-2-1 tokoe:valid" result="pass"/><test-case name="4957NISTXML-SV-IV-atomic-token-length-2-2 tokoe:valid" result="pass"/><test-case name="4958NISTXML-SV-IV-atomic-token-length-2-3 tokoe:valid" result="pass"/><test-case name="4959NISTXML-SV-IV-atomic-token-length-2-4 tokoe:valid" result="pass"/><test-case name="4960NISTXML-SV-IV-atomic-token-length-2-5 tokoe:valid" result="pass"/><test-case name="4961NISTSchema-SV-IV-atomic-token-length-3 tokoe:valid" result="pass"/><test-case name="4962NISTXML-SV-IV-atomic-token-length-3-1 tokoe:valid" result="pass"/><test-case name="4963NISTXML-SV-IV-atomic-token-length-3-2 tokoe:valid" result="pass"/><test-case name="4964NISTXML-SV-IV-atomic-token-length-3-3 tokoe:valid" result="pass"/><test-case name="4965NISTXML-SV-IV-atomic-token-length-3-4 tokoe:valid" result="pass"/><test-case name="4966NISTXML-SV-IV-atomic-token-length-3-5 tokoe:valid" result="pass"/><test-case name="4967NISTSchema-SV-IV-atomic-token-length-4 tokoe:valid" result="pass"/><test-case name="4968NISTXML-SV-IV-atomic-token-length-4-1 tokoe:valid" result="pass"/><test-case name="4969NISTXML-SV-IV-atomic-token-length-4-2 tokoe:valid" result="pass"/><test-case name="4970NISTXML-SV-IV-atomic-token-length-4-3 tokoe:valid" result="pass"/><test-case name="4971NISTXML-SV-IV-atomic-token-length-4-4 tokoe:valid" result="pass"/><test-case name="4972NISTXML-SV-IV-atomic-token-length-4-5 tokoe:valid" result="pass"/><test-case name="4973NISTSchema-SV-IV-atomic-token-length-5 tokoe:valid" result="pass"/><test-case name="4974NISTXML-SV-IV-atomic-token-length-5-1 tokoe:valid" result="pass"/><test-case name="4975NISTXML-SV-IV-atomic-token-length-5-2 tokoe:valid" result="pass"/><test-case name="4976NISTXML-SV-IV-atomic-token-length-5-3 tokoe:valid" result="pass"/><test-case name="4977NISTXML-SV-IV-atomic-token-length-5-4 tokoe:valid" result="pass"/><test-case name="4978NISTXML-SV-IV-atomic-token-length-5-5 tokoe:valid" result="pass"/><test-case name="4979NISTSchema-SV-IV-atomic-token-pattern-1 tokoe:valid" result="pass"/><test-case name="4980NISTXML-SV-IV-atomic-token-pattern-1-1 tokoe:valid" result="pass"/><test-case name="4981NISTXML-SV-IV-atomic-token-pattern-1-2 tokoe:valid" result="pass"/><test-case name="4982NISTXML-SV-IV-atomic-token-pattern-1-3 tokoe:valid" result="pass"/><test-case name="4983NISTXML-SV-IV-atomic-token-pattern-1-4 tokoe:valid" result="pass"/><test-case name="4984NISTXML-SV-IV-atomic-token-pattern-1-5 tokoe:valid" result="pass"/><test-case name="4985NISTSchema-SV-IV-atomic-token-pattern-2 tokoe:valid" result="pass"/><test-case name="4986NISTXML-SV-IV-atomic-token-pattern-2-1 tokoe:valid" result="pass"/><test-case name="4987NISTXML-SV-IV-atomic-token-pattern-2-2 tokoe:valid" result="pass"/><test-case name="4988NISTXML-SV-IV-atomic-token-pattern-2-3 tokoe:valid" result="pass"/><test-case name="4989NISTXML-SV-IV-atomic-token-pattern-2-4 tokoe:valid" result="pass"/><test-case name="4990NISTXML-SV-IV-atomic-token-pattern-2-5 tokoe:valid" result="pass"/><test-case name="4991NISTSchema-SV-IV-atomic-token-pattern-3 tokoe:valid" result="pass"/><test-case name="4992NISTXML-SV-IV-atomic-token-pattern-3-1 tokoe:valid" result="pass"/><test-case name="4993NISTXML-SV-IV-atomic-token-pattern-3-2 tokoe:valid" result="pass"/><test-case name="4994NISTXML-SV-IV-atomic-token-pattern-3-3 tokoe:valid" result="pass"/><test-case name="4995NISTXML-SV-IV-atomic-token-pattern-3-4 tokoe:valid" result="pass"/><test-case name="4996NISTXML-SV-IV-atomic-token-pattern-3-5 tokoe:valid" result="pass"/><test-case name="4997NISTSchema-SV-IV-atomic-token-pattern-4 tokoe:valid" result="pass"/><test-case name="4998NISTXML-SV-IV-atomic-token-pattern-4-1 tokoe:valid" result="pass"/><test-case name="4999NISTXML-SV-IV-atomic-token-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5000NISTXML-SV-IV-atomic-token-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5001NISTXML-SV-IV-atomic-token-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5002NISTXML-SV-IV-atomic-token-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5003NISTSchema-SV-IV-atomic-token-pattern-5 tokoe:valid" result="pass"/><test-case name="5004NISTXML-SV-IV-atomic-token-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5005NISTXML-SV-IV-atomic-token-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5006NISTXML-SV-IV-atomic-token-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5007NISTXML-SV-IV-atomic-token-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5008NISTXML-SV-IV-atomic-token-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5009NISTSchema-SV-IV-atomic-token-enumeration-1 tokoe:valid" result="pass"/><test-case name="5010NISTXML-SV-IV-atomic-token-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5011NISTXML-SV-IV-atomic-token-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5012NISTXML-SV-IV-atomic-token-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5013NISTXML-SV-IV-atomic-token-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5014NISTXML-SV-IV-atomic-token-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5015NISTSchema-SV-IV-atomic-token-enumeration-2 tokoe:valid" result="pass"/><test-case name="5016NISTXML-SV-IV-atomic-token-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5017NISTXML-SV-IV-atomic-token-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5018NISTXML-SV-IV-atomic-token-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5019NISTXML-SV-IV-atomic-token-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5020NISTXML-SV-IV-atomic-token-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5021NISTSchema-SV-IV-atomic-token-enumeration-3 tokoe:valid" result="pass"/><test-case name="5022NISTXML-SV-IV-atomic-token-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5023NISTXML-SV-IV-atomic-token-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5024NISTXML-SV-IV-atomic-token-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5025NISTXML-SV-IV-atomic-token-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5026NISTXML-SV-IV-atomic-token-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5027NISTSchema-SV-IV-atomic-token-enumeration-4 tokoe:valid" result="pass"/><test-case name="5028NISTXML-SV-IV-atomic-token-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5029NISTXML-SV-IV-atomic-token-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5030NISTXML-SV-IV-atomic-token-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5031NISTXML-SV-IV-atomic-token-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5032NISTXML-SV-IV-atomic-token-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5033NISTSchema-SV-IV-atomic-token-enumeration-5 tokoe:valid" result="pass"/><test-case name="5034NISTXML-SV-IV-atomic-token-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5035NISTXML-SV-IV-atomic-token-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5036NISTXML-SV-IV-atomic-token-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5037NISTXML-SV-IV-atomic-token-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5038NISTXML-SV-IV-atomic-token-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5039NISTSchema-SV-IV-atomic-token-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5040NISTXML-SV-IV-atomic-token-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5041NISTXML-SV-IV-atomic-token-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5042NISTXML-SV-IV-atomic-token-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5043NISTXML-SV-IV-atomic-token-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5044NISTXML-SV-IV-atomic-token-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5045NISTSchema-SV-IV-atomic-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="5046NISTXML-SV-IV-atomic-Name-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5047NISTXML-SV-IV-atomic-Name-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5048NISTXML-SV-IV-atomic-Name-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5049NISTXML-SV-IV-atomic-Name-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5050NISTXML-SV-IV-atomic-Name-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5051NISTSchema-SV-IV-atomic-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="5052NISTXML-SV-IV-atomic-Name-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5053NISTXML-SV-IV-atomic-Name-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5054NISTXML-SV-IV-atomic-Name-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5055NISTXML-SV-IV-atomic-Name-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5056NISTXML-SV-IV-atomic-Name-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5057NISTSchema-SV-IV-atomic-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="5058NISTXML-SV-IV-atomic-Name-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5059NISTXML-SV-IV-atomic-Name-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5060NISTXML-SV-IV-atomic-Name-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5061NISTXML-SV-IV-atomic-Name-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5062NISTXML-SV-IV-atomic-Name-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5063NISTSchema-SV-IV-atomic-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="5064NISTXML-SV-IV-atomic-Name-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5065NISTXML-SV-IV-atomic-Name-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5066NISTXML-SV-IV-atomic-Name-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5067NISTXML-SV-IV-atomic-Name-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5068NISTXML-SV-IV-atomic-Name-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5069NISTSchema-SV-IV-atomic-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="5070NISTXML-SV-IV-atomic-Name-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5071NISTXML-SV-IV-atomic-Name-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5072NISTXML-SV-IV-atomic-Name-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5073NISTXML-SV-IV-atomic-Name-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5074NISTXML-SV-IV-atomic-Name-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5075NISTSchema-SV-IV-atomic-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="5076NISTXML-SV-IV-atomic-Name-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5077NISTXML-SV-IV-atomic-Name-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5078NISTXML-SV-IV-atomic-Name-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5079NISTXML-SV-IV-atomic-Name-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5080NISTXML-SV-IV-atomic-Name-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5081NISTSchema-SV-IV-atomic-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="5082NISTXML-SV-IV-atomic-Name-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5083NISTXML-SV-IV-atomic-Name-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5084NISTXML-SV-IV-atomic-Name-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5085NISTXML-SV-IV-atomic-Name-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5086NISTXML-SV-IV-atomic-Name-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5087NISTSchema-SV-IV-atomic-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="5088NISTXML-SV-IV-atomic-Name-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5089NISTXML-SV-IV-atomic-Name-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5090NISTXML-SV-IV-atomic-Name-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5091NISTXML-SV-IV-atomic-Name-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5092NISTXML-SV-IV-atomic-Name-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5093NISTSchema-SV-IV-atomic-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="5094NISTXML-SV-IV-atomic-Name-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5095NISTXML-SV-IV-atomic-Name-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5096NISTXML-SV-IV-atomic-Name-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5097NISTXML-SV-IV-atomic-Name-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5098NISTXML-SV-IV-atomic-Name-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5099NISTSchema-SV-IV-atomic-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="5100NISTXML-SV-IV-atomic-Name-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5101NISTXML-SV-IV-atomic-Name-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5102NISTXML-SV-IV-atomic-Name-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5103NISTXML-SV-IV-atomic-Name-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5104NISTXML-SV-IV-atomic-Name-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5105NISTSchema-SV-IV-atomic-Name-length-1 tokoe:valid" result="pass"/><test-case name="5106NISTXML-SV-IV-atomic-Name-length-1-1 tokoe:valid" result="pass"/><test-case name="5107NISTXML-SV-IV-atomic-Name-length-1-2 tokoe:valid" result="pass"/><test-case name="5108NISTXML-SV-IV-atomic-Name-length-1-3 tokoe:valid" result="pass"/><test-case name="5109NISTXML-SV-IV-atomic-Name-length-1-4 tokoe:valid" result="pass"/><test-case name="5110NISTXML-SV-IV-atomic-Name-length-1-5 tokoe:valid" result="pass"/><test-case name="5111NISTSchema-SV-IV-atomic-Name-length-2 tokoe:valid" result="pass"/><test-case name="5112NISTXML-SV-IV-atomic-Name-length-2-1 tokoe:valid" result="pass"/><test-case name="5113NISTXML-SV-IV-atomic-Name-length-2-2 tokoe:valid" result="pass"/><test-case name="5114NISTXML-SV-IV-atomic-Name-length-2-3 tokoe:valid" result="pass"/><test-case name="5115NISTXML-SV-IV-atomic-Name-length-2-4 tokoe:valid" result="pass"/><test-case name="5116NISTXML-SV-IV-atomic-Name-length-2-5 tokoe:valid" result="pass"/><test-case name="5117NISTSchema-SV-IV-atomic-Name-length-3 tokoe:valid" result="pass"/><test-case name="5118NISTXML-SV-IV-atomic-Name-length-3-1 tokoe:valid" result="pass"/><test-case name="5119NISTXML-SV-IV-atomic-Name-length-3-2 tokoe:valid" result="pass"/><test-case name="5120NISTXML-SV-IV-atomic-Name-length-3-3 tokoe:valid" result="pass"/><test-case name="5121NISTXML-SV-IV-atomic-Name-length-3-4 tokoe:valid" result="pass"/><test-case name="5122NISTXML-SV-IV-atomic-Name-length-3-5 tokoe:valid" result="pass"/><test-case name="5123NISTSchema-SV-IV-atomic-Name-length-4 tokoe:valid" result="pass"/><test-case name="5124NISTXML-SV-IV-atomic-Name-length-4-1 tokoe:valid" result="pass"/><test-case name="5125NISTXML-SV-IV-atomic-Name-length-4-2 tokoe:valid" result="pass"/><test-case name="5126NISTXML-SV-IV-atomic-Name-length-4-3 tokoe:valid" result="pass"/><test-case name="5127NISTXML-SV-IV-atomic-Name-length-4-4 tokoe:valid" result="pass"/><test-case name="5128NISTXML-SV-IV-atomic-Name-length-4-5 tokoe:valid" result="pass"/><test-case name="5129NISTSchema-SV-IV-atomic-Name-length-5 tokoe:valid" result="pass"/><test-case name="5130NISTXML-SV-IV-atomic-Name-length-5-1 tokoe:valid" result="pass"/><test-case name="5131NISTXML-SV-IV-atomic-Name-length-5-2 tokoe:valid" result="pass"/><test-case name="5132NISTXML-SV-IV-atomic-Name-length-5-3 tokoe:valid" result="pass"/><test-case name="5133NISTXML-SV-IV-atomic-Name-length-5-4 tokoe:valid" result="pass"/><test-case name="5134NISTXML-SV-IV-atomic-Name-length-5-5 tokoe:valid" result="pass"/><test-case name="5135NISTSchema-SV-IV-atomic-Name-pattern-1 tokoe:valid" result="pass"/><test-case name="5136NISTXML-SV-IV-atomic-Name-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5137NISTXML-SV-IV-atomic-Name-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5138NISTXML-SV-IV-atomic-Name-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5139NISTXML-SV-IV-atomic-Name-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5140NISTXML-SV-IV-atomic-Name-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5141NISTSchema-SV-IV-atomic-Name-pattern-2 tokoe:valid" result="pass"/><test-case name="5142NISTXML-SV-IV-atomic-Name-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5143NISTXML-SV-IV-atomic-Name-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5144NISTXML-SV-IV-atomic-Name-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5145NISTXML-SV-IV-atomic-Name-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5146NISTXML-SV-IV-atomic-Name-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5147NISTSchema-SV-IV-atomic-Name-pattern-3 tokoe:valid" result="pass"/><test-case name="5148NISTXML-SV-IV-atomic-Name-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5149NISTXML-SV-IV-atomic-Name-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5150NISTXML-SV-IV-atomic-Name-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5151NISTXML-SV-IV-atomic-Name-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5152NISTXML-SV-IV-atomic-Name-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5153NISTSchema-SV-IV-atomic-Name-pattern-4 tokoe:valid" result="pass"/><test-case name="5154NISTXML-SV-IV-atomic-Name-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5155NISTXML-SV-IV-atomic-Name-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5156NISTXML-SV-IV-atomic-Name-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5157NISTXML-SV-IV-atomic-Name-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5158NISTXML-SV-IV-atomic-Name-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5159NISTSchema-SV-IV-atomic-Name-pattern-5 tokoe:valid" result="pass"/><test-case name="5160NISTXML-SV-IV-atomic-Name-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5161NISTXML-SV-IV-atomic-Name-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5162NISTXML-SV-IV-atomic-Name-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5163NISTXML-SV-IV-atomic-Name-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5164NISTXML-SV-IV-atomic-Name-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5165NISTSchema-SV-IV-atomic-Name-enumeration-1 tokoe:valid" result="pass"/><test-case name="5166NISTXML-SV-IV-atomic-Name-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5167NISTXML-SV-IV-atomic-Name-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5168NISTXML-SV-IV-atomic-Name-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5169NISTXML-SV-IV-atomic-Name-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5170NISTXML-SV-IV-atomic-Name-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5171NISTSchema-SV-IV-atomic-Name-enumeration-2 tokoe:valid" result="pass"/><test-case name="5172NISTXML-SV-IV-atomic-Name-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5173NISTXML-SV-IV-atomic-Name-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5174NISTXML-SV-IV-atomic-Name-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5175NISTXML-SV-IV-atomic-Name-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5176NISTXML-SV-IV-atomic-Name-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5177NISTSchema-SV-IV-atomic-Name-enumeration-3 tokoe:valid" result="pass"/><test-case name="5178NISTXML-SV-IV-atomic-Name-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5179NISTXML-SV-IV-atomic-Name-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5180NISTXML-SV-IV-atomic-Name-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5181NISTXML-SV-IV-atomic-Name-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5182NISTXML-SV-IV-atomic-Name-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5183NISTSchema-SV-IV-atomic-Name-enumeration-4 tokoe:valid" result="pass"/><test-case name="5184NISTXML-SV-IV-atomic-Name-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5185NISTXML-SV-IV-atomic-Name-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5186NISTXML-SV-IV-atomic-Name-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5187NISTXML-SV-IV-atomic-Name-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5188NISTXML-SV-IV-atomic-Name-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5189NISTSchema-SV-IV-atomic-Name-enumeration-5 tokoe:valid" result="pass"/><test-case name="5190NISTXML-SV-IV-atomic-Name-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5191NISTXML-SV-IV-atomic-Name-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5192NISTXML-SV-IV-atomic-Name-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5193NISTXML-SV-IV-atomic-Name-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5194NISTXML-SV-IV-atomic-Name-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5195NISTSchema-SV-IV-atomic-Name-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5196NISTXML-SV-IV-atomic-Name-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5197NISTXML-SV-IV-atomic-Name-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5198NISTXML-SV-IV-atomic-Name-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5199NISTXML-SV-IV-atomic-Name-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5200NISTXML-SV-IV-atomic-Name-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5201NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="5202NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5203NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5204NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5205NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5206NISTXML-SV-IV-atomic-NMTOKEN-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5207NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="5208NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5209NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5210NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5211NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5212NISTXML-SV-IV-atomic-NMTOKEN-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5213NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="5214NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5215NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5216NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5217NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5218NISTXML-SV-IV-atomic-NMTOKEN-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5219NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="5220NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5221NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5222NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5223NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5224NISTXML-SV-IV-atomic-NMTOKEN-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5225NISTSchema-SV-IV-atomic-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="5226NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5227NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5228NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5229NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5230NISTXML-SV-IV-atomic-NMTOKEN-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5231NISTSchema-SV-IV-atomic-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="5232NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5233NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5234NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5235NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5236NISTXML-SV-IV-atomic-NMTOKEN-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5237NISTSchema-SV-IV-atomic-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="5238NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5239NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5240NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5241NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5242NISTXML-SV-IV-atomic-NMTOKEN-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5243NISTSchema-SV-IV-atomic-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="5244NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5245NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5246NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5247NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5248NISTXML-SV-IV-atomic-NMTOKEN-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5249NISTSchema-SV-IV-atomic-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="5250NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5251NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5252NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5253NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5254NISTXML-SV-IV-atomic-NMTOKEN-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5255NISTSchema-SV-IV-atomic-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="5256NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5257NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5258NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5259NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5260NISTXML-SV-IV-atomic-NMTOKEN-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5261NISTSchema-SV-IV-atomic-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="5262NISTXML-SV-IV-atomic-NMTOKEN-length-1-1 tokoe:valid" result="pass"/><test-case name="5263NISTXML-SV-IV-atomic-NMTOKEN-length-1-2 tokoe:valid" result="pass"/><test-case name="5264NISTXML-SV-IV-atomic-NMTOKEN-length-1-3 tokoe:valid" result="pass"/><test-case name="5265NISTXML-SV-IV-atomic-NMTOKEN-length-1-4 tokoe:valid" result="pass"/><test-case name="5266NISTXML-SV-IV-atomic-NMTOKEN-length-1-5 tokoe:valid" result="pass"/><test-case name="5267NISTSchema-SV-IV-atomic-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="5268NISTXML-SV-IV-atomic-NMTOKEN-length-2-1 tokoe:valid" result="pass"/><test-case name="5269NISTXML-SV-IV-atomic-NMTOKEN-length-2-2 tokoe:valid" result="pass"/><test-case name="5270NISTXML-SV-IV-atomic-NMTOKEN-length-2-3 tokoe:valid" result="pass"/><test-case name="5271NISTXML-SV-IV-atomic-NMTOKEN-length-2-4 tokoe:valid" result="pass"/><test-case name="5272NISTXML-SV-IV-atomic-NMTOKEN-length-2-5 tokoe:valid" result="pass"/><test-case name="5273NISTSchema-SV-IV-atomic-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="5274NISTXML-SV-IV-atomic-NMTOKEN-length-3-1 tokoe:valid" result="pass"/><test-case name="5275NISTXML-SV-IV-atomic-NMTOKEN-length-3-2 tokoe:valid" result="pass"/><test-case name="5276NISTXML-SV-IV-atomic-NMTOKEN-length-3-3 tokoe:valid" result="pass"/><test-case name="5277NISTXML-SV-IV-atomic-NMTOKEN-length-3-4 tokoe:valid" result="pass"/><test-case name="5278NISTXML-SV-IV-atomic-NMTOKEN-length-3-5 tokoe:valid" result="pass"/><test-case name="5279NISTSchema-SV-IV-atomic-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="5280NISTXML-SV-IV-atomic-NMTOKEN-length-4-1 tokoe:valid" result="pass"/><test-case name="5281NISTXML-SV-IV-atomic-NMTOKEN-length-4-2 tokoe:valid" result="pass"/><test-case name="5282NISTXML-SV-IV-atomic-NMTOKEN-length-4-3 tokoe:valid" result="pass"/><test-case name="5283NISTXML-SV-IV-atomic-NMTOKEN-length-4-4 tokoe:valid" result="pass"/><test-case name="5284NISTXML-SV-IV-atomic-NMTOKEN-length-4-5 tokoe:valid" result="pass"/><test-case name="5285NISTSchema-SV-IV-atomic-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="5286NISTXML-SV-IV-atomic-NMTOKEN-length-5-1 tokoe:valid" result="pass"/><test-case name="5287NISTXML-SV-IV-atomic-NMTOKEN-length-5-2 tokoe:valid" result="pass"/><test-case name="5288NISTXML-SV-IV-atomic-NMTOKEN-length-5-3 tokoe:valid" result="pass"/><test-case name="5289NISTXML-SV-IV-atomic-NMTOKEN-length-5-4 tokoe:valid" result="pass"/><test-case name="5290NISTXML-SV-IV-atomic-NMTOKEN-length-5-5 tokoe:valid" result="pass"/><test-case name="5291NISTSchema-SV-IV-atomic-NMTOKEN-pattern-1 tokoe:valid" result="pass"/><test-case name="5292NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5293NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5294NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5295NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5296NISTXML-SV-IV-atomic-NMTOKEN-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5297NISTSchema-SV-IV-atomic-NMTOKEN-pattern-2 tokoe:valid" result="pass"/><test-case name="5298NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5299NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5300NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5301NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5302NISTXML-SV-IV-atomic-NMTOKEN-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5303NISTSchema-SV-IV-atomic-NMTOKEN-pattern-3 tokoe:valid" result="pass"/><test-case name="5304NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5305NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5306NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5307NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5308NISTXML-SV-IV-atomic-NMTOKEN-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5309NISTSchema-SV-IV-atomic-NMTOKEN-pattern-4 tokoe:valid" result="pass"/><test-case name="5310NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5311NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5312NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5313NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5314NISTXML-SV-IV-atomic-NMTOKEN-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5315NISTSchema-SV-IV-atomic-NMTOKEN-pattern-5 tokoe:valid" result="pass"/><test-case name="5316NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5317NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5318NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5319NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5320NISTXML-SV-IV-atomic-NMTOKEN-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5321NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-1 tokoe:valid" result="pass"/><test-case name="5322NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5323NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5324NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5325NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5326NISTXML-SV-IV-atomic-NMTOKEN-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5327NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-2 tokoe:valid" result="pass"/><test-case name="5328NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5329NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5330NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5331NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5332NISTXML-SV-IV-atomic-NMTOKEN-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5333NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-3 tokoe:valid" result="pass"/><test-case name="5334NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5335NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5336NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5337NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5338NISTXML-SV-IV-atomic-NMTOKEN-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5339NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-4 tokoe:valid" result="pass"/><test-case name="5340NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5341NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5342NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5343NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5344NISTXML-SV-IV-atomic-NMTOKEN-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5345NISTSchema-SV-IV-atomic-NMTOKEN-enumeration-5 tokoe:valid" result="pass"/><test-case name="5346NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5347NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5348NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5349NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5350NISTXML-SV-IV-atomic-NMTOKEN-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5351NISTSchema-SV-IV-atomic-NMTOKEN-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5352NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5353NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5354NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5355NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5356NISTXML-SV-IV-atomic-NMTOKEN-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5357NISTSchema-SV-IV-atomic-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="5358NISTXML-SV-IV-atomic-NCName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5359NISTXML-SV-IV-atomic-NCName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5360NISTXML-SV-IV-atomic-NCName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5361NISTXML-SV-IV-atomic-NCName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5362NISTXML-SV-IV-atomic-NCName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5363NISTSchema-SV-IV-atomic-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="5364NISTXML-SV-IV-atomic-NCName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5365NISTXML-SV-IV-atomic-NCName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5366NISTXML-SV-IV-atomic-NCName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5367NISTXML-SV-IV-atomic-NCName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5368NISTXML-SV-IV-atomic-NCName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5369NISTSchema-SV-IV-atomic-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="5370NISTXML-SV-IV-atomic-NCName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5371NISTXML-SV-IV-atomic-NCName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5372NISTXML-SV-IV-atomic-NCName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5373NISTXML-SV-IV-atomic-NCName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5374NISTXML-SV-IV-atomic-NCName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5375NISTSchema-SV-IV-atomic-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="5376NISTXML-SV-IV-atomic-NCName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5377NISTXML-SV-IV-atomic-NCName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5378NISTXML-SV-IV-atomic-NCName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5379NISTXML-SV-IV-atomic-NCName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5380NISTXML-SV-IV-atomic-NCName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5381NISTSchema-SV-IV-atomic-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="5382NISTXML-SV-IV-atomic-NCName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5383NISTXML-SV-IV-atomic-NCName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5384NISTXML-SV-IV-atomic-NCName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5385NISTXML-SV-IV-atomic-NCName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5386NISTXML-SV-IV-atomic-NCName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5387NISTSchema-SV-IV-atomic-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="5388NISTXML-SV-IV-atomic-NCName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5389NISTXML-SV-IV-atomic-NCName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5390NISTXML-SV-IV-atomic-NCName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5391NISTXML-SV-IV-atomic-NCName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5392NISTXML-SV-IV-atomic-NCName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5393NISTSchema-SV-IV-atomic-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="5394NISTXML-SV-IV-atomic-NCName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5395NISTXML-SV-IV-atomic-NCName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5396NISTXML-SV-IV-atomic-NCName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5397NISTXML-SV-IV-atomic-NCName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5398NISTXML-SV-IV-atomic-NCName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5399NISTSchema-SV-IV-atomic-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="5400NISTXML-SV-IV-atomic-NCName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5401NISTXML-SV-IV-atomic-NCName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5402NISTXML-SV-IV-atomic-NCName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5403NISTXML-SV-IV-atomic-NCName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5404NISTXML-SV-IV-atomic-NCName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5405NISTSchema-SV-IV-atomic-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="5406NISTXML-SV-IV-atomic-NCName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5407NISTXML-SV-IV-atomic-NCName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5408NISTXML-SV-IV-atomic-NCName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5409NISTXML-SV-IV-atomic-NCName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5410NISTXML-SV-IV-atomic-NCName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5411NISTSchema-SV-IV-atomic-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="5412NISTXML-SV-IV-atomic-NCName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5413NISTXML-SV-IV-atomic-NCName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5414NISTXML-SV-IV-atomic-NCName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5415NISTXML-SV-IV-atomic-NCName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5416NISTXML-SV-IV-atomic-NCName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5417NISTSchema-SV-IV-atomic-NCName-length-1 tokoe:valid" result="pass"/><test-case name="5418NISTXML-SV-IV-atomic-NCName-length-1-1 tokoe:valid" result="pass"/><test-case name="5419NISTXML-SV-IV-atomic-NCName-length-1-2 tokoe:valid" result="pass"/><test-case name="5420NISTXML-SV-IV-atomic-NCName-length-1-3 tokoe:valid" result="pass"/><test-case name="5421NISTXML-SV-IV-atomic-NCName-length-1-4 tokoe:valid" result="pass"/><test-case name="5422NISTXML-SV-IV-atomic-NCName-length-1-5 tokoe:valid" result="pass"/><test-case name="5423NISTSchema-SV-IV-atomic-NCName-length-2 tokoe:valid" result="pass"/><test-case name="5424NISTXML-SV-IV-atomic-NCName-length-2-1 tokoe:valid" result="pass"/><test-case name="5425NISTXML-SV-IV-atomic-NCName-length-2-2 tokoe:valid" result="pass"/><test-case name="5426NISTXML-SV-IV-atomic-NCName-length-2-3 tokoe:valid" result="pass"/><test-case name="5427NISTXML-SV-IV-atomic-NCName-length-2-4 tokoe:valid" result="pass"/><test-case name="5428NISTXML-SV-IV-atomic-NCName-length-2-5 tokoe:valid" result="pass"/><test-case name="5429NISTSchema-SV-IV-atomic-NCName-length-3 tokoe:valid" result="pass"/><test-case name="5430NISTXML-SV-IV-atomic-NCName-length-3-1 tokoe:valid" result="pass"/><test-case name="5431NISTXML-SV-IV-atomic-NCName-length-3-2 tokoe:valid" result="pass"/><test-case name="5432NISTXML-SV-IV-atomic-NCName-length-3-3 tokoe:valid" result="pass"/><test-case name="5433NISTXML-SV-IV-atomic-NCName-length-3-4 tokoe:valid" result="pass"/><test-case name="5434NISTXML-SV-IV-atomic-NCName-length-3-5 tokoe:valid" result="pass"/><test-case name="5435NISTSchema-SV-IV-atomic-NCName-length-4 tokoe:valid" result="pass"/><test-case name="5436NISTXML-SV-IV-atomic-NCName-length-4-1 tokoe:valid" result="pass"/><test-case name="5437NISTXML-SV-IV-atomic-NCName-length-4-2 tokoe:valid" result="pass"/><test-case name="5438NISTXML-SV-IV-atomic-NCName-length-4-3 tokoe:valid" result="pass"/><test-case name="5439NISTXML-SV-IV-atomic-NCName-length-4-4 tokoe:valid" result="pass"/><test-case name="5440NISTXML-SV-IV-atomic-NCName-length-4-5 tokoe:valid" result="pass"/><test-case name="5441NISTSchema-SV-IV-atomic-NCName-length-5 tokoe:valid" result="pass"/><test-case name="5442NISTXML-SV-IV-atomic-NCName-length-5-1 tokoe:valid" result="pass"/><test-case name="5443NISTXML-SV-IV-atomic-NCName-length-5-2 tokoe:valid" result="pass"/><test-case name="5444NISTXML-SV-IV-atomic-NCName-length-5-3 tokoe:valid" result="pass"/><test-case name="5445NISTXML-SV-IV-atomic-NCName-length-5-4 tokoe:valid" result="pass"/><test-case name="5446NISTXML-SV-IV-atomic-NCName-length-5-5 tokoe:valid" result="pass"/><test-case name="5447NISTSchema-SV-IV-atomic-NCName-pattern-1 tokoe:valid" result="pass"/><test-case name="5448NISTXML-SV-IV-atomic-NCName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5449NISTXML-SV-IV-atomic-NCName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5450NISTXML-SV-IV-atomic-NCName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5451NISTXML-SV-IV-atomic-NCName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5452NISTXML-SV-IV-atomic-NCName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5453NISTSchema-SV-IV-atomic-NCName-pattern-2 tokoe:valid" result="pass"/><test-case name="5454NISTXML-SV-IV-atomic-NCName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5455NISTXML-SV-IV-atomic-NCName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5456NISTXML-SV-IV-atomic-NCName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5457NISTXML-SV-IV-atomic-NCName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5458NISTXML-SV-IV-atomic-NCName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5459NISTSchema-SV-IV-atomic-NCName-pattern-3 tokoe:valid" result="pass"/><test-case name="5460NISTXML-SV-IV-atomic-NCName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5461NISTXML-SV-IV-atomic-NCName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5462NISTXML-SV-IV-atomic-NCName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5463NISTXML-SV-IV-atomic-NCName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5464NISTXML-SV-IV-atomic-NCName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5465NISTSchema-SV-IV-atomic-NCName-pattern-4 tokoe:valid" result="pass"/><test-case name="5466NISTXML-SV-IV-atomic-NCName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5467NISTXML-SV-IV-atomic-NCName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5468NISTXML-SV-IV-atomic-NCName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5469NISTXML-SV-IV-atomic-NCName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5470NISTXML-SV-IV-atomic-NCName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5471NISTSchema-SV-IV-atomic-NCName-pattern-5 tokoe:valid" result="pass"/><test-case name="5472NISTXML-SV-IV-atomic-NCName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5473NISTXML-SV-IV-atomic-NCName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5474NISTXML-SV-IV-atomic-NCName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5475NISTXML-SV-IV-atomic-NCName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5476NISTXML-SV-IV-atomic-NCName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5477NISTSchema-SV-IV-atomic-NCName-enumeration-1 tokoe:valid" result="pass"/><test-case name="5478NISTXML-SV-IV-atomic-NCName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5479NISTXML-SV-IV-atomic-NCName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5480NISTXML-SV-IV-atomic-NCName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5481NISTXML-SV-IV-atomic-NCName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5482NISTXML-SV-IV-atomic-NCName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5483NISTSchema-SV-IV-atomic-NCName-enumeration-2 tokoe:valid" result="pass"/><test-case name="5484NISTXML-SV-IV-atomic-NCName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5485NISTXML-SV-IV-atomic-NCName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5486NISTXML-SV-IV-atomic-NCName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5487NISTXML-SV-IV-atomic-NCName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5488NISTXML-SV-IV-atomic-NCName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5489NISTSchema-SV-IV-atomic-NCName-enumeration-3 tokoe:valid" result="pass"/><test-case name="5490NISTXML-SV-IV-atomic-NCName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5491NISTXML-SV-IV-atomic-NCName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5492NISTXML-SV-IV-atomic-NCName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5493NISTXML-SV-IV-atomic-NCName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5494NISTXML-SV-IV-atomic-NCName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5495NISTSchema-SV-IV-atomic-NCName-enumeration-4 tokoe:valid" result="pass"/><test-case name="5496NISTXML-SV-IV-atomic-NCName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5497NISTXML-SV-IV-atomic-NCName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5498NISTXML-SV-IV-atomic-NCName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5499NISTXML-SV-IV-atomic-NCName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5500NISTXML-SV-IV-atomic-NCName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5501NISTSchema-SV-IV-atomic-NCName-enumeration-5 tokoe:valid" result="pass"/><test-case name="5502NISTXML-SV-IV-atomic-NCName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5503NISTXML-SV-IV-atomic-NCName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5504NISTXML-SV-IV-atomic-NCName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5505NISTXML-SV-IV-atomic-NCName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5506NISTXML-SV-IV-atomic-NCName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5507NISTSchema-SV-IV-atomic-NCName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5508NISTXML-SV-IV-atomic-NCName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5509NISTXML-SV-IV-atomic-NCName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5510NISTXML-SV-IV-atomic-NCName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5511NISTXML-SV-IV-atomic-NCName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5512NISTXML-SV-IV-atomic-NCName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5513NISTSchema-SV-IV-atomic-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="5514NISTXML-SV-IV-atomic-ID-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5515NISTXML-SV-IV-atomic-ID-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5516NISTXML-SV-IV-atomic-ID-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5517NISTXML-SV-IV-atomic-ID-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5518NISTXML-SV-IV-atomic-ID-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5519NISTSchema-SV-IV-atomic-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="5520NISTXML-SV-IV-atomic-ID-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5521NISTXML-SV-IV-atomic-ID-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5522NISTXML-SV-IV-atomic-ID-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5523NISTXML-SV-IV-atomic-ID-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5524NISTXML-SV-IV-atomic-ID-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5525NISTSchema-SV-IV-atomic-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="5526NISTXML-SV-IV-atomic-ID-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5527NISTXML-SV-IV-atomic-ID-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5528NISTXML-SV-IV-atomic-ID-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5529NISTXML-SV-IV-atomic-ID-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5530NISTXML-SV-IV-atomic-ID-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5531NISTSchema-SV-IV-atomic-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="5532NISTXML-SV-IV-atomic-ID-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5533NISTXML-SV-IV-atomic-ID-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5534NISTXML-SV-IV-atomic-ID-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5535NISTXML-SV-IV-atomic-ID-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5536NISTXML-SV-IV-atomic-ID-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5537NISTSchema-SV-IV-atomic-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="5538NISTXML-SV-IV-atomic-ID-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5539NISTXML-SV-IV-atomic-ID-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5540NISTXML-SV-IV-atomic-ID-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5541NISTXML-SV-IV-atomic-ID-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5542NISTXML-SV-IV-atomic-ID-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5543NISTSchema-SV-IV-atomic-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="5544NISTXML-SV-IV-atomic-ID-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5545NISTXML-SV-IV-atomic-ID-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5546NISTXML-SV-IV-atomic-ID-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5547NISTXML-SV-IV-atomic-ID-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5548NISTXML-SV-IV-atomic-ID-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5549NISTSchema-SV-IV-atomic-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="5550NISTXML-SV-IV-atomic-ID-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5551NISTXML-SV-IV-atomic-ID-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5552NISTXML-SV-IV-atomic-ID-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5553NISTXML-SV-IV-atomic-ID-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5554NISTXML-SV-IV-atomic-ID-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5555NISTSchema-SV-IV-atomic-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="5556NISTXML-SV-IV-atomic-ID-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5557NISTXML-SV-IV-atomic-ID-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5558NISTXML-SV-IV-atomic-ID-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5559NISTXML-SV-IV-atomic-ID-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5560NISTXML-SV-IV-atomic-ID-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5561NISTSchema-SV-IV-atomic-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="5562NISTXML-SV-IV-atomic-ID-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5563NISTXML-SV-IV-atomic-ID-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5564NISTXML-SV-IV-atomic-ID-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5565NISTXML-SV-IV-atomic-ID-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5566NISTXML-SV-IV-atomic-ID-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5567NISTSchema-SV-IV-atomic-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="5568NISTXML-SV-IV-atomic-ID-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5569NISTXML-SV-IV-atomic-ID-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5570NISTXML-SV-IV-atomic-ID-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5571NISTXML-SV-IV-atomic-ID-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5572NISTXML-SV-IV-atomic-ID-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5573NISTSchema-SV-IV-atomic-ID-length-1 tokoe:valid" result="pass"/><test-case name="5574NISTXML-SV-IV-atomic-ID-length-1-1 tokoe:valid" result="pass"/><test-case name="5575NISTXML-SV-IV-atomic-ID-length-1-2 tokoe:valid" result="pass"/><test-case name="5576NISTXML-SV-IV-atomic-ID-length-1-3 tokoe:valid" result="pass"/><test-case name="5577NISTXML-SV-IV-atomic-ID-length-1-4 tokoe:valid" result="pass"/><test-case name="5578NISTXML-SV-IV-atomic-ID-length-1-5 tokoe:valid" result="pass"/><test-case name="5579NISTSchema-SV-IV-atomic-ID-length-2 tokoe:valid" result="pass"/><test-case name="5580NISTXML-SV-IV-atomic-ID-length-2-1 tokoe:valid" result="pass"/><test-case name="5581NISTXML-SV-IV-atomic-ID-length-2-2 tokoe:valid" result="pass"/><test-case name="5582NISTXML-SV-IV-atomic-ID-length-2-3 tokoe:valid" result="pass"/><test-case name="5583NISTXML-SV-IV-atomic-ID-length-2-4 tokoe:valid" result="pass"/><test-case name="5584NISTXML-SV-IV-atomic-ID-length-2-5 tokoe:valid" result="pass"/><test-case name="5585NISTSchema-SV-IV-atomic-ID-length-3 tokoe:valid" result="pass"/><test-case name="5586NISTXML-SV-IV-atomic-ID-length-3-1 tokoe:valid" result="pass"/><test-case name="5587NISTXML-SV-IV-atomic-ID-length-3-2 tokoe:valid" result="pass"/><test-case name="5588NISTXML-SV-IV-atomic-ID-length-3-3 tokoe:valid" result="pass"/><test-case name="5589NISTXML-SV-IV-atomic-ID-length-3-4 tokoe:valid" result="pass"/><test-case name="5590NISTXML-SV-IV-atomic-ID-length-3-5 tokoe:valid" result="pass"/><test-case name="5591NISTSchema-SV-IV-atomic-ID-length-4 tokoe:valid" result="pass"/><test-case name="5592NISTXML-SV-IV-atomic-ID-length-4-1 tokoe:valid" result="pass"/><test-case name="5593NISTXML-SV-IV-atomic-ID-length-4-2 tokoe:valid" result="pass"/><test-case name="5594NISTXML-SV-IV-atomic-ID-length-4-3 tokoe:valid" result="pass"/><test-case name="5595NISTXML-SV-IV-atomic-ID-length-4-4 tokoe:valid" result="pass"/><test-case name="5596NISTXML-SV-IV-atomic-ID-length-4-5 tokoe:valid" result="pass"/><test-case name="5597NISTSchema-SV-IV-atomic-ID-length-5 tokoe:valid" result="pass"/><test-case name="5598NISTXML-SV-IV-atomic-ID-length-5-1 tokoe:valid" result="pass"/><test-case name="5599NISTXML-SV-IV-atomic-ID-length-5-2 tokoe:valid" result="pass"/><test-case name="5600NISTXML-SV-IV-atomic-ID-length-5-3 tokoe:valid" result="pass"/><test-case name="5601NISTXML-SV-IV-atomic-ID-length-5-4 tokoe:valid" result="pass"/><test-case name="5602NISTXML-SV-IV-atomic-ID-length-5-5 tokoe:valid" result="pass"/><test-case name="5603NISTSchema-SV-IV-atomic-ID-pattern-1 tokoe:valid" result="pass"/><test-case name="5604NISTXML-SV-IV-atomic-ID-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5605NISTXML-SV-IV-atomic-ID-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5606NISTXML-SV-IV-atomic-ID-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5607NISTXML-SV-IV-atomic-ID-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5608NISTXML-SV-IV-atomic-ID-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5609NISTSchema-SV-IV-atomic-ID-pattern-2 tokoe:valid" result="pass"/><test-case name="5610NISTXML-SV-IV-atomic-ID-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5611NISTXML-SV-IV-atomic-ID-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5612NISTXML-SV-IV-atomic-ID-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5613NISTXML-SV-IV-atomic-ID-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5614NISTXML-SV-IV-atomic-ID-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5615NISTSchema-SV-IV-atomic-ID-pattern-3 tokoe:valid" result="pass"/><test-case name="5616NISTXML-SV-IV-atomic-ID-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5617NISTXML-SV-IV-atomic-ID-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5618NISTXML-SV-IV-atomic-ID-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5619NISTXML-SV-IV-atomic-ID-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5620NISTXML-SV-IV-atomic-ID-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5621NISTSchema-SV-IV-atomic-ID-pattern-4 tokoe:valid" result="pass"/><test-case name="5622NISTXML-SV-IV-atomic-ID-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5623NISTXML-SV-IV-atomic-ID-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5624NISTXML-SV-IV-atomic-ID-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5625NISTXML-SV-IV-atomic-ID-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5626NISTXML-SV-IV-atomic-ID-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5627NISTSchema-SV-IV-atomic-ID-pattern-5 tokoe:valid" result="pass"/><test-case name="5628NISTXML-SV-IV-atomic-ID-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5629NISTXML-SV-IV-atomic-ID-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5630NISTXML-SV-IV-atomic-ID-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5631NISTXML-SV-IV-atomic-ID-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5632NISTXML-SV-IV-atomic-ID-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5633NISTSchema-SV-IV-atomic-ID-enumeration-1 tokoe:valid" result="pass"/><test-case name="5634NISTXML-SV-IV-atomic-ID-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5635NISTXML-SV-IV-atomic-ID-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5636NISTXML-SV-IV-atomic-ID-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5637NISTXML-SV-IV-atomic-ID-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5638NISTXML-SV-IV-atomic-ID-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5639NISTSchema-SV-IV-atomic-ID-enumeration-2 tokoe:valid" result="pass"/><test-case name="5640NISTXML-SV-IV-atomic-ID-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5641NISTXML-SV-IV-atomic-ID-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5642NISTXML-SV-IV-atomic-ID-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5643NISTXML-SV-IV-atomic-ID-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5644NISTXML-SV-IV-atomic-ID-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5645NISTSchema-SV-IV-atomic-ID-enumeration-3 tokoe:valid" result="pass"/><test-case name="5646NISTXML-SV-IV-atomic-ID-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5647NISTXML-SV-IV-atomic-ID-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5648NISTXML-SV-IV-atomic-ID-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5649NISTXML-SV-IV-atomic-ID-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5650NISTXML-SV-IV-atomic-ID-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5651NISTSchema-SV-IV-atomic-ID-enumeration-4 tokoe:valid" result="pass"/><test-case name="5652NISTXML-SV-IV-atomic-ID-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5653NISTXML-SV-IV-atomic-ID-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5654NISTXML-SV-IV-atomic-ID-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5655NISTXML-SV-IV-atomic-ID-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5656NISTXML-SV-IV-atomic-ID-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5657NISTSchema-SV-IV-atomic-ID-enumeration-5 tokoe:valid" result="pass"/><test-case name="5658NISTXML-SV-IV-atomic-ID-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5659NISTXML-SV-IV-atomic-ID-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5660NISTXML-SV-IV-atomic-ID-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5661NISTXML-SV-IV-atomic-ID-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5662NISTXML-SV-IV-atomic-ID-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5663NISTSchema-SV-IV-atomic-ID-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5664NISTXML-SV-IV-atomic-ID-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5665NISTXML-SV-IV-atomic-ID-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5666NISTXML-SV-IV-atomic-ID-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5667NISTXML-SV-IV-atomic-ID-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5668NISTXML-SV-IV-atomic-ID-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5669NISTSchema-SV-IV-atomic-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="5670NISTXML-SV-IV-atomic-language-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5671NISTXML-SV-IV-atomic-language-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5672NISTXML-SV-IV-atomic-language-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5673NISTXML-SV-IV-atomic-language-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5674NISTXML-SV-IV-atomic-language-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5675NISTSchema-SV-IV-atomic-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="5676NISTXML-SV-IV-atomic-language-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5677NISTXML-SV-IV-atomic-language-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5678NISTXML-SV-IV-atomic-language-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5679NISTXML-SV-IV-atomic-language-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5680NISTXML-SV-IV-atomic-language-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5681NISTSchema-SV-IV-atomic-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="5682NISTXML-SV-IV-atomic-language-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5683NISTXML-SV-IV-atomic-language-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5684NISTXML-SV-IV-atomic-language-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5685NISTXML-SV-IV-atomic-language-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5686NISTXML-SV-IV-atomic-language-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5687NISTSchema-SV-IV-atomic-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="5688NISTXML-SV-IV-atomic-language-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5689NISTXML-SV-IV-atomic-language-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5690NISTXML-SV-IV-atomic-language-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5691NISTXML-SV-IV-atomic-language-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5692NISTXML-SV-IV-atomic-language-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5693NISTSchema-SV-IV-atomic-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="5694NISTXML-SV-IV-atomic-language-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5695NISTXML-SV-IV-atomic-language-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5696NISTXML-SV-IV-atomic-language-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5697NISTXML-SV-IV-atomic-language-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5698NISTXML-SV-IV-atomic-language-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5699NISTSchema-SV-IV-atomic-language-minLength-1 tokoe:valid" result="pass"/><test-case name="5700NISTXML-SV-IV-atomic-language-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5701NISTXML-SV-IV-atomic-language-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5702NISTXML-SV-IV-atomic-language-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5703NISTXML-SV-IV-atomic-language-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5704NISTXML-SV-IV-atomic-language-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5705NISTSchema-SV-IV-atomic-language-minLength-2 tokoe:valid" result="pass"/><test-case name="5706NISTXML-SV-IV-atomic-language-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5707NISTXML-SV-IV-atomic-language-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5708NISTXML-SV-IV-atomic-language-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5709NISTXML-SV-IV-atomic-language-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5710NISTXML-SV-IV-atomic-language-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5711NISTSchema-SV-IV-atomic-language-minLength-3 tokoe:valid" result="pass"/><test-case name="5712NISTXML-SV-IV-atomic-language-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5713NISTXML-SV-IV-atomic-language-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5714NISTXML-SV-IV-atomic-language-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5715NISTXML-SV-IV-atomic-language-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5716NISTXML-SV-IV-atomic-language-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5717NISTSchema-SV-IV-atomic-language-minLength-4 tokoe:valid" result="pass"/><test-case name="5718NISTXML-SV-IV-atomic-language-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5719NISTXML-SV-IV-atomic-language-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5720NISTXML-SV-IV-atomic-language-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5721NISTXML-SV-IV-atomic-language-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5722NISTXML-SV-IV-atomic-language-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5723NISTSchema-SV-IV-atomic-language-minLength-5 tokoe:valid" result="pass"/><test-case name="5724NISTXML-SV-IV-atomic-language-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5725NISTXML-SV-IV-atomic-language-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5726NISTXML-SV-IV-atomic-language-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5727NISTXML-SV-IV-atomic-language-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5728NISTXML-SV-IV-atomic-language-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5729NISTSchema-SV-IV-atomic-language-length-1 tokoe:valid" result="pass"/><test-case name="5730NISTXML-SV-IV-atomic-language-length-1-1 tokoe:valid" result="pass"/><test-case name="5731NISTXML-SV-IV-atomic-language-length-1-2 tokoe:valid" result="pass"/><test-case name="5732NISTXML-SV-IV-atomic-language-length-1-3 tokoe:valid" result="pass"/><test-case name="5733NISTXML-SV-IV-atomic-language-length-1-4 tokoe:valid" result="pass"/><test-case name="5734NISTXML-SV-IV-atomic-language-length-1-5 tokoe:valid" result="pass"/><test-case name="5735NISTSchema-SV-IV-atomic-language-length-2 tokoe:valid" result="pass"/><test-case name="5736NISTXML-SV-IV-atomic-language-length-2-1 tokoe:valid" result="pass"/><test-case name="5737NISTXML-SV-IV-atomic-language-length-2-2 tokoe:valid" result="pass"/><test-case name="5738NISTXML-SV-IV-atomic-language-length-2-3 tokoe:valid" result="pass"/><test-case name="5739NISTXML-SV-IV-atomic-language-length-2-4 tokoe:valid" result="pass"/><test-case name="5740NISTXML-SV-IV-atomic-language-length-2-5 tokoe:valid" result="pass"/><test-case name="5741NISTSchema-SV-IV-atomic-language-length-3 tokoe:valid" result="pass"/><test-case name="5742NISTXML-SV-IV-atomic-language-length-3-1 tokoe:valid" result="pass"/><test-case name="5743NISTXML-SV-IV-atomic-language-length-3-2 tokoe:valid" result="pass"/><test-case name="5744NISTXML-SV-IV-atomic-language-length-3-3 tokoe:valid" result="pass"/><test-case name="5745NISTXML-SV-IV-atomic-language-length-3-4 tokoe:valid" result="pass"/><test-case name="5746NISTXML-SV-IV-atomic-language-length-3-5 tokoe:valid" result="pass"/><test-case name="5747NISTSchema-SV-IV-atomic-language-length-4 tokoe:valid" result="pass"/><test-case name="5748NISTXML-SV-IV-atomic-language-length-4-1 tokoe:valid" result="pass"/><test-case name="5749NISTXML-SV-IV-atomic-language-length-4-2 tokoe:valid" result="pass"/><test-case name="5750NISTXML-SV-IV-atomic-language-length-4-3 tokoe:valid" result="pass"/><test-case name="5751NISTXML-SV-IV-atomic-language-length-4-4 tokoe:valid" result="pass"/><test-case name="5752NISTXML-SV-IV-atomic-language-length-4-5 tokoe:valid" result="pass"/><test-case name="5753NISTSchema-SV-IV-atomic-language-length-5 tokoe:valid" result="pass"/><test-case name="5754NISTXML-SV-IV-atomic-language-length-5-1 tokoe:valid" result="pass"/><test-case name="5755NISTXML-SV-IV-atomic-language-length-5-2 tokoe:valid" result="pass"/><test-case name="5756NISTXML-SV-IV-atomic-language-length-5-3 tokoe:valid" result="pass"/><test-case name="5757NISTXML-SV-IV-atomic-language-length-5-4 tokoe:valid" result="pass"/><test-case name="5758NISTXML-SV-IV-atomic-language-length-5-5 tokoe:valid" result="pass"/><test-case name="5759NISTSchema-SV-IV-atomic-language-pattern-1 tokoe:valid" result="pass"/><test-case name="5760NISTXML-SV-IV-atomic-language-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5761NISTXML-SV-IV-atomic-language-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5762NISTXML-SV-IV-atomic-language-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5763NISTXML-SV-IV-atomic-language-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5764NISTXML-SV-IV-atomic-language-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5765NISTSchema-SV-IV-atomic-language-pattern-2 tokoe:valid" result="pass"/><test-case name="5766NISTXML-SV-IV-atomic-language-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5767NISTXML-SV-IV-atomic-language-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5768NISTXML-SV-IV-atomic-language-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5769NISTXML-SV-IV-atomic-language-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5770NISTXML-SV-IV-atomic-language-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5771NISTSchema-SV-IV-atomic-language-pattern-3 tokoe:valid" result="pass"/><test-case name="5772NISTXML-SV-IV-atomic-language-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5773NISTXML-SV-IV-atomic-language-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5774NISTXML-SV-IV-atomic-language-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5775NISTXML-SV-IV-atomic-language-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5776NISTXML-SV-IV-atomic-language-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5777NISTSchema-SV-IV-atomic-language-pattern-4 tokoe:valid" result="pass"/><test-case name="5778NISTXML-SV-IV-atomic-language-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5779NISTXML-SV-IV-atomic-language-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5780NISTXML-SV-IV-atomic-language-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5781NISTXML-SV-IV-atomic-language-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5782NISTXML-SV-IV-atomic-language-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5783NISTSchema-SV-IV-atomic-language-pattern-5 tokoe:valid" result="pass"/><test-case name="5784NISTXML-SV-IV-atomic-language-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5785NISTXML-SV-IV-atomic-language-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5786NISTXML-SV-IV-atomic-language-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5787NISTXML-SV-IV-atomic-language-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5788NISTXML-SV-IV-atomic-language-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5789NISTSchema-SV-IV-atomic-language-enumeration-1 tokoe:valid" result="pass"/><test-case name="5790NISTXML-SV-IV-atomic-language-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5791NISTXML-SV-IV-atomic-language-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5792NISTXML-SV-IV-atomic-language-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5793NISTXML-SV-IV-atomic-language-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5794NISTXML-SV-IV-atomic-language-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5795NISTSchema-SV-IV-atomic-language-enumeration-2 tokoe:valid" result="pass"/><test-case name="5796NISTXML-SV-IV-atomic-language-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5797NISTXML-SV-IV-atomic-language-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5798NISTXML-SV-IV-atomic-language-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5799NISTXML-SV-IV-atomic-language-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5800NISTXML-SV-IV-atomic-language-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5801NISTSchema-SV-IV-atomic-language-enumeration-3 tokoe:valid" result="pass"/><test-case name="5802NISTXML-SV-IV-atomic-language-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5803NISTXML-SV-IV-atomic-language-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5804NISTXML-SV-IV-atomic-language-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5805NISTXML-SV-IV-atomic-language-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5806NISTXML-SV-IV-atomic-language-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5807NISTSchema-SV-IV-atomic-language-enumeration-4 tokoe:valid" result="pass"/><test-case name="5808NISTXML-SV-IV-atomic-language-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5809NISTXML-SV-IV-atomic-language-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5810NISTXML-SV-IV-atomic-language-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5811NISTXML-SV-IV-atomic-language-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5812NISTXML-SV-IV-atomic-language-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5813NISTSchema-SV-IV-atomic-language-enumeration-5 tokoe:valid" result="pass"/><test-case name="5814NISTXML-SV-IV-atomic-language-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5815NISTXML-SV-IV-atomic-language-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5816NISTXML-SV-IV-atomic-language-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5817NISTXML-SV-IV-atomic-language-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5818NISTXML-SV-IV-atomic-language-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5819NISTSchema-SV-IV-atomic-language-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5820NISTXML-SV-IV-atomic-language-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5821NISTXML-SV-IV-atomic-language-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5822NISTXML-SV-IV-atomic-language-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5823NISTXML-SV-IV-atomic-language-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5824NISTXML-SV-IV-atomic-language-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5825NISTSchema-SV-IV-atomic-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="5826NISTXML-SV-IV-atomic-anyURI-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5827NISTXML-SV-IV-atomic-anyURI-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5828NISTXML-SV-IV-atomic-anyURI-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5829NISTXML-SV-IV-atomic-anyURI-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5830NISTXML-SV-IV-atomic-anyURI-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5831NISTSchema-SV-IV-atomic-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="5832NISTXML-SV-IV-atomic-anyURI-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5833NISTXML-SV-IV-atomic-anyURI-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5834NISTXML-SV-IV-atomic-anyURI-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5835NISTXML-SV-IV-atomic-anyURI-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5836NISTXML-SV-IV-atomic-anyURI-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5837NISTSchema-SV-IV-atomic-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="5838NISTXML-SV-IV-atomic-anyURI-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5839NISTXML-SV-IV-atomic-anyURI-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5840NISTXML-SV-IV-atomic-anyURI-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5841NISTXML-SV-IV-atomic-anyURI-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5842NISTXML-SV-IV-atomic-anyURI-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5843NISTSchema-SV-IV-atomic-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="5844NISTXML-SV-IV-atomic-anyURI-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="5845NISTXML-SV-IV-atomic-anyURI-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="5846NISTXML-SV-IV-atomic-anyURI-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="5847NISTXML-SV-IV-atomic-anyURI-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="5848NISTXML-SV-IV-atomic-anyURI-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="5849NISTSchema-SV-IV-atomic-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="5850NISTXML-SV-IV-atomic-anyURI-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="5851NISTXML-SV-IV-atomic-anyURI-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="5852NISTXML-SV-IV-atomic-anyURI-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="5853NISTXML-SV-IV-atomic-anyURI-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="5854NISTXML-SV-IV-atomic-anyURI-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="5855NISTSchema-SV-IV-atomic-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="5856NISTXML-SV-IV-atomic-anyURI-minLength-1-1 tokoe:valid" result="pass"/><test-case name="5857NISTXML-SV-IV-atomic-anyURI-minLength-1-2 tokoe:valid" result="pass"/><test-case name="5858NISTXML-SV-IV-atomic-anyURI-minLength-1-3 tokoe:valid" result="pass"/><test-case name="5859NISTXML-SV-IV-atomic-anyURI-minLength-1-4 tokoe:valid" result="pass"/><test-case name="5860NISTXML-SV-IV-atomic-anyURI-minLength-1-5 tokoe:valid" result="pass"/><test-case name="5861NISTSchema-SV-IV-atomic-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="5862NISTXML-SV-IV-atomic-anyURI-minLength-2-1 tokoe:valid" result="pass"/><test-case name="5863NISTXML-SV-IV-atomic-anyURI-minLength-2-2 tokoe:valid" result="pass"/><test-case name="5864NISTXML-SV-IV-atomic-anyURI-minLength-2-3 tokoe:valid" result="pass"/><test-case name="5865NISTXML-SV-IV-atomic-anyURI-minLength-2-4 tokoe:valid" result="pass"/><test-case name="5866NISTXML-SV-IV-atomic-anyURI-minLength-2-5 tokoe:valid" result="pass"/><test-case name="5867NISTSchema-SV-IV-atomic-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="5868NISTXML-SV-IV-atomic-anyURI-minLength-3-1 tokoe:valid" result="pass"/><test-case name="5869NISTXML-SV-IV-atomic-anyURI-minLength-3-2 tokoe:valid" result="pass"/><test-case name="5870NISTXML-SV-IV-atomic-anyURI-minLength-3-3 tokoe:valid" result="pass"/><test-case name="5871NISTXML-SV-IV-atomic-anyURI-minLength-3-4 tokoe:valid" result="pass"/><test-case name="5872NISTXML-SV-IV-atomic-anyURI-minLength-3-5 tokoe:valid" result="pass"/><test-case name="5873NISTSchema-SV-IV-atomic-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="5874NISTXML-SV-IV-atomic-anyURI-minLength-4-1 tokoe:valid" result="pass"/><test-case name="5875NISTXML-SV-IV-atomic-anyURI-minLength-4-2 tokoe:valid" result="pass"/><test-case name="5876NISTXML-SV-IV-atomic-anyURI-minLength-4-3 tokoe:valid" result="pass"/><test-case name="5877NISTXML-SV-IV-atomic-anyURI-minLength-4-4 tokoe:valid" result="pass"/><test-case name="5878NISTXML-SV-IV-atomic-anyURI-minLength-4-5 tokoe:valid" result="pass"/><test-case name="5879NISTSchema-SV-IV-atomic-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="5880NISTXML-SV-IV-atomic-anyURI-minLength-5-1 tokoe:valid" result="pass"/><test-case name="5881NISTXML-SV-IV-atomic-anyURI-minLength-5-2 tokoe:valid" result="pass"/><test-case name="5882NISTXML-SV-IV-atomic-anyURI-minLength-5-3 tokoe:valid" result="pass"/><test-case name="5883NISTXML-SV-IV-atomic-anyURI-minLength-5-4 tokoe:valid" result="pass"/><test-case name="5884NISTXML-SV-IV-atomic-anyURI-minLength-5-5 tokoe:valid" result="pass"/><test-case name="5885NISTSchema-SV-IV-atomic-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="5886NISTXML-SV-IV-atomic-anyURI-length-1-1 tokoe:valid" result="pass"/><test-case name="5887NISTXML-SV-IV-atomic-anyURI-length-1-2 tokoe:valid" result="pass"/><test-case name="5888NISTXML-SV-IV-atomic-anyURI-length-1-3 tokoe:valid" result="pass"/><test-case name="5889NISTXML-SV-IV-atomic-anyURI-length-1-4 tokoe:valid" result="pass"/><test-case name="5890NISTXML-SV-IV-atomic-anyURI-length-1-5 tokoe:valid" result="pass"/><test-case name="5891NISTSchema-SV-IV-atomic-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="5892NISTXML-SV-IV-atomic-anyURI-length-2-1 tokoe:valid" result="pass"/><test-case name="5893NISTXML-SV-IV-atomic-anyURI-length-2-2 tokoe:valid" result="pass"/><test-case name="5894NISTXML-SV-IV-atomic-anyURI-length-2-3 tokoe:valid" result="pass"/><test-case name="5895NISTXML-SV-IV-atomic-anyURI-length-2-4 tokoe:valid" result="pass"/><test-case name="5896NISTXML-SV-IV-atomic-anyURI-length-2-5 tokoe:valid" result="pass"/><test-case name="5897NISTSchema-SV-IV-atomic-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="5898NISTXML-SV-IV-atomic-anyURI-length-3-1 tokoe:valid" result="pass"/><test-case name="5899NISTXML-SV-IV-atomic-anyURI-length-3-2 tokoe:valid" result="pass"/><test-case name="5900NISTXML-SV-IV-atomic-anyURI-length-3-3 tokoe:valid" result="pass"/><test-case name="5901NISTXML-SV-IV-atomic-anyURI-length-3-4 tokoe:valid" result="pass"/><test-case name="5902NISTXML-SV-IV-atomic-anyURI-length-3-5 tokoe:valid" result="pass"/><test-case name="5903NISTSchema-SV-IV-atomic-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="5904NISTXML-SV-IV-atomic-anyURI-length-4-1 tokoe:valid" result="pass"/><test-case name="5905NISTXML-SV-IV-atomic-anyURI-length-4-2 tokoe:valid" result="pass"/><test-case name="5906NISTXML-SV-IV-atomic-anyURI-length-4-3 tokoe:valid" result="pass"/><test-case name="5907NISTXML-SV-IV-atomic-anyURI-length-4-4 tokoe:valid" result="pass"/><test-case name="5908NISTXML-SV-IV-atomic-anyURI-length-4-5 tokoe:valid" result="pass"/><test-case name="5909NISTSchema-SV-IV-atomic-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="5910NISTXML-SV-IV-atomic-anyURI-length-5-1 tokoe:valid" result="pass"/><test-case name="5911NISTXML-SV-IV-atomic-anyURI-length-5-2 tokoe:valid" result="pass"/><test-case name="5912NISTXML-SV-IV-atomic-anyURI-length-5-3 tokoe:valid" result="pass"/><test-case name="5913NISTXML-SV-IV-atomic-anyURI-length-5-4 tokoe:valid" result="pass"/><test-case name="5914NISTXML-SV-IV-atomic-anyURI-length-5-5 tokoe:valid" result="pass"/><test-case name="5915NISTSchema-SV-IV-atomic-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="5916NISTXML-SV-IV-atomic-anyURI-pattern-1-1 tokoe:valid" result="pass"/><test-case name="5917NISTXML-SV-IV-atomic-anyURI-pattern-1-2 tokoe:valid" result="pass"/><test-case name="5918NISTXML-SV-IV-atomic-anyURI-pattern-1-3 tokoe:valid" result="pass"/><test-case name="5919NISTXML-SV-IV-atomic-anyURI-pattern-1-4 tokoe:valid" result="pass"/><test-case name="5920NISTXML-SV-IV-atomic-anyURI-pattern-1-5 tokoe:valid" result="pass"/><test-case name="5921NISTSchema-SV-IV-atomic-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="5922NISTXML-SV-IV-atomic-anyURI-pattern-2-1 tokoe:valid" result="pass"/><test-case name="5923NISTXML-SV-IV-atomic-anyURI-pattern-2-2 tokoe:valid" result="pass"/><test-case name="5924NISTXML-SV-IV-atomic-anyURI-pattern-2-3 tokoe:valid" result="pass"/><test-case name="5925NISTXML-SV-IV-atomic-anyURI-pattern-2-4 tokoe:valid" result="pass"/><test-case name="5926NISTXML-SV-IV-atomic-anyURI-pattern-2-5 tokoe:valid" result="pass"/><test-case name="5927NISTSchema-SV-IV-atomic-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="5928NISTXML-SV-IV-atomic-anyURI-pattern-3-1 tokoe:valid" result="pass"/><test-case name="5929NISTXML-SV-IV-atomic-anyURI-pattern-3-2 tokoe:valid" result="pass"/><test-case name="5930NISTXML-SV-IV-atomic-anyURI-pattern-3-3 tokoe:valid" result="pass"/><test-case name="5931NISTXML-SV-IV-atomic-anyURI-pattern-3-4 tokoe:valid" result="pass"/><test-case name="5932NISTXML-SV-IV-atomic-anyURI-pattern-3-5 tokoe:valid" result="pass"/><test-case name="5933NISTSchema-SV-IV-atomic-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="5934NISTXML-SV-IV-atomic-anyURI-pattern-4-1 tokoe:valid" result="pass"/><test-case name="5935NISTXML-SV-IV-atomic-anyURI-pattern-4-2 tokoe:valid" result="pass"/><test-case name="5936NISTXML-SV-IV-atomic-anyURI-pattern-4-3 tokoe:valid" result="pass"/><test-case name="5937NISTXML-SV-IV-atomic-anyURI-pattern-4-4 tokoe:valid" result="pass"/><test-case name="5938NISTXML-SV-IV-atomic-anyURI-pattern-4-5 tokoe:valid" result="pass"/><test-case name="5939NISTSchema-SV-IV-atomic-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="5940NISTXML-SV-IV-atomic-anyURI-pattern-5-1 tokoe:valid" result="pass"/><test-case name="5941NISTXML-SV-IV-atomic-anyURI-pattern-5-2 tokoe:valid" result="pass"/><test-case name="5942NISTXML-SV-IV-atomic-anyURI-pattern-5-3 tokoe:valid" result="pass"/><test-case name="5943NISTXML-SV-IV-atomic-anyURI-pattern-5-4 tokoe:valid" result="pass"/><test-case name="5944NISTXML-SV-IV-atomic-anyURI-pattern-5-5 tokoe:valid" result="pass"/><test-case name="5945NISTSchema-SV-IV-atomic-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="5946NISTXML-SV-IV-atomic-anyURI-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="5947NISTXML-SV-IV-atomic-anyURI-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="5948NISTXML-SV-IV-atomic-anyURI-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="5949NISTXML-SV-IV-atomic-anyURI-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="5950NISTXML-SV-IV-atomic-anyURI-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="5951NISTSchema-SV-IV-atomic-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="5952NISTXML-SV-IV-atomic-anyURI-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="5953NISTXML-SV-IV-atomic-anyURI-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="5954NISTXML-SV-IV-atomic-anyURI-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="5955NISTXML-SV-IV-atomic-anyURI-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="5956NISTXML-SV-IV-atomic-anyURI-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="5957NISTSchema-SV-IV-atomic-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="5958NISTXML-SV-IV-atomic-anyURI-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="5959NISTXML-SV-IV-atomic-anyURI-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="5960NISTXML-SV-IV-atomic-anyURI-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="5961NISTXML-SV-IV-atomic-anyURI-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="5962NISTXML-SV-IV-atomic-anyURI-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="5963NISTSchema-SV-IV-atomic-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="5964NISTXML-SV-IV-atomic-anyURI-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="5965NISTXML-SV-IV-atomic-anyURI-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="5966NISTXML-SV-IV-atomic-anyURI-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="5967NISTXML-SV-IV-atomic-anyURI-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="5968NISTXML-SV-IV-atomic-anyURI-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="5969NISTSchema-SV-IV-atomic-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="5970NISTXML-SV-IV-atomic-anyURI-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="5971NISTXML-SV-IV-atomic-anyURI-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="5972NISTXML-SV-IV-atomic-anyURI-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="5973NISTXML-SV-IV-atomic-anyURI-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="5974NISTXML-SV-IV-atomic-anyURI-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="5975NISTSchema-SV-IV-atomic-anyURI-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="5976NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="5977NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="5978NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="5979NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="5980NISTXML-SV-IV-atomic-anyURI-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="5981NISTSchema-SV-IV-atomic-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="5982NISTXML-SV-IV-atomic-QName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="5983NISTXML-SV-IV-atomic-QName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="5984NISTXML-SV-IV-atomic-QName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="5985NISTXML-SV-IV-atomic-QName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="5986NISTXML-SV-IV-atomic-QName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="5987NISTSchema-SV-IV-atomic-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="5988NISTXML-SV-IV-atomic-QName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="5989NISTXML-SV-IV-atomic-QName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="5990NISTXML-SV-IV-atomic-QName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="5991NISTXML-SV-IV-atomic-QName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="5992NISTXML-SV-IV-atomic-QName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="5993NISTSchema-SV-IV-atomic-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="5994NISTXML-SV-IV-atomic-QName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="5995NISTXML-SV-IV-atomic-QName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="5996NISTXML-SV-IV-atomic-QName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="5997NISTXML-SV-IV-atomic-QName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="5998NISTXML-SV-IV-atomic-QName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="5999NISTSchema-SV-IV-atomic-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="6000NISTXML-SV-IV-atomic-QName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6001NISTXML-SV-IV-atomic-QName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6002NISTXML-SV-IV-atomic-QName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6003NISTXML-SV-IV-atomic-QName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6004NISTXML-SV-IV-atomic-QName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6005NISTSchema-SV-IV-atomic-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="6006NISTXML-SV-IV-atomic-QName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6007NISTXML-SV-IV-atomic-QName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6008NISTXML-SV-IV-atomic-QName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6009NISTXML-SV-IV-atomic-QName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6010NISTXML-SV-IV-atomic-QName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6011NISTSchema-SV-IV-atomic-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="6012NISTXML-SV-IV-atomic-QName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6013NISTXML-SV-IV-atomic-QName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6014NISTXML-SV-IV-atomic-QName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6015NISTXML-SV-IV-atomic-QName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6016NISTXML-SV-IV-atomic-QName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6017NISTSchema-SV-IV-atomic-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="6018NISTXML-SV-IV-atomic-QName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6019NISTXML-SV-IV-atomic-QName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6020NISTXML-SV-IV-atomic-QName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6021NISTXML-SV-IV-atomic-QName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6022NISTXML-SV-IV-atomic-QName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6023NISTSchema-SV-IV-atomic-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="6024NISTXML-SV-IV-atomic-QName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6025NISTXML-SV-IV-atomic-QName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6026NISTXML-SV-IV-atomic-QName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6027NISTXML-SV-IV-atomic-QName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6028NISTXML-SV-IV-atomic-QName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6029NISTSchema-SV-IV-atomic-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="6030NISTXML-SV-IV-atomic-QName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6031NISTXML-SV-IV-atomic-QName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6032NISTXML-SV-IV-atomic-QName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6033NISTXML-SV-IV-atomic-QName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6034NISTXML-SV-IV-atomic-QName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6035NISTSchema-SV-IV-atomic-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="6036NISTXML-SV-IV-atomic-QName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6037NISTXML-SV-IV-atomic-QName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6038NISTXML-SV-IV-atomic-QName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6039NISTXML-SV-IV-atomic-QName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6040NISTXML-SV-IV-atomic-QName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6041NISTSchema-SV-IV-atomic-QName-length-1 tokoe:valid" result="pass"/><test-case name="6042NISTXML-SV-IV-atomic-QName-length-1-1 tokoe:valid" result="pass"/><test-case name="6043NISTXML-SV-IV-atomic-QName-length-1-2 tokoe:valid" result="pass"/><test-case name="6044NISTXML-SV-IV-atomic-QName-length-1-3 tokoe:valid" result="pass"/><test-case name="6045NISTXML-SV-IV-atomic-QName-length-1-4 tokoe:valid" result="pass"/><test-case name="6046NISTXML-SV-IV-atomic-QName-length-1-5 tokoe:valid" result="pass"/><test-case name="6047NISTSchema-SV-IV-atomic-QName-length-2 tokoe:valid" result="pass"/><test-case name="6048NISTXML-SV-IV-atomic-QName-length-2-1 tokoe:valid" result="pass"/><test-case name="6049NISTXML-SV-IV-atomic-QName-length-2-2 tokoe:valid" result="pass"/><test-case name="6050NISTXML-SV-IV-atomic-QName-length-2-3 tokoe:valid" result="pass"/><test-case name="6051NISTXML-SV-IV-atomic-QName-length-2-4 tokoe:valid" result="pass"/><test-case name="6052NISTXML-SV-IV-atomic-QName-length-2-5 tokoe:valid" result="pass"/><test-case name="6053NISTSchema-SV-IV-atomic-QName-length-3 tokoe:valid" result="pass"/><test-case name="6054NISTXML-SV-IV-atomic-QName-length-3-1 tokoe:valid" result="pass"/><test-case name="6055NISTXML-SV-IV-atomic-QName-length-3-2 tokoe:valid" result="pass"/><test-case name="6056NISTXML-SV-IV-atomic-QName-length-3-3 tokoe:valid" result="pass"/><test-case name="6057NISTXML-SV-IV-atomic-QName-length-3-4 tokoe:valid" result="pass"/><test-case name="6058NISTXML-SV-IV-atomic-QName-length-3-5 tokoe:valid" result="pass"/><test-case name="6059NISTSchema-SV-IV-atomic-QName-length-4 tokoe:valid" result="pass"/><test-case name="6060NISTXML-SV-IV-atomic-QName-length-4-1 tokoe:valid" result="pass"/><test-case name="6061NISTXML-SV-IV-atomic-QName-length-4-2 tokoe:valid" result="pass"/><test-case name="6062NISTXML-SV-IV-atomic-QName-length-4-3 tokoe:valid" result="pass"/><test-case name="6063NISTXML-SV-IV-atomic-QName-length-4-4 tokoe:valid" result="pass"/><test-case name="6064NISTXML-SV-IV-atomic-QName-length-4-5 tokoe:valid" result="pass"/><test-case name="6065NISTSchema-SV-IV-atomic-QName-length-5 tokoe:valid" result="pass"/><test-case name="6066NISTXML-SV-IV-atomic-QName-length-5-1 tokoe:valid" result="pass"/><test-case name="6067NISTXML-SV-IV-atomic-QName-length-5-2 tokoe:valid" result="pass"/><test-case name="6068NISTXML-SV-IV-atomic-QName-length-5-3 tokoe:valid" result="pass"/><test-case name="6069NISTXML-SV-IV-atomic-QName-length-5-4 tokoe:valid" result="pass"/><test-case name="6070NISTXML-SV-IV-atomic-QName-length-5-5 tokoe:valid" result="pass"/><test-case name="6071NISTSchema-SV-IV-atomic-QName-pattern-1 tokoe:valid" result="pass"/><test-case name="6072NISTXML-SV-IV-atomic-QName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6073NISTXML-SV-IV-atomic-QName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6074NISTXML-SV-IV-atomic-QName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6075NISTXML-SV-IV-atomic-QName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6076NISTXML-SV-IV-atomic-QName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6077NISTSchema-SV-IV-atomic-QName-pattern-2 tokoe:valid" result="pass"/><test-case name="6078NISTXML-SV-IV-atomic-QName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6079NISTXML-SV-IV-atomic-QName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6080NISTXML-SV-IV-atomic-QName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6081NISTXML-SV-IV-atomic-QName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6082NISTXML-SV-IV-atomic-QName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6083NISTSchema-SV-IV-atomic-QName-pattern-3 tokoe:valid" result="pass"/><test-case name="6084NISTXML-SV-IV-atomic-QName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6085NISTXML-SV-IV-atomic-QName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6086NISTXML-SV-IV-atomic-QName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6087NISTXML-SV-IV-atomic-QName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6088NISTXML-SV-IV-atomic-QName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6089NISTSchema-SV-IV-atomic-QName-pattern-4 tokoe:valid" result="pass"/><test-case name="6090NISTXML-SV-IV-atomic-QName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6091NISTXML-SV-IV-atomic-QName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6092NISTXML-SV-IV-atomic-QName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6093NISTXML-SV-IV-atomic-QName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6094NISTXML-SV-IV-atomic-QName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6095NISTSchema-SV-IV-atomic-QName-pattern-5 tokoe:valid" result="pass"/><test-case name="6096NISTXML-SV-IV-atomic-QName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6097NISTXML-SV-IV-atomic-QName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6098NISTXML-SV-IV-atomic-QName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6099NISTXML-SV-IV-atomic-QName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6100NISTXML-SV-IV-atomic-QName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6101NISTSchema-SV-IV-atomic-QName-enumeration-1 tokoe:valid" result="pass"/><test-case name="6102NISTXML-SV-IV-atomic-QName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6103NISTXML-SV-IV-atomic-QName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6104NISTXML-SV-IV-atomic-QName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6105NISTXML-SV-IV-atomic-QName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6106NISTXML-SV-IV-atomic-QName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6107NISTSchema-SV-IV-atomic-QName-enumeration-2 tokoe:valid" result="pass"/><test-case name="6108NISTXML-SV-IV-atomic-QName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6109NISTXML-SV-IV-atomic-QName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6110NISTXML-SV-IV-atomic-QName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6111NISTXML-SV-IV-atomic-QName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6112NISTXML-SV-IV-atomic-QName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6113NISTSchema-SV-IV-atomic-QName-enumeration-3 tokoe:valid" result="pass"/><test-case name="6114NISTXML-SV-IV-atomic-QName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6115NISTXML-SV-IV-atomic-QName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6116NISTXML-SV-IV-atomic-QName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6117NISTXML-SV-IV-atomic-QName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6118NISTXML-SV-IV-atomic-QName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6119NISTSchema-SV-IV-atomic-QName-enumeration-4 tokoe:valid" result="pass"/><test-case name="6120NISTXML-SV-IV-atomic-QName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6121NISTXML-SV-IV-atomic-QName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6122NISTXML-SV-IV-atomic-QName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6123NISTXML-SV-IV-atomic-QName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6124NISTXML-SV-IV-atomic-QName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6125NISTSchema-SV-IV-atomic-QName-enumeration-5 tokoe:valid" result="pass"/><test-case name="6126NISTXML-SV-IV-atomic-QName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6127NISTXML-SV-IV-atomic-QName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6128NISTXML-SV-IV-atomic-QName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6129NISTXML-SV-IV-atomic-QName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6130NISTXML-SV-IV-atomic-QName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6131NISTSchema-SV-IV-atomic-QName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6132NISTXML-SV-IV-atomic-QName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6133NISTXML-SV-IV-atomic-QName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6134NISTXML-SV-IV-atomic-QName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6135NISTXML-SV-IV-atomic-QName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6136NISTXML-SV-IV-atomic-QName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6137NISTSchema-SV-IV-atomic-boolean-pattern-1 tokoe:valid" result="pass"/><test-case name="6138NISTXML-SV-IV-atomic-boolean-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6139NISTXML-SV-IV-atomic-boolean-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6140NISTXML-SV-IV-atomic-boolean-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6141NISTXML-SV-IV-atomic-boolean-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6142NISTXML-SV-IV-atomic-boolean-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6143NISTSchema-SV-IV-atomic-boolean-pattern-2 tokoe:valid" result="pass"/><test-case name="6144NISTXML-SV-IV-atomic-boolean-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6145NISTXML-SV-IV-atomic-boolean-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6146NISTXML-SV-IV-atomic-boolean-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6147NISTXML-SV-IV-atomic-boolean-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6148NISTXML-SV-IV-atomic-boolean-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6149NISTSchema-SV-IV-atomic-boolean-pattern-3 tokoe:valid" result="pass"/><test-case name="6150NISTXML-SV-IV-atomic-boolean-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6151NISTXML-SV-IV-atomic-boolean-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6152NISTXML-SV-IV-atomic-boolean-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6153NISTXML-SV-IV-atomic-boolean-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6154NISTXML-SV-IV-atomic-boolean-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6155NISTSchema-SV-IV-atomic-boolean-pattern-4 tokoe:valid" result="pass"/><test-case name="6156NISTXML-SV-IV-atomic-boolean-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6157NISTXML-SV-IV-atomic-boolean-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6158NISTXML-SV-IV-atomic-boolean-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6159NISTXML-SV-IV-atomic-boolean-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6160NISTXML-SV-IV-atomic-boolean-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6161NISTSchema-SV-IV-atomic-boolean-pattern-5 tokoe:valid" result="pass"/><test-case name="6162NISTXML-SV-IV-atomic-boolean-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6163NISTXML-SV-IV-atomic-boolean-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6164NISTXML-SV-IV-atomic-boolean-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6165NISTXML-SV-IV-atomic-boolean-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6166NISTXML-SV-IV-atomic-boolean-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6167NISTSchema-SV-IV-atomic-boolean-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6168NISTXML-SV-IV-atomic-boolean-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6169NISTXML-SV-IV-atomic-boolean-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6170NISTXML-SV-IV-atomic-boolean-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6171NISTXML-SV-IV-atomic-boolean-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6172NISTXML-SV-IV-atomic-boolean-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6173NISTSchema-SV-IV-atomic-boolean-whiteSpace-2 tokoe:valid" result="pass"/><test-case name="6174NISTXML-SV-IV-atomic-boolean-whiteSpace-2-1 tokoe:valid" result="pass"/><test-case name="6175NISTXML-SV-IV-atomic-boolean-whiteSpace-2-2 tokoe:valid" result="pass"/><test-case name="6176NISTXML-SV-IV-atomic-boolean-whiteSpace-2-3 tokoe:valid" result="pass"/><test-case name="6177NISTXML-SV-IV-atomic-boolean-whiteSpace-2-4 tokoe:valid" result="pass"/><test-case name="6178NISTXML-SV-IV-atomic-boolean-whiteSpace-2-5 tokoe:valid" result="pass"/><test-case name="6179NISTSchema-SV-IV-atomic-boolean-whiteSpace-3 tokoe:valid" result="pass"/><test-case name="6180NISTXML-SV-IV-atomic-boolean-whiteSpace-3-1 tokoe:valid" result="pass"/><test-case name="6181NISTXML-SV-IV-atomic-boolean-whiteSpace-3-2 tokoe:valid" result="pass"/><test-case name="6182NISTXML-SV-IV-atomic-boolean-whiteSpace-3-3 tokoe:valid" result="pass"/><test-case name="6183NISTXML-SV-IV-atomic-boolean-whiteSpace-3-4 tokoe:valid" result="pass"/><test-case name="6184NISTXML-SV-IV-atomic-boolean-whiteSpace-3-5 tokoe:valid" result="pass"/><test-case name="6185NISTSchema-SV-IV-atomic-boolean-whiteSpace-4 tokoe:valid" result="pass"/><test-case name="6186NISTXML-SV-IV-atomic-boolean-whiteSpace-4-1 tokoe:valid" result="pass"/><test-case name="6187NISTXML-SV-IV-atomic-boolean-whiteSpace-4-2 tokoe:valid" result="pass"/><test-case name="6188NISTXML-SV-IV-atomic-boolean-whiteSpace-4-3 tokoe:valid" result="pass"/><test-case name="6189NISTXML-SV-IV-atomic-boolean-whiteSpace-4-4 tokoe:valid" result="pass"/><test-case name="6190NISTXML-SV-IV-atomic-boolean-whiteSpace-4-5 tokoe:valid" result="pass"/><test-case name="6191NISTSchema-SV-IV-atomic-boolean-whiteSpace-5 tokoe:valid" result="pass"/><test-case name="6192NISTXML-SV-IV-atomic-boolean-whiteSpace-5-1 tokoe:valid" result="pass"/><test-case name="6193NISTXML-SV-IV-atomic-boolean-whiteSpace-5-2 tokoe:valid" result="pass"/><test-case name="6194NISTXML-SV-IV-atomic-boolean-whiteSpace-5-3 tokoe:valid" result="pass"/><test-case name="6195NISTXML-SV-IV-atomic-boolean-whiteSpace-5-4 tokoe:valid" result="pass"/><test-case name="6196NISTXML-SV-IV-atomic-boolean-whiteSpace-5-5 tokoe:valid" result="pass"/><test-case name="6197NISTSchema-SV-IV-atomic-base64Binary-maxLength-1 tokoe:valid" result="pass"/><test-case name="6198NISTXML-SV-IV-atomic-base64Binary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="6199NISTXML-SV-IV-atomic-base64Binary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="6200NISTXML-SV-IV-atomic-base64Binary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="6201NISTXML-SV-IV-atomic-base64Binary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="6202NISTXML-SV-IV-atomic-base64Binary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="6203NISTSchema-SV-IV-atomic-base64Binary-maxLength-2 tokoe:valid" result="pass"/><test-case name="6204NISTXML-SV-IV-atomic-base64Binary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="6205NISTXML-SV-IV-atomic-base64Binary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="6206NISTXML-SV-IV-atomic-base64Binary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="6207NISTXML-SV-IV-atomic-base64Binary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="6208NISTXML-SV-IV-atomic-base64Binary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="6209NISTSchema-SV-IV-atomic-base64Binary-maxLength-3 tokoe:valid" result="pass"/><test-case name="6210NISTXML-SV-IV-atomic-base64Binary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="6211NISTXML-SV-IV-atomic-base64Binary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="6212NISTXML-SV-IV-atomic-base64Binary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="6213NISTXML-SV-IV-atomic-base64Binary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="6214NISTXML-SV-IV-atomic-base64Binary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="6215NISTSchema-SV-IV-atomic-base64Binary-maxLength-4 tokoe:valid" result="pass"/><test-case name="6216NISTXML-SV-IV-atomic-base64Binary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6217NISTXML-SV-IV-atomic-base64Binary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6218NISTXML-SV-IV-atomic-base64Binary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6219NISTXML-SV-IV-atomic-base64Binary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6220NISTXML-SV-IV-atomic-base64Binary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6221NISTSchema-SV-IV-atomic-base64Binary-maxLength-5 tokoe:valid" result="pass"/><test-case name="6222NISTXML-SV-IV-atomic-base64Binary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6223NISTXML-SV-IV-atomic-base64Binary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6224NISTXML-SV-IV-atomic-base64Binary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6225NISTXML-SV-IV-atomic-base64Binary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6226NISTXML-SV-IV-atomic-base64Binary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6227NISTSchema-SV-IV-atomic-base64Binary-minLength-1 tokoe:valid" result="pass"/><test-case name="6228NISTXML-SV-IV-atomic-base64Binary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6229NISTXML-SV-IV-atomic-base64Binary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6230NISTXML-SV-IV-atomic-base64Binary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6231NISTXML-SV-IV-atomic-base64Binary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6232NISTXML-SV-IV-atomic-base64Binary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6233NISTSchema-SV-IV-atomic-base64Binary-minLength-2 tokoe:valid" result="pass"/><test-case name="6234NISTXML-SV-IV-atomic-base64Binary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6235NISTXML-SV-IV-atomic-base64Binary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6236NISTXML-SV-IV-atomic-base64Binary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6237NISTXML-SV-IV-atomic-base64Binary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6238NISTXML-SV-IV-atomic-base64Binary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6239NISTSchema-SV-IV-atomic-base64Binary-minLength-3 tokoe:valid" result="pass"/><test-case name="6240NISTXML-SV-IV-atomic-base64Binary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6241NISTXML-SV-IV-atomic-base64Binary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6242NISTXML-SV-IV-atomic-base64Binary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6243NISTXML-SV-IV-atomic-base64Binary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6244NISTXML-SV-IV-atomic-base64Binary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6245NISTSchema-SV-IV-atomic-base64Binary-minLength-4 tokoe:valid" result="pass"/><test-case name="6246NISTXML-SV-IV-atomic-base64Binary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6247NISTXML-SV-IV-atomic-base64Binary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6248NISTXML-SV-IV-atomic-base64Binary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6249NISTXML-SV-IV-atomic-base64Binary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6250NISTXML-SV-IV-atomic-base64Binary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6251NISTSchema-SV-IV-atomic-base64Binary-minLength-5 tokoe:valid" result="pass"/><test-case name="6252NISTXML-SV-IV-atomic-base64Binary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6253NISTXML-SV-IV-atomic-base64Binary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6254NISTXML-SV-IV-atomic-base64Binary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6255NISTXML-SV-IV-atomic-base64Binary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6256NISTXML-SV-IV-atomic-base64Binary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6257NISTSchema-SV-IV-atomic-base64Binary-length-1 tokoe:valid" result="pass"/><test-case name="6258NISTXML-SV-IV-atomic-base64Binary-length-1-1 tokoe:valid" result="pass"/><test-case name="6259NISTXML-SV-IV-atomic-base64Binary-length-1-2 tokoe:valid" result="pass"/><test-case name="6260NISTXML-SV-IV-atomic-base64Binary-length-1-3 tokoe:valid" result="pass"/><test-case name="6261NISTXML-SV-IV-atomic-base64Binary-length-1-4 tokoe:valid" result="pass"/><test-case name="6262NISTXML-SV-IV-atomic-base64Binary-length-1-5 tokoe:valid" result="pass"/><test-case name="6263NISTSchema-SV-IV-atomic-base64Binary-length-2 tokoe:valid" result="pass"/><test-case name="6264NISTXML-SV-IV-atomic-base64Binary-length-2-1 tokoe:valid" result="pass"/><test-case name="6265NISTXML-SV-IV-atomic-base64Binary-length-2-2 tokoe:valid" result="pass"/><test-case name="6266NISTXML-SV-IV-atomic-base64Binary-length-2-3 tokoe:valid" result="pass"/><test-case name="6267NISTXML-SV-IV-atomic-base64Binary-length-2-4 tokoe:valid" result="pass"/><test-case name="6268NISTXML-SV-IV-atomic-base64Binary-length-2-5 tokoe:valid" result="pass"/><test-case name="6269NISTSchema-SV-IV-atomic-base64Binary-length-3 tokoe:valid" result="pass"/><test-case name="6270NISTXML-SV-IV-atomic-base64Binary-length-3-1 tokoe:valid" result="pass"/><test-case name="6271NISTXML-SV-IV-atomic-base64Binary-length-3-2 tokoe:valid" result="pass"/><test-case name="6272NISTXML-SV-IV-atomic-base64Binary-length-3-3 tokoe:valid" result="pass"/><test-case name="6273NISTXML-SV-IV-atomic-base64Binary-length-3-4 tokoe:valid" result="pass"/><test-case name="6274NISTXML-SV-IV-atomic-base64Binary-length-3-5 tokoe:valid" result="pass"/><test-case name="6275NISTSchema-SV-IV-atomic-base64Binary-length-4 tokoe:valid" result="pass"/><test-case name="6276NISTXML-SV-IV-atomic-base64Binary-length-4-1 tokoe:valid" result="pass"/><test-case name="6277NISTXML-SV-IV-atomic-base64Binary-length-4-2 tokoe:valid" result="pass"/><test-case name="6278NISTXML-SV-IV-atomic-base64Binary-length-4-3 tokoe:valid" result="pass"/><test-case name="6279NISTXML-SV-IV-atomic-base64Binary-length-4-4 tokoe:valid" result="pass"/><test-case name="6280NISTXML-SV-IV-atomic-base64Binary-length-4-5 tokoe:valid" result="pass"/><test-case name="6281NISTSchema-SV-IV-atomic-base64Binary-length-5 tokoe:valid" result="pass"/><test-case name="6282NISTXML-SV-IV-atomic-base64Binary-length-5-1 tokoe:valid" result="pass"/><test-case name="6283NISTXML-SV-IV-atomic-base64Binary-length-5-2 tokoe:valid" result="pass"/><test-case name="6284NISTXML-SV-IV-atomic-base64Binary-length-5-3 tokoe:valid" result="pass"/><test-case name="6285NISTXML-SV-IV-atomic-base64Binary-length-5-4 tokoe:valid" result="pass"/><test-case name="6286NISTXML-SV-IV-atomic-base64Binary-length-5-5 tokoe:valid" result="pass"/><test-case name="6287NISTSchema-SV-IV-atomic-base64Binary-pattern-1 tokoe:valid" result="pass"/><test-case name="6288NISTXML-SV-IV-atomic-base64Binary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6289NISTXML-SV-IV-atomic-base64Binary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6290NISTXML-SV-IV-atomic-base64Binary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6291NISTXML-SV-IV-atomic-base64Binary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6292NISTXML-SV-IV-atomic-base64Binary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6293NISTSchema-SV-IV-atomic-base64Binary-pattern-2 tokoe:valid" result="pass"/><test-case name="6294NISTXML-SV-IV-atomic-base64Binary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6295NISTXML-SV-IV-atomic-base64Binary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6296NISTXML-SV-IV-atomic-base64Binary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6297NISTXML-SV-IV-atomic-base64Binary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6298NISTXML-SV-IV-atomic-base64Binary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6299NISTSchema-SV-IV-atomic-base64Binary-pattern-3 tokoe:valid" result="pass"/><test-case name="6300NISTXML-SV-IV-atomic-base64Binary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6301NISTXML-SV-IV-atomic-base64Binary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6302NISTXML-SV-IV-atomic-base64Binary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6303NISTXML-SV-IV-atomic-base64Binary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6304NISTXML-SV-IV-atomic-base64Binary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6305NISTSchema-SV-IV-atomic-base64Binary-pattern-4 tokoe:valid" result="pass"/><test-case name="6306NISTXML-SV-IV-atomic-base64Binary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6307NISTXML-SV-IV-atomic-base64Binary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6308NISTXML-SV-IV-atomic-base64Binary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6309NISTXML-SV-IV-atomic-base64Binary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6310NISTXML-SV-IV-atomic-base64Binary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6311NISTSchema-SV-IV-atomic-base64Binary-pattern-5 tokoe:valid" result="pass"/><test-case name="6312NISTXML-SV-IV-atomic-base64Binary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6313NISTXML-SV-IV-atomic-base64Binary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6314NISTXML-SV-IV-atomic-base64Binary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6315NISTXML-SV-IV-atomic-base64Binary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6316NISTXML-SV-IV-atomic-base64Binary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6317NISTSchema-SV-IV-atomic-base64Binary-enumeration-1 tokoe:valid" result="pass"/><test-case name="6318NISTXML-SV-IV-atomic-base64Binary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6319NISTXML-SV-IV-atomic-base64Binary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6320NISTXML-SV-IV-atomic-base64Binary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6321NISTXML-SV-IV-atomic-base64Binary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6322NISTXML-SV-IV-atomic-base64Binary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6323NISTSchema-SV-IV-atomic-base64Binary-enumeration-2 tokoe:valid" result="pass"/><test-case name="6324NISTXML-SV-IV-atomic-base64Binary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6325NISTXML-SV-IV-atomic-base64Binary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6326NISTXML-SV-IV-atomic-base64Binary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6327NISTXML-SV-IV-atomic-base64Binary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6328NISTXML-SV-IV-atomic-base64Binary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6329NISTSchema-SV-IV-atomic-base64Binary-enumeration-3 tokoe:valid" result="pass"/><test-case name="6330NISTXML-SV-IV-atomic-base64Binary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6331NISTXML-SV-IV-atomic-base64Binary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6332NISTXML-SV-IV-atomic-base64Binary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6333NISTXML-SV-IV-atomic-base64Binary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6334NISTXML-SV-IV-atomic-base64Binary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6335NISTSchema-SV-IV-atomic-base64Binary-enumeration-4 tokoe:valid" result="pass"/><test-case name="6336NISTXML-SV-IV-atomic-base64Binary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6337NISTXML-SV-IV-atomic-base64Binary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6338NISTXML-SV-IV-atomic-base64Binary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6339NISTXML-SV-IV-atomic-base64Binary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6340NISTXML-SV-IV-atomic-base64Binary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6341NISTSchema-SV-IV-atomic-base64Binary-enumeration-5 tokoe:valid" result="pass"/><test-case name="6342NISTXML-SV-IV-atomic-base64Binary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6343NISTXML-SV-IV-atomic-base64Binary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6344NISTXML-SV-IV-atomic-base64Binary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6345NISTXML-SV-IV-atomic-base64Binary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6346NISTXML-SV-IV-atomic-base64Binary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6347NISTSchema-SV-IV-atomic-base64Binary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6348NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6349NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6350NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6351NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6352NISTXML-SV-IV-atomic-base64Binary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6353NISTSchema-SV-IV-atomic-hexBinary-maxLength-1 tokoe:valid" result="pass"/><test-case name="6354NISTXML-SV-IV-atomic-hexBinary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="6355NISTXML-SV-IV-atomic-hexBinary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="6356NISTXML-SV-IV-atomic-hexBinary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="6357NISTXML-SV-IV-atomic-hexBinary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="6358NISTXML-SV-IV-atomic-hexBinary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="6359NISTSchema-SV-IV-atomic-hexBinary-maxLength-2 tokoe:valid" result="pass"/><test-case name="6360NISTXML-SV-IV-atomic-hexBinary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="6361NISTXML-SV-IV-atomic-hexBinary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="6362NISTXML-SV-IV-atomic-hexBinary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="6363NISTXML-SV-IV-atomic-hexBinary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="6364NISTXML-SV-IV-atomic-hexBinary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="6365NISTSchema-SV-IV-atomic-hexBinary-maxLength-3 tokoe:valid" result="pass"/><test-case name="6366NISTXML-SV-IV-atomic-hexBinary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="6367NISTXML-SV-IV-atomic-hexBinary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="6368NISTXML-SV-IV-atomic-hexBinary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="6369NISTXML-SV-IV-atomic-hexBinary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="6370NISTXML-SV-IV-atomic-hexBinary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="6371NISTSchema-SV-IV-atomic-hexBinary-maxLength-4 tokoe:valid" result="pass"/><test-case name="6372NISTXML-SV-IV-atomic-hexBinary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="6373NISTXML-SV-IV-atomic-hexBinary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="6374NISTXML-SV-IV-atomic-hexBinary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="6375NISTXML-SV-IV-atomic-hexBinary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="6376NISTXML-SV-IV-atomic-hexBinary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="6377NISTSchema-SV-IV-atomic-hexBinary-maxLength-5 tokoe:valid" result="pass"/><test-case name="6378NISTXML-SV-IV-atomic-hexBinary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="6379NISTXML-SV-IV-atomic-hexBinary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="6380NISTXML-SV-IV-atomic-hexBinary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="6381NISTXML-SV-IV-atomic-hexBinary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="6382NISTXML-SV-IV-atomic-hexBinary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="6383NISTSchema-SV-IV-atomic-hexBinary-minLength-1 tokoe:valid" result="pass"/><test-case name="6384NISTXML-SV-IV-atomic-hexBinary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="6385NISTXML-SV-IV-atomic-hexBinary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="6386NISTXML-SV-IV-atomic-hexBinary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="6387NISTXML-SV-IV-atomic-hexBinary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="6388NISTXML-SV-IV-atomic-hexBinary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="6389NISTSchema-SV-IV-atomic-hexBinary-minLength-2 tokoe:valid" result="pass"/><test-case name="6390NISTXML-SV-IV-atomic-hexBinary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="6391NISTXML-SV-IV-atomic-hexBinary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="6392NISTXML-SV-IV-atomic-hexBinary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="6393NISTXML-SV-IV-atomic-hexBinary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="6394NISTXML-SV-IV-atomic-hexBinary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="6395NISTSchema-SV-IV-atomic-hexBinary-minLength-3 tokoe:valid" result="pass"/><test-case name="6396NISTXML-SV-IV-atomic-hexBinary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="6397NISTXML-SV-IV-atomic-hexBinary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="6398NISTXML-SV-IV-atomic-hexBinary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="6399NISTXML-SV-IV-atomic-hexBinary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="6400NISTXML-SV-IV-atomic-hexBinary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="6401NISTSchema-SV-IV-atomic-hexBinary-minLength-4 tokoe:valid" result="pass"/><test-case name="6402NISTXML-SV-IV-atomic-hexBinary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="6403NISTXML-SV-IV-atomic-hexBinary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="6404NISTXML-SV-IV-atomic-hexBinary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="6405NISTXML-SV-IV-atomic-hexBinary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="6406NISTXML-SV-IV-atomic-hexBinary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="6407NISTSchema-SV-IV-atomic-hexBinary-minLength-5 tokoe:valid" result="pass"/><test-case name="6408NISTXML-SV-IV-atomic-hexBinary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="6409NISTXML-SV-IV-atomic-hexBinary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="6410NISTXML-SV-IV-atomic-hexBinary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="6411NISTXML-SV-IV-atomic-hexBinary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="6412NISTXML-SV-IV-atomic-hexBinary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="6413NISTSchema-SV-IV-atomic-hexBinary-length-1 tokoe:valid" result="pass"/><test-case name="6414NISTXML-SV-IV-atomic-hexBinary-length-1-1 tokoe:valid" result="pass"/><test-case name="6415NISTXML-SV-IV-atomic-hexBinary-length-1-2 tokoe:valid" result="pass"/><test-case name="6416NISTXML-SV-IV-atomic-hexBinary-length-1-3 tokoe:valid" result="pass"/><test-case name="6417NISTXML-SV-IV-atomic-hexBinary-length-1-4 tokoe:valid" result="pass"/><test-case name="6418NISTXML-SV-IV-atomic-hexBinary-length-1-5 tokoe:valid" result="pass"/><test-case name="6419NISTSchema-SV-IV-atomic-hexBinary-length-2 tokoe:valid" result="pass"/><test-case name="6420NISTXML-SV-IV-atomic-hexBinary-length-2-1 tokoe:valid" result="pass"/><test-case name="6421NISTXML-SV-IV-atomic-hexBinary-length-2-2 tokoe:valid" result="pass"/><test-case name="6422NISTXML-SV-IV-atomic-hexBinary-length-2-3 tokoe:valid" result="pass"/><test-case name="6423NISTXML-SV-IV-atomic-hexBinary-length-2-4 tokoe:valid" result="pass"/><test-case name="6424NISTXML-SV-IV-atomic-hexBinary-length-2-5 tokoe:valid" result="pass"/><test-case name="6425NISTSchema-SV-IV-atomic-hexBinary-length-3 tokoe:valid" result="pass"/><test-case name="6426NISTXML-SV-IV-atomic-hexBinary-length-3-1 tokoe:valid" result="pass"/><test-case name="6427NISTXML-SV-IV-atomic-hexBinary-length-3-2 tokoe:valid" result="pass"/><test-case name="6428NISTXML-SV-IV-atomic-hexBinary-length-3-3 tokoe:valid" result="pass"/><test-case name="6429NISTXML-SV-IV-atomic-hexBinary-length-3-4 tokoe:valid" result="pass"/><test-case name="6430NISTXML-SV-IV-atomic-hexBinary-length-3-5 tokoe:valid" result="pass"/><test-case name="6431NISTSchema-SV-IV-atomic-hexBinary-length-4 tokoe:valid" result="pass"/><test-case name="6432NISTXML-SV-IV-atomic-hexBinary-length-4-1 tokoe:valid" result="pass"/><test-case name="6433NISTXML-SV-IV-atomic-hexBinary-length-4-2 tokoe:valid" result="pass"/><test-case name="6434NISTXML-SV-IV-atomic-hexBinary-length-4-3 tokoe:valid" result="pass"/><test-case name="6435NISTXML-SV-IV-atomic-hexBinary-length-4-4 tokoe:valid" result="pass"/><test-case name="6436NISTXML-SV-IV-atomic-hexBinary-length-4-5 tokoe:valid" result="pass"/><test-case name="6437NISTSchema-SV-IV-atomic-hexBinary-length-5 tokoe:valid" result="pass"/><test-case name="6438NISTXML-SV-IV-atomic-hexBinary-length-5-1 tokoe:valid" result="pass"/><test-case name="6439NISTXML-SV-IV-atomic-hexBinary-length-5-2 tokoe:valid" result="pass"/><test-case name="6440NISTXML-SV-IV-atomic-hexBinary-length-5-3 tokoe:valid" result="pass"/><test-case name="6441NISTXML-SV-IV-atomic-hexBinary-length-5-4 tokoe:valid" result="pass"/><test-case name="6442NISTXML-SV-IV-atomic-hexBinary-length-5-5 tokoe:valid" result="pass"/><test-case name="6443NISTSchema-SV-IV-atomic-hexBinary-pattern-1 tokoe:valid" result="pass"/><test-case name="6444NISTXML-SV-IV-atomic-hexBinary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="6445NISTXML-SV-IV-atomic-hexBinary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="6446NISTXML-SV-IV-atomic-hexBinary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="6447NISTXML-SV-IV-atomic-hexBinary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="6448NISTXML-SV-IV-atomic-hexBinary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="6449NISTSchema-SV-IV-atomic-hexBinary-pattern-2 tokoe:valid" result="pass"/><test-case name="6450NISTXML-SV-IV-atomic-hexBinary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="6451NISTXML-SV-IV-atomic-hexBinary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="6452NISTXML-SV-IV-atomic-hexBinary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="6453NISTXML-SV-IV-atomic-hexBinary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="6454NISTXML-SV-IV-atomic-hexBinary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="6455NISTSchema-SV-IV-atomic-hexBinary-pattern-3 tokoe:valid" result="pass"/><test-case name="6456NISTXML-SV-IV-atomic-hexBinary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="6457NISTXML-SV-IV-atomic-hexBinary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="6458NISTXML-SV-IV-atomic-hexBinary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="6459NISTXML-SV-IV-atomic-hexBinary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="6460NISTXML-SV-IV-atomic-hexBinary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="6461NISTSchema-SV-IV-atomic-hexBinary-pattern-4 tokoe:valid" result="pass"/><test-case name="6462NISTXML-SV-IV-atomic-hexBinary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="6463NISTXML-SV-IV-atomic-hexBinary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="6464NISTXML-SV-IV-atomic-hexBinary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="6465NISTXML-SV-IV-atomic-hexBinary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="6466NISTXML-SV-IV-atomic-hexBinary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="6467NISTSchema-SV-IV-atomic-hexBinary-pattern-5 tokoe:valid" result="pass"/><test-case name="6468NISTXML-SV-IV-atomic-hexBinary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="6469NISTXML-SV-IV-atomic-hexBinary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="6470NISTXML-SV-IV-atomic-hexBinary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="6471NISTXML-SV-IV-atomic-hexBinary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="6472NISTXML-SV-IV-atomic-hexBinary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="6473NISTSchema-SV-IV-atomic-hexBinary-enumeration-1 tokoe:valid" result="pass"/><test-case name="6474NISTXML-SV-IV-atomic-hexBinary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="6475NISTXML-SV-IV-atomic-hexBinary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="6476NISTXML-SV-IV-atomic-hexBinary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="6477NISTXML-SV-IV-atomic-hexBinary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="6478NISTXML-SV-IV-atomic-hexBinary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="6479NISTSchema-SV-IV-atomic-hexBinary-enumeration-2 tokoe:valid" result="pass"/><test-case name="6480NISTXML-SV-IV-atomic-hexBinary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="6481NISTXML-SV-IV-atomic-hexBinary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="6482NISTXML-SV-IV-atomic-hexBinary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="6483NISTXML-SV-IV-atomic-hexBinary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="6484NISTXML-SV-IV-atomic-hexBinary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="6485NISTSchema-SV-IV-atomic-hexBinary-enumeration-3 tokoe:valid" result="pass"/><test-case name="6486NISTXML-SV-IV-atomic-hexBinary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="6487NISTXML-SV-IV-atomic-hexBinary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="6488NISTXML-SV-IV-atomic-hexBinary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="6489NISTXML-SV-IV-atomic-hexBinary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="6490NISTXML-SV-IV-atomic-hexBinary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="6491NISTSchema-SV-IV-atomic-hexBinary-enumeration-4 tokoe:valid" result="pass"/><test-case name="6492NISTXML-SV-IV-atomic-hexBinary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="6493NISTXML-SV-IV-atomic-hexBinary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="6494NISTXML-SV-IV-atomic-hexBinary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="6495NISTXML-SV-IV-atomic-hexBinary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="6496NISTXML-SV-IV-atomic-hexBinary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="6497NISTSchema-SV-IV-atomic-hexBinary-enumeration-5 tokoe:valid" result="pass"/><test-case name="6498NISTXML-SV-IV-atomic-hexBinary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="6499NISTXML-SV-IV-atomic-hexBinary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="6500NISTXML-SV-IV-atomic-hexBinary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="6501NISTXML-SV-IV-atomic-hexBinary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="6502NISTXML-SV-IV-atomic-hexBinary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="6503NISTSchema-SV-IV-atomic-hexBinary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="6504NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="6505NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="6506NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="6507NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="6508NISTXML-SV-IV-atomic-hexBinary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="6509NISTSchema-SV-II-atomic-double-pattern-1 tokoe:valid" result="pass"/><test-case name="6510NISTXML-SV-II-atomic-double-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="6511NISTXML-SV-II-atomic-double-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="6512NISTXML-SV-II-atomic-double-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="6513NISTXML-SV-II-atomic-double-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="6514NISTXML-SV-II-atomic-double-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="6515NISTSchema-SV-II-atomic-double-pattern-2 tokoe:valid" result="pass"/><test-case name="6516NISTXML-SV-II-atomic-double-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="6517NISTXML-SV-II-atomic-double-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="6518NISTXML-SV-II-atomic-double-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="6519NISTXML-SV-II-atomic-double-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="6520NISTXML-SV-II-atomic-double-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="6521NISTSchema-SV-II-atomic-double-pattern-3 tokoe:valid" result="pass"/><test-case name="6522NISTXML-SV-II-atomic-double-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="6523NISTXML-SV-II-atomic-double-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="6524NISTXML-SV-II-atomic-double-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="6525NISTXML-SV-II-atomic-double-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="6526NISTXML-SV-II-atomic-double-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="6527NISTSchema-SV-II-atomic-double-pattern-4 tokoe:valid" result="pass"/><test-case name="6528NISTXML-SV-II-atomic-double-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="6529NISTXML-SV-II-atomic-double-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="6530NISTXML-SV-II-atomic-double-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="6531NISTXML-SV-II-atomic-double-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="6532NISTXML-SV-II-atomic-double-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="6533NISTSchema-SV-II-atomic-double-pattern-5 tokoe:valid" result="pass"/><test-case name="6534NISTXML-SV-II-atomic-double-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="6535NISTXML-SV-II-atomic-double-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="6536NISTXML-SV-II-atomic-double-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="6537NISTXML-SV-II-atomic-double-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="6538NISTXML-SV-II-atomic-double-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="6539NISTSchema-SV-II-atomic-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="6540NISTXML-SV-II-atomic-double-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="6541NISTXML-SV-II-atomic-double-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="6542NISTXML-SV-II-atomic-double-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="6543NISTXML-SV-II-atomic-double-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="6544NISTXML-SV-II-atomic-double-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="6545NISTSchema-SV-II-atomic-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="6546NISTXML-SV-II-atomic-double-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="6547NISTXML-SV-II-atomic-double-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="6548NISTXML-SV-II-atomic-double-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="6549NISTXML-SV-II-atomic-double-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="6550NISTXML-SV-II-atomic-double-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="6551NISTSchema-SV-II-atomic-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="6552NISTXML-SV-II-atomic-double-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="6553NISTXML-SV-II-atomic-double-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="6554NISTXML-SV-II-atomic-double-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="6555NISTXML-SV-II-atomic-double-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="6556NISTXML-SV-II-atomic-double-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="6557NISTSchema-SV-II-atomic-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="6558NISTXML-SV-II-atomic-double-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="6559NISTXML-SV-II-atomic-double-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="6560NISTXML-SV-II-atomic-double-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="6561NISTXML-SV-II-atomic-double-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="6562NISTXML-SV-II-atomic-double-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="6563NISTSchema-SV-II-atomic-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="6564NISTXML-SV-II-atomic-double-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="6565NISTXML-SV-II-atomic-double-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="6566NISTXML-SV-II-atomic-double-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="6567NISTXML-SV-II-atomic-double-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="6568NISTXML-SV-II-atomic-double-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="6569NISTSchema-SV-II-atomic-float-pattern-1 tokoe:valid" result="pass"/><test-case name="6570NISTXML-SV-II-atomic-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="6571NISTXML-SV-II-atomic-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="6572NISTXML-SV-II-atomic-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="6573NISTXML-SV-II-atomic-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="6574NISTXML-SV-II-atomic-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="6575NISTSchema-SV-II-atomic-float-pattern-2 tokoe:valid" result="pass"/><test-case name="6576NISTXML-SV-II-atomic-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="6577NISTXML-SV-II-atomic-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="6578NISTXML-SV-II-atomic-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="6579NISTXML-SV-II-atomic-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="6580NISTXML-SV-II-atomic-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="6581NISTSchema-SV-II-atomic-float-pattern-3 tokoe:valid" result="pass"/><test-case name="6582NISTXML-SV-II-atomic-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="6583NISTXML-SV-II-atomic-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="6584NISTXML-SV-II-atomic-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="6585NISTXML-SV-II-atomic-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="6586NISTXML-SV-II-atomic-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="6587NISTSchema-SV-II-atomic-float-pattern-4 tokoe:valid" result="pass"/><test-case name="6588NISTXML-SV-II-atomic-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="6589NISTXML-SV-II-atomic-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="6590NISTXML-SV-II-atomic-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="6591NISTXML-SV-II-atomic-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="6592NISTXML-SV-II-atomic-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="6593NISTSchema-SV-II-atomic-float-pattern-5 tokoe:valid" result="pass"/><test-case name="6594NISTXML-SV-II-atomic-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="6595NISTXML-SV-II-atomic-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="6596NISTXML-SV-II-atomic-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="6597NISTXML-SV-II-atomic-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="6598NISTXML-SV-II-atomic-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="6599NISTSchema-SV-II-atomic-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="6600NISTXML-SV-II-atomic-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="6601NISTXML-SV-II-atomic-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="6602NISTXML-SV-II-atomic-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="6603NISTXML-SV-II-atomic-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="6604NISTXML-SV-II-atomic-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="6605NISTSchema-SV-II-atomic-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="6606NISTXML-SV-II-atomic-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="6607NISTXML-SV-II-atomic-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="6608NISTXML-SV-II-atomic-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="6609NISTXML-SV-II-atomic-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="6610NISTXML-SV-II-atomic-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="6611NISTSchema-SV-II-atomic-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="6612NISTXML-SV-II-atomic-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="6613NISTXML-SV-II-atomic-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="6614NISTXML-SV-II-atomic-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="6615NISTXML-SV-II-atomic-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="6616NISTXML-SV-II-atomic-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="6617NISTSchema-SV-II-atomic-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="6618NISTXML-SV-II-atomic-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="6619NISTXML-SV-II-atomic-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="6620NISTXML-SV-II-atomic-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="6621NISTXML-SV-II-atomic-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="6622NISTXML-SV-II-atomic-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="6623NISTSchema-SV-II-atomic-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="6624NISTXML-SV-II-atomic-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="6625NISTXML-SV-II-atomic-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="6626NISTXML-SV-II-atomic-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="6627NISTXML-SV-II-atomic-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="6628NISTXML-SV-II-atomic-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="6629NISTSchema-SV-II-atomic-decimal-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6630NISTXML-SV-II-atomic-decimal-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6631NISTXML-SV-II-atomic-decimal-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6632NISTXML-SV-II-atomic-decimal-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6633NISTXML-SV-II-atomic-decimal-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6634NISTXML-SV-II-atomic-decimal-minInclusive-2-5 tokoe:invalid" result="fail"/><test-case name="6635NISTSchema-SV-II-atomic-decimal-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6636NISTXML-SV-II-atomic-decimal-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6637NISTXML-SV-II-atomic-decimal-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6638NISTXML-SV-II-atomic-decimal-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6639NISTXML-SV-II-atomic-decimal-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6640NISTXML-SV-II-atomic-decimal-minInclusive-3-5 tokoe:invalid" result="fail"/><test-case name="6641NISTSchema-SV-II-atomic-decimal-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6642NISTXML-SV-II-atomic-decimal-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6643NISTXML-SV-II-atomic-decimal-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6644NISTXML-SV-II-atomic-decimal-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6645NISTXML-SV-II-atomic-decimal-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6646NISTXML-SV-II-atomic-decimal-minInclusive-4-5 tokoe:invalid" result="fail"/><test-case name="6647NISTSchema-SV-II-atomic-decimal-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6648NISTXML-SV-II-atomic-decimal-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6649NISTXML-SV-II-atomic-decimal-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6650NISTXML-SV-II-atomic-decimal-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6651NISTXML-SV-II-atomic-decimal-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6652NISTXML-SV-II-atomic-decimal-minInclusive-5-5 tokoe:invalid" result="fail"/><test-case name="6653NISTSchema-SV-II-atomic-decimal-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6654NISTXML-SV-II-atomic-decimal-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6655NISTXML-SV-II-atomic-decimal-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6656NISTXML-SV-II-atomic-decimal-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6657NISTXML-SV-II-atomic-decimal-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6658NISTXML-SV-II-atomic-decimal-minInclusive-6-5 tokoe:invalid" result="fail"/><test-case name="6659NISTSchema-SV-II-atomic-decimal-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6660NISTXML-SV-II-atomic-decimal-maxInclusive-1-1 tokoe:invalid" result="fail"/><test-case name="6661NISTXML-SV-II-atomic-decimal-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6662NISTXML-SV-II-atomic-decimal-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6663NISTXML-SV-II-atomic-decimal-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6664NISTXML-SV-II-atomic-decimal-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6665NISTSchema-SV-II-atomic-decimal-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6666NISTXML-SV-II-atomic-decimal-maxInclusive-2-1 tokoe:invalid" result="fail"/><test-case name="6667NISTXML-SV-II-atomic-decimal-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6668NISTXML-SV-II-atomic-decimal-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6669NISTXML-SV-II-atomic-decimal-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6670NISTXML-SV-II-atomic-decimal-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6671NISTSchema-SV-II-atomic-decimal-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6672NISTXML-SV-II-atomic-decimal-maxInclusive-3-1 tokoe:invalid" result="fail"/><test-case name="6673NISTXML-SV-II-atomic-decimal-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6674NISTXML-SV-II-atomic-decimal-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6675NISTXML-SV-II-atomic-decimal-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6676NISTXML-SV-II-atomic-decimal-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6677NISTSchema-SV-II-atomic-decimal-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6678NISTXML-SV-II-atomic-decimal-maxInclusive-4-1 tokoe:invalid" result="fail"/><test-case name="6679NISTXML-SV-II-atomic-decimal-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6680NISTXML-SV-II-atomic-decimal-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6681NISTXML-SV-II-atomic-decimal-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6682NISTXML-SV-II-atomic-decimal-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6683NISTSchema-SV-II-atomic-decimal-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6684NISTXML-SV-II-atomic-decimal-maxInclusive-5-1 tokoe:invalid" result="fail"/><test-case name="6685NISTXML-SV-II-atomic-decimal-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6686NISTXML-SV-II-atomic-decimal-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6687NISTXML-SV-II-atomic-decimal-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6688NISTXML-SV-II-atomic-decimal-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6689NISTSchema-SV-II-atomic-decimal-fractionDigits-1 tokoe:valid" result="pass"/><test-case name="6690NISTXML-SV-II-atomic-decimal-fractionDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6691NISTXML-SV-II-atomic-decimal-fractionDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6692NISTXML-SV-II-atomic-decimal-fractionDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6693NISTXML-SV-II-atomic-decimal-fractionDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6694NISTXML-SV-II-atomic-decimal-fractionDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6695NISTSchema-SV-II-atomic-decimal-fractionDigits-2 tokoe:valid" result="pass"/><test-case name="6696NISTXML-SV-II-atomic-decimal-fractionDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6697NISTXML-SV-II-atomic-decimal-fractionDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6698NISTXML-SV-II-atomic-decimal-fractionDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6699NISTXML-SV-II-atomic-decimal-fractionDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6700NISTXML-SV-II-atomic-decimal-fractionDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6701NISTSchema-SV-II-atomic-decimal-fractionDigits-3 tokoe:valid" result="pass"/><test-case name="6702NISTXML-SV-II-atomic-decimal-fractionDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6703NISTXML-SV-II-atomic-decimal-fractionDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6704NISTXML-SV-II-atomic-decimal-fractionDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6705NISTXML-SV-II-atomic-decimal-fractionDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6706NISTXML-SV-II-atomic-decimal-fractionDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6707NISTSchema-SV-II-atomic-decimal-fractionDigits-4 tokoe:valid" result="pass"/><test-case name="6708NISTXML-SV-II-atomic-decimal-fractionDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6709NISTXML-SV-II-atomic-decimal-fractionDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6710NISTXML-SV-II-atomic-decimal-fractionDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6711NISTXML-SV-II-atomic-decimal-fractionDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6712NISTXML-SV-II-atomic-decimal-fractionDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6713NISTSchema-SV-II-atomic-decimal-fractionDigits-5 tokoe:valid" result="pass"/><test-case name="6714NISTXML-SV-II-atomic-decimal-fractionDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6715NISTXML-SV-II-atomic-decimal-fractionDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6716NISTXML-SV-II-atomic-decimal-fractionDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6717NISTXML-SV-II-atomic-decimal-fractionDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6718NISTXML-SV-II-atomic-decimal-fractionDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6719NISTSchema-SV-II-atomic-decimal-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6720NISTXML-SV-II-atomic-decimal-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6721NISTXML-SV-II-atomic-decimal-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6722NISTXML-SV-II-atomic-decimal-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6723NISTXML-SV-II-atomic-decimal-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6724NISTXML-SV-II-atomic-decimal-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6725NISTSchema-SV-II-atomic-decimal-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6726NISTXML-SV-II-atomic-decimal-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6727NISTXML-SV-II-atomic-decimal-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6728NISTXML-SV-II-atomic-decimal-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6729NISTXML-SV-II-atomic-decimal-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6730NISTXML-SV-II-atomic-decimal-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6731NISTSchema-SV-II-atomic-decimal-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6732NISTXML-SV-II-atomic-decimal-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6733NISTXML-SV-II-atomic-decimal-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6734NISTXML-SV-II-atomic-decimal-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6735NISTXML-SV-II-atomic-decimal-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6736NISTXML-SV-II-atomic-decimal-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6737NISTSchema-SV-II-atomic-decimal-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6738NISTXML-SV-II-atomic-decimal-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6739NISTXML-SV-II-atomic-decimal-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6740NISTXML-SV-II-atomic-decimal-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6741NISTXML-SV-II-atomic-decimal-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6742NISTXML-SV-II-atomic-decimal-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6743NISTSchema-SV-II-atomic-decimal-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6744NISTXML-SV-II-atomic-decimal-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6745NISTXML-SV-II-atomic-decimal-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6746NISTXML-SV-II-atomic-decimal-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6747NISTXML-SV-II-atomic-decimal-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6748NISTXML-SV-II-atomic-decimal-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6749NISTSchema-SV-II-atomic-integer-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6750NISTXML-SV-II-atomic-integer-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6751NISTXML-SV-II-atomic-integer-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6752NISTXML-SV-II-atomic-integer-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6753NISTXML-SV-II-atomic-integer-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6754NISTXML-SV-II-atomic-integer-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6755NISTSchema-SV-II-atomic-integer-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6756NISTXML-SV-II-atomic-integer-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6757NISTXML-SV-II-atomic-integer-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6758NISTXML-SV-II-atomic-integer-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6759NISTXML-SV-II-atomic-integer-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6760NISTXML-SV-II-atomic-integer-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6761NISTSchema-SV-II-atomic-integer-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6762NISTXML-SV-II-atomic-integer-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6763NISTXML-SV-II-atomic-integer-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6764NISTXML-SV-II-atomic-integer-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6765NISTXML-SV-II-atomic-integer-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6766NISTXML-SV-II-atomic-integer-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6767NISTSchema-SV-II-atomic-integer-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6768NISTXML-SV-II-atomic-integer-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6769NISTXML-SV-II-atomic-integer-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6770NISTXML-SV-II-atomic-integer-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6771NISTXML-SV-II-atomic-integer-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6772NISTXML-SV-II-atomic-integer-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6773NISTSchema-SV-II-atomic-integer-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6774NISTXML-SV-II-atomic-integer-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6775NISTXML-SV-II-atomic-integer-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6776NISTXML-SV-II-atomic-integer-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6777NISTXML-SV-II-atomic-integer-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6778NISTXML-SV-II-atomic-integer-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6779NISTSchema-SV-II-atomic-integer-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6780NISTXML-SV-II-atomic-integer-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6781NISTXML-SV-II-atomic-integer-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6782NISTXML-SV-II-atomic-integer-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6783NISTXML-SV-II-atomic-integer-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6784NISTXML-SV-II-atomic-integer-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6785NISTSchema-SV-II-atomic-integer-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6786NISTXML-SV-II-atomic-integer-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6787NISTXML-SV-II-atomic-integer-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6788NISTXML-SV-II-atomic-integer-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6789NISTXML-SV-II-atomic-integer-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6790NISTXML-SV-II-atomic-integer-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6791NISTSchema-SV-II-atomic-integer-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6792NISTXML-SV-II-atomic-integer-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6793NISTXML-SV-II-atomic-integer-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6794NISTXML-SV-II-atomic-integer-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6795NISTXML-SV-II-atomic-integer-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6796NISTXML-SV-II-atomic-integer-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6797NISTSchema-SV-II-atomic-integer-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6798NISTXML-SV-II-atomic-integer-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6799NISTXML-SV-II-atomic-integer-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6800NISTXML-SV-II-atomic-integer-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6801NISTXML-SV-II-atomic-integer-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6802NISTXML-SV-II-atomic-integer-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6803NISTSchema-SV-II-atomic-integer-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6804NISTXML-SV-II-atomic-integer-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6805NISTXML-SV-II-atomic-integer-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6806NISTXML-SV-II-atomic-integer-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6807NISTXML-SV-II-atomic-integer-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6808NISTXML-SV-II-atomic-integer-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6809NISTSchema-SV-II-atomic-integer-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6810NISTXML-SV-II-atomic-integer-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6811NISTXML-SV-II-atomic-integer-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6812NISTXML-SV-II-atomic-integer-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6813NISTXML-SV-II-atomic-integer-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6814NISTXML-SV-II-atomic-integer-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6815NISTSchema-SV-II-atomic-integer-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6816NISTXML-SV-II-atomic-integer-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6817NISTXML-SV-II-atomic-integer-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6818NISTXML-SV-II-atomic-integer-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6819NISTXML-SV-II-atomic-integer-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6820NISTXML-SV-II-atomic-integer-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6821NISTSchema-SV-II-atomic-integer-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6822NISTXML-SV-II-atomic-integer-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6823NISTXML-SV-II-atomic-integer-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6824NISTXML-SV-II-atomic-integer-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6825NISTXML-SV-II-atomic-integer-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6826NISTXML-SV-II-atomic-integer-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6827NISTSchema-SV-II-atomic-integer-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6828NISTXML-SV-II-atomic-integer-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6829NISTXML-SV-II-atomic-integer-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6830NISTXML-SV-II-atomic-integer-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6831NISTXML-SV-II-atomic-integer-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6832NISTXML-SV-II-atomic-integer-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6833NISTSchema-SV-II-atomic-integer-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6834NISTXML-SV-II-atomic-integer-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6835NISTXML-SV-II-atomic-integer-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6836NISTXML-SV-II-atomic-integer-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6837NISTXML-SV-II-atomic-integer-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6838NISTXML-SV-II-atomic-integer-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6839NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6840NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6841NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6842NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6843NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6844NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6845NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6846NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6847NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6848NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6849NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6850NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6851NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6852NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6853NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6854NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6855NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6856NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6857NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6858NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6859NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6860NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6861NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6862NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6863NISTSchema-SV-II-atomic-nonPositiveInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6864NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6865NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6866NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6867NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6868NISTXML-SV-II-atomic-nonPositiveInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6869NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6870NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6871NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6872NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6873NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6874NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6875NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6876NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6877NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6878NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6879NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6880NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6881NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6882NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6883NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6884NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6885NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6886NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6887NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6888NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6889NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6890NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6891NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6892NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6893NISTSchema-SV-II-atomic-nonPositiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6894NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6895NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6896NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6897NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6898NISTXML-SV-II-atomic-nonPositiveInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6899NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6900NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6901NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6902NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6903NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6904NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6905NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6906NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6907NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6908NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6909NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="6910NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="6911NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="6912NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="6913NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="6914NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="6915NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="6916NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="6917NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="6918NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="6919NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="6920NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="6921NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="6922NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="6923NISTSchema-SV-II-atomic-nonPositiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="6924NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="6925NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="6926NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="6927NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="6928NISTXML-SV-II-atomic-nonPositiveInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="6929NISTSchema-SV-II-atomic-negativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="6930NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6931NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6932NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6933NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6934NISTXML-SV-II-atomic-negativeInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6935NISTSchema-SV-II-atomic-negativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="6936NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6937NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6938NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6939NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6940NISTXML-SV-II-atomic-negativeInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6941NISTSchema-SV-II-atomic-negativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="6942NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6943NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6944NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6945NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6946NISTXML-SV-II-atomic-negativeInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6947NISTSchema-SV-II-atomic-negativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="6948NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6949NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6950NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6951NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6952NISTXML-SV-II-atomic-negativeInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6953NISTSchema-SV-II-atomic-negativeInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="6954NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="6955NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="6956NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="6957NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="6958NISTXML-SV-II-atomic-negativeInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="6959NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="6960NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="6961NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="6962NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="6963NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="6964NISTXML-SV-II-atomic-negativeInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="6965NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="6966NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="6967NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="6968NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="6969NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="6970NISTXML-SV-II-atomic-negativeInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="6971NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="6972NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="6973NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="6974NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="6975NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="6976NISTXML-SV-II-atomic-negativeInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="6977NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="6978NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="6979NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="6980NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="6981NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="6982NISTXML-SV-II-atomic-negativeInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="6983NISTSchema-SV-II-atomic-negativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="6984NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="6985NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="6986NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="6987NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="6988NISTXML-SV-II-atomic-negativeInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="6989NISTSchema-SV-II-atomic-negativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="6990NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="6991NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="6992NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="6993NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="6994NISTXML-SV-II-atomic-negativeInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="6995NISTSchema-SV-II-atomic-negativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="6996NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="6997NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="6998NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="6999NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7000NISTXML-SV-II-atomic-negativeInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7001NISTSchema-SV-II-atomic-negativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7002NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7003NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7004NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7005NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7006NISTXML-SV-II-atomic-negativeInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7007NISTSchema-SV-II-atomic-negativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7008NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7009NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7010NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7011NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7012NISTXML-SV-II-atomic-negativeInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7013NISTSchema-SV-II-atomic-negativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7014NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7015NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7016NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7017NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7018NISTXML-SV-II-atomic-negativeInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7019NISTSchema-SV-II-atomic-long-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7020NISTXML-SV-II-atomic-long-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7021NISTXML-SV-II-atomic-long-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7022NISTXML-SV-II-atomic-long-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7023NISTXML-SV-II-atomic-long-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7024NISTXML-SV-II-atomic-long-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7025NISTSchema-SV-II-atomic-long-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7026NISTXML-SV-II-atomic-long-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7027NISTXML-SV-II-atomic-long-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7028NISTXML-SV-II-atomic-long-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7029NISTXML-SV-II-atomic-long-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7030NISTXML-SV-II-atomic-long-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7031NISTSchema-SV-II-atomic-long-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7032NISTXML-SV-II-atomic-long-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7033NISTXML-SV-II-atomic-long-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7034NISTXML-SV-II-atomic-long-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7035NISTXML-SV-II-atomic-long-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7036NISTXML-SV-II-atomic-long-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7037NISTSchema-SV-II-atomic-long-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7038NISTXML-SV-II-atomic-long-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7039NISTXML-SV-II-atomic-long-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7040NISTXML-SV-II-atomic-long-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7041NISTXML-SV-II-atomic-long-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7042NISTXML-SV-II-atomic-long-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7043NISTSchema-SV-II-atomic-long-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7044NISTXML-SV-II-atomic-long-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7045NISTXML-SV-II-atomic-long-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7046NISTXML-SV-II-atomic-long-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7047NISTXML-SV-II-atomic-long-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7048NISTXML-SV-II-atomic-long-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7049NISTSchema-SV-II-atomic-long-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7050NISTXML-SV-II-atomic-long-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7051NISTXML-SV-II-atomic-long-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7052NISTXML-SV-II-atomic-long-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7053NISTXML-SV-II-atomic-long-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7054NISTXML-SV-II-atomic-long-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7055NISTSchema-SV-II-atomic-long-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7056NISTXML-SV-II-atomic-long-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7057NISTXML-SV-II-atomic-long-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7058NISTXML-SV-II-atomic-long-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7059NISTXML-SV-II-atomic-long-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7060NISTXML-SV-II-atomic-long-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7061NISTSchema-SV-II-atomic-long-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7062NISTXML-SV-II-atomic-long-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7063NISTXML-SV-II-atomic-long-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7064NISTXML-SV-II-atomic-long-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7065NISTXML-SV-II-atomic-long-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7066NISTXML-SV-II-atomic-long-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7067NISTSchema-SV-II-atomic-long-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7068NISTXML-SV-II-atomic-long-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7069NISTXML-SV-II-atomic-long-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7070NISTXML-SV-II-atomic-long-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7071NISTXML-SV-II-atomic-long-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7072NISTXML-SV-II-atomic-long-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7073NISTSchema-SV-II-atomic-long-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7074NISTXML-SV-II-atomic-long-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7075NISTXML-SV-II-atomic-long-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7076NISTXML-SV-II-atomic-long-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7077NISTXML-SV-II-atomic-long-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7078NISTXML-SV-II-atomic-long-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7079NISTSchema-SV-II-atomic-long-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7080NISTXML-SV-II-atomic-long-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7081NISTXML-SV-II-atomic-long-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7082NISTXML-SV-II-atomic-long-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7083NISTXML-SV-II-atomic-long-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7084NISTXML-SV-II-atomic-long-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7085NISTSchema-SV-II-atomic-long-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7086NISTXML-SV-II-atomic-long-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7087NISTXML-SV-II-atomic-long-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7088NISTXML-SV-II-atomic-long-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7089NISTXML-SV-II-atomic-long-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7090NISTXML-SV-II-atomic-long-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7091NISTSchema-SV-II-atomic-long-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7092NISTXML-SV-II-atomic-long-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7093NISTXML-SV-II-atomic-long-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7094NISTXML-SV-II-atomic-long-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7095NISTXML-SV-II-atomic-long-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7096NISTXML-SV-II-atomic-long-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7097NISTSchema-SV-II-atomic-long-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7098NISTXML-SV-II-atomic-long-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7099NISTXML-SV-II-atomic-long-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7100NISTXML-SV-II-atomic-long-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7101NISTXML-SV-II-atomic-long-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7102NISTXML-SV-II-atomic-long-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7103NISTSchema-SV-II-atomic-long-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7104NISTXML-SV-II-atomic-long-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7105NISTXML-SV-II-atomic-long-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7106NISTXML-SV-II-atomic-long-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7107NISTXML-SV-II-atomic-long-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7108NISTXML-SV-II-atomic-long-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7109NISTSchema-SV-II-atomic-int-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7110NISTXML-SV-II-atomic-int-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7111NISTXML-SV-II-atomic-int-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7112NISTXML-SV-II-atomic-int-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7113NISTXML-SV-II-atomic-int-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7114NISTXML-SV-II-atomic-int-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7115NISTSchema-SV-II-atomic-int-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7116NISTXML-SV-II-atomic-int-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7117NISTXML-SV-II-atomic-int-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7118NISTXML-SV-II-atomic-int-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7119NISTXML-SV-II-atomic-int-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7120NISTXML-SV-II-atomic-int-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7121NISTSchema-SV-II-atomic-int-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7122NISTXML-SV-II-atomic-int-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7123NISTXML-SV-II-atomic-int-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7124NISTXML-SV-II-atomic-int-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7125NISTXML-SV-II-atomic-int-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7126NISTXML-SV-II-atomic-int-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7127NISTSchema-SV-II-atomic-int-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7128NISTXML-SV-II-atomic-int-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7129NISTXML-SV-II-atomic-int-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7130NISTXML-SV-II-atomic-int-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7131NISTXML-SV-II-atomic-int-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7132NISTXML-SV-II-atomic-int-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7133NISTSchema-SV-II-atomic-int-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7134NISTXML-SV-II-atomic-int-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7135NISTXML-SV-II-atomic-int-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7136NISTXML-SV-II-atomic-int-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7137NISTXML-SV-II-atomic-int-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7138NISTXML-SV-II-atomic-int-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7139NISTSchema-SV-II-atomic-int-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7140NISTXML-SV-II-atomic-int-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7141NISTXML-SV-II-atomic-int-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7142NISTXML-SV-II-atomic-int-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7143NISTXML-SV-II-atomic-int-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7144NISTXML-SV-II-atomic-int-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7145NISTSchema-SV-II-atomic-int-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7146NISTXML-SV-II-atomic-int-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7147NISTXML-SV-II-atomic-int-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7148NISTXML-SV-II-atomic-int-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7149NISTXML-SV-II-atomic-int-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7150NISTXML-SV-II-atomic-int-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7151NISTSchema-SV-II-atomic-int-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7152NISTXML-SV-II-atomic-int-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7153NISTXML-SV-II-atomic-int-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7154NISTXML-SV-II-atomic-int-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7155NISTXML-SV-II-atomic-int-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7156NISTXML-SV-II-atomic-int-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7157NISTSchema-SV-II-atomic-int-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7158NISTXML-SV-II-atomic-int-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7159NISTXML-SV-II-atomic-int-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7160NISTXML-SV-II-atomic-int-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7161NISTXML-SV-II-atomic-int-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7162NISTXML-SV-II-atomic-int-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7163NISTSchema-SV-II-atomic-int-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7164NISTXML-SV-II-atomic-int-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7165NISTXML-SV-II-atomic-int-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7166NISTXML-SV-II-atomic-int-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7167NISTXML-SV-II-atomic-int-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7168NISTXML-SV-II-atomic-int-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7169NISTSchema-SV-II-atomic-int-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7170NISTXML-SV-II-atomic-int-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7171NISTXML-SV-II-atomic-int-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7172NISTXML-SV-II-atomic-int-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7173NISTXML-SV-II-atomic-int-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7174NISTXML-SV-II-atomic-int-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7175NISTSchema-SV-II-atomic-int-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7176NISTXML-SV-II-atomic-int-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7177NISTXML-SV-II-atomic-int-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7178NISTXML-SV-II-atomic-int-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7179NISTXML-SV-II-atomic-int-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7180NISTXML-SV-II-atomic-int-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7181NISTSchema-SV-II-atomic-int-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7182NISTXML-SV-II-atomic-int-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7183NISTXML-SV-II-atomic-int-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7184NISTXML-SV-II-atomic-int-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7185NISTXML-SV-II-atomic-int-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7186NISTXML-SV-II-atomic-int-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7187NISTSchema-SV-II-atomic-int-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7188NISTXML-SV-II-atomic-int-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7189NISTXML-SV-II-atomic-int-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7190NISTXML-SV-II-atomic-int-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7191NISTXML-SV-II-atomic-int-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7192NISTXML-SV-II-atomic-int-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7193NISTSchema-SV-II-atomic-int-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7194NISTXML-SV-II-atomic-int-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7195NISTXML-SV-II-atomic-int-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7196NISTXML-SV-II-atomic-int-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7197NISTXML-SV-II-atomic-int-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7198NISTXML-SV-II-atomic-int-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7199NISTSchema-SV-II-atomic-short-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7200NISTXML-SV-II-atomic-short-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7201NISTXML-SV-II-atomic-short-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7202NISTXML-SV-II-atomic-short-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7203NISTXML-SV-II-atomic-short-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7204NISTXML-SV-II-atomic-short-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7205NISTSchema-SV-II-atomic-short-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7206NISTXML-SV-II-atomic-short-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7207NISTXML-SV-II-atomic-short-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7208NISTXML-SV-II-atomic-short-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7209NISTXML-SV-II-atomic-short-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7210NISTXML-SV-II-atomic-short-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7211NISTSchema-SV-II-atomic-short-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7212NISTXML-SV-II-atomic-short-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7213NISTXML-SV-II-atomic-short-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7214NISTXML-SV-II-atomic-short-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7215NISTXML-SV-II-atomic-short-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7216NISTXML-SV-II-atomic-short-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7217NISTSchema-SV-II-atomic-short-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7218NISTXML-SV-II-atomic-short-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7219NISTXML-SV-II-atomic-short-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7220NISTXML-SV-II-atomic-short-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7221NISTXML-SV-II-atomic-short-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7222NISTXML-SV-II-atomic-short-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7223NISTSchema-SV-II-atomic-short-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7224NISTXML-SV-II-atomic-short-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7225NISTXML-SV-II-atomic-short-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7226NISTXML-SV-II-atomic-short-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7227NISTXML-SV-II-atomic-short-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7228NISTXML-SV-II-atomic-short-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7229NISTSchema-SV-II-atomic-short-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7230NISTXML-SV-II-atomic-short-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7231NISTXML-SV-II-atomic-short-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7232NISTXML-SV-II-atomic-short-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7233NISTXML-SV-II-atomic-short-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7234NISTXML-SV-II-atomic-short-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7235NISTSchema-SV-II-atomic-short-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7236NISTXML-SV-II-atomic-short-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7237NISTXML-SV-II-atomic-short-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7238NISTXML-SV-II-atomic-short-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7239NISTXML-SV-II-atomic-short-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7240NISTXML-SV-II-atomic-short-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7241NISTSchema-SV-II-atomic-short-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7242NISTXML-SV-II-atomic-short-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7243NISTXML-SV-II-atomic-short-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7244NISTXML-SV-II-atomic-short-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7245NISTXML-SV-II-atomic-short-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7246NISTXML-SV-II-atomic-short-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7247NISTSchema-SV-II-atomic-short-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7248NISTXML-SV-II-atomic-short-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7249NISTXML-SV-II-atomic-short-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7250NISTXML-SV-II-atomic-short-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7251NISTXML-SV-II-atomic-short-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7252NISTXML-SV-II-atomic-short-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7253NISTSchema-SV-II-atomic-short-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7254NISTXML-SV-II-atomic-short-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7255NISTXML-SV-II-atomic-short-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7256NISTXML-SV-II-atomic-short-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7257NISTXML-SV-II-atomic-short-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7258NISTXML-SV-II-atomic-short-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7259NISTSchema-SV-II-atomic-short-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7260NISTXML-SV-II-atomic-short-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7261NISTXML-SV-II-atomic-short-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7262NISTXML-SV-II-atomic-short-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7263NISTXML-SV-II-atomic-short-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7264NISTXML-SV-II-atomic-short-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7265NISTSchema-SV-II-atomic-short-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7266NISTXML-SV-II-atomic-short-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7267NISTXML-SV-II-atomic-short-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7268NISTXML-SV-II-atomic-short-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7269NISTXML-SV-II-atomic-short-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7270NISTXML-SV-II-atomic-short-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7271NISTSchema-SV-II-atomic-short-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7272NISTXML-SV-II-atomic-short-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7273NISTXML-SV-II-atomic-short-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7274NISTXML-SV-II-atomic-short-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7275NISTXML-SV-II-atomic-short-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7276NISTXML-SV-II-atomic-short-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7277NISTSchema-SV-II-atomic-short-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7278NISTXML-SV-II-atomic-short-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7279NISTXML-SV-II-atomic-short-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7280NISTXML-SV-II-atomic-short-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7281NISTXML-SV-II-atomic-short-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7282NISTXML-SV-II-atomic-short-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7283NISTSchema-SV-II-atomic-byte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7284NISTXML-SV-II-atomic-byte-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7285NISTXML-SV-II-atomic-byte-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7286NISTXML-SV-II-atomic-byte-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7287NISTXML-SV-II-atomic-byte-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7288NISTXML-SV-II-atomic-byte-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7289NISTSchema-SV-II-atomic-byte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7290NISTXML-SV-II-atomic-byte-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7291NISTXML-SV-II-atomic-byte-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7292NISTXML-SV-II-atomic-byte-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7293NISTXML-SV-II-atomic-byte-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7294NISTXML-SV-II-atomic-byte-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7295NISTSchema-SV-II-atomic-byte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7296NISTXML-SV-II-atomic-byte-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7297NISTXML-SV-II-atomic-byte-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7298NISTXML-SV-II-atomic-byte-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7299NISTXML-SV-II-atomic-byte-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7300NISTXML-SV-II-atomic-byte-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7301NISTSchema-SV-II-atomic-byte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7302NISTXML-SV-II-atomic-byte-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7303NISTXML-SV-II-atomic-byte-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7304NISTXML-SV-II-atomic-byte-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7305NISTXML-SV-II-atomic-byte-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7306NISTXML-SV-II-atomic-byte-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7307NISTSchema-SV-II-atomic-byte-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7308NISTXML-SV-II-atomic-byte-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7309NISTXML-SV-II-atomic-byte-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7310NISTXML-SV-II-atomic-byte-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7311NISTXML-SV-II-atomic-byte-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7312NISTXML-SV-II-atomic-byte-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7313NISTSchema-SV-II-atomic-byte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7314NISTXML-SV-II-atomic-byte-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7315NISTXML-SV-II-atomic-byte-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7316NISTXML-SV-II-atomic-byte-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7317NISTXML-SV-II-atomic-byte-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7318NISTXML-SV-II-atomic-byte-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7319NISTSchema-SV-II-atomic-byte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7320NISTXML-SV-II-atomic-byte-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7321NISTXML-SV-II-atomic-byte-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7322NISTXML-SV-II-atomic-byte-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7323NISTXML-SV-II-atomic-byte-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7324NISTXML-SV-II-atomic-byte-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7325NISTSchema-SV-II-atomic-byte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7326NISTXML-SV-II-atomic-byte-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7327NISTXML-SV-II-atomic-byte-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7328NISTXML-SV-II-atomic-byte-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7329NISTXML-SV-II-atomic-byte-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7330NISTXML-SV-II-atomic-byte-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7331NISTSchema-SV-II-atomic-byte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7332NISTXML-SV-II-atomic-byte-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7333NISTXML-SV-II-atomic-byte-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7334NISTXML-SV-II-atomic-byte-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7335NISTXML-SV-II-atomic-byte-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7336NISTXML-SV-II-atomic-byte-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7337NISTSchema-SV-II-atomic-byte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7338NISTXML-SV-II-atomic-byte-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7339NISTXML-SV-II-atomic-byte-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7340NISTXML-SV-II-atomic-byte-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7341NISTXML-SV-II-atomic-byte-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7342NISTXML-SV-II-atomic-byte-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7343NISTSchema-SV-II-atomic-byte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7344NISTXML-SV-II-atomic-byte-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7345NISTXML-SV-II-atomic-byte-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7346NISTXML-SV-II-atomic-byte-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7347NISTXML-SV-II-atomic-byte-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7348NISTXML-SV-II-atomic-byte-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7349NISTSchema-SV-II-atomic-byte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7350NISTXML-SV-II-atomic-byte-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7351NISTXML-SV-II-atomic-byte-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7352NISTXML-SV-II-atomic-byte-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7353NISTXML-SV-II-atomic-byte-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7354NISTXML-SV-II-atomic-byte-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7355NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7356NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7357NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7358NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7359NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7360NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7361NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7362NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7363NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7364NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7365NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7366NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7367NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7368NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7369NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7370NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7371NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7372NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7373NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7374NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7375NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7376NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7377NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7378NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7379NISTSchema-SV-II-atomic-nonNegativeInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7380NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7381NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7382NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7383NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7384NISTXML-SV-II-atomic-nonNegativeInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7385NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7386NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7387NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7388NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7389NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7390NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7391NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7392NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7393NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7394NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7395NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7396NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7397NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7398NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7399NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7400NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7401NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7402NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7403NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7404NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7405NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7406NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7407NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7408NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7409NISTSchema-SV-II-atomic-nonNegativeInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7410NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7411NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7412NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7413NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7414NISTXML-SV-II-atomic-nonNegativeInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7415NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7416NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7417NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7418NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7419NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7420NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7421NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7422NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7423NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7424NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7425NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7426NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7427NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7428NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7429NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7430NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7431NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7432NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7433NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7434NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7435NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7436NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7437NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7438NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7439NISTSchema-SV-II-atomic-nonNegativeInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7440NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7441NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7442NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7443NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7444NISTXML-SV-II-atomic-nonNegativeInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7445NISTSchema-SV-II-atomic-unsignedLong-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7446NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7447NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7448NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7449NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7450NISTXML-SV-II-atomic-unsignedLong-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7451NISTSchema-SV-II-atomic-unsignedLong-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7452NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7453NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7454NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7455NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7456NISTXML-SV-II-atomic-unsignedLong-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7457NISTSchema-SV-II-atomic-unsignedLong-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7458NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7459NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7460NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7461NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7462NISTXML-SV-II-atomic-unsignedLong-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7463NISTSchema-SV-II-atomic-unsignedLong-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7464NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7465NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7466NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7467NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7468NISTXML-SV-II-atomic-unsignedLong-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7469NISTSchema-SV-II-atomic-unsignedLong-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7470NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7471NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7472NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7473NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7474NISTXML-SV-II-atomic-unsignedLong-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7475NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7476NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7477NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7478NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7479NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7480NISTXML-SV-II-atomic-unsignedLong-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7481NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7482NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7483NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7484NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7485NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7486NISTXML-SV-II-atomic-unsignedLong-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7487NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7488NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7489NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7490NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7491NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7492NISTXML-SV-II-atomic-unsignedLong-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7493NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7494NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7495NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7496NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7497NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7498NISTXML-SV-II-atomic-unsignedLong-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7499NISTSchema-SV-II-atomic-unsignedLong-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7500NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7501NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7502NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7503NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7504NISTXML-SV-II-atomic-unsignedLong-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7505NISTSchema-SV-II-atomic-unsignedLong-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7506NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7507NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7508NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7509NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7510NISTXML-SV-II-atomic-unsignedLong-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7511NISTSchema-SV-II-atomic-unsignedLong-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7512NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7513NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7514NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7515NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7516NISTXML-SV-II-atomic-unsignedLong-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7517NISTSchema-SV-II-atomic-unsignedLong-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7518NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7519NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7520NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7521NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7522NISTXML-SV-II-atomic-unsignedLong-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7523NISTSchema-SV-II-atomic-unsignedLong-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7524NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7525NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7526NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7527NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7528NISTXML-SV-II-atomic-unsignedLong-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7529NISTSchema-SV-II-atomic-unsignedLong-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7530NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7531NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7532NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7533NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7534NISTXML-SV-II-atomic-unsignedLong-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7535NISTSchema-SV-II-atomic-unsignedInt-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7536NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7537NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7538NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7539NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7540NISTXML-SV-II-atomic-unsignedInt-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7541NISTSchema-SV-II-atomic-unsignedInt-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7542NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7543NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7544NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7545NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7546NISTXML-SV-II-atomic-unsignedInt-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7547NISTSchema-SV-II-atomic-unsignedInt-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7548NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7549NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7550NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7551NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7552NISTXML-SV-II-atomic-unsignedInt-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7553NISTSchema-SV-II-atomic-unsignedInt-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7554NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7555NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7556NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7557NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7558NISTXML-SV-II-atomic-unsignedInt-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7559NISTSchema-SV-II-atomic-unsignedInt-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7560NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7561NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7562NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7563NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7564NISTXML-SV-II-atomic-unsignedInt-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7565NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7566NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7567NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7568NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7569NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7570NISTXML-SV-II-atomic-unsignedInt-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7571NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7572NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7573NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7574NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7575NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7576NISTXML-SV-II-atomic-unsignedInt-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7577NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7578NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7579NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7580NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7581NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7582NISTXML-SV-II-atomic-unsignedInt-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7583NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7584NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7585NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7586NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7587NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7588NISTXML-SV-II-atomic-unsignedInt-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7589NISTSchema-SV-II-atomic-unsignedInt-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7590NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7591NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7592NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7593NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7594NISTXML-SV-II-atomic-unsignedInt-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7595NISTSchema-SV-II-atomic-unsignedInt-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7596NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7597NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7598NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7599NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7600NISTXML-SV-II-atomic-unsignedInt-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7601NISTSchema-SV-II-atomic-unsignedInt-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7602NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7603NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7604NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7605NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7606NISTXML-SV-II-atomic-unsignedInt-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7607NISTSchema-SV-II-atomic-unsignedInt-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7608NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7609NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7610NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7611NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7612NISTXML-SV-II-atomic-unsignedInt-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7613NISTSchema-SV-II-atomic-unsignedInt-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7614NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7615NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7616NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7617NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7618NISTXML-SV-II-atomic-unsignedInt-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7619NISTSchema-SV-II-atomic-unsignedInt-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7620NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7621NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7622NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7623NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7624NISTXML-SV-II-atomic-unsignedInt-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7625NISTSchema-SV-II-atomic-unsignedShort-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7626NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7627NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7628NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7629NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7630NISTXML-SV-II-atomic-unsignedShort-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7631NISTSchema-SV-II-atomic-unsignedShort-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7632NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7633NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7634NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7635NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7636NISTXML-SV-II-atomic-unsignedShort-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7637NISTSchema-SV-II-atomic-unsignedShort-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7638NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7639NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7640NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7641NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7642NISTXML-SV-II-atomic-unsignedShort-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7643NISTSchema-SV-II-atomic-unsignedShort-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7644NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7645NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7646NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7647NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7648NISTXML-SV-II-atomic-unsignedShort-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7649NISTSchema-SV-II-atomic-unsignedShort-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7650NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7651NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7652NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7653NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7654NISTXML-SV-II-atomic-unsignedShort-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7655NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7656NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7657NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7658NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7659NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7660NISTXML-SV-II-atomic-unsignedShort-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7661NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7662NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7663NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7664NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7665NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7666NISTXML-SV-II-atomic-unsignedShort-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7667NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7668NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7669NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7670NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7671NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7672NISTXML-SV-II-atomic-unsignedShort-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7673NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7674NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7675NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7676NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7677NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7678NISTXML-SV-II-atomic-unsignedShort-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7679NISTSchema-SV-II-atomic-unsignedShort-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7680NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7681NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7682NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7683NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7684NISTXML-SV-II-atomic-unsignedShort-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7685NISTSchema-SV-II-atomic-unsignedShort-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7686NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7687NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7688NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7689NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7690NISTXML-SV-II-atomic-unsignedShort-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7691NISTSchema-SV-II-atomic-unsignedShort-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7692NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7693NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7694NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7695NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7696NISTXML-SV-II-atomic-unsignedShort-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7697NISTSchema-SV-II-atomic-unsignedShort-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7698NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7699NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7700NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7701NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7702NISTXML-SV-II-atomic-unsignedShort-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7703NISTSchema-SV-II-atomic-unsignedShort-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7704NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7705NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7706NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7707NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7708NISTXML-SV-II-atomic-unsignedShort-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7709NISTSchema-SV-II-atomic-unsignedByte-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7710NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7711NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7712NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7713NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7714NISTXML-SV-II-atomic-unsignedByte-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7715NISTSchema-SV-II-atomic-unsignedByte-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7716NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7717NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7718NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7719NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7720NISTXML-SV-II-atomic-unsignedByte-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7721NISTSchema-SV-II-atomic-unsignedByte-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7722NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7723NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7724NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7725NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7726NISTXML-SV-II-atomic-unsignedByte-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7727NISTSchema-SV-II-atomic-unsignedByte-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7728NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7729NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7730NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7731NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7732NISTXML-SV-II-atomic-unsignedByte-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7733NISTSchema-SV-II-atomic-unsignedByte-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7734NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7735NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7736NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7737NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7738NISTXML-SV-II-atomic-unsignedByte-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7739NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7740NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7741NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7742NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7743NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7744NISTXML-SV-II-atomic-unsignedByte-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7745NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7746NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7747NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7748NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7749NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7750NISTXML-SV-II-atomic-unsignedByte-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7751NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7752NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7753NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7754NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7755NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7756NISTXML-SV-II-atomic-unsignedByte-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7757NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7758NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7759NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7760NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7761NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7762NISTXML-SV-II-atomic-unsignedByte-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7763NISTSchema-SV-II-atomic-unsignedByte-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7764NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7765NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7766NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7767NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7768NISTXML-SV-II-atomic-unsignedByte-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7769NISTSchema-SV-II-atomic-unsignedByte-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7770NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7771NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7772NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7773NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7774NISTXML-SV-II-atomic-unsignedByte-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7775NISTSchema-SV-II-atomic-unsignedByte-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7776NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7777NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7778NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7779NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7780NISTXML-SV-II-atomic-unsignedByte-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7781NISTSchema-SV-II-atomic-positiveInteger-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7782NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7783NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7784NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7785NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7786NISTXML-SV-II-atomic-positiveInteger-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7787NISTSchema-SV-II-atomic-positiveInteger-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7788NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7789NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7790NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7791NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7792NISTXML-SV-II-atomic-positiveInteger-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7793NISTSchema-SV-II-atomic-positiveInteger-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7794NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7795NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7796NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7797NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7798NISTXML-SV-II-atomic-positiveInteger-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7799NISTSchema-SV-II-atomic-positiveInteger-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7800NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7801NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7802NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7803NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7804NISTXML-SV-II-atomic-positiveInteger-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7805NISTSchema-SV-II-atomic-positiveInteger-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7806NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7807NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7808NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7809NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7810NISTXML-SV-II-atomic-positiveInteger-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7811NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7812NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7813NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7814NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7815NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7816NISTXML-SV-II-atomic-positiveInteger-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7817NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7818NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7819NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7820NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7821NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7822NISTXML-SV-II-atomic-positiveInteger-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7823NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7824NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7825NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7826NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7827NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7828NISTXML-SV-II-atomic-positiveInteger-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7829NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7830NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7831NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7832NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7833NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7834NISTXML-SV-II-atomic-positiveInteger-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7835NISTSchema-SV-II-atomic-positiveInteger-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7836NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7837NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7838NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7839NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7840NISTXML-SV-II-atomic-positiveInteger-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7841NISTSchema-SV-II-atomic-positiveInteger-totalDigits-1 tokoe:valid" result="pass"/><test-case name="7842NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-1 tokoe:invalid" result="pass"/><test-case name="7843NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-2 tokoe:invalid" result="pass"/><test-case name="7844NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-3 tokoe:invalid" result="pass"/><test-case name="7845NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-4 tokoe:invalid" result="pass"/><test-case name="7846NISTXML-SV-II-atomic-positiveInteger-totalDigits-1-5 tokoe:invalid" result="pass"/><test-case name="7847NISTSchema-SV-II-atomic-positiveInteger-totalDigits-2 tokoe:valid" result="pass"/><test-case name="7848NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-1 tokoe:invalid" result="pass"/><test-case name="7849NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-2 tokoe:invalid" result="pass"/><test-case name="7850NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-3 tokoe:invalid" result="pass"/><test-case name="7851NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-4 tokoe:invalid" result="pass"/><test-case name="7852NISTXML-SV-II-atomic-positiveInteger-totalDigits-2-5 tokoe:invalid" result="pass"/><test-case name="7853NISTSchema-SV-II-atomic-positiveInteger-totalDigits-3 tokoe:valid" result="pass"/><test-case name="7854NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-1 tokoe:invalid" result="pass"/><test-case name="7855NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-2 tokoe:invalid" result="pass"/><test-case name="7856NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-3 tokoe:invalid" result="pass"/><test-case name="7857NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-4 tokoe:invalid" result="pass"/><test-case name="7858NISTXML-SV-II-atomic-positiveInteger-totalDigits-3-5 tokoe:invalid" result="pass"/><test-case name="7859NISTSchema-SV-II-atomic-positiveInteger-totalDigits-4 tokoe:valid" result="pass"/><test-case name="7860NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-1 tokoe:invalid" result="pass"/><test-case name="7861NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-2 tokoe:invalid" result="pass"/><test-case name="7862NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-3 tokoe:invalid" result="pass"/><test-case name="7863NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-4 tokoe:invalid" result="pass"/><test-case name="7864NISTXML-SV-II-atomic-positiveInteger-totalDigits-4-5 tokoe:invalid" result="pass"/><test-case name="7865NISTSchema-SV-II-atomic-positiveInteger-totalDigits-5 tokoe:valid" result="pass"/><test-case name="7866NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-1 tokoe:invalid" result="pass"/><test-case name="7867NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-2 tokoe:invalid" result="pass"/><test-case name="7868NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-3 tokoe:invalid" result="pass"/><test-case name="7869NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-4 tokoe:invalid" result="pass"/><test-case name="7870NISTXML-SV-II-atomic-positiveInteger-totalDigits-5-5 tokoe:invalid" result="pass"/><test-case name="7871NISTSchema-SV-II-atomic-duration-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7872NISTXML-SV-II-atomic-duration-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7873NISTXML-SV-II-atomic-duration-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7874NISTXML-SV-II-atomic-duration-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7875NISTXML-SV-II-atomic-duration-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7876NISTXML-SV-II-atomic-duration-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7877NISTSchema-SV-II-atomic-duration-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7878NISTXML-SV-II-atomic-duration-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7879NISTXML-SV-II-atomic-duration-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7880NISTXML-SV-II-atomic-duration-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7881NISTXML-SV-II-atomic-duration-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7882NISTXML-SV-II-atomic-duration-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7883NISTSchema-SV-II-atomic-duration-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7884NISTXML-SV-II-atomic-duration-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7885NISTXML-SV-II-atomic-duration-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7886NISTXML-SV-II-atomic-duration-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7887NISTXML-SV-II-atomic-duration-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7888NISTXML-SV-II-atomic-duration-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7889NISTSchema-SV-II-atomic-duration-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7890NISTXML-SV-II-atomic-duration-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7891NISTXML-SV-II-atomic-duration-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7892NISTXML-SV-II-atomic-duration-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7893NISTXML-SV-II-atomic-duration-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7894NISTXML-SV-II-atomic-duration-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7895NISTSchema-SV-II-atomic-duration-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7896NISTXML-SV-II-atomic-duration-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7897NISTXML-SV-II-atomic-duration-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7898NISTXML-SV-II-atomic-duration-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7899NISTXML-SV-II-atomic-duration-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7900NISTXML-SV-II-atomic-duration-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7901NISTSchema-SV-II-atomic-duration-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7902NISTXML-SV-II-atomic-duration-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7903NISTXML-SV-II-atomic-duration-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7904NISTXML-SV-II-atomic-duration-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7905NISTXML-SV-II-atomic-duration-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7906NISTXML-SV-II-atomic-duration-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7907NISTSchema-SV-II-atomic-duration-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7908NISTXML-SV-II-atomic-duration-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7909NISTXML-SV-II-atomic-duration-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7910NISTXML-SV-II-atomic-duration-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7911NISTXML-SV-II-atomic-duration-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7912NISTXML-SV-II-atomic-duration-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7913NISTSchema-SV-II-atomic-duration-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7914NISTXML-SV-II-atomic-duration-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7915NISTXML-SV-II-atomic-duration-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7916NISTXML-SV-II-atomic-duration-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7917NISTXML-SV-II-atomic-duration-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7918NISTXML-SV-II-atomic-duration-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7919NISTSchema-SV-II-atomic-duration-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7920NISTXML-SV-II-atomic-duration-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7921NISTXML-SV-II-atomic-duration-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7922NISTXML-SV-II-atomic-duration-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7923NISTXML-SV-II-atomic-duration-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7924NISTXML-SV-II-atomic-duration-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7925NISTSchema-SV-II-atomic-duration-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7926NISTXML-SV-II-atomic-duration-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7927NISTXML-SV-II-atomic-duration-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7928NISTXML-SV-II-atomic-duration-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7929NISTXML-SV-II-atomic-duration-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7930NISTXML-SV-II-atomic-duration-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7931NISTSchema-SV-II-atomic-dateTime-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7932NISTXML-SV-II-atomic-dateTime-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7933NISTXML-SV-II-atomic-dateTime-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7934NISTXML-SV-II-atomic-dateTime-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7935NISTXML-SV-II-atomic-dateTime-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7936NISTXML-SV-II-atomic-dateTime-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7937NISTSchema-SV-II-atomic-dateTime-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7938NISTXML-SV-II-atomic-dateTime-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7939NISTXML-SV-II-atomic-dateTime-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7940NISTXML-SV-II-atomic-dateTime-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7941NISTXML-SV-II-atomic-dateTime-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7942NISTXML-SV-II-atomic-dateTime-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7943NISTSchema-SV-II-atomic-dateTime-minInclusive-4 tokoe:valid" result="pass"/><test-case name="7944NISTXML-SV-II-atomic-dateTime-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7945NISTXML-SV-II-atomic-dateTime-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7946NISTXML-SV-II-atomic-dateTime-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7947NISTXML-SV-II-atomic-dateTime-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7948NISTXML-SV-II-atomic-dateTime-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7949NISTSchema-SV-II-atomic-dateTime-minInclusive-5 tokoe:valid" result="pass"/><test-case name="7950NISTXML-SV-II-atomic-dateTime-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7951NISTXML-SV-II-atomic-dateTime-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7952NISTXML-SV-II-atomic-dateTime-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7953NISTXML-SV-II-atomic-dateTime-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7954NISTXML-SV-II-atomic-dateTime-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7955NISTSchema-SV-II-atomic-dateTime-minInclusive-6 tokoe:valid" result="pass"/><test-case name="7956NISTXML-SV-II-atomic-dateTime-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="7957NISTXML-SV-II-atomic-dateTime-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="7958NISTXML-SV-II-atomic-dateTime-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="7959NISTXML-SV-II-atomic-dateTime-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="7960NISTXML-SV-II-atomic-dateTime-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="7961NISTSchema-SV-II-atomic-dateTime-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="7962NISTXML-SV-II-atomic-dateTime-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="7963NISTXML-SV-II-atomic-dateTime-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="7964NISTXML-SV-II-atomic-dateTime-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="7965NISTXML-SV-II-atomic-dateTime-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="7966NISTXML-SV-II-atomic-dateTime-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="7967NISTSchema-SV-II-atomic-dateTime-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="7968NISTXML-SV-II-atomic-dateTime-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7969NISTXML-SV-II-atomic-dateTime-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7970NISTXML-SV-II-atomic-dateTime-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7971NISTXML-SV-II-atomic-dateTime-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7972NISTXML-SV-II-atomic-dateTime-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7973NISTSchema-SV-II-atomic-dateTime-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="7974NISTXML-SV-II-atomic-dateTime-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7975NISTXML-SV-II-atomic-dateTime-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="7976NISTXML-SV-II-atomic-dateTime-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="7977NISTXML-SV-II-atomic-dateTime-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="7978NISTXML-SV-II-atomic-dateTime-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="7979NISTSchema-SV-II-atomic-dateTime-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="7980NISTXML-SV-II-atomic-dateTime-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="7981NISTXML-SV-II-atomic-dateTime-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="7982NISTXML-SV-II-atomic-dateTime-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="7983NISTXML-SV-II-atomic-dateTime-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="7984NISTXML-SV-II-atomic-dateTime-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="7985NISTSchema-SV-II-atomic-dateTime-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="7986NISTXML-SV-II-atomic-dateTime-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="7987NISTXML-SV-II-atomic-dateTime-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="7988NISTXML-SV-II-atomic-dateTime-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="7989NISTXML-SV-II-atomic-dateTime-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="7990NISTXML-SV-II-atomic-dateTime-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="7991NISTSchema-SV-II-atomic-time-minInclusive-2 tokoe:valid" result="pass"/><test-case name="7992NISTXML-SV-II-atomic-time-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="7993NISTXML-SV-II-atomic-time-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="7994NISTXML-SV-II-atomic-time-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="7995NISTXML-SV-II-atomic-time-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="7996NISTXML-SV-II-atomic-time-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="7997NISTSchema-SV-II-atomic-time-minInclusive-3 tokoe:valid" result="pass"/><test-case name="7998NISTXML-SV-II-atomic-time-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="7999NISTXML-SV-II-atomic-time-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8000NISTXML-SV-II-atomic-time-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8001NISTXML-SV-II-atomic-time-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8002NISTXML-SV-II-atomic-time-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8003NISTSchema-SV-II-atomic-time-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8004NISTXML-SV-II-atomic-time-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8005NISTXML-SV-II-atomic-time-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8006NISTXML-SV-II-atomic-time-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8007NISTXML-SV-II-atomic-time-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8008NISTXML-SV-II-atomic-time-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8009NISTSchema-SV-II-atomic-time-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8010NISTXML-SV-II-atomic-time-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8011NISTXML-SV-II-atomic-time-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8012NISTXML-SV-II-atomic-time-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8013NISTXML-SV-II-atomic-time-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8014NISTXML-SV-II-atomic-time-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8015NISTSchema-SV-II-atomic-time-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8016NISTXML-SV-II-atomic-time-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8017NISTXML-SV-II-atomic-time-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8018NISTXML-SV-II-atomic-time-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8019NISTXML-SV-II-atomic-time-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8020NISTXML-SV-II-atomic-time-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8021NISTSchema-SV-II-atomic-time-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8022NISTXML-SV-II-atomic-time-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8023NISTXML-SV-II-atomic-time-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8024NISTXML-SV-II-atomic-time-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8025NISTXML-SV-II-atomic-time-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8026NISTXML-SV-II-atomic-time-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8027NISTSchema-SV-II-atomic-time-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8028NISTXML-SV-II-atomic-time-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8029NISTXML-SV-II-atomic-time-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8030NISTXML-SV-II-atomic-time-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8031NISTXML-SV-II-atomic-time-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8032NISTXML-SV-II-atomic-time-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8033NISTSchema-SV-II-atomic-time-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8034NISTXML-SV-II-atomic-time-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8035NISTXML-SV-II-atomic-time-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8036NISTXML-SV-II-atomic-time-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8037NISTXML-SV-II-atomic-time-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8038NISTXML-SV-II-atomic-time-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8039NISTSchema-SV-II-atomic-time-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8040NISTXML-SV-II-atomic-time-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8041NISTXML-SV-II-atomic-time-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8042NISTXML-SV-II-atomic-time-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8043NISTXML-SV-II-atomic-time-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8044NISTXML-SV-II-atomic-time-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8045NISTSchema-SV-II-atomic-time-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8046NISTXML-SV-II-atomic-time-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8047NISTXML-SV-II-atomic-time-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8048NISTXML-SV-II-atomic-time-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8049NISTXML-SV-II-atomic-time-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8050NISTXML-SV-II-atomic-time-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8051NISTSchema-SV-II-atomic-date-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8052NISTXML-SV-II-atomic-date-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8053NISTXML-SV-II-atomic-date-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8054NISTXML-SV-II-atomic-date-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8055NISTXML-SV-II-atomic-date-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8056NISTXML-SV-II-atomic-date-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8057NISTSchema-SV-II-atomic-date-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8058NISTXML-SV-II-atomic-date-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8059NISTXML-SV-II-atomic-date-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8060NISTXML-SV-II-atomic-date-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8061NISTXML-SV-II-atomic-date-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8062NISTXML-SV-II-atomic-date-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8063NISTSchema-SV-II-atomic-date-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8064NISTXML-SV-II-atomic-date-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8065NISTXML-SV-II-atomic-date-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8066NISTXML-SV-II-atomic-date-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8067NISTXML-SV-II-atomic-date-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8068NISTXML-SV-II-atomic-date-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8069NISTSchema-SV-II-atomic-date-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8070NISTXML-SV-II-atomic-date-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8071NISTXML-SV-II-atomic-date-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8072NISTXML-SV-II-atomic-date-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8073NISTXML-SV-II-atomic-date-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8074NISTXML-SV-II-atomic-date-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8075NISTSchema-SV-II-atomic-date-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8076NISTXML-SV-II-atomic-date-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8077NISTXML-SV-II-atomic-date-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8078NISTXML-SV-II-atomic-date-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8079NISTXML-SV-II-atomic-date-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8080NISTXML-SV-II-atomic-date-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8081NISTSchema-SV-II-atomic-date-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8082NISTXML-SV-II-atomic-date-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8083NISTXML-SV-II-atomic-date-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8084NISTXML-SV-II-atomic-date-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8085NISTXML-SV-II-atomic-date-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8086NISTXML-SV-II-atomic-date-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8087NISTSchema-SV-II-atomic-date-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8088NISTXML-SV-II-atomic-date-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8089NISTXML-SV-II-atomic-date-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8090NISTXML-SV-II-atomic-date-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8091NISTXML-SV-II-atomic-date-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8092NISTXML-SV-II-atomic-date-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8093NISTSchema-SV-II-atomic-date-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8094NISTXML-SV-II-atomic-date-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8095NISTXML-SV-II-atomic-date-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8096NISTXML-SV-II-atomic-date-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8097NISTXML-SV-II-atomic-date-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8098NISTXML-SV-II-atomic-date-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8099NISTSchema-SV-II-atomic-date-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8100NISTXML-SV-II-atomic-date-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8101NISTXML-SV-II-atomic-date-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8102NISTXML-SV-II-atomic-date-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8103NISTXML-SV-II-atomic-date-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8104NISTXML-SV-II-atomic-date-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8105NISTSchema-SV-II-atomic-date-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8106NISTXML-SV-II-atomic-date-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8107NISTXML-SV-II-atomic-date-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8108NISTXML-SV-II-atomic-date-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8109NISTXML-SV-II-atomic-date-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8110NISTXML-SV-II-atomic-date-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8111NISTSchema-SV-II-atomic-gYearMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8112NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8113NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8114NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8115NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8116NISTXML-SV-II-atomic-gYearMonth-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8117NISTSchema-SV-II-atomic-gYearMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8118NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8119NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8120NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8121NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8122NISTXML-SV-II-atomic-gYearMonth-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8123NISTSchema-SV-II-atomic-gYearMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8124NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8125NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8126NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8127NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8128NISTXML-SV-II-atomic-gYearMonth-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8129NISTSchema-SV-II-atomic-gYearMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8130NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8131NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8132NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8133NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8134NISTXML-SV-II-atomic-gYearMonth-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8135NISTSchema-SV-II-atomic-gYearMonth-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8136NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8137NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8138NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8139NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8140NISTXML-SV-II-atomic-gYearMonth-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8141NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8142NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8143NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8144NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8145NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8146NISTXML-SV-II-atomic-gYearMonth-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8147NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8148NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8149NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8150NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8151NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8152NISTXML-SV-II-atomic-gYearMonth-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8153NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8154NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8155NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8156NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8157NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8158NISTXML-SV-II-atomic-gYearMonth-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8159NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8160NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8161NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8162NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8163NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8164NISTXML-SV-II-atomic-gYearMonth-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8165NISTSchema-SV-II-atomic-gYearMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8166NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8167NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8168NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8169NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8170NISTXML-SV-II-atomic-gYearMonth-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8171NISTSchema-SV-II-atomic-gYear-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8172NISTXML-SV-II-atomic-gYear-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8173NISTXML-SV-II-atomic-gYear-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8174NISTXML-SV-II-atomic-gYear-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8175NISTXML-SV-II-atomic-gYear-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8176NISTXML-SV-II-atomic-gYear-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8177NISTSchema-SV-II-atomic-gYear-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8178NISTXML-SV-II-atomic-gYear-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8179NISTXML-SV-II-atomic-gYear-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8180NISTXML-SV-II-atomic-gYear-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8181NISTXML-SV-II-atomic-gYear-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8182NISTXML-SV-II-atomic-gYear-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8183NISTSchema-SV-II-atomic-gYear-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8184NISTXML-SV-II-atomic-gYear-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8185NISTXML-SV-II-atomic-gYear-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8186NISTXML-SV-II-atomic-gYear-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8187NISTXML-SV-II-atomic-gYear-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8188NISTXML-SV-II-atomic-gYear-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8189NISTSchema-SV-II-atomic-gYear-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8190NISTXML-SV-II-atomic-gYear-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8191NISTXML-SV-II-atomic-gYear-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8192NISTXML-SV-II-atomic-gYear-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8193NISTXML-SV-II-atomic-gYear-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8194NISTXML-SV-II-atomic-gYear-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8195NISTSchema-SV-II-atomic-gYear-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8196NISTXML-SV-II-atomic-gYear-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8197NISTXML-SV-II-atomic-gYear-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8198NISTXML-SV-II-atomic-gYear-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8199NISTXML-SV-II-atomic-gYear-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8200NISTXML-SV-II-atomic-gYear-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8201NISTSchema-SV-II-atomic-gYear-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8202NISTXML-SV-II-atomic-gYear-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8203NISTXML-SV-II-atomic-gYear-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8204NISTXML-SV-II-atomic-gYear-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8205NISTXML-SV-II-atomic-gYear-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8206NISTXML-SV-II-atomic-gYear-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8207NISTSchema-SV-II-atomic-gYear-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8208NISTXML-SV-II-atomic-gYear-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8209NISTXML-SV-II-atomic-gYear-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8210NISTXML-SV-II-atomic-gYear-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8211NISTXML-SV-II-atomic-gYear-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8212NISTXML-SV-II-atomic-gYear-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8213NISTSchema-SV-II-atomic-gYear-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8214NISTXML-SV-II-atomic-gYear-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8215NISTXML-SV-II-atomic-gYear-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8216NISTXML-SV-II-atomic-gYear-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8217NISTXML-SV-II-atomic-gYear-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8218NISTXML-SV-II-atomic-gYear-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8219NISTSchema-SV-II-atomic-gYear-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8220NISTXML-SV-II-atomic-gYear-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8221NISTXML-SV-II-atomic-gYear-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8222NISTXML-SV-II-atomic-gYear-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8223NISTXML-SV-II-atomic-gYear-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8224NISTXML-SV-II-atomic-gYear-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8225NISTSchema-SV-II-atomic-gYear-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8226NISTXML-SV-II-atomic-gYear-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8227NISTXML-SV-II-atomic-gYear-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8228NISTXML-SV-II-atomic-gYear-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8229NISTXML-SV-II-atomic-gYear-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8230NISTXML-SV-II-atomic-gYear-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8231NISTSchema-SV-II-atomic-gMonthDay-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8232NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8233NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8234NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8235NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8236NISTXML-SV-II-atomic-gMonthDay-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8237NISTSchema-SV-II-atomic-gMonthDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8238NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8239NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8240NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8241NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8242NISTXML-SV-II-atomic-gMonthDay-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8243NISTSchema-SV-II-atomic-gMonthDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8244NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8245NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8246NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8247NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8248NISTXML-SV-II-atomic-gMonthDay-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8249NISTSchema-SV-II-atomic-gMonthDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8250NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8251NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8252NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8253NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8254NISTXML-SV-II-atomic-gMonthDay-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8255NISTSchema-SV-II-atomic-gMonthDay-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8256NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8257NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8258NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8259NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8260NISTXML-SV-II-atomic-gMonthDay-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8261NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8262NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8263NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8264NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8265NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8266NISTXML-SV-II-atomic-gMonthDay-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8267NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8268NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8269NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8270NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8271NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8272NISTXML-SV-II-atomic-gMonthDay-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8273NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8274NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8275NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8276NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8277NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8278NISTXML-SV-II-atomic-gMonthDay-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8279NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8280NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8281NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8282NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8283NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8284NISTXML-SV-II-atomic-gMonthDay-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8285NISTSchema-SV-II-atomic-gMonthDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8286NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8287NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8288NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8289NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8290NISTXML-SV-II-atomic-gMonthDay-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8291NISTSchema-SV-II-atomic-gDay-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8292NISTXML-SV-II-atomic-gDay-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8293NISTXML-SV-II-atomic-gDay-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8294NISTXML-SV-II-atomic-gDay-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8295NISTXML-SV-II-atomic-gDay-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8296NISTXML-SV-II-atomic-gDay-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8297NISTSchema-SV-II-atomic-gDay-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8298NISTXML-SV-II-atomic-gDay-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8299NISTXML-SV-II-atomic-gDay-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8300NISTXML-SV-II-atomic-gDay-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8301NISTXML-SV-II-atomic-gDay-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8302NISTXML-SV-II-atomic-gDay-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8303NISTSchema-SV-II-atomic-gDay-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8304NISTXML-SV-II-atomic-gDay-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8305NISTXML-SV-II-atomic-gDay-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8306NISTXML-SV-II-atomic-gDay-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8307NISTXML-SV-II-atomic-gDay-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8308NISTXML-SV-II-atomic-gDay-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8309NISTSchema-SV-II-atomic-gDay-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8310NISTXML-SV-II-atomic-gDay-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8311NISTXML-SV-II-atomic-gDay-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8312NISTXML-SV-II-atomic-gDay-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8313NISTXML-SV-II-atomic-gDay-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8314NISTXML-SV-II-atomic-gDay-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8315NISTSchema-SV-II-atomic-gDay-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8316NISTXML-SV-II-atomic-gDay-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8317NISTXML-SV-II-atomic-gDay-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8318NISTXML-SV-II-atomic-gDay-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8319NISTXML-SV-II-atomic-gDay-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8320NISTXML-SV-II-atomic-gDay-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8321NISTSchema-SV-II-atomic-gDay-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8322NISTXML-SV-II-atomic-gDay-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8323NISTSchema-SV-II-atomic-gDay-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8324NISTXML-SV-II-atomic-gDay-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8325NISTXML-SV-II-atomic-gDay-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8326NISTXML-SV-II-atomic-gDay-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8327NISTXML-SV-II-atomic-gDay-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8328NISTXML-SV-II-atomic-gDay-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8329NISTSchema-SV-II-atomic-gDay-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8330NISTXML-SV-II-atomic-gDay-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8331NISTXML-SV-II-atomic-gDay-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8332NISTXML-SV-II-atomic-gDay-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8333NISTXML-SV-II-atomic-gDay-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8334NISTXML-SV-II-atomic-gDay-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8335NISTSchema-SV-II-atomic-gDay-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8336NISTXML-SV-II-atomic-gDay-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8337NISTXML-SV-II-atomic-gDay-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8338NISTXML-SV-II-atomic-gDay-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8339NISTXML-SV-II-atomic-gDay-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8340NISTXML-SV-II-atomic-gDay-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8341NISTSchema-SV-II-atomic-gMonth-minInclusive-2 tokoe:valid" result="pass"/><test-case name="8342NISTXML-SV-II-atomic-gMonth-minInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8343NISTXML-SV-II-atomic-gMonth-minInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8344NISTXML-SV-II-atomic-gMonth-minInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8345NISTXML-SV-II-atomic-gMonth-minInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8346NISTXML-SV-II-atomic-gMonth-minInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8347NISTSchema-SV-II-atomic-gMonth-minInclusive-3 tokoe:valid" result="pass"/><test-case name="8348NISTXML-SV-II-atomic-gMonth-minInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8349NISTXML-SV-II-atomic-gMonth-minInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8350NISTXML-SV-II-atomic-gMonth-minInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8351NISTXML-SV-II-atomic-gMonth-minInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8352NISTXML-SV-II-atomic-gMonth-minInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8353NISTSchema-SV-II-atomic-gMonth-minInclusive-4 tokoe:valid" result="pass"/><test-case name="8354NISTXML-SV-II-atomic-gMonth-minInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8355NISTXML-SV-II-atomic-gMonth-minInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8356NISTXML-SV-II-atomic-gMonth-minInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8357NISTXML-SV-II-atomic-gMonth-minInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8358NISTXML-SV-II-atomic-gMonth-minInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8359NISTSchema-SV-II-atomic-gMonth-minInclusive-5 tokoe:valid" result="pass"/><test-case name="8360NISTXML-SV-II-atomic-gMonth-minInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8361NISTXML-SV-II-atomic-gMonth-minInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8362NISTXML-SV-II-atomic-gMonth-minInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8363NISTXML-SV-II-atomic-gMonth-minInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8364NISTXML-SV-II-atomic-gMonth-minInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8365NISTSchema-SV-II-atomic-gMonth-minInclusive-6 tokoe:valid" result="pass"/><test-case name="8366NISTXML-SV-II-atomic-gMonth-minInclusive-6-1 tokoe:invalid" result="pass"/><test-case name="8367NISTXML-SV-II-atomic-gMonth-minInclusive-6-2 tokoe:invalid" result="pass"/><test-case name="8368NISTXML-SV-II-atomic-gMonth-minInclusive-6-3 tokoe:invalid" result="pass"/><test-case name="8369NISTXML-SV-II-atomic-gMonth-minInclusive-6-4 tokoe:invalid" result="pass"/><test-case name="8370NISTXML-SV-II-atomic-gMonth-minInclusive-6-5 tokoe:invalid" result="pass"/><test-case name="8371NISTSchema-SV-II-atomic-gMonth-maxInclusive-1 tokoe:valid" result="pass"/><test-case name="8372NISTXML-SV-II-atomic-gMonth-maxInclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8373NISTXML-SV-II-atomic-gMonth-maxInclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8374NISTXML-SV-II-atomic-gMonth-maxInclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8375NISTXML-SV-II-atomic-gMonth-maxInclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8376NISTXML-SV-II-atomic-gMonth-maxInclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8377NISTSchema-SV-II-atomic-gMonth-maxInclusive-2 tokoe:valid" result="pass"/><test-case name="8378NISTXML-SV-II-atomic-gMonth-maxInclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8379NISTXML-SV-II-atomic-gMonth-maxInclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8380NISTXML-SV-II-atomic-gMonth-maxInclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8381NISTXML-SV-II-atomic-gMonth-maxInclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8382NISTXML-SV-II-atomic-gMonth-maxInclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8383NISTSchema-SV-II-atomic-gMonth-maxInclusive-3 tokoe:valid" result="pass"/><test-case name="8384NISTXML-SV-II-atomic-gMonth-maxInclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8385NISTXML-SV-II-atomic-gMonth-maxInclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8386NISTXML-SV-II-atomic-gMonth-maxInclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8387NISTXML-SV-II-atomic-gMonth-maxInclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8388NISTXML-SV-II-atomic-gMonth-maxInclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8389NISTSchema-SV-II-atomic-gMonth-maxInclusive-4 tokoe:valid" result="pass"/><test-case name="8390NISTXML-SV-II-atomic-gMonth-maxInclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8391NISTXML-SV-II-atomic-gMonth-maxInclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8392NISTXML-SV-II-atomic-gMonth-maxInclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8393NISTXML-SV-II-atomic-gMonth-maxInclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8394NISTXML-SV-II-atomic-gMonth-maxInclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8395NISTSchema-SV-II-atomic-gMonth-maxInclusive-5 tokoe:valid" result="pass"/><test-case name="8396NISTXML-SV-II-atomic-gMonth-maxInclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8397NISTXML-SV-II-atomic-gMonth-maxInclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8398NISTXML-SV-II-atomic-gMonth-maxInclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8399NISTXML-SV-II-atomic-gMonth-maxInclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8400NISTXML-SV-II-atomic-gMonth-maxInclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8401NISTSchema-SV-II-atomic-decimal-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8402NISTXML-SV-II-atomic-decimal-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8403NISTSchema-SV-II-atomic-decimal-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8404NISTXML-SV-II-atomic-decimal-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8405NISTXML-SV-II-atomic-decimal-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8406NISTXML-SV-II-atomic-decimal-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8407NISTXML-SV-II-atomic-decimal-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8408NISTXML-SV-II-atomic-decimal-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8409NISTSchema-SV-II-atomic-decimal-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8410NISTXML-SV-II-atomic-decimal-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8411NISTXML-SV-II-atomic-decimal-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8412NISTXML-SV-II-atomic-decimal-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8413NISTXML-SV-II-atomic-decimal-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8414NISTXML-SV-II-atomic-decimal-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8415NISTSchema-SV-II-atomic-decimal-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8416NISTXML-SV-II-atomic-decimal-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8417NISTXML-SV-II-atomic-decimal-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8418NISTXML-SV-II-atomic-decimal-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8419NISTXML-SV-II-atomic-decimal-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8420NISTXML-SV-II-atomic-decimal-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8421NISTSchema-SV-II-atomic-decimal-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8422NISTXML-SV-II-atomic-decimal-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8423NISTXML-SV-II-atomic-decimal-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8424NISTXML-SV-II-atomic-decimal-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8425NISTXML-SV-II-atomic-decimal-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8426NISTXML-SV-II-atomic-decimal-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8427NISTSchema-SV-II-atomic-decimal-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8428NISTXML-SV-II-atomic-decimal-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8429NISTXML-SV-II-atomic-decimal-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8430NISTXML-SV-II-atomic-decimal-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8431NISTXML-SV-II-atomic-decimal-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8432NISTXML-SV-II-atomic-decimal-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8433NISTSchema-SV-II-atomic-decimal-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8434NISTXML-SV-II-atomic-decimal-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8435NISTXML-SV-II-atomic-decimal-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8436NISTXML-SV-II-atomic-decimal-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8437NISTXML-SV-II-atomic-decimal-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8438NISTXML-SV-II-atomic-decimal-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8439NISTSchema-SV-II-atomic-decimal-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8440NISTXML-SV-II-atomic-decimal-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8441NISTXML-SV-II-atomic-decimal-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8442NISTXML-SV-II-atomic-decimal-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8443NISTXML-SV-II-atomic-decimal-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8444NISTXML-SV-II-atomic-decimal-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8445NISTSchema-SV-II-atomic-decimal-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8446NISTXML-SV-II-atomic-decimal-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8447NISTXML-SV-II-atomic-decimal-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8448NISTXML-SV-II-atomic-decimal-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8449NISTXML-SV-II-atomic-decimal-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8450NISTXML-SV-II-atomic-decimal-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8451NISTSchema-SV-II-atomic-decimal-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8452NISTXML-SV-II-atomic-decimal-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8453NISTSchema-SV-II-atomic-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="8454NISTXML-SV-II-atomic-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8455NISTXML-SV-II-atomic-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8456NISTXML-SV-II-atomic-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8457NISTXML-SV-II-atomic-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8458NISTXML-SV-II-atomic-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8459NISTSchema-SV-II-atomic-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="8460NISTXML-SV-II-atomic-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8461NISTXML-SV-II-atomic-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8462NISTXML-SV-II-atomic-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8463NISTXML-SV-II-atomic-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8464NISTXML-SV-II-atomic-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8465NISTSchema-SV-II-atomic-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="8466NISTXML-SV-II-atomic-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8467NISTXML-SV-II-atomic-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8468NISTXML-SV-II-atomic-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8469NISTXML-SV-II-atomic-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8470NISTXML-SV-II-atomic-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8471NISTSchema-SV-II-atomic-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="8472NISTXML-SV-II-atomic-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8473NISTXML-SV-II-atomic-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8474NISTXML-SV-II-atomic-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8475NISTXML-SV-II-atomic-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8476NISTXML-SV-II-atomic-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8477NISTSchema-SV-II-atomic-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="8478NISTXML-SV-II-atomic-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8479NISTXML-SV-II-atomic-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8480NISTXML-SV-II-atomic-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8481NISTXML-SV-II-atomic-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8482NISTXML-SV-II-atomic-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8483NISTSchema-SV-II-atomic-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="8484NISTXML-SV-II-atomic-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8485NISTXML-SV-II-atomic-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8486NISTXML-SV-II-atomic-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8487NISTXML-SV-II-atomic-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8488NISTXML-SV-II-atomic-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8489NISTSchema-SV-II-atomic-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="8490NISTXML-SV-II-atomic-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8491NISTXML-SV-II-atomic-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8492NISTXML-SV-II-atomic-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8493NISTXML-SV-II-atomic-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8494NISTXML-SV-II-atomic-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8495NISTSchema-SV-II-atomic-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="8496NISTXML-SV-II-atomic-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8497NISTXML-SV-II-atomic-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8498NISTXML-SV-II-atomic-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8499NISTXML-SV-II-atomic-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8500NISTXML-SV-II-atomic-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8501NISTSchema-SV-II-atomic-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="8502NISTXML-SV-II-atomic-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8503NISTXML-SV-II-atomic-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8504NISTXML-SV-II-atomic-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8505NISTXML-SV-II-atomic-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8506NISTXML-SV-II-atomic-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8507NISTSchema-SV-II-atomic-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="8508NISTXML-SV-II-atomic-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8509NISTXML-SV-II-atomic-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8510NISTXML-SV-II-atomic-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8511NISTXML-SV-II-atomic-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8512NISTXML-SV-II-atomic-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8513NISTSchema-SV-II-atomic-integer-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8514NISTXML-SV-II-atomic-integer-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8515NISTSchema-SV-II-atomic-integer-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8516NISTXML-SV-II-atomic-integer-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8517NISTXML-SV-II-atomic-integer-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8518NISTXML-SV-II-atomic-integer-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8519NISTXML-SV-II-atomic-integer-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8520NISTXML-SV-II-atomic-integer-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8521NISTSchema-SV-II-atomic-integer-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8522NISTXML-SV-II-atomic-integer-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8523NISTXML-SV-II-atomic-integer-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8524NISTXML-SV-II-atomic-integer-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8525NISTXML-SV-II-atomic-integer-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8526NISTXML-SV-II-atomic-integer-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8527NISTSchema-SV-II-atomic-integer-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8528NISTXML-SV-II-atomic-integer-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8529NISTXML-SV-II-atomic-integer-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8530NISTXML-SV-II-atomic-integer-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8531NISTXML-SV-II-atomic-integer-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8532NISTXML-SV-II-atomic-integer-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8533NISTSchema-SV-II-atomic-integer-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8534NISTXML-SV-II-atomic-integer-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8535NISTXML-SV-II-atomic-integer-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8536NISTXML-SV-II-atomic-integer-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8537NISTXML-SV-II-atomic-integer-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8538NISTXML-SV-II-atomic-integer-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8539NISTSchema-SV-II-atomic-integer-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8540NISTXML-SV-II-atomic-integer-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8541NISTXML-SV-II-atomic-integer-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8542NISTXML-SV-II-atomic-integer-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8543NISTXML-SV-II-atomic-integer-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8544NISTXML-SV-II-atomic-integer-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8545NISTSchema-SV-II-atomic-integer-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8546NISTXML-SV-II-atomic-integer-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8547NISTXML-SV-II-atomic-integer-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8548NISTXML-SV-II-atomic-integer-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8549NISTXML-SV-II-atomic-integer-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8550NISTXML-SV-II-atomic-integer-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8551NISTSchema-SV-II-atomic-integer-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8552NISTXML-SV-II-atomic-integer-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8553NISTXML-SV-II-atomic-integer-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8554NISTXML-SV-II-atomic-integer-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8555NISTXML-SV-II-atomic-integer-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8556NISTXML-SV-II-atomic-integer-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8557NISTSchema-SV-II-atomic-integer-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8558NISTXML-SV-II-atomic-integer-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8559NISTXML-SV-II-atomic-integer-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8560NISTXML-SV-II-atomic-integer-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8561NISTXML-SV-II-atomic-integer-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8562NISTXML-SV-II-atomic-integer-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8563NISTSchema-SV-II-atomic-integer-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8564NISTXML-SV-II-atomic-integer-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8565NISTSchema-SV-II-atomic-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="8566NISTXML-SV-II-atomic-integer-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8567NISTXML-SV-II-atomic-integer-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8568NISTXML-SV-II-atomic-integer-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8569NISTXML-SV-II-atomic-integer-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8570NISTXML-SV-II-atomic-integer-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8571NISTSchema-SV-II-atomic-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="8572NISTXML-SV-II-atomic-integer-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8573NISTXML-SV-II-atomic-integer-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8574NISTXML-SV-II-atomic-integer-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8575NISTXML-SV-II-atomic-integer-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8576NISTXML-SV-II-atomic-integer-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8577NISTSchema-SV-II-atomic-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="8578NISTXML-SV-II-atomic-integer-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8579NISTXML-SV-II-atomic-integer-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8580NISTXML-SV-II-atomic-integer-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8581NISTXML-SV-II-atomic-integer-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8582NISTXML-SV-II-atomic-integer-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8583NISTSchema-SV-II-atomic-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="8584NISTXML-SV-II-atomic-integer-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8585NISTXML-SV-II-atomic-integer-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8586NISTXML-SV-II-atomic-integer-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8587NISTXML-SV-II-atomic-integer-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8588NISTXML-SV-II-atomic-integer-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8589NISTSchema-SV-II-atomic-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="8590NISTXML-SV-II-atomic-integer-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8591NISTXML-SV-II-atomic-integer-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8592NISTXML-SV-II-atomic-integer-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8593NISTXML-SV-II-atomic-integer-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8594NISTXML-SV-II-atomic-integer-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8595NISTSchema-SV-II-atomic-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="8596NISTXML-SV-II-atomic-integer-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8597NISTXML-SV-II-atomic-integer-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8598NISTXML-SV-II-atomic-integer-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8599NISTXML-SV-II-atomic-integer-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8600NISTXML-SV-II-atomic-integer-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8601NISTSchema-SV-II-atomic-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="8602NISTXML-SV-II-atomic-integer-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8603NISTXML-SV-II-atomic-integer-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8604NISTXML-SV-II-atomic-integer-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8605NISTXML-SV-II-atomic-integer-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8606NISTXML-SV-II-atomic-integer-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8607NISTSchema-SV-II-atomic-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="8608NISTXML-SV-II-atomic-integer-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8609NISTXML-SV-II-atomic-integer-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8610NISTXML-SV-II-atomic-integer-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8611NISTXML-SV-II-atomic-integer-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8612NISTXML-SV-II-atomic-integer-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8613NISTSchema-SV-II-atomic-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="8614NISTXML-SV-II-atomic-integer-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8615NISTXML-SV-II-atomic-integer-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8616NISTXML-SV-II-atomic-integer-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8617NISTXML-SV-II-atomic-integer-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8618NISTXML-SV-II-atomic-integer-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8619NISTSchema-SV-II-atomic-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="8620NISTXML-SV-II-atomic-integer-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8621NISTXML-SV-II-atomic-integer-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8622NISTXML-SV-II-atomic-integer-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8623NISTXML-SV-II-atomic-integer-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8624NISTXML-SV-II-atomic-integer-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8625NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8626NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8627NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8628NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8629NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8630NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8631NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8632NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8633NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8634NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8635NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8636NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8637NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8638NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8639NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8640NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8641NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8642NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8643NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8644NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8645NISTSchema-SV-II-atomic-nonPositiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8646NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8647NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8648NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8649NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8650NISTXML-SV-II-atomic-nonPositiveInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8651NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8652NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8653NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8654NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8655NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8656NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8657NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8658NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8659NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8660NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8661NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8662NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8663NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8664NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8665NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8666NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8667NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8668NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8669NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8670NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8671NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8672NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8673NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8674NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8675NISTSchema-SV-II-atomic-nonPositiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8676NISTXML-SV-II-atomic-nonPositiveInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8677NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="8678NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8679NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8680NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8681NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8682NISTXML-SV-II-atomic-nonPositiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8683NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="8684NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8685NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8686NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8687NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8688NISTXML-SV-II-atomic-nonPositiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8689NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="8690NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8691NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8692NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8693NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8694NISTXML-SV-II-atomic-nonPositiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8695NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="8696NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8697NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8698NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8699NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8700NISTXML-SV-II-atomic-nonPositiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8701NISTSchema-SV-II-atomic-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="8702NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8703NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8704NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8705NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8706NISTXML-SV-II-atomic-nonPositiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8707NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="8708NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8709NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8710NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8711NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8712NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8713NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="8714NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8715NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8716NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8717NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8718NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8719NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="8720NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8721NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8722NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8723NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8724NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8725NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="8726NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8727NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8728NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8729NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8730NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8731NISTSchema-SV-II-atomic-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="8732NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8733NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8734NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8735NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8736NISTXML-SV-II-atomic-nonPositiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8737NISTSchema-SV-II-atomic-negativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8738NISTXML-SV-II-atomic-negativeInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8739NISTSchema-SV-II-atomic-negativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8740NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8741NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8742NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8743NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8744NISTXML-SV-II-atomic-negativeInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8745NISTSchema-SV-II-atomic-negativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8746NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8747NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8748NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8749NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8750NISTXML-SV-II-atomic-negativeInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8751NISTSchema-SV-II-atomic-negativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8752NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8753NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8754NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8755NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8756NISTXML-SV-II-atomic-negativeInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8757NISTSchema-SV-II-atomic-negativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8758NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8759NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8760NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8761NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8762NISTXML-SV-II-atomic-negativeInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8763NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8764NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8765NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8766NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8767NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8768NISTXML-SV-II-atomic-negativeInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8769NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8770NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8771NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8772NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8773NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8774NISTXML-SV-II-atomic-negativeInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8775NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8776NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8777NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8778NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8779NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8780NISTXML-SV-II-atomic-negativeInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8781NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8782NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8783NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8784NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8785NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8786NISTXML-SV-II-atomic-negativeInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8787NISTSchema-SV-II-atomic-negativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8788NISTXML-SV-II-atomic-negativeInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8789NISTSchema-SV-II-atomic-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="8790NISTXML-SV-II-atomic-negativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8791NISTXML-SV-II-atomic-negativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8792NISTXML-SV-II-atomic-negativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8793NISTXML-SV-II-atomic-negativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8794NISTXML-SV-II-atomic-negativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8795NISTSchema-SV-II-atomic-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="8796NISTXML-SV-II-atomic-negativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8797NISTXML-SV-II-atomic-negativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8798NISTXML-SV-II-atomic-negativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8799NISTXML-SV-II-atomic-negativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8800NISTXML-SV-II-atomic-negativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8801NISTSchema-SV-II-atomic-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="8802NISTXML-SV-II-atomic-negativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8803NISTXML-SV-II-atomic-negativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8804NISTXML-SV-II-atomic-negativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8805NISTXML-SV-II-atomic-negativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8806NISTXML-SV-II-atomic-negativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8807NISTSchema-SV-II-atomic-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="8808NISTXML-SV-II-atomic-negativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8809NISTXML-SV-II-atomic-negativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8810NISTXML-SV-II-atomic-negativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8811NISTXML-SV-II-atomic-negativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8812NISTXML-SV-II-atomic-negativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8813NISTSchema-SV-II-atomic-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="8814NISTXML-SV-II-atomic-negativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8815NISTXML-SV-II-atomic-negativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8816NISTXML-SV-II-atomic-negativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8817NISTXML-SV-II-atomic-negativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8818NISTXML-SV-II-atomic-negativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8819NISTSchema-SV-II-atomic-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="8820NISTXML-SV-II-atomic-negativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8821NISTXML-SV-II-atomic-negativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8822NISTXML-SV-II-atomic-negativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8823NISTXML-SV-II-atomic-negativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8824NISTXML-SV-II-atomic-negativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8825NISTSchema-SV-II-atomic-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="8826NISTXML-SV-II-atomic-negativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8827NISTXML-SV-II-atomic-negativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8828NISTXML-SV-II-atomic-negativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8829NISTXML-SV-II-atomic-negativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8830NISTXML-SV-II-atomic-negativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8831NISTSchema-SV-II-atomic-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="8832NISTXML-SV-II-atomic-negativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8833NISTXML-SV-II-atomic-negativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8834NISTXML-SV-II-atomic-negativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8835NISTXML-SV-II-atomic-negativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8836NISTXML-SV-II-atomic-negativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8837NISTSchema-SV-II-atomic-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="8838NISTXML-SV-II-atomic-negativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8839NISTXML-SV-II-atomic-negativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8840NISTXML-SV-II-atomic-negativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8841NISTXML-SV-II-atomic-negativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8842NISTXML-SV-II-atomic-negativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8843NISTSchema-SV-II-atomic-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="8844NISTXML-SV-II-atomic-negativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8845NISTXML-SV-II-atomic-negativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8846NISTXML-SV-II-atomic-negativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8847NISTXML-SV-II-atomic-negativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8848NISTXML-SV-II-atomic-negativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8849NISTSchema-SV-II-atomic-long-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8850NISTXML-SV-II-atomic-long-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8851NISTSchema-SV-II-atomic-long-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8852NISTXML-SV-II-atomic-long-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8853NISTXML-SV-II-atomic-long-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8854NISTXML-SV-II-atomic-long-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8855NISTXML-SV-II-atomic-long-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8856NISTXML-SV-II-atomic-long-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8857NISTSchema-SV-II-atomic-long-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8858NISTXML-SV-II-atomic-long-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8859NISTXML-SV-II-atomic-long-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8860NISTXML-SV-II-atomic-long-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8861NISTXML-SV-II-atomic-long-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8862NISTXML-SV-II-atomic-long-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8863NISTSchema-SV-II-atomic-long-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8864NISTXML-SV-II-atomic-long-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8865NISTXML-SV-II-atomic-long-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8866NISTXML-SV-II-atomic-long-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8867NISTXML-SV-II-atomic-long-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8868NISTXML-SV-II-atomic-long-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8869NISTSchema-SV-II-atomic-long-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8870NISTXML-SV-II-atomic-long-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8871NISTXML-SV-II-atomic-long-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8872NISTXML-SV-II-atomic-long-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8873NISTXML-SV-II-atomic-long-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8874NISTXML-SV-II-atomic-long-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8875NISTSchema-SV-II-atomic-long-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8876NISTXML-SV-II-atomic-long-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8877NISTXML-SV-II-atomic-long-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8878NISTXML-SV-II-atomic-long-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8879NISTXML-SV-II-atomic-long-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8880NISTXML-SV-II-atomic-long-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8881NISTSchema-SV-II-atomic-long-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8882NISTXML-SV-II-atomic-long-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8883NISTXML-SV-II-atomic-long-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8884NISTXML-SV-II-atomic-long-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8885NISTXML-SV-II-atomic-long-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8886NISTXML-SV-II-atomic-long-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8887NISTSchema-SV-II-atomic-long-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="8888NISTXML-SV-II-atomic-long-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8889NISTXML-SV-II-atomic-long-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8890NISTXML-SV-II-atomic-long-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8891NISTXML-SV-II-atomic-long-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8892NISTXML-SV-II-atomic-long-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8893NISTSchema-SV-II-atomic-long-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="8894NISTXML-SV-II-atomic-long-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8895NISTXML-SV-II-atomic-long-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8896NISTXML-SV-II-atomic-long-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8897NISTXML-SV-II-atomic-long-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8898NISTXML-SV-II-atomic-long-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8899NISTSchema-SV-II-atomic-long-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="8900NISTXML-SV-II-atomic-long-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8901NISTSchema-SV-II-atomic-long-pattern-1 tokoe:valid" result="pass"/><test-case name="8902NISTXML-SV-II-atomic-long-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="8903NISTXML-SV-II-atomic-long-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="8904NISTXML-SV-II-atomic-long-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="8905NISTXML-SV-II-atomic-long-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="8906NISTXML-SV-II-atomic-long-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="8907NISTSchema-SV-II-atomic-long-pattern-2 tokoe:valid" result="pass"/><test-case name="8908NISTXML-SV-II-atomic-long-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="8909NISTXML-SV-II-atomic-long-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="8910NISTXML-SV-II-atomic-long-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="8911NISTXML-SV-II-atomic-long-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="8912NISTXML-SV-II-atomic-long-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="8913NISTSchema-SV-II-atomic-long-pattern-3 tokoe:valid" result="pass"/><test-case name="8914NISTXML-SV-II-atomic-long-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="8915NISTXML-SV-II-atomic-long-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="8916NISTXML-SV-II-atomic-long-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="8917NISTXML-SV-II-atomic-long-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="8918NISTXML-SV-II-atomic-long-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="8919NISTSchema-SV-II-atomic-long-pattern-4 tokoe:valid" result="pass"/><test-case name="8920NISTXML-SV-II-atomic-long-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="8921NISTXML-SV-II-atomic-long-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="8922NISTXML-SV-II-atomic-long-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="8923NISTXML-SV-II-atomic-long-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="8924NISTXML-SV-II-atomic-long-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="8925NISTSchema-SV-II-atomic-long-pattern-5 tokoe:valid" result="pass"/><test-case name="8926NISTXML-SV-II-atomic-long-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="8927NISTXML-SV-II-atomic-long-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="8928NISTXML-SV-II-atomic-long-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="8929NISTXML-SV-II-atomic-long-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="8930NISTXML-SV-II-atomic-long-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="8931NISTSchema-SV-II-atomic-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="8932NISTXML-SV-II-atomic-long-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="8933NISTXML-SV-II-atomic-long-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="8934NISTXML-SV-II-atomic-long-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="8935NISTXML-SV-II-atomic-long-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="8936NISTXML-SV-II-atomic-long-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="8937NISTSchema-SV-II-atomic-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="8938NISTXML-SV-II-atomic-long-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="8939NISTXML-SV-II-atomic-long-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="8940NISTXML-SV-II-atomic-long-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="8941NISTXML-SV-II-atomic-long-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="8942NISTXML-SV-II-atomic-long-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="8943NISTSchema-SV-II-atomic-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="8944NISTXML-SV-II-atomic-long-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="8945NISTXML-SV-II-atomic-long-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="8946NISTXML-SV-II-atomic-long-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="8947NISTXML-SV-II-atomic-long-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="8948NISTXML-SV-II-atomic-long-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="8949NISTSchema-SV-II-atomic-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="8950NISTXML-SV-II-atomic-long-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="8951NISTXML-SV-II-atomic-long-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="8952NISTXML-SV-II-atomic-long-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="8953NISTXML-SV-II-atomic-long-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="8954NISTXML-SV-II-atomic-long-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="8955NISTSchema-SV-II-atomic-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="8956NISTXML-SV-II-atomic-long-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="8957NISTXML-SV-II-atomic-long-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="8958NISTXML-SV-II-atomic-long-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="8959NISTXML-SV-II-atomic-long-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="8960NISTXML-SV-II-atomic-long-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="8961NISTSchema-SV-II-atomic-int-minExclusive-1 tokoe:valid" result="pass"/><test-case name="8962NISTXML-SV-II-atomic-int-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8963NISTSchema-SV-II-atomic-int-minExclusive-2 tokoe:valid" result="pass"/><test-case name="8964NISTXML-SV-II-atomic-int-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8965NISTXML-SV-II-atomic-int-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8966NISTXML-SV-II-atomic-int-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8967NISTXML-SV-II-atomic-int-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8968NISTXML-SV-II-atomic-int-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8969NISTSchema-SV-II-atomic-int-minExclusive-3 tokoe:valid" result="pass"/><test-case name="8970NISTXML-SV-II-atomic-int-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="8971NISTXML-SV-II-atomic-int-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="8972NISTXML-SV-II-atomic-int-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="8973NISTXML-SV-II-atomic-int-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="8974NISTXML-SV-II-atomic-int-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="8975NISTSchema-SV-II-atomic-int-minExclusive-4 tokoe:valid" result="pass"/><test-case name="8976NISTXML-SV-II-atomic-int-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="8977NISTXML-SV-II-atomic-int-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="8978NISTXML-SV-II-atomic-int-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="8979NISTXML-SV-II-atomic-int-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="8980NISTXML-SV-II-atomic-int-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="8981NISTSchema-SV-II-atomic-int-minExclusive-5 tokoe:valid" result="pass"/><test-case name="8982NISTXML-SV-II-atomic-int-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="8983NISTXML-SV-II-atomic-int-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="8984NISTXML-SV-II-atomic-int-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="8985NISTXML-SV-II-atomic-int-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="8986NISTXML-SV-II-atomic-int-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="8987NISTSchema-SV-II-atomic-int-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="8988NISTXML-SV-II-atomic-int-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="8989NISTXML-SV-II-atomic-int-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="8990NISTXML-SV-II-atomic-int-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="8991NISTXML-SV-II-atomic-int-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="8992NISTXML-SV-II-atomic-int-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="8993NISTSchema-SV-II-atomic-int-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="8994NISTXML-SV-II-atomic-int-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="8995NISTXML-SV-II-atomic-int-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="8996NISTXML-SV-II-atomic-int-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="8997NISTXML-SV-II-atomic-int-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="8998NISTXML-SV-II-atomic-int-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="8999NISTSchema-SV-II-atomic-int-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9000NISTXML-SV-II-atomic-int-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9001NISTXML-SV-II-atomic-int-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9002NISTXML-SV-II-atomic-int-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9003NISTXML-SV-II-atomic-int-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9004NISTXML-SV-II-atomic-int-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9005NISTSchema-SV-II-atomic-int-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9006NISTXML-SV-II-atomic-int-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9007NISTXML-SV-II-atomic-int-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9008NISTXML-SV-II-atomic-int-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9009NISTXML-SV-II-atomic-int-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9010NISTXML-SV-II-atomic-int-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9011NISTSchema-SV-II-atomic-int-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9012NISTXML-SV-II-atomic-int-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9013NISTSchema-SV-II-atomic-int-pattern-1 tokoe:valid" result="pass"/><test-case name="9014NISTXML-SV-II-atomic-int-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9015NISTXML-SV-II-atomic-int-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9016NISTXML-SV-II-atomic-int-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9017NISTXML-SV-II-atomic-int-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9018NISTXML-SV-II-atomic-int-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9019NISTSchema-SV-II-atomic-int-pattern-2 tokoe:valid" result="pass"/><test-case name="9020NISTXML-SV-II-atomic-int-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9021NISTXML-SV-II-atomic-int-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9022NISTXML-SV-II-atomic-int-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9023NISTXML-SV-II-atomic-int-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9024NISTXML-SV-II-atomic-int-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9025NISTSchema-SV-II-atomic-int-pattern-3 tokoe:valid" result="pass"/><test-case name="9026NISTXML-SV-II-atomic-int-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9027NISTXML-SV-II-atomic-int-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9028NISTXML-SV-II-atomic-int-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9029NISTXML-SV-II-atomic-int-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9030NISTXML-SV-II-atomic-int-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9031NISTSchema-SV-II-atomic-int-pattern-4 tokoe:valid" result="pass"/><test-case name="9032NISTXML-SV-II-atomic-int-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9033NISTXML-SV-II-atomic-int-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9034NISTXML-SV-II-atomic-int-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9035NISTXML-SV-II-atomic-int-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9036NISTXML-SV-II-atomic-int-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9037NISTSchema-SV-II-atomic-int-pattern-5 tokoe:valid" result="pass"/><test-case name="9038NISTXML-SV-II-atomic-int-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9039NISTXML-SV-II-atomic-int-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9040NISTXML-SV-II-atomic-int-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9041NISTXML-SV-II-atomic-int-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9042NISTXML-SV-II-atomic-int-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9043NISTSchema-SV-II-atomic-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="9044NISTXML-SV-II-atomic-int-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9045NISTXML-SV-II-atomic-int-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9046NISTXML-SV-II-atomic-int-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9047NISTXML-SV-II-atomic-int-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9048NISTXML-SV-II-atomic-int-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9049NISTSchema-SV-II-atomic-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="9050NISTXML-SV-II-atomic-int-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9051NISTXML-SV-II-atomic-int-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9052NISTXML-SV-II-atomic-int-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9053NISTXML-SV-II-atomic-int-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9054NISTXML-SV-II-atomic-int-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9055NISTSchema-SV-II-atomic-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="9056NISTXML-SV-II-atomic-int-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9057NISTXML-SV-II-atomic-int-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9058NISTXML-SV-II-atomic-int-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9059NISTXML-SV-II-atomic-int-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9060NISTXML-SV-II-atomic-int-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9061NISTSchema-SV-II-atomic-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="9062NISTXML-SV-II-atomic-int-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9063NISTXML-SV-II-atomic-int-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9064NISTXML-SV-II-atomic-int-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9065NISTXML-SV-II-atomic-int-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9066NISTXML-SV-II-atomic-int-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9067NISTSchema-SV-II-atomic-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="9068NISTXML-SV-II-atomic-int-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9069NISTXML-SV-II-atomic-int-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9070NISTXML-SV-II-atomic-int-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9071NISTXML-SV-II-atomic-int-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9072NISTXML-SV-II-atomic-int-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9073NISTSchema-SV-II-atomic-short-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9074NISTXML-SV-II-atomic-short-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9075NISTSchema-SV-II-atomic-short-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9076NISTXML-SV-II-atomic-short-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9077NISTXML-SV-II-atomic-short-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9078NISTXML-SV-II-atomic-short-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9079NISTXML-SV-II-atomic-short-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9080NISTXML-SV-II-atomic-short-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9081NISTSchema-SV-II-atomic-short-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9082NISTXML-SV-II-atomic-short-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9083NISTXML-SV-II-atomic-short-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9084NISTXML-SV-II-atomic-short-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9085NISTXML-SV-II-atomic-short-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9086NISTXML-SV-II-atomic-short-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9087NISTSchema-SV-II-atomic-short-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9088NISTXML-SV-II-atomic-short-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9089NISTXML-SV-II-atomic-short-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9090NISTXML-SV-II-atomic-short-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9091NISTXML-SV-II-atomic-short-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9092NISTXML-SV-II-atomic-short-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9093NISTSchema-SV-II-atomic-short-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9094NISTXML-SV-II-atomic-short-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9095NISTXML-SV-II-atomic-short-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9096NISTXML-SV-II-atomic-short-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9097NISTXML-SV-II-atomic-short-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9098NISTXML-SV-II-atomic-short-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9099NISTSchema-SV-II-atomic-short-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9100NISTXML-SV-II-atomic-short-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9101NISTXML-SV-II-atomic-short-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9102NISTXML-SV-II-atomic-short-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9103NISTXML-SV-II-atomic-short-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9104NISTXML-SV-II-atomic-short-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9105NISTSchema-SV-II-atomic-short-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9106NISTXML-SV-II-atomic-short-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9107NISTXML-SV-II-atomic-short-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9108NISTXML-SV-II-atomic-short-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9109NISTXML-SV-II-atomic-short-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9110NISTXML-SV-II-atomic-short-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9111NISTSchema-SV-II-atomic-short-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9112NISTXML-SV-II-atomic-short-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9113NISTXML-SV-II-atomic-short-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9114NISTXML-SV-II-atomic-short-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9115NISTXML-SV-II-atomic-short-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9116NISTXML-SV-II-atomic-short-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9117NISTSchema-SV-II-atomic-short-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9118NISTXML-SV-II-atomic-short-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9119NISTXML-SV-II-atomic-short-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9120NISTXML-SV-II-atomic-short-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9121NISTXML-SV-II-atomic-short-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9122NISTXML-SV-II-atomic-short-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9123NISTSchema-SV-II-atomic-short-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9124NISTXML-SV-II-atomic-short-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9125NISTSchema-SV-II-atomic-short-pattern-1 tokoe:valid" result="pass"/><test-case name="9126NISTXML-SV-II-atomic-short-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9127NISTXML-SV-II-atomic-short-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9128NISTXML-SV-II-atomic-short-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9129NISTXML-SV-II-atomic-short-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9130NISTXML-SV-II-atomic-short-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9131NISTSchema-SV-II-atomic-short-pattern-2 tokoe:valid" result="pass"/><test-case name="9132NISTXML-SV-II-atomic-short-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9133NISTXML-SV-II-atomic-short-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9134NISTXML-SV-II-atomic-short-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9135NISTXML-SV-II-atomic-short-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9136NISTXML-SV-II-atomic-short-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9137NISTSchema-SV-II-atomic-short-pattern-3 tokoe:valid" result="pass"/><test-case name="9138NISTXML-SV-II-atomic-short-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9139NISTXML-SV-II-atomic-short-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9140NISTXML-SV-II-atomic-short-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9141NISTXML-SV-II-atomic-short-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9142NISTXML-SV-II-atomic-short-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9143NISTSchema-SV-II-atomic-short-pattern-4 tokoe:valid" result="pass"/><test-case name="9144NISTXML-SV-II-atomic-short-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9145NISTXML-SV-II-atomic-short-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9146NISTXML-SV-II-atomic-short-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9147NISTXML-SV-II-atomic-short-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9148NISTXML-SV-II-atomic-short-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9149NISTSchema-SV-II-atomic-short-pattern-5 tokoe:valid" result="pass"/><test-case name="9150NISTXML-SV-II-atomic-short-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9151NISTXML-SV-II-atomic-short-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9152NISTXML-SV-II-atomic-short-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9153NISTXML-SV-II-atomic-short-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9154NISTXML-SV-II-atomic-short-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9155NISTSchema-SV-II-atomic-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="9156NISTXML-SV-II-atomic-short-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9157NISTXML-SV-II-atomic-short-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9158NISTXML-SV-II-atomic-short-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9159NISTXML-SV-II-atomic-short-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9160NISTXML-SV-II-atomic-short-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9161NISTSchema-SV-II-atomic-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="9162NISTXML-SV-II-atomic-short-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9163NISTXML-SV-II-atomic-short-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9164NISTXML-SV-II-atomic-short-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9165NISTXML-SV-II-atomic-short-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9166NISTXML-SV-II-atomic-short-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9167NISTSchema-SV-II-atomic-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="9168NISTXML-SV-II-atomic-short-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9169NISTXML-SV-II-atomic-short-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9170NISTXML-SV-II-atomic-short-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9171NISTXML-SV-II-atomic-short-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9172NISTXML-SV-II-atomic-short-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9173NISTSchema-SV-II-atomic-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="9174NISTXML-SV-II-atomic-short-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9175NISTXML-SV-II-atomic-short-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9176NISTXML-SV-II-atomic-short-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9177NISTXML-SV-II-atomic-short-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9178NISTXML-SV-II-atomic-short-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9179NISTSchema-SV-II-atomic-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="9180NISTXML-SV-II-atomic-short-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9181NISTXML-SV-II-atomic-short-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9182NISTXML-SV-II-atomic-short-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9183NISTXML-SV-II-atomic-short-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9184NISTXML-SV-II-atomic-short-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9185NISTSchema-SV-II-atomic-byte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9186NISTXML-SV-II-atomic-byte-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9187NISTSchema-SV-II-atomic-byte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9188NISTXML-SV-II-atomic-byte-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9189NISTXML-SV-II-atomic-byte-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9190NISTXML-SV-II-atomic-byte-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9191NISTXML-SV-II-atomic-byte-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9192NISTXML-SV-II-atomic-byte-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9193NISTSchema-SV-II-atomic-byte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9194NISTXML-SV-II-atomic-byte-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9195NISTXML-SV-II-atomic-byte-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9196NISTXML-SV-II-atomic-byte-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9197NISTXML-SV-II-atomic-byte-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9198NISTXML-SV-II-atomic-byte-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9199NISTSchema-SV-II-atomic-byte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9200NISTXML-SV-II-atomic-byte-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9201NISTXML-SV-II-atomic-byte-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9202NISTXML-SV-II-atomic-byte-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9203NISTXML-SV-II-atomic-byte-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9204NISTXML-SV-II-atomic-byte-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9205NISTSchema-SV-II-atomic-byte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9206NISTXML-SV-II-atomic-byte-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9207NISTXML-SV-II-atomic-byte-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9208NISTXML-SV-II-atomic-byte-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9209NISTXML-SV-II-atomic-byte-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9210NISTXML-SV-II-atomic-byte-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9211NISTSchema-SV-II-atomic-byte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9212NISTXML-SV-II-atomic-byte-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9213NISTXML-SV-II-atomic-byte-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9214NISTXML-SV-II-atomic-byte-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9215NISTXML-SV-II-atomic-byte-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9216NISTXML-SV-II-atomic-byte-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9217NISTSchema-SV-II-atomic-byte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9218NISTXML-SV-II-atomic-byte-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9219NISTXML-SV-II-atomic-byte-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9220NISTXML-SV-II-atomic-byte-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9221NISTXML-SV-II-atomic-byte-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9222NISTXML-SV-II-atomic-byte-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9223NISTSchema-SV-II-atomic-byte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9224NISTXML-SV-II-atomic-byte-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9225NISTXML-SV-II-atomic-byte-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9226NISTXML-SV-II-atomic-byte-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9227NISTXML-SV-II-atomic-byte-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9228NISTXML-SV-II-atomic-byte-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9229NISTSchema-SV-II-atomic-byte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9230NISTXML-SV-II-atomic-byte-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9231NISTXML-SV-II-atomic-byte-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9232NISTXML-SV-II-atomic-byte-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9233NISTXML-SV-II-atomic-byte-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9234NISTXML-SV-II-atomic-byte-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9235NISTSchema-SV-II-atomic-byte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9236NISTXML-SV-II-atomic-byte-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9237NISTSchema-SV-II-atomic-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="9238NISTXML-SV-II-atomic-byte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9239NISTXML-SV-II-atomic-byte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9240NISTXML-SV-II-atomic-byte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9241NISTXML-SV-II-atomic-byte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9242NISTXML-SV-II-atomic-byte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9243NISTSchema-SV-II-atomic-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="9244NISTXML-SV-II-atomic-byte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9245NISTXML-SV-II-atomic-byte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9246NISTXML-SV-II-atomic-byte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9247NISTXML-SV-II-atomic-byte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9248NISTXML-SV-II-atomic-byte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9249NISTSchema-SV-II-atomic-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="9250NISTXML-SV-II-atomic-byte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9251NISTXML-SV-II-atomic-byte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9252NISTXML-SV-II-atomic-byte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9253NISTXML-SV-II-atomic-byte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9254NISTXML-SV-II-atomic-byte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9255NISTSchema-SV-II-atomic-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="9256NISTXML-SV-II-atomic-byte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9257NISTXML-SV-II-atomic-byte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9258NISTXML-SV-II-atomic-byte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9259NISTXML-SV-II-atomic-byte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9260NISTXML-SV-II-atomic-byte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9261NISTSchema-SV-II-atomic-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="9262NISTXML-SV-II-atomic-byte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9263NISTXML-SV-II-atomic-byte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9264NISTXML-SV-II-atomic-byte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9265NISTXML-SV-II-atomic-byte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9266NISTXML-SV-II-atomic-byte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9267NISTSchema-SV-II-atomic-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="9268NISTXML-SV-II-atomic-byte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9269NISTXML-SV-II-atomic-byte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9270NISTXML-SV-II-atomic-byte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9271NISTXML-SV-II-atomic-byte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9272NISTXML-SV-II-atomic-byte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9273NISTSchema-SV-II-atomic-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="9274NISTXML-SV-II-atomic-byte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9275NISTXML-SV-II-atomic-byte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9276NISTXML-SV-II-atomic-byte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9277NISTXML-SV-II-atomic-byte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9278NISTXML-SV-II-atomic-byte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9279NISTSchema-SV-II-atomic-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="9280NISTXML-SV-II-atomic-byte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9281NISTXML-SV-II-atomic-byte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9282NISTXML-SV-II-atomic-byte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9283NISTXML-SV-II-atomic-byte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9284NISTXML-SV-II-atomic-byte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9285NISTSchema-SV-II-atomic-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="9286NISTXML-SV-II-atomic-byte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9287NISTXML-SV-II-atomic-byte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9288NISTXML-SV-II-atomic-byte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9289NISTXML-SV-II-atomic-byte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9290NISTXML-SV-II-atomic-byte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9291NISTSchema-SV-II-atomic-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="9292NISTXML-SV-II-atomic-byte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9293NISTXML-SV-II-atomic-byte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9294NISTXML-SV-II-atomic-byte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9295NISTXML-SV-II-atomic-byte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9296NISTXML-SV-II-atomic-byte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9297NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9298NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9299NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9300NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9301NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9302NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9303NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9304NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9305NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9306NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9307NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9308NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9309NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9310NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9311NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9312NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9313NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9314NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9315NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9316NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9317NISTSchema-SV-II-atomic-nonNegativeInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9318NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9319NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9320NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9321NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9322NISTXML-SV-II-atomic-nonNegativeInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9323NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9324NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9325NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9326NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9327NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9328NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9329NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9330NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9331NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9332NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9333NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9334NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9335NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9336NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9337NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9338NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9339NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9340NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9341NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9342NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9343NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9344NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9345NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9346NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9347NISTSchema-SV-II-atomic-nonNegativeInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9348NISTXML-SV-II-atomic-nonNegativeInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9349NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="9350NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9351NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9352NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9353NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9354NISTXML-SV-II-atomic-nonNegativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9355NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="9356NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9357NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9358NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9359NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9360NISTXML-SV-II-atomic-nonNegativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9361NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="9362NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9363NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9364NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9365NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9366NISTXML-SV-II-atomic-nonNegativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9367NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="9368NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9369NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9370NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9371NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9372NISTXML-SV-II-atomic-nonNegativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9373NISTSchema-SV-II-atomic-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="9374NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9375NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9376NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9377NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9378NISTXML-SV-II-atomic-nonNegativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9379NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="9380NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9381NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9382NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9383NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9384NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9385NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="9386NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9387NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9388NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9389NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9390NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9391NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="9392NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9393NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9394NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9395NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9396NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9397NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="9398NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9399NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9400NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9401NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9402NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9403NISTSchema-SV-II-atomic-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="9404NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9405NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9406NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9407NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9408NISTXML-SV-II-atomic-nonNegativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9409NISTSchema-SV-II-atomic-unsignedLong-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9410NISTXML-SV-II-atomic-unsignedLong-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9411NISTSchema-SV-II-atomic-unsignedLong-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9412NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9413NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9414NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9415NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9416NISTXML-SV-II-atomic-unsignedLong-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9417NISTSchema-SV-II-atomic-unsignedLong-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9418NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9419NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9420NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9421NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9422NISTXML-SV-II-atomic-unsignedLong-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9423NISTSchema-SV-II-atomic-unsignedLong-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9424NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9425NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9426NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9427NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9428NISTXML-SV-II-atomic-unsignedLong-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9429NISTSchema-SV-II-atomic-unsignedLong-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9430NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9431NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9432NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9433NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9434NISTXML-SV-II-atomic-unsignedLong-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9435NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9436NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9437NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9438NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9439NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9440NISTXML-SV-II-atomic-unsignedLong-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9441NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9442NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9443NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9444NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9445NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9446NISTXML-SV-II-atomic-unsignedLong-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9447NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9448NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9449NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9450NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9451NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9452NISTXML-SV-II-atomic-unsignedLong-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9453NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9454NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9455NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9456NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9457NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9458NISTXML-SV-II-atomic-unsignedLong-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9459NISTSchema-SV-II-atomic-unsignedLong-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9460NISTXML-SV-II-atomic-unsignedLong-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9461NISTSchema-SV-II-atomic-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="9462NISTXML-SV-II-atomic-unsignedLong-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9463NISTXML-SV-II-atomic-unsignedLong-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9464NISTXML-SV-II-atomic-unsignedLong-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9465NISTXML-SV-II-atomic-unsignedLong-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9466NISTXML-SV-II-atomic-unsignedLong-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9467NISTSchema-SV-II-atomic-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="9468NISTXML-SV-II-atomic-unsignedLong-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9469NISTXML-SV-II-atomic-unsignedLong-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9470NISTXML-SV-II-atomic-unsignedLong-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9471NISTXML-SV-II-atomic-unsignedLong-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9472NISTXML-SV-II-atomic-unsignedLong-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9473NISTSchema-SV-II-atomic-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="9474NISTXML-SV-II-atomic-unsignedLong-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9475NISTXML-SV-II-atomic-unsignedLong-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9476NISTXML-SV-II-atomic-unsignedLong-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9477NISTXML-SV-II-atomic-unsignedLong-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9478NISTXML-SV-II-atomic-unsignedLong-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9479NISTSchema-SV-II-atomic-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="9480NISTXML-SV-II-atomic-unsignedLong-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9481NISTXML-SV-II-atomic-unsignedLong-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9482NISTXML-SV-II-atomic-unsignedLong-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9483NISTXML-SV-II-atomic-unsignedLong-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9484NISTXML-SV-II-atomic-unsignedLong-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9485NISTSchema-SV-II-atomic-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="9486NISTXML-SV-II-atomic-unsignedLong-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9487NISTXML-SV-II-atomic-unsignedLong-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9488NISTXML-SV-II-atomic-unsignedLong-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9489NISTXML-SV-II-atomic-unsignedLong-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9490NISTXML-SV-II-atomic-unsignedLong-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9491NISTSchema-SV-II-atomic-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="9492NISTXML-SV-II-atomic-unsignedLong-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9493NISTXML-SV-II-atomic-unsignedLong-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9494NISTXML-SV-II-atomic-unsignedLong-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9495NISTXML-SV-II-atomic-unsignedLong-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9496NISTXML-SV-II-atomic-unsignedLong-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9497NISTSchema-SV-II-atomic-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="9498NISTXML-SV-II-atomic-unsignedLong-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9499NISTXML-SV-II-atomic-unsignedLong-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9500NISTXML-SV-II-atomic-unsignedLong-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9501NISTXML-SV-II-atomic-unsignedLong-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9502NISTXML-SV-II-atomic-unsignedLong-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9503NISTSchema-SV-II-atomic-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="9504NISTXML-SV-II-atomic-unsignedLong-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9505NISTXML-SV-II-atomic-unsignedLong-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9506NISTXML-SV-II-atomic-unsignedLong-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9507NISTXML-SV-II-atomic-unsignedLong-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9508NISTXML-SV-II-atomic-unsignedLong-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9509NISTSchema-SV-II-atomic-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="9510NISTXML-SV-II-atomic-unsignedLong-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9511NISTXML-SV-II-atomic-unsignedLong-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9512NISTXML-SV-II-atomic-unsignedLong-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9513NISTXML-SV-II-atomic-unsignedLong-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9514NISTXML-SV-II-atomic-unsignedLong-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9515NISTSchema-SV-II-atomic-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="9516NISTXML-SV-II-atomic-unsignedLong-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9517NISTXML-SV-II-atomic-unsignedLong-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9518NISTXML-SV-II-atomic-unsignedLong-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9519NISTXML-SV-II-atomic-unsignedLong-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9520NISTXML-SV-II-atomic-unsignedLong-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9521NISTSchema-SV-II-atomic-unsignedInt-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9522NISTXML-SV-II-atomic-unsignedInt-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9523NISTSchema-SV-II-atomic-unsignedInt-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9524NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9525NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9526NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9527NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9528NISTXML-SV-II-atomic-unsignedInt-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9529NISTSchema-SV-II-atomic-unsignedInt-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9530NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9531NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9532NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9533NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9534NISTXML-SV-II-atomic-unsignedInt-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9535NISTSchema-SV-II-atomic-unsignedInt-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9536NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9537NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9538NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9539NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9540NISTXML-SV-II-atomic-unsignedInt-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9541NISTSchema-SV-II-atomic-unsignedInt-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9542NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9543NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9544NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9545NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9546NISTXML-SV-II-atomic-unsignedInt-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9547NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9548NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9549NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9550NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9551NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9552NISTXML-SV-II-atomic-unsignedInt-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9553NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9554NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9555NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9556NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9557NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9558NISTXML-SV-II-atomic-unsignedInt-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9559NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9560NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9561NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9562NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9563NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9564NISTXML-SV-II-atomic-unsignedInt-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9565NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9566NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9567NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9568NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9569NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9570NISTXML-SV-II-atomic-unsignedInt-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9571NISTSchema-SV-II-atomic-unsignedInt-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9572NISTXML-SV-II-atomic-unsignedInt-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9573NISTSchema-SV-II-atomic-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="9574NISTXML-SV-II-atomic-unsignedInt-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9575NISTXML-SV-II-atomic-unsignedInt-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9576NISTXML-SV-II-atomic-unsignedInt-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9577NISTXML-SV-II-atomic-unsignedInt-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9578NISTXML-SV-II-atomic-unsignedInt-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9579NISTSchema-SV-II-atomic-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="9580NISTXML-SV-II-atomic-unsignedInt-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9581NISTXML-SV-II-atomic-unsignedInt-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9582NISTXML-SV-II-atomic-unsignedInt-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9583NISTXML-SV-II-atomic-unsignedInt-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9584NISTXML-SV-II-atomic-unsignedInt-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9585NISTSchema-SV-II-atomic-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="9586NISTXML-SV-II-atomic-unsignedInt-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9587NISTXML-SV-II-atomic-unsignedInt-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9588NISTXML-SV-II-atomic-unsignedInt-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9589NISTXML-SV-II-atomic-unsignedInt-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9590NISTXML-SV-II-atomic-unsignedInt-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9591NISTSchema-SV-II-atomic-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="9592NISTXML-SV-II-atomic-unsignedInt-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9593NISTXML-SV-II-atomic-unsignedInt-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9594NISTXML-SV-II-atomic-unsignedInt-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9595NISTXML-SV-II-atomic-unsignedInt-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9596NISTXML-SV-II-atomic-unsignedInt-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9597NISTSchema-SV-II-atomic-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="9598NISTXML-SV-II-atomic-unsignedInt-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9599NISTXML-SV-II-atomic-unsignedInt-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9600NISTXML-SV-II-atomic-unsignedInt-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9601NISTXML-SV-II-atomic-unsignedInt-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9602NISTXML-SV-II-atomic-unsignedInt-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9603NISTSchema-SV-II-atomic-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="9604NISTXML-SV-II-atomic-unsignedInt-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9605NISTXML-SV-II-atomic-unsignedInt-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9606NISTXML-SV-II-atomic-unsignedInt-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9607NISTXML-SV-II-atomic-unsignedInt-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9608NISTXML-SV-II-atomic-unsignedInt-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9609NISTSchema-SV-II-atomic-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="9610NISTXML-SV-II-atomic-unsignedInt-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9611NISTXML-SV-II-atomic-unsignedInt-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9612NISTXML-SV-II-atomic-unsignedInt-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9613NISTXML-SV-II-atomic-unsignedInt-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9614NISTXML-SV-II-atomic-unsignedInt-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9615NISTSchema-SV-II-atomic-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="9616NISTXML-SV-II-atomic-unsignedInt-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9617NISTXML-SV-II-atomic-unsignedInt-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9618NISTXML-SV-II-atomic-unsignedInt-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9619NISTXML-SV-II-atomic-unsignedInt-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9620NISTXML-SV-II-atomic-unsignedInt-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9621NISTSchema-SV-II-atomic-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="9622NISTXML-SV-II-atomic-unsignedInt-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9623NISTXML-SV-II-atomic-unsignedInt-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9624NISTXML-SV-II-atomic-unsignedInt-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9625NISTXML-SV-II-atomic-unsignedInt-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9626NISTXML-SV-II-atomic-unsignedInt-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9627NISTSchema-SV-II-atomic-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="9628NISTXML-SV-II-atomic-unsignedInt-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9629NISTXML-SV-II-atomic-unsignedInt-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9630NISTXML-SV-II-atomic-unsignedInt-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9631NISTXML-SV-II-atomic-unsignedInt-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9632NISTXML-SV-II-atomic-unsignedInt-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9633NISTSchema-SV-II-atomic-unsignedShort-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9634NISTXML-SV-II-atomic-unsignedShort-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9635NISTSchema-SV-II-atomic-unsignedShort-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9636NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9637NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9638NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9639NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9640NISTXML-SV-II-atomic-unsignedShort-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9641NISTSchema-SV-II-atomic-unsignedShort-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9642NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9643NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9644NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9645NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9646NISTXML-SV-II-atomic-unsignedShort-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9647NISTSchema-SV-II-atomic-unsignedShort-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9648NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9649NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9650NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9651NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9652NISTXML-SV-II-atomic-unsignedShort-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9653NISTSchema-SV-II-atomic-unsignedShort-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9654NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9655NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9656NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9657NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9658NISTXML-SV-II-atomic-unsignedShort-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9659NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9660NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9661NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9662NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9663NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9664NISTXML-SV-II-atomic-unsignedShort-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9665NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9666NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9667NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9668NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9669NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9670NISTXML-SV-II-atomic-unsignedShort-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9671NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9672NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9673NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9674NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9675NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9676NISTXML-SV-II-atomic-unsignedShort-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9677NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9678NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9679NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9680NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9681NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9682NISTXML-SV-II-atomic-unsignedShort-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9683NISTSchema-SV-II-atomic-unsignedShort-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9684NISTXML-SV-II-atomic-unsignedShort-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9685NISTSchema-SV-II-atomic-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="9686NISTXML-SV-II-atomic-unsignedShort-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9687NISTXML-SV-II-atomic-unsignedShort-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9688NISTXML-SV-II-atomic-unsignedShort-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9689NISTXML-SV-II-atomic-unsignedShort-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9690NISTXML-SV-II-atomic-unsignedShort-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9691NISTSchema-SV-II-atomic-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="9692NISTXML-SV-II-atomic-unsignedShort-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9693NISTXML-SV-II-atomic-unsignedShort-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9694NISTXML-SV-II-atomic-unsignedShort-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9695NISTXML-SV-II-atomic-unsignedShort-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9696NISTXML-SV-II-atomic-unsignedShort-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9697NISTSchema-SV-II-atomic-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="9698NISTXML-SV-II-atomic-unsignedShort-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9699NISTXML-SV-II-atomic-unsignedShort-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9700NISTXML-SV-II-atomic-unsignedShort-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9701NISTXML-SV-II-atomic-unsignedShort-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9702NISTXML-SV-II-atomic-unsignedShort-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9703NISTSchema-SV-II-atomic-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="9704NISTXML-SV-II-atomic-unsignedShort-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9705NISTXML-SV-II-atomic-unsignedShort-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9706NISTXML-SV-II-atomic-unsignedShort-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9707NISTXML-SV-II-atomic-unsignedShort-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9708NISTXML-SV-II-atomic-unsignedShort-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9709NISTSchema-SV-II-atomic-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="9710NISTXML-SV-II-atomic-unsignedShort-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9711NISTXML-SV-II-atomic-unsignedShort-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9712NISTXML-SV-II-atomic-unsignedShort-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9713NISTXML-SV-II-atomic-unsignedShort-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9714NISTXML-SV-II-atomic-unsignedShort-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9715NISTSchema-SV-II-atomic-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="9716NISTXML-SV-II-atomic-unsignedShort-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9717NISTXML-SV-II-atomic-unsignedShort-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9718NISTXML-SV-II-atomic-unsignedShort-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9719NISTXML-SV-II-atomic-unsignedShort-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9720NISTXML-SV-II-atomic-unsignedShort-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9721NISTSchema-SV-II-atomic-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="9722NISTXML-SV-II-atomic-unsignedShort-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9723NISTXML-SV-II-atomic-unsignedShort-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9724NISTXML-SV-II-atomic-unsignedShort-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9725NISTXML-SV-II-atomic-unsignedShort-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9726NISTXML-SV-II-atomic-unsignedShort-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9727NISTSchema-SV-II-atomic-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="9728NISTXML-SV-II-atomic-unsignedShort-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9729NISTXML-SV-II-atomic-unsignedShort-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9730NISTXML-SV-II-atomic-unsignedShort-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9731NISTXML-SV-II-atomic-unsignedShort-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9732NISTXML-SV-II-atomic-unsignedShort-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9733NISTSchema-SV-II-atomic-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="9734NISTXML-SV-II-atomic-unsignedShort-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9735NISTXML-SV-II-atomic-unsignedShort-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9736NISTXML-SV-II-atomic-unsignedShort-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9737NISTXML-SV-II-atomic-unsignedShort-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9738NISTXML-SV-II-atomic-unsignedShort-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9739NISTSchema-SV-II-atomic-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="9740NISTXML-SV-II-atomic-unsignedShort-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9741NISTXML-SV-II-atomic-unsignedShort-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9742NISTXML-SV-II-atomic-unsignedShort-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9743NISTXML-SV-II-atomic-unsignedShort-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9744NISTXML-SV-II-atomic-unsignedShort-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9745NISTSchema-SV-II-atomic-unsignedByte-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9746NISTXML-SV-II-atomic-unsignedByte-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9747NISTSchema-SV-II-atomic-unsignedByte-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9748NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9749NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9750NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9751NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9752NISTXML-SV-II-atomic-unsignedByte-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9753NISTSchema-SV-II-atomic-unsignedByte-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9754NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9755NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9756NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9757NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9758NISTXML-SV-II-atomic-unsignedByte-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9759NISTSchema-SV-II-atomic-unsignedByte-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9760NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9761NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9762NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9763NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9764NISTXML-SV-II-atomic-unsignedByte-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9765NISTSchema-SV-II-atomic-unsignedByte-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9766NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9767NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9768NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9769NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9770NISTXML-SV-II-atomic-unsignedByte-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9771NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9772NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9773NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9774NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9775NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9776NISTXML-SV-II-atomic-unsignedByte-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9777NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9778NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9779NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9780NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9781NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9782NISTXML-SV-II-atomic-unsignedByte-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9783NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9784NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9785NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9786NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9787NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9788NISTXML-SV-II-atomic-unsignedByte-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9789NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9790NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9791NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9792NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9793NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9794NISTXML-SV-II-atomic-unsignedByte-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9795NISTSchema-SV-II-atomic-unsignedByte-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9796NISTXML-SV-II-atomic-unsignedByte-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9797NISTSchema-SV-II-atomic-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="9798NISTXML-SV-II-atomic-unsignedByte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9799NISTXML-SV-II-atomic-unsignedByte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9800NISTXML-SV-II-atomic-unsignedByte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9801NISTXML-SV-II-atomic-unsignedByte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9802NISTXML-SV-II-atomic-unsignedByte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9803NISTSchema-SV-II-atomic-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="9804NISTXML-SV-II-atomic-unsignedByte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9805NISTXML-SV-II-atomic-unsignedByte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9806NISTXML-SV-II-atomic-unsignedByte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9807NISTXML-SV-II-atomic-unsignedByte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9808NISTXML-SV-II-atomic-unsignedByte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9809NISTSchema-SV-II-atomic-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="9810NISTXML-SV-II-atomic-unsignedByte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9811NISTXML-SV-II-atomic-unsignedByte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9812NISTXML-SV-II-atomic-unsignedByte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9813NISTXML-SV-II-atomic-unsignedByte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9814NISTXML-SV-II-atomic-unsignedByte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9815NISTSchema-SV-II-atomic-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="9816NISTXML-SV-II-atomic-unsignedByte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9817NISTXML-SV-II-atomic-unsignedByte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9818NISTXML-SV-II-atomic-unsignedByte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9819NISTXML-SV-II-atomic-unsignedByte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9820NISTXML-SV-II-atomic-unsignedByte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9821NISTSchema-SV-II-atomic-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="9822NISTXML-SV-II-atomic-unsignedByte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9823NISTXML-SV-II-atomic-unsignedByte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9824NISTXML-SV-II-atomic-unsignedByte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9825NISTXML-SV-II-atomic-unsignedByte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9826NISTXML-SV-II-atomic-unsignedByte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9827NISTSchema-SV-II-atomic-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="9828NISTXML-SV-II-atomic-unsignedByte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9829NISTXML-SV-II-atomic-unsignedByte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9830NISTXML-SV-II-atomic-unsignedByte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9831NISTXML-SV-II-atomic-unsignedByte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9832NISTXML-SV-II-atomic-unsignedByte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9833NISTSchema-SV-II-atomic-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="9834NISTXML-SV-II-atomic-unsignedByte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9835NISTXML-SV-II-atomic-unsignedByte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9836NISTXML-SV-II-atomic-unsignedByte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9837NISTXML-SV-II-atomic-unsignedByte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9838NISTXML-SV-II-atomic-unsignedByte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9839NISTSchema-SV-II-atomic-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="9840NISTXML-SV-II-atomic-unsignedByte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9841NISTXML-SV-II-atomic-unsignedByte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9842NISTXML-SV-II-atomic-unsignedByte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9843NISTXML-SV-II-atomic-unsignedByte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9844NISTXML-SV-II-atomic-unsignedByte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9845NISTSchema-SV-II-atomic-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="9846NISTXML-SV-II-atomic-unsignedByte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9847NISTXML-SV-II-atomic-unsignedByte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9848NISTXML-SV-II-atomic-unsignedByte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9849NISTXML-SV-II-atomic-unsignedByte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9850NISTXML-SV-II-atomic-unsignedByte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9851NISTSchema-SV-II-atomic-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="9852NISTXML-SV-II-atomic-unsignedByte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9853NISTXML-SV-II-atomic-unsignedByte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9854NISTXML-SV-II-atomic-unsignedByte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9855NISTXML-SV-II-atomic-unsignedByte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9856NISTXML-SV-II-atomic-unsignedByte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9857NISTSchema-SV-II-atomic-positiveInteger-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9858NISTXML-SV-II-atomic-positiveInteger-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9859NISTSchema-SV-II-atomic-positiveInteger-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9860NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9861NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9862NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9863NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9864NISTXML-SV-II-atomic-positiveInteger-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9865NISTSchema-SV-II-atomic-positiveInteger-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9866NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9867NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9868NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9869NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9870NISTXML-SV-II-atomic-positiveInteger-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9871NISTSchema-SV-II-atomic-positiveInteger-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9872NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9873NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9874NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9875NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9876NISTXML-SV-II-atomic-positiveInteger-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9877NISTSchema-SV-II-atomic-positiveInteger-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9878NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9879NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9880NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9881NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9882NISTXML-SV-II-atomic-positiveInteger-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9883NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9884NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9885NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9886NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9887NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="9888NISTXML-SV-II-atomic-positiveInteger-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="9889NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="9890NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9891NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9892NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9893NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9894NISTXML-SV-II-atomic-positiveInteger-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9895NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="9896NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9897NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9898NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9899NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9900NISTXML-SV-II-atomic-positiveInteger-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9901NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="9902NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9903NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9904NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9905NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9906NISTXML-SV-II-atomic-positiveInteger-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9907NISTSchema-SV-II-atomic-positiveInteger-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="9908NISTXML-SV-II-atomic-positiveInteger-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9909NISTSchema-SV-II-atomic-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="9910NISTXML-SV-II-atomic-positiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="9911NISTXML-SV-II-atomic-positiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="9912NISTXML-SV-II-atomic-positiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="9913NISTXML-SV-II-atomic-positiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="9914NISTXML-SV-II-atomic-positiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="9915NISTSchema-SV-II-atomic-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="9916NISTXML-SV-II-atomic-positiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="9917NISTXML-SV-II-atomic-positiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="9918NISTXML-SV-II-atomic-positiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="9919NISTXML-SV-II-atomic-positiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="9920NISTXML-SV-II-atomic-positiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="9921NISTSchema-SV-II-atomic-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="9922NISTXML-SV-II-atomic-positiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="9923NISTXML-SV-II-atomic-positiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="9924NISTXML-SV-II-atomic-positiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="9925NISTXML-SV-II-atomic-positiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="9926NISTXML-SV-II-atomic-positiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="9927NISTSchema-SV-II-atomic-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="9928NISTXML-SV-II-atomic-positiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="9929NISTXML-SV-II-atomic-positiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="9930NISTXML-SV-II-atomic-positiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="9931NISTXML-SV-II-atomic-positiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="9932NISTXML-SV-II-atomic-positiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="9933NISTSchema-SV-II-atomic-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="9934NISTXML-SV-II-atomic-positiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="9935NISTXML-SV-II-atomic-positiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="9936NISTXML-SV-II-atomic-positiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="9937NISTXML-SV-II-atomic-positiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="9938NISTXML-SV-II-atomic-positiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="9939NISTSchema-SV-II-atomic-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="9940NISTXML-SV-II-atomic-positiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="9941NISTXML-SV-II-atomic-positiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="9942NISTXML-SV-II-atomic-positiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="9943NISTXML-SV-II-atomic-positiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="9944NISTXML-SV-II-atomic-positiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="9945NISTSchema-SV-II-atomic-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="9946NISTXML-SV-II-atomic-positiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="9947NISTXML-SV-II-atomic-positiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="9948NISTXML-SV-II-atomic-positiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="9949NISTXML-SV-II-atomic-positiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="9950NISTXML-SV-II-atomic-positiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="9951NISTSchema-SV-II-atomic-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="9952NISTXML-SV-II-atomic-positiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="9953NISTXML-SV-II-atomic-positiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="9954NISTXML-SV-II-atomic-positiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="9955NISTXML-SV-II-atomic-positiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="9956NISTXML-SV-II-atomic-positiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="9957NISTSchema-SV-II-atomic-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="9958NISTXML-SV-II-atomic-positiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="9959NISTXML-SV-II-atomic-positiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="9960NISTXML-SV-II-atomic-positiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="9961NISTXML-SV-II-atomic-positiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="9962NISTXML-SV-II-atomic-positiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="9963NISTSchema-SV-II-atomic-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="9964NISTXML-SV-II-atomic-positiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="9965NISTXML-SV-II-atomic-positiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="9966NISTXML-SV-II-atomic-positiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="9967NISTXML-SV-II-atomic-positiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="9968NISTXML-SV-II-atomic-positiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="9969NISTSchema-SV-II-atomic-duration-minExclusive-1 tokoe:valid" result="pass"/><test-case name="9970NISTXML-SV-II-atomic-duration-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9971NISTSchema-SV-II-atomic-duration-minExclusive-2 tokoe:valid" result="pass"/><test-case name="9972NISTXML-SV-II-atomic-duration-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="9973NISTXML-SV-II-atomic-duration-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="9974NISTXML-SV-II-atomic-duration-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="9975NISTXML-SV-II-atomic-duration-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="9976NISTXML-SV-II-atomic-duration-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="9977NISTSchema-SV-II-atomic-duration-minExclusive-3 tokoe:valid" result="pass"/><test-case name="9978NISTXML-SV-II-atomic-duration-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="9979NISTXML-SV-II-atomic-duration-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="9980NISTXML-SV-II-atomic-duration-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="9981NISTXML-SV-II-atomic-duration-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="9982NISTXML-SV-II-atomic-duration-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="9983NISTSchema-SV-II-atomic-duration-minExclusive-4 tokoe:valid" result="pass"/><test-case name="9984NISTXML-SV-II-atomic-duration-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="9985NISTXML-SV-II-atomic-duration-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="9986NISTXML-SV-II-atomic-duration-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="9987NISTXML-SV-II-atomic-duration-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="9988NISTXML-SV-II-atomic-duration-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="9989NISTSchema-SV-II-atomic-duration-minExclusive-5 tokoe:valid" result="pass"/><test-case name="9990NISTXML-SV-II-atomic-duration-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="9991NISTXML-SV-II-atomic-duration-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="9992NISTXML-SV-II-atomic-duration-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="9993NISTXML-SV-II-atomic-duration-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="9994NISTXML-SV-II-atomic-duration-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="9995NISTSchema-SV-II-atomic-duration-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="9996NISTXML-SV-II-atomic-duration-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="9997NISTXML-SV-II-atomic-duration-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="9998NISTXML-SV-II-atomic-duration-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="9999NISTXML-SV-II-atomic-duration-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10000NISTXML-SV-II-atomic-duration-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10001NISTSchema-SV-II-atomic-duration-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10002NISTXML-SV-II-atomic-duration-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10003NISTXML-SV-II-atomic-duration-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10004NISTXML-SV-II-atomic-duration-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10005NISTXML-SV-II-atomic-duration-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10006NISTXML-SV-II-atomic-duration-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10007NISTSchema-SV-II-atomic-duration-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10008NISTXML-SV-II-atomic-duration-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10009NISTXML-SV-II-atomic-duration-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10010NISTXML-SV-II-atomic-duration-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10011NISTXML-SV-II-atomic-duration-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10012NISTXML-SV-II-atomic-duration-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10013NISTSchema-SV-II-atomic-duration-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10014NISTXML-SV-II-atomic-duration-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10015NISTXML-SV-II-atomic-duration-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10016NISTXML-SV-II-atomic-duration-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10017NISTXML-SV-II-atomic-duration-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10018NISTXML-SV-II-atomic-duration-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10019NISTSchema-SV-II-atomic-duration-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10020NISTXML-SV-II-atomic-duration-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10021NISTSchema-SV-II-atomic-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="10022NISTXML-SV-II-atomic-duration-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10023NISTXML-SV-II-atomic-duration-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10024NISTXML-SV-II-atomic-duration-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10025NISTXML-SV-II-atomic-duration-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10026NISTXML-SV-II-atomic-duration-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10027NISTSchema-SV-II-atomic-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="10028NISTXML-SV-II-atomic-duration-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10029NISTXML-SV-II-atomic-duration-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10030NISTXML-SV-II-atomic-duration-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10031NISTXML-SV-II-atomic-duration-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10032NISTXML-SV-II-atomic-duration-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10033NISTSchema-SV-II-atomic-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="10034NISTXML-SV-II-atomic-duration-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10035NISTXML-SV-II-atomic-duration-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10036NISTXML-SV-II-atomic-duration-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10037NISTXML-SV-II-atomic-duration-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10038NISTXML-SV-II-atomic-duration-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10039NISTSchema-SV-II-atomic-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="10040NISTXML-SV-II-atomic-duration-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10041NISTXML-SV-II-atomic-duration-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10042NISTXML-SV-II-atomic-duration-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10043NISTXML-SV-II-atomic-duration-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10044NISTXML-SV-II-atomic-duration-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10045NISTSchema-SV-II-atomic-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="10046NISTXML-SV-II-atomic-duration-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10047NISTXML-SV-II-atomic-duration-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10048NISTXML-SV-II-atomic-duration-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10049NISTXML-SV-II-atomic-duration-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10050NISTXML-SV-II-atomic-duration-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10051NISTSchema-SV-II-atomic-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="10052NISTXML-SV-II-atomic-duration-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10053NISTXML-SV-II-atomic-duration-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10054NISTXML-SV-II-atomic-duration-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10055NISTXML-SV-II-atomic-duration-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10056NISTXML-SV-II-atomic-duration-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10057NISTSchema-SV-II-atomic-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="10058NISTXML-SV-II-atomic-duration-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10059NISTXML-SV-II-atomic-duration-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10060NISTXML-SV-II-atomic-duration-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10061NISTXML-SV-II-atomic-duration-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10062NISTXML-SV-II-atomic-duration-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10063NISTSchema-SV-II-atomic-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="10064NISTXML-SV-II-atomic-duration-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10065NISTXML-SV-II-atomic-duration-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10066NISTXML-SV-II-atomic-duration-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10067NISTXML-SV-II-atomic-duration-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10068NISTXML-SV-II-atomic-duration-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10069NISTSchema-SV-II-atomic-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="10070NISTXML-SV-II-atomic-duration-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10071NISTXML-SV-II-atomic-duration-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10072NISTXML-SV-II-atomic-duration-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10073NISTXML-SV-II-atomic-duration-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10074NISTXML-SV-II-atomic-duration-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10075NISTSchema-SV-II-atomic-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="10076NISTXML-SV-II-atomic-duration-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10077NISTXML-SV-II-atomic-duration-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10078NISTXML-SV-II-atomic-duration-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10079NISTXML-SV-II-atomic-duration-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10080NISTXML-SV-II-atomic-duration-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10081NISTSchema-SV-II-atomic-dateTime-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10082NISTXML-SV-II-atomic-dateTime-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10083NISTSchema-SV-II-atomic-dateTime-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10084NISTXML-SV-II-atomic-dateTime-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10085NISTXML-SV-II-atomic-dateTime-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10086NISTXML-SV-II-atomic-dateTime-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10087NISTXML-SV-II-atomic-dateTime-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10088NISTXML-SV-II-atomic-dateTime-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10089NISTSchema-SV-II-atomic-dateTime-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10090NISTXML-SV-II-atomic-dateTime-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10091NISTXML-SV-II-atomic-dateTime-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10092NISTXML-SV-II-atomic-dateTime-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10093NISTXML-SV-II-atomic-dateTime-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10094NISTXML-SV-II-atomic-dateTime-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10095NISTSchema-SV-II-atomic-dateTime-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10096NISTXML-SV-II-atomic-dateTime-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10097NISTXML-SV-II-atomic-dateTime-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10098NISTXML-SV-II-atomic-dateTime-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10099NISTXML-SV-II-atomic-dateTime-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10100NISTXML-SV-II-atomic-dateTime-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10101NISTSchema-SV-II-atomic-dateTime-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10102NISTXML-SV-II-atomic-dateTime-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10103NISTXML-SV-II-atomic-dateTime-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10104NISTXML-SV-II-atomic-dateTime-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10105NISTXML-SV-II-atomic-dateTime-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10106NISTXML-SV-II-atomic-dateTime-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10107NISTSchema-SV-II-atomic-dateTime-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10108NISTXML-SV-II-atomic-dateTime-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10109NISTXML-SV-II-atomic-dateTime-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10110NISTXML-SV-II-atomic-dateTime-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10111NISTXML-SV-II-atomic-dateTime-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10112NISTXML-SV-II-atomic-dateTime-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10113NISTSchema-SV-II-atomic-dateTime-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10114NISTXML-SV-II-atomic-dateTime-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10115NISTXML-SV-II-atomic-dateTime-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10116NISTXML-SV-II-atomic-dateTime-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10117NISTXML-SV-II-atomic-dateTime-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10118NISTXML-SV-II-atomic-dateTime-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10119NISTSchema-SV-II-atomic-dateTime-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10120NISTXML-SV-II-atomic-dateTime-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10121NISTXML-SV-II-atomic-dateTime-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10122NISTXML-SV-II-atomic-dateTime-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10123NISTXML-SV-II-atomic-dateTime-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10124NISTXML-SV-II-atomic-dateTime-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10125NISTSchema-SV-II-atomic-dateTime-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10126NISTXML-SV-II-atomic-dateTime-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10127NISTXML-SV-II-atomic-dateTime-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10128NISTXML-SV-II-atomic-dateTime-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10129NISTXML-SV-II-atomic-dateTime-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10130NISTXML-SV-II-atomic-dateTime-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10131NISTSchema-SV-II-atomic-dateTime-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10132NISTXML-SV-II-atomic-dateTime-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10133NISTSchema-SV-II-atomic-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="10134NISTXML-SV-II-atomic-dateTime-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10135NISTXML-SV-II-atomic-dateTime-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10136NISTXML-SV-II-atomic-dateTime-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10137NISTXML-SV-II-atomic-dateTime-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10138NISTXML-SV-II-atomic-dateTime-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10139NISTSchema-SV-II-atomic-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="10140NISTXML-SV-II-atomic-dateTime-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10141NISTXML-SV-II-atomic-dateTime-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10142NISTXML-SV-II-atomic-dateTime-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10143NISTXML-SV-II-atomic-dateTime-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10144NISTXML-SV-II-atomic-dateTime-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10145NISTSchema-SV-II-atomic-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="10146NISTXML-SV-II-atomic-dateTime-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10147NISTXML-SV-II-atomic-dateTime-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10148NISTXML-SV-II-atomic-dateTime-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10149NISTXML-SV-II-atomic-dateTime-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10150NISTXML-SV-II-atomic-dateTime-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10151NISTSchema-SV-II-atomic-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="10152NISTXML-SV-II-atomic-dateTime-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10153NISTXML-SV-II-atomic-dateTime-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10154NISTXML-SV-II-atomic-dateTime-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10155NISTXML-SV-II-atomic-dateTime-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10156NISTXML-SV-II-atomic-dateTime-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10157NISTSchema-SV-II-atomic-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="10158NISTXML-SV-II-atomic-dateTime-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10159NISTXML-SV-II-atomic-dateTime-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10160NISTXML-SV-II-atomic-dateTime-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10161NISTXML-SV-II-atomic-dateTime-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10162NISTXML-SV-II-atomic-dateTime-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10163NISTSchema-SV-II-atomic-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="10164NISTXML-SV-II-atomic-dateTime-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10165NISTXML-SV-II-atomic-dateTime-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10166NISTXML-SV-II-atomic-dateTime-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10167NISTXML-SV-II-atomic-dateTime-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10168NISTXML-SV-II-atomic-dateTime-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10169NISTSchema-SV-II-atomic-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="10170NISTXML-SV-II-atomic-dateTime-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10171NISTXML-SV-II-atomic-dateTime-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10172NISTXML-SV-II-atomic-dateTime-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10173NISTXML-SV-II-atomic-dateTime-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10174NISTXML-SV-II-atomic-dateTime-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10175NISTSchema-SV-II-atomic-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="10176NISTXML-SV-II-atomic-dateTime-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10177NISTXML-SV-II-atomic-dateTime-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10178NISTXML-SV-II-atomic-dateTime-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10179NISTXML-SV-II-atomic-dateTime-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10180NISTXML-SV-II-atomic-dateTime-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10181NISTSchema-SV-II-atomic-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="10182NISTXML-SV-II-atomic-dateTime-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10183NISTXML-SV-II-atomic-dateTime-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10184NISTXML-SV-II-atomic-dateTime-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10185NISTXML-SV-II-atomic-dateTime-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10186NISTXML-SV-II-atomic-dateTime-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10187NISTSchema-SV-II-atomic-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="10188NISTXML-SV-II-atomic-dateTime-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10189NISTXML-SV-II-atomic-dateTime-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10190NISTXML-SV-II-atomic-dateTime-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10191NISTXML-SV-II-atomic-dateTime-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10192NISTXML-SV-II-atomic-dateTime-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10193NISTSchema-SV-II-atomic-time-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10194NISTXML-SV-II-atomic-time-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10195NISTSchema-SV-II-atomic-time-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10196NISTXML-SV-II-atomic-time-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10197NISTXML-SV-II-atomic-time-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10198NISTXML-SV-II-atomic-time-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10199NISTXML-SV-II-atomic-time-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10200NISTXML-SV-II-atomic-time-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10201NISTSchema-SV-II-atomic-time-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10202NISTXML-SV-II-atomic-time-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10203NISTXML-SV-II-atomic-time-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10204NISTXML-SV-II-atomic-time-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10205NISTXML-SV-II-atomic-time-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10206NISTXML-SV-II-atomic-time-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10207NISTSchema-SV-II-atomic-time-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10208NISTXML-SV-II-atomic-time-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10209NISTXML-SV-II-atomic-time-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10210NISTXML-SV-II-atomic-time-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10211NISTXML-SV-II-atomic-time-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10212NISTXML-SV-II-atomic-time-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10213NISTSchema-SV-II-atomic-time-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10214NISTXML-SV-II-atomic-time-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10215NISTXML-SV-II-atomic-time-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10216NISTXML-SV-II-atomic-time-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10217NISTXML-SV-II-atomic-time-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10218NISTXML-SV-II-atomic-time-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10219NISTSchema-SV-II-atomic-time-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10220NISTXML-SV-II-atomic-time-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10221NISTXML-SV-II-atomic-time-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10222NISTXML-SV-II-atomic-time-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10223NISTXML-SV-II-atomic-time-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10224NISTXML-SV-II-atomic-time-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10225NISTSchema-SV-II-atomic-time-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10226NISTXML-SV-II-atomic-time-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10227NISTXML-SV-II-atomic-time-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10228NISTXML-SV-II-atomic-time-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10229NISTXML-SV-II-atomic-time-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10230NISTXML-SV-II-atomic-time-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10231NISTSchema-SV-II-atomic-time-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10232NISTXML-SV-II-atomic-time-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10233NISTXML-SV-II-atomic-time-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10234NISTXML-SV-II-atomic-time-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10235NISTXML-SV-II-atomic-time-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10236NISTXML-SV-II-atomic-time-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10237NISTSchema-SV-II-atomic-time-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10238NISTXML-SV-II-atomic-time-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10239NISTXML-SV-II-atomic-time-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10240NISTXML-SV-II-atomic-time-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10241NISTXML-SV-II-atomic-time-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10242NISTXML-SV-II-atomic-time-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10243NISTSchema-SV-II-atomic-time-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10244NISTXML-SV-II-atomic-time-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10245NISTSchema-SV-II-atomic-time-pattern-1 tokoe:valid" result="pass"/><test-case name="10246NISTXML-SV-II-atomic-time-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10247NISTXML-SV-II-atomic-time-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10248NISTXML-SV-II-atomic-time-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10249NISTXML-SV-II-atomic-time-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10250NISTXML-SV-II-atomic-time-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10251NISTSchema-SV-II-atomic-time-pattern-2 tokoe:valid" result="pass"/><test-case name="10252NISTXML-SV-II-atomic-time-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10253NISTXML-SV-II-atomic-time-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10254NISTXML-SV-II-atomic-time-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10255NISTXML-SV-II-atomic-time-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10256NISTXML-SV-II-atomic-time-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10257NISTSchema-SV-II-atomic-time-pattern-3 tokoe:valid" result="pass"/><test-case name="10258NISTXML-SV-II-atomic-time-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10259NISTXML-SV-II-atomic-time-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10260NISTXML-SV-II-atomic-time-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10261NISTXML-SV-II-atomic-time-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10262NISTXML-SV-II-atomic-time-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10263NISTSchema-SV-II-atomic-time-pattern-4 tokoe:valid" result="pass"/><test-case name="10264NISTXML-SV-II-atomic-time-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10265NISTXML-SV-II-atomic-time-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10266NISTXML-SV-II-atomic-time-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10267NISTXML-SV-II-atomic-time-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10268NISTXML-SV-II-atomic-time-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10269NISTSchema-SV-II-atomic-time-pattern-5 tokoe:valid" result="pass"/><test-case name="10270NISTXML-SV-II-atomic-time-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10271NISTXML-SV-II-atomic-time-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10272NISTXML-SV-II-atomic-time-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10273NISTXML-SV-II-atomic-time-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10274NISTXML-SV-II-atomic-time-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10275NISTSchema-SV-II-atomic-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="10276NISTXML-SV-II-atomic-time-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10277NISTXML-SV-II-atomic-time-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10278NISTXML-SV-II-atomic-time-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10279NISTXML-SV-II-atomic-time-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10280NISTXML-SV-II-atomic-time-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10281NISTSchema-SV-II-atomic-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="10282NISTXML-SV-II-atomic-time-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10283NISTXML-SV-II-atomic-time-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10284NISTXML-SV-II-atomic-time-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10285NISTXML-SV-II-atomic-time-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10286NISTXML-SV-II-atomic-time-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10287NISTSchema-SV-II-atomic-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="10288NISTXML-SV-II-atomic-time-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10289NISTXML-SV-II-atomic-time-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10290NISTXML-SV-II-atomic-time-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10291NISTXML-SV-II-atomic-time-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10292NISTXML-SV-II-atomic-time-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10293NISTSchema-SV-II-atomic-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="10294NISTXML-SV-II-atomic-time-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10295NISTXML-SV-II-atomic-time-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10296NISTXML-SV-II-atomic-time-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10297NISTXML-SV-II-atomic-time-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10298NISTXML-SV-II-atomic-time-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10299NISTSchema-SV-II-atomic-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="10300NISTXML-SV-II-atomic-time-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10301NISTXML-SV-II-atomic-time-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10302NISTXML-SV-II-atomic-time-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10303NISTXML-SV-II-atomic-time-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10304NISTXML-SV-II-atomic-time-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10305NISTSchema-SV-II-atomic-date-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10306NISTXML-SV-II-atomic-date-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10307NISTSchema-SV-II-atomic-date-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10308NISTXML-SV-II-atomic-date-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10309NISTXML-SV-II-atomic-date-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10310NISTXML-SV-II-atomic-date-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10311NISTXML-SV-II-atomic-date-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10312NISTXML-SV-II-atomic-date-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10313NISTSchema-SV-II-atomic-date-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10314NISTXML-SV-II-atomic-date-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10315NISTXML-SV-II-atomic-date-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10316NISTXML-SV-II-atomic-date-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10317NISTXML-SV-II-atomic-date-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10318NISTXML-SV-II-atomic-date-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10319NISTSchema-SV-II-atomic-date-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10320NISTXML-SV-II-atomic-date-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10321NISTXML-SV-II-atomic-date-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10322NISTXML-SV-II-atomic-date-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10323NISTXML-SV-II-atomic-date-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10324NISTXML-SV-II-atomic-date-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10325NISTSchema-SV-II-atomic-date-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10326NISTXML-SV-II-atomic-date-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10327NISTXML-SV-II-atomic-date-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10328NISTXML-SV-II-atomic-date-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10329NISTXML-SV-II-atomic-date-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10330NISTXML-SV-II-atomic-date-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10331NISTSchema-SV-II-atomic-date-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10332NISTXML-SV-II-atomic-date-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10333NISTXML-SV-II-atomic-date-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10334NISTXML-SV-II-atomic-date-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10335NISTXML-SV-II-atomic-date-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10336NISTXML-SV-II-atomic-date-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10337NISTSchema-SV-II-atomic-date-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10338NISTXML-SV-II-atomic-date-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10339NISTXML-SV-II-atomic-date-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10340NISTXML-SV-II-atomic-date-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10341NISTXML-SV-II-atomic-date-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10342NISTXML-SV-II-atomic-date-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10343NISTSchema-SV-II-atomic-date-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10344NISTXML-SV-II-atomic-date-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10345NISTXML-SV-II-atomic-date-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10346NISTXML-SV-II-atomic-date-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10347NISTXML-SV-II-atomic-date-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10348NISTXML-SV-II-atomic-date-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10349NISTSchema-SV-II-atomic-date-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10350NISTXML-SV-II-atomic-date-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10351NISTXML-SV-II-atomic-date-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10352NISTXML-SV-II-atomic-date-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10353NISTXML-SV-II-atomic-date-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10354NISTXML-SV-II-atomic-date-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10355NISTSchema-SV-II-atomic-date-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10356NISTXML-SV-II-atomic-date-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10357NISTSchema-SV-II-atomic-date-pattern-1 tokoe:valid" result="pass"/><test-case name="10358NISTXML-SV-II-atomic-date-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10359NISTXML-SV-II-atomic-date-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10360NISTXML-SV-II-atomic-date-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10361NISTXML-SV-II-atomic-date-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10362NISTXML-SV-II-atomic-date-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10363NISTSchema-SV-II-atomic-date-pattern-2 tokoe:valid" result="pass"/><test-case name="10364NISTXML-SV-II-atomic-date-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10365NISTXML-SV-II-atomic-date-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10366NISTXML-SV-II-atomic-date-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10367NISTXML-SV-II-atomic-date-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10368NISTXML-SV-II-atomic-date-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10369NISTSchema-SV-II-atomic-date-pattern-3 tokoe:valid" result="pass"/><test-case name="10370NISTXML-SV-II-atomic-date-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10371NISTXML-SV-II-atomic-date-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10372NISTXML-SV-II-atomic-date-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10373NISTXML-SV-II-atomic-date-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10374NISTXML-SV-II-atomic-date-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10375NISTSchema-SV-II-atomic-date-pattern-4 tokoe:valid" result="pass"/><test-case name="10376NISTXML-SV-II-atomic-date-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10377NISTXML-SV-II-atomic-date-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10378NISTXML-SV-II-atomic-date-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10379NISTXML-SV-II-atomic-date-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10380NISTXML-SV-II-atomic-date-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10381NISTSchema-SV-II-atomic-date-pattern-5 tokoe:valid" result="pass"/><test-case name="10382NISTXML-SV-II-atomic-date-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10383NISTXML-SV-II-atomic-date-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10384NISTXML-SV-II-atomic-date-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10385NISTXML-SV-II-atomic-date-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10386NISTXML-SV-II-atomic-date-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10387NISTSchema-SV-II-atomic-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="10388NISTXML-SV-II-atomic-date-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10389NISTXML-SV-II-atomic-date-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10390NISTXML-SV-II-atomic-date-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10391NISTXML-SV-II-atomic-date-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10392NISTXML-SV-II-atomic-date-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10393NISTSchema-SV-II-atomic-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="10394NISTXML-SV-II-atomic-date-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10395NISTXML-SV-II-atomic-date-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10396NISTXML-SV-II-atomic-date-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10397NISTXML-SV-II-atomic-date-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10398NISTXML-SV-II-atomic-date-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10399NISTSchema-SV-II-atomic-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="10400NISTXML-SV-II-atomic-date-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10401NISTXML-SV-II-atomic-date-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10402NISTXML-SV-II-atomic-date-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10403NISTXML-SV-II-atomic-date-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10404NISTXML-SV-II-atomic-date-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10405NISTSchema-SV-II-atomic-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="10406NISTXML-SV-II-atomic-date-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10407NISTXML-SV-II-atomic-date-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10408NISTXML-SV-II-atomic-date-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10409NISTXML-SV-II-atomic-date-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10410NISTXML-SV-II-atomic-date-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10411NISTSchema-SV-II-atomic-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="10412NISTXML-SV-II-atomic-date-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10413NISTXML-SV-II-atomic-date-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10414NISTXML-SV-II-atomic-date-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10415NISTXML-SV-II-atomic-date-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10416NISTXML-SV-II-atomic-date-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10417NISTSchema-SV-II-atomic-gYearMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10418NISTXML-SV-II-atomic-gYearMonth-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10419NISTSchema-SV-II-atomic-gYearMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10420NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10421NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10422NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10423NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10424NISTXML-SV-II-atomic-gYearMonth-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10425NISTSchema-SV-II-atomic-gYearMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10426NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10427NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10428NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10429NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10430NISTXML-SV-II-atomic-gYearMonth-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10431NISTSchema-SV-II-atomic-gYearMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10432NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10433NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10434NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10435NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10436NISTXML-SV-II-atomic-gYearMonth-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10437NISTSchema-SV-II-atomic-gYearMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10438NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10439NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10440NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10441NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10442NISTXML-SV-II-atomic-gYearMonth-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10443NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10444NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10445NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10446NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10447NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10448NISTXML-SV-II-atomic-gYearMonth-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10449NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10450NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10451NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10452NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10453NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10454NISTXML-SV-II-atomic-gYearMonth-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10455NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10456NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10457NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10458NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10459NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10460NISTXML-SV-II-atomic-gYearMonth-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10461NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10462NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10463NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10464NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10465NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10466NISTXML-SV-II-atomic-gYearMonth-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10467NISTSchema-SV-II-atomic-gYearMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10468NISTXML-SV-II-atomic-gYearMonth-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10469NISTSchema-SV-II-atomic-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="10470NISTXML-SV-II-atomic-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10471NISTXML-SV-II-atomic-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10472NISTXML-SV-II-atomic-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10473NISTXML-SV-II-atomic-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10474NISTXML-SV-II-atomic-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10475NISTSchema-SV-II-atomic-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="10476NISTXML-SV-II-atomic-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10477NISTXML-SV-II-atomic-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10478NISTXML-SV-II-atomic-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10479NISTXML-SV-II-atomic-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10480NISTXML-SV-II-atomic-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10481NISTSchema-SV-II-atomic-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="10482NISTXML-SV-II-atomic-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10483NISTXML-SV-II-atomic-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10484NISTXML-SV-II-atomic-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10485NISTXML-SV-II-atomic-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10486NISTXML-SV-II-atomic-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10487NISTSchema-SV-II-atomic-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="10488NISTXML-SV-II-atomic-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10489NISTXML-SV-II-atomic-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10490NISTXML-SV-II-atomic-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10491NISTXML-SV-II-atomic-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10492NISTXML-SV-II-atomic-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10493NISTSchema-SV-II-atomic-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="10494NISTXML-SV-II-atomic-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10495NISTXML-SV-II-atomic-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10496NISTXML-SV-II-atomic-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10497NISTXML-SV-II-atomic-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10498NISTXML-SV-II-atomic-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10499NISTSchema-SV-II-atomic-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="10500NISTXML-SV-II-atomic-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10501NISTXML-SV-II-atomic-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10502NISTXML-SV-II-atomic-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10503NISTXML-SV-II-atomic-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10504NISTXML-SV-II-atomic-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10505NISTSchema-SV-II-atomic-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="10506NISTXML-SV-II-atomic-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10507NISTXML-SV-II-atomic-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10508NISTXML-SV-II-atomic-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10509NISTXML-SV-II-atomic-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10510NISTXML-SV-II-atomic-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10511NISTSchema-SV-II-atomic-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="10512NISTXML-SV-II-atomic-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10513NISTXML-SV-II-atomic-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10514NISTXML-SV-II-atomic-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10515NISTXML-SV-II-atomic-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10516NISTXML-SV-II-atomic-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10517NISTSchema-SV-II-atomic-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="10518NISTXML-SV-II-atomic-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10519NISTXML-SV-II-atomic-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10520NISTXML-SV-II-atomic-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10521NISTXML-SV-II-atomic-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10522NISTXML-SV-II-atomic-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10523NISTSchema-SV-II-atomic-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="10524NISTXML-SV-II-atomic-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10525NISTXML-SV-II-atomic-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10526NISTXML-SV-II-atomic-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10527NISTXML-SV-II-atomic-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10528NISTXML-SV-II-atomic-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10529NISTSchema-SV-II-atomic-gYear-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10530NISTXML-SV-II-atomic-gYear-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10531NISTSchema-SV-II-atomic-gYear-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10532NISTXML-SV-II-atomic-gYear-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10533NISTXML-SV-II-atomic-gYear-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10534NISTXML-SV-II-atomic-gYear-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10535NISTXML-SV-II-atomic-gYear-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10536NISTXML-SV-II-atomic-gYear-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10537NISTSchema-SV-II-atomic-gYear-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10538NISTXML-SV-II-atomic-gYear-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10539NISTXML-SV-II-atomic-gYear-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10540NISTXML-SV-II-atomic-gYear-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10541NISTXML-SV-II-atomic-gYear-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10542NISTXML-SV-II-atomic-gYear-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10543NISTSchema-SV-II-atomic-gYear-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10544NISTXML-SV-II-atomic-gYear-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10545NISTXML-SV-II-atomic-gYear-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10546NISTXML-SV-II-atomic-gYear-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10547NISTXML-SV-II-atomic-gYear-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10548NISTXML-SV-II-atomic-gYear-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10549NISTSchema-SV-II-atomic-gYear-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10550NISTXML-SV-II-atomic-gYear-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10551NISTXML-SV-II-atomic-gYear-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10552NISTXML-SV-II-atomic-gYear-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10553NISTXML-SV-II-atomic-gYear-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10554NISTXML-SV-II-atomic-gYear-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10555NISTSchema-SV-II-atomic-gYear-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10556NISTXML-SV-II-atomic-gYear-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10557NISTXML-SV-II-atomic-gYear-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10558NISTXML-SV-II-atomic-gYear-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10559NISTXML-SV-II-atomic-gYear-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10560NISTXML-SV-II-atomic-gYear-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10561NISTSchema-SV-II-atomic-gYear-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10562NISTXML-SV-II-atomic-gYear-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10563NISTXML-SV-II-atomic-gYear-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10564NISTXML-SV-II-atomic-gYear-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10565NISTXML-SV-II-atomic-gYear-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10566NISTXML-SV-II-atomic-gYear-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10567NISTSchema-SV-II-atomic-gYear-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10568NISTXML-SV-II-atomic-gYear-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10569NISTXML-SV-II-atomic-gYear-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10570NISTXML-SV-II-atomic-gYear-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10571NISTXML-SV-II-atomic-gYear-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10572NISTXML-SV-II-atomic-gYear-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10573NISTSchema-SV-II-atomic-gYear-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10574NISTXML-SV-II-atomic-gYear-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10575NISTXML-SV-II-atomic-gYear-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10576NISTXML-SV-II-atomic-gYear-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10577NISTXML-SV-II-atomic-gYear-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10578NISTXML-SV-II-atomic-gYear-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10579NISTSchema-SV-II-atomic-gYear-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10580NISTXML-SV-II-atomic-gYear-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10581NISTSchema-SV-II-atomic-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="10582NISTXML-SV-II-atomic-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10583NISTXML-SV-II-atomic-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10584NISTXML-SV-II-atomic-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10585NISTXML-SV-II-atomic-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10586NISTXML-SV-II-atomic-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10587NISTSchema-SV-II-atomic-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="10588NISTXML-SV-II-atomic-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10589NISTXML-SV-II-atomic-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10590NISTXML-SV-II-atomic-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10591NISTXML-SV-II-atomic-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10592NISTXML-SV-II-atomic-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10593NISTSchema-SV-II-atomic-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="10594NISTXML-SV-II-atomic-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10595NISTXML-SV-II-atomic-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10596NISTXML-SV-II-atomic-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10597NISTXML-SV-II-atomic-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10598NISTXML-SV-II-atomic-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10599NISTSchema-SV-II-atomic-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="10600NISTXML-SV-II-atomic-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10601NISTXML-SV-II-atomic-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10602NISTXML-SV-II-atomic-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10603NISTXML-SV-II-atomic-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10604NISTXML-SV-II-atomic-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10605NISTSchema-SV-II-atomic-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="10606NISTXML-SV-II-atomic-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10607NISTXML-SV-II-atomic-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10608NISTXML-SV-II-atomic-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10609NISTXML-SV-II-atomic-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10610NISTXML-SV-II-atomic-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10611NISTSchema-SV-II-atomic-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="10612NISTXML-SV-II-atomic-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10613NISTXML-SV-II-atomic-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10614NISTXML-SV-II-atomic-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10615NISTXML-SV-II-atomic-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10616NISTXML-SV-II-atomic-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10617NISTSchema-SV-II-atomic-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="10618NISTXML-SV-II-atomic-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10619NISTXML-SV-II-atomic-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10620NISTXML-SV-II-atomic-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10621NISTXML-SV-II-atomic-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10622NISTXML-SV-II-atomic-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10623NISTSchema-SV-II-atomic-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="10624NISTXML-SV-II-atomic-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10625NISTXML-SV-II-atomic-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10626NISTXML-SV-II-atomic-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10627NISTXML-SV-II-atomic-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10628NISTXML-SV-II-atomic-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10629NISTSchema-SV-II-atomic-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="10630NISTXML-SV-II-atomic-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10631NISTXML-SV-II-atomic-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10632NISTXML-SV-II-atomic-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10633NISTXML-SV-II-atomic-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10634NISTXML-SV-II-atomic-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10635NISTSchema-SV-II-atomic-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="10636NISTXML-SV-II-atomic-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10637NISTXML-SV-II-atomic-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10638NISTXML-SV-II-atomic-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10639NISTXML-SV-II-atomic-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10640NISTXML-SV-II-atomic-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10641NISTSchema-SV-II-atomic-gMonthDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10642NISTXML-SV-II-atomic-gMonthDay-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10643NISTSchema-SV-II-atomic-gMonthDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10644NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10645NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10646NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10647NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10648NISTXML-SV-II-atomic-gMonthDay-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10649NISTSchema-SV-II-atomic-gMonthDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10650NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10651NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10652NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10653NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10654NISTXML-SV-II-atomic-gMonthDay-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10655NISTSchema-SV-II-atomic-gMonthDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10656NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10657NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10658NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10659NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10660NISTXML-SV-II-atomic-gMonthDay-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10661NISTSchema-SV-II-atomic-gMonthDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10662NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10663NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10664NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10665NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10666NISTXML-SV-II-atomic-gMonthDay-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10667NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10668NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10669NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10670NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10671NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10672NISTXML-SV-II-atomic-gMonthDay-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10673NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10674NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10675NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10676NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10677NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10678NISTXML-SV-II-atomic-gMonthDay-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10679NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10680NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10681NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10682NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10683NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10684NISTXML-SV-II-atomic-gMonthDay-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10685NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10686NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10687NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10688NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10689NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10690NISTXML-SV-II-atomic-gMonthDay-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10691NISTSchema-SV-II-atomic-gMonthDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10692NISTXML-SV-II-atomic-gMonthDay-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10693NISTSchema-SV-II-atomic-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="10694NISTXML-SV-II-atomic-gMonthDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10695NISTXML-SV-II-atomic-gMonthDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10696NISTXML-SV-II-atomic-gMonthDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10697NISTXML-SV-II-atomic-gMonthDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10698NISTXML-SV-II-atomic-gMonthDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10699NISTSchema-SV-II-atomic-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="10700NISTXML-SV-II-atomic-gMonthDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10701NISTXML-SV-II-atomic-gMonthDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10702NISTXML-SV-II-atomic-gMonthDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10703NISTXML-SV-II-atomic-gMonthDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10704NISTXML-SV-II-atomic-gMonthDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10705NISTSchema-SV-II-atomic-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="10706NISTXML-SV-II-atomic-gMonthDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10707NISTXML-SV-II-atomic-gMonthDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10708NISTXML-SV-II-atomic-gMonthDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10709NISTXML-SV-II-atomic-gMonthDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10710NISTXML-SV-II-atomic-gMonthDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10711NISTSchema-SV-II-atomic-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="10712NISTXML-SV-II-atomic-gMonthDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10713NISTXML-SV-II-atomic-gMonthDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10714NISTXML-SV-II-atomic-gMonthDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10715NISTXML-SV-II-atomic-gMonthDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10716NISTXML-SV-II-atomic-gMonthDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10717NISTSchema-SV-II-atomic-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="10718NISTXML-SV-II-atomic-gMonthDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10719NISTXML-SV-II-atomic-gMonthDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10720NISTXML-SV-II-atomic-gMonthDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10721NISTXML-SV-II-atomic-gMonthDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10722NISTXML-SV-II-atomic-gMonthDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10723NISTSchema-SV-II-atomic-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="10724NISTXML-SV-II-atomic-gMonthDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10725NISTXML-SV-II-atomic-gMonthDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10726NISTXML-SV-II-atomic-gMonthDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10727NISTXML-SV-II-atomic-gMonthDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10728NISTXML-SV-II-atomic-gMonthDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10729NISTSchema-SV-II-atomic-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="10730NISTXML-SV-II-atomic-gMonthDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10731NISTXML-SV-II-atomic-gMonthDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10732NISTXML-SV-II-atomic-gMonthDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10733NISTXML-SV-II-atomic-gMonthDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10734NISTXML-SV-II-atomic-gMonthDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10735NISTSchema-SV-II-atomic-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="10736NISTXML-SV-II-atomic-gMonthDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10737NISTXML-SV-II-atomic-gMonthDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10738NISTXML-SV-II-atomic-gMonthDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10739NISTXML-SV-II-atomic-gMonthDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10740NISTXML-SV-II-atomic-gMonthDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10741NISTSchema-SV-II-atomic-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="10742NISTXML-SV-II-atomic-gMonthDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10743NISTXML-SV-II-atomic-gMonthDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10744NISTXML-SV-II-atomic-gMonthDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10745NISTXML-SV-II-atomic-gMonthDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10746NISTXML-SV-II-atomic-gMonthDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10747NISTSchema-SV-II-atomic-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="10748NISTXML-SV-II-atomic-gMonthDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10749NISTXML-SV-II-atomic-gMonthDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10750NISTXML-SV-II-atomic-gMonthDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10751NISTXML-SV-II-atomic-gMonthDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10752NISTXML-SV-II-atomic-gMonthDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10753NISTSchema-SV-II-atomic-gDay-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10754NISTXML-SV-II-atomic-gDay-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10755NISTSchema-SV-II-atomic-gDay-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10756NISTXML-SV-II-atomic-gDay-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10757NISTXML-SV-II-atomic-gDay-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10758NISTXML-SV-II-atomic-gDay-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10759NISTXML-SV-II-atomic-gDay-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10760NISTXML-SV-II-atomic-gDay-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10761NISTSchema-SV-II-atomic-gDay-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10762NISTXML-SV-II-atomic-gDay-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10763NISTXML-SV-II-atomic-gDay-minExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10764NISTXML-SV-II-atomic-gDay-minExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10765NISTXML-SV-II-atomic-gDay-minExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10766NISTXML-SV-II-atomic-gDay-minExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10767NISTSchema-SV-II-atomic-gDay-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10768NISTXML-SV-II-atomic-gDay-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10769NISTXML-SV-II-atomic-gDay-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10770NISTXML-SV-II-atomic-gDay-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10771NISTXML-SV-II-atomic-gDay-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10772NISTXML-SV-II-atomic-gDay-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10773NISTSchema-SV-II-atomic-gDay-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10774NISTXML-SV-II-atomic-gDay-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10775NISTXML-SV-II-atomic-gDay-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10776NISTXML-SV-II-atomic-gDay-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10777NISTXML-SV-II-atomic-gDay-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10778NISTXML-SV-II-atomic-gDay-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10779NISTSchema-SV-II-atomic-gDay-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10780NISTXML-SV-II-atomic-gDay-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10781NISTXML-SV-II-atomic-gDay-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10782NISTXML-SV-II-atomic-gDay-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10783NISTXML-SV-II-atomic-gDay-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10784NISTXML-SV-II-atomic-gDay-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10785NISTSchema-SV-II-atomic-gDay-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10786NISTXML-SV-II-atomic-gDay-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10787NISTXML-SV-II-atomic-gDay-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10788NISTXML-SV-II-atomic-gDay-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10789NISTXML-SV-II-atomic-gDay-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10790NISTXML-SV-II-atomic-gDay-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10791NISTSchema-SV-II-atomic-gDay-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10792NISTXML-SV-II-atomic-gDay-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10793NISTXML-SV-II-atomic-gDay-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10794NISTXML-SV-II-atomic-gDay-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10795NISTXML-SV-II-atomic-gDay-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10796NISTXML-SV-II-atomic-gDay-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10797NISTSchema-SV-II-atomic-gDay-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10798NISTXML-SV-II-atomic-gDay-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10799NISTXML-SV-II-atomic-gDay-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10800NISTXML-SV-II-atomic-gDay-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10801NISTXML-SV-II-atomic-gDay-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10802NISTXML-SV-II-atomic-gDay-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10803NISTSchema-SV-II-atomic-gDay-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10804NISTXML-SV-II-atomic-gDay-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10805NISTSchema-SV-II-atomic-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="10806NISTXML-SV-II-atomic-gDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10807NISTXML-SV-II-atomic-gDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10808NISTXML-SV-II-atomic-gDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10809NISTXML-SV-II-atomic-gDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10810NISTXML-SV-II-atomic-gDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10811NISTSchema-SV-II-atomic-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="10812NISTXML-SV-II-atomic-gDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10813NISTXML-SV-II-atomic-gDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10814NISTXML-SV-II-atomic-gDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10815NISTXML-SV-II-atomic-gDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10816NISTXML-SV-II-atomic-gDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10817NISTSchema-SV-II-atomic-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="10818NISTXML-SV-II-atomic-gDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10819NISTXML-SV-II-atomic-gDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10820NISTXML-SV-II-atomic-gDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10821NISTXML-SV-II-atomic-gDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10822NISTXML-SV-II-atomic-gDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10823NISTSchema-SV-II-atomic-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="10824NISTXML-SV-II-atomic-gDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10825NISTXML-SV-II-atomic-gDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10826NISTXML-SV-II-atomic-gDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10827NISTXML-SV-II-atomic-gDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10828NISTXML-SV-II-atomic-gDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10829NISTSchema-SV-II-atomic-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="10830NISTXML-SV-II-atomic-gDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10831NISTXML-SV-II-atomic-gDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10832NISTXML-SV-II-atomic-gDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10833NISTXML-SV-II-atomic-gDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10834NISTXML-SV-II-atomic-gDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10835NISTSchema-SV-II-atomic-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="10836NISTXML-SV-II-atomic-gDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10837NISTXML-SV-II-atomic-gDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10838NISTXML-SV-II-atomic-gDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10839NISTXML-SV-II-atomic-gDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10840NISTXML-SV-II-atomic-gDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10841NISTSchema-SV-II-atomic-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="10842NISTXML-SV-II-atomic-gDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10843NISTXML-SV-II-atomic-gDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10844NISTXML-SV-II-atomic-gDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10845NISTXML-SV-II-atomic-gDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10846NISTXML-SV-II-atomic-gDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10847NISTSchema-SV-II-atomic-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="10848NISTXML-SV-II-atomic-gDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10849NISTXML-SV-II-atomic-gDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10850NISTXML-SV-II-atomic-gDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10851NISTXML-SV-II-atomic-gDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10852NISTXML-SV-II-atomic-gDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10853NISTSchema-SV-II-atomic-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="10854NISTXML-SV-II-atomic-gDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10855NISTXML-SV-II-atomic-gDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10856NISTXML-SV-II-atomic-gDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10857NISTXML-SV-II-atomic-gDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10858NISTXML-SV-II-atomic-gDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10859NISTSchema-SV-II-atomic-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="10860NISTXML-SV-II-atomic-gDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10861NISTXML-SV-II-atomic-gDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10862NISTXML-SV-II-atomic-gDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10863NISTXML-SV-II-atomic-gDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10864NISTXML-SV-II-atomic-gDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10865NISTSchema-SV-II-atomic-gMonth-minExclusive-1 tokoe:valid" result="pass"/><test-case name="10866NISTXML-SV-II-atomic-gMonth-minExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10867NISTSchema-SV-II-atomic-gMonth-minExclusive-2 tokoe:valid" result="pass"/><test-case name="10868NISTXML-SV-II-atomic-gMonth-minExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10869NISTXML-SV-II-atomic-gMonth-minExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10870NISTXML-SV-II-atomic-gMonth-minExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10871NISTXML-SV-II-atomic-gMonth-minExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10872NISTXML-SV-II-atomic-gMonth-minExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10873NISTSchema-SV-II-atomic-gMonth-minExclusive-3 tokoe:valid" result="pass"/><test-case name="10874NISTXML-SV-II-atomic-gMonth-minExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10875NISTSchema-SV-II-atomic-gMonth-minExclusive-4 tokoe:valid" result="pass"/><test-case name="10876NISTXML-SV-II-atomic-gMonth-minExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10877NISTXML-SV-II-atomic-gMonth-minExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10878NISTXML-SV-II-atomic-gMonth-minExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10879NISTXML-SV-II-atomic-gMonth-minExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10880NISTXML-SV-II-atomic-gMonth-minExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10881NISTSchema-SV-II-atomic-gMonth-minExclusive-5 tokoe:valid" result="pass"/><test-case name="10882NISTXML-SV-II-atomic-gMonth-minExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10883NISTXML-SV-II-atomic-gMonth-minExclusive-5-2 tokoe:invalid" result="pass"/><test-case name="10884NISTXML-SV-II-atomic-gMonth-minExclusive-5-3 tokoe:invalid" result="pass"/><test-case name="10885NISTXML-SV-II-atomic-gMonth-minExclusive-5-4 tokoe:invalid" result="pass"/><test-case name="10886NISTXML-SV-II-atomic-gMonth-minExclusive-5-5 tokoe:invalid" result="pass"/><test-case name="10887NISTSchema-SV-II-atomic-gMonth-maxExclusive-1 tokoe:valid" result="pass"/><test-case name="10888NISTXML-SV-II-atomic-gMonth-maxExclusive-1-1 tokoe:invalid" result="pass"/><test-case name="10889NISTXML-SV-II-atomic-gMonth-maxExclusive-1-2 tokoe:invalid" result="pass"/><test-case name="10890NISTXML-SV-II-atomic-gMonth-maxExclusive-1-3 tokoe:invalid" result="pass"/><test-case name="10891NISTXML-SV-II-atomic-gMonth-maxExclusive-1-4 tokoe:invalid" result="pass"/><test-case name="10892NISTXML-SV-II-atomic-gMonth-maxExclusive-1-5 tokoe:invalid" result="pass"/><test-case name="10893NISTSchema-SV-II-atomic-gMonth-maxExclusive-2 tokoe:valid" result="pass"/><test-case name="10894NISTXML-SV-II-atomic-gMonth-maxExclusive-2-1 tokoe:invalid" result="pass"/><test-case name="10895NISTXML-SV-II-atomic-gMonth-maxExclusive-2-2 tokoe:invalid" result="pass"/><test-case name="10896NISTXML-SV-II-atomic-gMonth-maxExclusive-2-3 tokoe:invalid" result="pass"/><test-case name="10897NISTXML-SV-II-atomic-gMonth-maxExclusive-2-4 tokoe:invalid" result="pass"/><test-case name="10898NISTXML-SV-II-atomic-gMonth-maxExclusive-2-5 tokoe:invalid" result="pass"/><test-case name="10899NISTSchema-SV-II-atomic-gMonth-maxExclusive-3 tokoe:valid" result="pass"/><test-case name="10900NISTXML-SV-II-atomic-gMonth-maxExclusive-3-1 tokoe:invalid" result="pass"/><test-case name="10901NISTXML-SV-II-atomic-gMonth-maxExclusive-3-2 tokoe:invalid" result="pass"/><test-case name="10902NISTXML-SV-II-atomic-gMonth-maxExclusive-3-3 tokoe:invalid" result="pass"/><test-case name="10903NISTXML-SV-II-atomic-gMonth-maxExclusive-3-4 tokoe:invalid" result="pass"/><test-case name="10904NISTXML-SV-II-atomic-gMonth-maxExclusive-3-5 tokoe:invalid" result="pass"/><test-case name="10905NISTSchema-SV-II-atomic-gMonth-maxExclusive-4 tokoe:valid" result="pass"/><test-case name="10906NISTXML-SV-II-atomic-gMonth-maxExclusive-4-1 tokoe:invalid" result="pass"/><test-case name="10907NISTXML-SV-II-atomic-gMonth-maxExclusive-4-2 tokoe:invalid" result="pass"/><test-case name="10908NISTXML-SV-II-atomic-gMonth-maxExclusive-4-3 tokoe:invalid" result="pass"/><test-case name="10909NISTXML-SV-II-atomic-gMonth-maxExclusive-4-4 tokoe:invalid" result="pass"/><test-case name="10910NISTXML-SV-II-atomic-gMonth-maxExclusive-4-5 tokoe:invalid" result="pass"/><test-case name="10911NISTSchema-SV-II-atomic-gMonth-maxExclusive-5 tokoe:valid" result="pass"/><test-case name="10912NISTXML-SV-II-atomic-gMonth-maxExclusive-5-1 tokoe:invalid" result="pass"/><test-case name="10913NISTSchema-SV-II-atomic-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="10914NISTXML-SV-II-atomic-gMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="10915NISTXML-SV-II-atomic-gMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="10916NISTXML-SV-II-atomic-gMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="10917NISTXML-SV-II-atomic-gMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="10918NISTXML-SV-II-atomic-gMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="10919NISTSchema-SV-II-atomic-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="10920NISTXML-SV-II-atomic-gMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="10921NISTXML-SV-II-atomic-gMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="10922NISTXML-SV-II-atomic-gMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="10923NISTXML-SV-II-atomic-gMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="10924NISTXML-SV-II-atomic-gMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="10925NISTSchema-SV-II-atomic-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="10926NISTXML-SV-II-atomic-gMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="10927NISTXML-SV-II-atomic-gMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="10928NISTXML-SV-II-atomic-gMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="10929NISTXML-SV-II-atomic-gMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="10930NISTXML-SV-II-atomic-gMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="10931NISTSchema-SV-II-atomic-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="10932NISTXML-SV-II-atomic-gMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="10933NISTXML-SV-II-atomic-gMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="10934NISTXML-SV-II-atomic-gMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="10935NISTXML-SV-II-atomic-gMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="10936NISTXML-SV-II-atomic-gMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="10937NISTSchema-SV-II-atomic-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="10938NISTXML-SV-II-atomic-gMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="10939NISTXML-SV-II-atomic-gMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="10940NISTXML-SV-II-atomic-gMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="10941NISTXML-SV-II-atomic-gMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="10942NISTXML-SV-II-atomic-gMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="10943NISTSchema-SV-II-atomic-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="10944NISTXML-SV-II-atomic-gMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="10945NISTXML-SV-II-atomic-gMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="10946NISTXML-SV-II-atomic-gMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="10947NISTXML-SV-II-atomic-gMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="10948NISTXML-SV-II-atomic-gMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="10949NISTSchema-SV-II-atomic-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="10950NISTXML-SV-II-atomic-gMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="10951NISTXML-SV-II-atomic-gMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="10952NISTXML-SV-II-atomic-gMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="10953NISTXML-SV-II-atomic-gMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="10954NISTXML-SV-II-atomic-gMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="10955NISTSchema-SV-II-atomic-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="10956NISTXML-SV-II-atomic-gMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="10957NISTXML-SV-II-atomic-gMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="10958NISTXML-SV-II-atomic-gMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="10959NISTXML-SV-II-atomic-gMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="10960NISTXML-SV-II-atomic-gMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="10961NISTSchema-SV-II-atomic-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="10962NISTXML-SV-II-atomic-gMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="10963NISTXML-SV-II-atomic-gMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="10964NISTXML-SV-II-atomic-gMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="10965NISTXML-SV-II-atomic-gMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="10966NISTXML-SV-II-atomic-gMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="10967NISTSchema-SV-II-atomic-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="10968NISTXML-SV-II-atomic-gMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="10969NISTXML-SV-II-atomic-gMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="10970NISTXML-SV-II-atomic-gMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="10971NISTXML-SV-II-atomic-gMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="10972NISTXML-SV-II-atomic-gMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="10973NISTSchema-SV-II-atomic-string-minLength-2 tokoe:valid" result="pass"/><test-case name="10974NISTXML-SV-II-atomic-string-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="10975NISTXML-SV-II-atomic-string-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="10976NISTXML-SV-II-atomic-string-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="10977NISTXML-SV-II-atomic-string-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="10978NISTXML-SV-II-atomic-string-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="10979NISTSchema-SV-II-atomic-string-minLength-3 tokoe:valid" result="pass"/><test-case name="10980NISTXML-SV-II-atomic-string-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="10981NISTXML-SV-II-atomic-string-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="10982NISTXML-SV-II-atomic-string-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="10983NISTXML-SV-II-atomic-string-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="10984NISTXML-SV-II-atomic-string-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="10985NISTSchema-SV-II-atomic-string-minLength-4 tokoe:valid" result="pass"/><test-case name="10986NISTXML-SV-II-atomic-string-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="10987NISTXML-SV-II-atomic-string-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="10988NISTXML-SV-II-atomic-string-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="10989NISTXML-SV-II-atomic-string-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="10990NISTXML-SV-II-atomic-string-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="10991NISTSchema-SV-II-atomic-string-minLength-5 tokoe:valid" result="pass"/><test-case name="10992NISTXML-SV-II-atomic-string-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="10993NISTXML-SV-II-atomic-string-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="10994NISTXML-SV-II-atomic-string-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="10995NISTXML-SV-II-atomic-string-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="10996NISTXML-SV-II-atomic-string-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="10997NISTSchema-SV-II-atomic-string-minLength-6 tokoe:valid" result="pass"/><test-case name="10998NISTXML-SV-II-atomic-string-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="10999NISTXML-SV-II-atomic-string-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11000NISTXML-SV-II-atomic-string-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11001NISTXML-SV-II-atomic-string-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11002NISTXML-SV-II-atomic-string-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11003NISTSchema-SV-II-atomic-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="11004NISTXML-SV-II-atomic-normalizedString-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11005NISTXML-SV-II-atomic-normalizedString-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11006NISTXML-SV-II-atomic-normalizedString-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11007NISTXML-SV-II-atomic-normalizedString-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11008NISTXML-SV-II-atomic-normalizedString-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11009NISTSchema-SV-II-atomic-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="11010NISTXML-SV-II-atomic-normalizedString-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11011NISTXML-SV-II-atomic-normalizedString-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11012NISTXML-SV-II-atomic-normalizedString-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11013NISTXML-SV-II-atomic-normalizedString-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11014NISTXML-SV-II-atomic-normalizedString-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11015NISTSchema-SV-II-atomic-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="11016NISTXML-SV-II-atomic-normalizedString-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11017NISTXML-SV-II-atomic-normalizedString-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11018NISTXML-SV-II-atomic-normalizedString-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11019NISTXML-SV-II-atomic-normalizedString-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11020NISTXML-SV-II-atomic-normalizedString-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11021NISTSchema-SV-II-atomic-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="11022NISTXML-SV-II-atomic-normalizedString-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11023NISTXML-SV-II-atomic-normalizedString-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11024NISTXML-SV-II-atomic-normalizedString-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11025NISTXML-SV-II-atomic-normalizedString-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11026NISTXML-SV-II-atomic-normalizedString-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11027NISTSchema-SV-II-atomic-normalizedString-minLength-6 tokoe:valid" result="pass"/><test-case name="11028NISTXML-SV-II-atomic-normalizedString-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11029NISTXML-SV-II-atomic-normalizedString-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11030NISTXML-SV-II-atomic-normalizedString-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11031NISTXML-SV-II-atomic-normalizedString-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11032NISTXML-SV-II-atomic-normalizedString-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11033NISTSchema-SV-II-atomic-token-minLength-2 tokoe:valid" result="pass"/><test-case name="11034NISTXML-SV-II-atomic-token-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11035NISTXML-SV-II-atomic-token-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11036NISTXML-SV-II-atomic-token-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11037NISTXML-SV-II-atomic-token-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11038NISTXML-SV-II-atomic-token-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11039NISTSchema-SV-II-atomic-token-minLength-3 tokoe:valid" result="pass"/><test-case name="11040NISTXML-SV-II-atomic-token-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11041NISTXML-SV-II-atomic-token-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11042NISTXML-SV-II-atomic-token-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11043NISTXML-SV-II-atomic-token-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11044NISTXML-SV-II-atomic-token-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11045NISTSchema-SV-II-atomic-token-minLength-4 tokoe:valid" result="pass"/><test-case name="11046NISTXML-SV-II-atomic-token-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11047NISTXML-SV-II-atomic-token-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11048NISTXML-SV-II-atomic-token-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11049NISTXML-SV-II-atomic-token-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11050NISTXML-SV-II-atomic-token-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11051NISTSchema-SV-II-atomic-token-minLength-5 tokoe:valid" result="pass"/><test-case name="11052NISTXML-SV-II-atomic-token-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11053NISTXML-SV-II-atomic-token-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11054NISTXML-SV-II-atomic-token-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11055NISTXML-SV-II-atomic-token-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11056NISTXML-SV-II-atomic-token-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11057NISTSchema-SV-II-atomic-token-minLength-6 tokoe:valid" result="pass"/><test-case name="11058NISTXML-SV-II-atomic-token-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11059NISTXML-SV-II-atomic-token-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11060NISTXML-SV-II-atomic-token-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11061NISTXML-SV-II-atomic-token-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11062NISTXML-SV-II-atomic-token-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11063NISTSchema-SV-II-atomic-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="11064NISTXML-SV-II-atomic-Name-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11065NISTXML-SV-II-atomic-Name-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11066NISTXML-SV-II-atomic-Name-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11067NISTXML-SV-II-atomic-Name-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11068NISTXML-SV-II-atomic-Name-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11069NISTSchema-SV-II-atomic-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="11070NISTXML-SV-II-atomic-Name-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11071NISTXML-SV-II-atomic-Name-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11072NISTXML-SV-II-atomic-Name-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11073NISTXML-SV-II-atomic-Name-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11074NISTXML-SV-II-atomic-Name-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11075NISTSchema-SV-II-atomic-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="11076NISTXML-SV-II-atomic-Name-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11077NISTXML-SV-II-atomic-Name-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11078NISTXML-SV-II-atomic-Name-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11079NISTXML-SV-II-atomic-Name-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11080NISTXML-SV-II-atomic-Name-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11081NISTSchema-SV-II-atomic-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="11082NISTXML-SV-II-atomic-Name-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11083NISTXML-SV-II-atomic-Name-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11084NISTXML-SV-II-atomic-Name-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11085NISTXML-SV-II-atomic-Name-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11086NISTXML-SV-II-atomic-Name-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11087NISTSchema-SV-II-atomic-Name-minLength-6 tokoe:valid" result="pass"/><test-case name="11088NISTXML-SV-II-atomic-Name-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11089NISTXML-SV-II-atomic-Name-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11090NISTXML-SV-II-atomic-Name-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11091NISTXML-SV-II-atomic-Name-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11092NISTXML-SV-II-atomic-Name-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11093NISTSchema-SV-II-atomic-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="11094NISTXML-SV-II-atomic-NMTOKEN-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11095NISTXML-SV-II-atomic-NMTOKEN-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11096NISTXML-SV-II-atomic-NMTOKEN-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11097NISTXML-SV-II-atomic-NMTOKEN-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11098NISTXML-SV-II-atomic-NMTOKEN-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11099NISTSchema-SV-II-atomic-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="11100NISTXML-SV-II-atomic-NMTOKEN-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11101NISTXML-SV-II-atomic-NMTOKEN-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11102NISTXML-SV-II-atomic-NMTOKEN-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11103NISTXML-SV-II-atomic-NMTOKEN-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11104NISTXML-SV-II-atomic-NMTOKEN-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11105NISTSchema-SV-II-atomic-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="11106NISTXML-SV-II-atomic-NMTOKEN-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11107NISTXML-SV-II-atomic-NMTOKEN-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11108NISTXML-SV-II-atomic-NMTOKEN-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11109NISTXML-SV-II-atomic-NMTOKEN-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11110NISTXML-SV-II-atomic-NMTOKEN-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11111NISTSchema-SV-II-atomic-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="11112NISTXML-SV-II-atomic-NMTOKEN-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11113NISTXML-SV-II-atomic-NMTOKEN-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11114NISTXML-SV-II-atomic-NMTOKEN-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11115NISTXML-SV-II-atomic-NMTOKEN-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11116NISTXML-SV-II-atomic-NMTOKEN-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11117NISTSchema-SV-II-atomic-NMTOKEN-minLength-6 tokoe:valid" result="pass"/><test-case name="11118NISTXML-SV-II-atomic-NMTOKEN-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11119NISTXML-SV-II-atomic-NMTOKEN-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11120NISTXML-SV-II-atomic-NMTOKEN-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11121NISTXML-SV-II-atomic-NMTOKEN-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11122NISTXML-SV-II-atomic-NMTOKEN-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11123NISTSchema-SV-II-atomic-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="11124NISTXML-SV-II-atomic-NCName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11125NISTXML-SV-II-atomic-NCName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11126NISTXML-SV-II-atomic-NCName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11127NISTXML-SV-II-atomic-NCName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11128NISTXML-SV-II-atomic-NCName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11129NISTSchema-SV-II-atomic-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="11130NISTXML-SV-II-atomic-NCName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11131NISTXML-SV-II-atomic-NCName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11132NISTXML-SV-II-atomic-NCName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11133NISTXML-SV-II-atomic-NCName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11134NISTXML-SV-II-atomic-NCName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11135NISTSchema-SV-II-atomic-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="11136NISTXML-SV-II-atomic-NCName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11137NISTXML-SV-II-atomic-NCName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11138NISTXML-SV-II-atomic-NCName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11139NISTXML-SV-II-atomic-NCName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11140NISTXML-SV-II-atomic-NCName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11141NISTSchema-SV-II-atomic-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="11142NISTXML-SV-II-atomic-NCName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11143NISTXML-SV-II-atomic-NCName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11144NISTXML-SV-II-atomic-NCName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11145NISTXML-SV-II-atomic-NCName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11146NISTXML-SV-II-atomic-NCName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11147NISTSchema-SV-II-atomic-NCName-minLength-6 tokoe:valid" result="pass"/><test-case name="11148NISTXML-SV-II-atomic-NCName-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11149NISTXML-SV-II-atomic-NCName-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11150NISTXML-SV-II-atomic-NCName-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11151NISTXML-SV-II-atomic-NCName-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11152NISTXML-SV-II-atomic-NCName-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11153NISTSchema-SV-II-atomic-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="11154NISTXML-SV-II-atomic-ID-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11155NISTXML-SV-II-atomic-ID-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11156NISTXML-SV-II-atomic-ID-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11157NISTXML-SV-II-atomic-ID-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11158NISTXML-SV-II-atomic-ID-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11159NISTSchema-SV-II-atomic-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="11160NISTXML-SV-II-atomic-ID-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11161NISTXML-SV-II-atomic-ID-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11162NISTXML-SV-II-atomic-ID-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11163NISTXML-SV-II-atomic-ID-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11164NISTXML-SV-II-atomic-ID-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11165NISTSchema-SV-II-atomic-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="11166NISTXML-SV-II-atomic-ID-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11167NISTXML-SV-II-atomic-ID-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11168NISTXML-SV-II-atomic-ID-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11169NISTXML-SV-II-atomic-ID-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11170NISTXML-SV-II-atomic-ID-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11171NISTSchema-SV-II-atomic-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="11172NISTXML-SV-II-atomic-ID-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11173NISTXML-SV-II-atomic-ID-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11174NISTXML-SV-II-atomic-ID-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11175NISTXML-SV-II-atomic-ID-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11176NISTXML-SV-II-atomic-ID-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11177NISTSchema-SV-II-atomic-ID-minLength-6 tokoe:valid" result="pass"/><test-case name="11178NISTXML-SV-II-atomic-ID-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11179NISTXML-SV-II-atomic-ID-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11180NISTXML-SV-II-atomic-ID-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11181NISTXML-SV-II-atomic-ID-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11182NISTXML-SV-II-atomic-ID-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11183NISTSchema-SV-II-atomic-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="11184NISTXML-SV-II-atomic-string-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11185NISTXML-SV-II-atomic-string-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11186NISTXML-SV-II-atomic-string-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11187NISTXML-SV-II-atomic-string-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11188NISTXML-SV-II-atomic-string-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11189NISTSchema-SV-II-atomic-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="11190NISTXML-SV-II-atomic-string-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11191NISTXML-SV-II-atomic-string-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11192NISTXML-SV-II-atomic-string-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11193NISTXML-SV-II-atomic-string-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11194NISTXML-SV-II-atomic-string-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11195NISTSchema-SV-II-atomic-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="11196NISTXML-SV-II-atomic-string-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11197NISTXML-SV-II-atomic-string-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11198NISTXML-SV-II-atomic-string-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11199NISTXML-SV-II-atomic-string-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11200NISTXML-SV-II-atomic-string-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11201NISTSchema-SV-II-atomic-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="11202NISTXML-SV-II-atomic-string-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11203NISTXML-SV-II-atomic-string-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11204NISTXML-SV-II-atomic-string-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11205NISTXML-SV-II-atomic-string-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11206NISTXML-SV-II-atomic-string-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11207NISTSchema-SV-II-atomic-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="11208NISTXML-SV-II-atomic-string-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11209NISTXML-SV-II-atomic-string-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11210NISTXML-SV-II-atomic-string-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11211NISTXML-SV-II-atomic-string-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11212NISTXML-SV-II-atomic-string-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11213NISTSchema-SV-II-atomic-string-length-1 tokoe:valid" result="pass"/><test-case name="11214NISTXML-SV-II-atomic-string-length-1-1 tokoe:invalid" result="pass"/><test-case name="11215NISTXML-SV-II-atomic-string-length-1-2 tokoe:invalid" result="pass"/><test-case name="11216NISTXML-SV-II-atomic-string-length-1-3 tokoe:invalid" result="pass"/><test-case name="11217NISTXML-SV-II-atomic-string-length-1-4 tokoe:invalid" result="pass"/><test-case name="11218NISTXML-SV-II-atomic-string-length-1-5 tokoe:invalid" result="pass"/><test-case name="11219NISTSchema-SV-II-atomic-string-length-2 tokoe:valid" result="pass"/><test-case name="11220NISTXML-SV-II-atomic-string-length-2-1 tokoe:invalid" result="pass"/><test-case name="11221NISTXML-SV-II-atomic-string-length-2-2 tokoe:invalid" result="pass"/><test-case name="11222NISTXML-SV-II-atomic-string-length-2-3 tokoe:invalid" result="pass"/><test-case name="11223NISTXML-SV-II-atomic-string-length-2-4 tokoe:invalid" result="pass"/><test-case name="11224NISTXML-SV-II-atomic-string-length-2-5 tokoe:invalid" result="pass"/><test-case name="11225NISTSchema-SV-II-atomic-string-length-3 tokoe:valid" result="pass"/><test-case name="11226NISTXML-SV-II-atomic-string-length-3-1 tokoe:invalid" result="pass"/><test-case name="11227NISTXML-SV-II-atomic-string-length-3-2 tokoe:invalid" result="pass"/><test-case name="11228NISTXML-SV-II-atomic-string-length-3-3 tokoe:invalid" result="pass"/><test-case name="11229NISTXML-SV-II-atomic-string-length-3-4 tokoe:invalid" result="pass"/><test-case name="11230NISTXML-SV-II-atomic-string-length-3-5 tokoe:invalid" result="pass"/><test-case name="11231NISTSchema-SV-II-atomic-string-length-4 tokoe:valid" result="pass"/><test-case name="11232NISTXML-SV-II-atomic-string-length-4-1 tokoe:invalid" result="pass"/><test-case name="11233NISTXML-SV-II-atomic-string-length-4-2 tokoe:invalid" result="pass"/><test-case name="11234NISTXML-SV-II-atomic-string-length-4-3 tokoe:invalid" result="pass"/><test-case name="11235NISTXML-SV-II-atomic-string-length-4-4 tokoe:invalid" result="pass"/><test-case name="11236NISTXML-SV-II-atomic-string-length-4-5 tokoe:invalid" result="pass"/><test-case name="11237NISTSchema-SV-II-atomic-string-length-5 tokoe:valid" result="pass"/><test-case name="11238NISTXML-SV-II-atomic-string-length-5-1 tokoe:invalid" result="pass"/><test-case name="11239NISTXML-SV-II-atomic-string-length-5-2 tokoe:invalid" result="pass"/><test-case name="11240NISTXML-SV-II-atomic-string-length-5-3 tokoe:invalid" result="pass"/><test-case name="11241NISTXML-SV-II-atomic-string-length-5-4 tokoe:invalid" result="pass"/><test-case name="11242NISTXML-SV-II-atomic-string-length-5-5 tokoe:invalid" result="pass"/><test-case name="11243NISTSchema-SV-II-atomic-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="11244NISTXML-SV-II-atomic-normalizedString-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11245NISTXML-SV-II-atomic-normalizedString-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11246NISTXML-SV-II-atomic-normalizedString-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11247NISTXML-SV-II-atomic-normalizedString-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11248NISTXML-SV-II-atomic-normalizedString-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11249NISTSchema-SV-II-atomic-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="11250NISTXML-SV-II-atomic-normalizedString-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11251NISTXML-SV-II-atomic-normalizedString-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11252NISTXML-SV-II-atomic-normalizedString-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11253NISTXML-SV-II-atomic-normalizedString-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11254NISTXML-SV-II-atomic-normalizedString-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11255NISTSchema-SV-II-atomic-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="11256NISTXML-SV-II-atomic-normalizedString-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11257NISTXML-SV-II-atomic-normalizedString-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11258NISTXML-SV-II-atomic-normalizedString-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11259NISTXML-SV-II-atomic-normalizedString-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11260NISTXML-SV-II-atomic-normalizedString-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11261NISTSchema-SV-II-atomic-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="11262NISTXML-SV-II-atomic-normalizedString-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11263NISTXML-SV-II-atomic-normalizedString-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11264NISTXML-SV-II-atomic-normalizedString-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11265NISTXML-SV-II-atomic-normalizedString-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11266NISTXML-SV-II-atomic-normalizedString-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11267NISTSchema-SV-II-atomic-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="11268NISTXML-SV-II-atomic-normalizedString-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11269NISTXML-SV-II-atomic-normalizedString-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11270NISTXML-SV-II-atomic-normalizedString-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11271NISTXML-SV-II-atomic-normalizedString-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11272NISTXML-SV-II-atomic-normalizedString-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11273NISTSchema-SV-II-atomic-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="11274NISTXML-SV-II-atomic-normalizedString-length-1-1 tokoe:invalid" result="pass"/><test-case name="11275NISTXML-SV-II-atomic-normalizedString-length-1-2 tokoe:invalid" result="pass"/><test-case name="11276NISTXML-SV-II-atomic-normalizedString-length-1-3 tokoe:invalid" result="pass"/><test-case name="11277NISTXML-SV-II-atomic-normalizedString-length-1-4 tokoe:invalid" result="pass"/><test-case name="11278NISTXML-SV-II-atomic-normalizedString-length-1-5 tokoe:invalid" result="pass"/><test-case name="11279NISTSchema-SV-II-atomic-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="11280NISTXML-SV-II-atomic-normalizedString-length-2-1 tokoe:invalid" result="pass"/><test-case name="11281NISTXML-SV-II-atomic-normalizedString-length-2-2 tokoe:invalid" result="pass"/><test-case name="11282NISTXML-SV-II-atomic-normalizedString-length-2-3 tokoe:invalid" result="pass"/><test-case name="11283NISTXML-SV-II-atomic-normalizedString-length-2-4 tokoe:invalid" result="pass"/><test-case name="11284NISTXML-SV-II-atomic-normalizedString-length-2-5 tokoe:invalid" result="pass"/><test-case name="11285NISTSchema-SV-II-atomic-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="11286NISTXML-SV-II-atomic-normalizedString-length-3-1 tokoe:invalid" result="pass"/><test-case name="11287NISTXML-SV-II-atomic-normalizedString-length-3-2 tokoe:invalid" result="pass"/><test-case name="11288NISTXML-SV-II-atomic-normalizedString-length-3-3 tokoe:invalid" result="pass"/><test-case name="11289NISTXML-SV-II-atomic-normalizedString-length-3-4 tokoe:invalid" result="pass"/><test-case name="11290NISTXML-SV-II-atomic-normalizedString-length-3-5 tokoe:invalid" result="pass"/><test-case name="11291NISTSchema-SV-II-atomic-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="11292NISTXML-SV-II-atomic-normalizedString-length-4-1 tokoe:invalid" result="pass"/><test-case name="11293NISTXML-SV-II-atomic-normalizedString-length-4-2 tokoe:invalid" result="pass"/><test-case name="11294NISTXML-SV-II-atomic-normalizedString-length-4-3 tokoe:invalid" result="pass"/><test-case name="11295NISTXML-SV-II-atomic-normalizedString-length-4-4 tokoe:invalid" result="pass"/><test-case name="11296NISTXML-SV-II-atomic-normalizedString-length-4-5 tokoe:invalid" result="pass"/><test-case name="11297NISTSchema-SV-II-atomic-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="11298NISTXML-SV-II-atomic-normalizedString-length-5-1 tokoe:invalid" result="pass"/><test-case name="11299NISTXML-SV-II-atomic-normalizedString-length-5-2 tokoe:invalid" result="pass"/><test-case name="11300NISTXML-SV-II-atomic-normalizedString-length-5-3 tokoe:invalid" result="pass"/><test-case name="11301NISTXML-SV-II-atomic-normalizedString-length-5-4 tokoe:invalid" result="pass"/><test-case name="11302NISTXML-SV-II-atomic-normalizedString-length-5-5 tokoe:invalid" result="pass"/><test-case name="11303NISTSchema-SV-II-atomic-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="11304NISTXML-SV-II-atomic-token-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11305NISTXML-SV-II-atomic-token-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11306NISTXML-SV-II-atomic-token-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11307NISTXML-SV-II-atomic-token-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11308NISTXML-SV-II-atomic-token-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11309NISTSchema-SV-II-atomic-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="11310NISTXML-SV-II-atomic-token-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11311NISTXML-SV-II-atomic-token-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11312NISTXML-SV-II-atomic-token-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11313NISTXML-SV-II-atomic-token-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11314NISTXML-SV-II-atomic-token-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11315NISTSchema-SV-II-atomic-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="11316NISTXML-SV-II-atomic-token-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11317NISTXML-SV-II-atomic-token-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11318NISTXML-SV-II-atomic-token-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11319NISTXML-SV-II-atomic-token-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11320NISTXML-SV-II-atomic-token-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11321NISTSchema-SV-II-atomic-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="11322NISTXML-SV-II-atomic-token-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11323NISTXML-SV-II-atomic-token-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11324NISTXML-SV-II-atomic-token-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11325NISTXML-SV-II-atomic-token-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11326NISTXML-SV-II-atomic-token-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11327NISTSchema-SV-II-atomic-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="11328NISTXML-SV-II-atomic-token-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11329NISTXML-SV-II-atomic-token-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11330NISTXML-SV-II-atomic-token-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11331NISTXML-SV-II-atomic-token-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11332NISTXML-SV-II-atomic-token-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11333NISTSchema-SV-II-atomic-token-length-1 tokoe:valid" result="pass"/><test-case name="11334NISTXML-SV-II-atomic-token-length-1-1 tokoe:invalid" result="pass"/><test-case name="11335NISTXML-SV-II-atomic-token-length-1-2 tokoe:invalid" result="pass"/><test-case name="11336NISTXML-SV-II-atomic-token-length-1-3 tokoe:invalid" result="pass"/><test-case name="11337NISTXML-SV-II-atomic-token-length-1-4 tokoe:invalid" result="pass"/><test-case name="11338NISTXML-SV-II-atomic-token-length-1-5 tokoe:invalid" result="pass"/><test-case name="11339NISTSchema-SV-II-atomic-token-length-2 tokoe:valid" result="pass"/><test-case name="11340NISTXML-SV-II-atomic-token-length-2-1 tokoe:invalid" result="pass"/><test-case name="11341NISTXML-SV-II-atomic-token-length-2-2 tokoe:invalid" result="pass"/><test-case name="11342NISTXML-SV-II-atomic-token-length-2-3 tokoe:invalid" result="pass"/><test-case name="11343NISTXML-SV-II-atomic-token-length-2-4 tokoe:invalid" result="pass"/><test-case name="11344NISTXML-SV-II-atomic-token-length-2-5 tokoe:invalid" result="pass"/><test-case name="11345NISTSchema-SV-II-atomic-token-length-3 tokoe:valid" result="pass"/><test-case name="11346NISTXML-SV-II-atomic-token-length-3-1 tokoe:invalid" result="pass"/><test-case name="11347NISTXML-SV-II-atomic-token-length-3-2 tokoe:invalid" result="pass"/><test-case name="11348NISTXML-SV-II-atomic-token-length-3-3 tokoe:invalid" result="pass"/><test-case name="11349NISTXML-SV-II-atomic-token-length-3-4 tokoe:invalid" result="pass"/><test-case name="11350NISTXML-SV-II-atomic-token-length-3-5 tokoe:invalid" result="pass"/><test-case name="11351NISTSchema-SV-II-atomic-token-length-4 tokoe:valid" result="pass"/><test-case name="11352NISTXML-SV-II-atomic-token-length-4-1 tokoe:invalid" result="pass"/><test-case name="11353NISTXML-SV-II-atomic-token-length-4-2 tokoe:invalid" result="pass"/><test-case name="11354NISTXML-SV-II-atomic-token-length-4-3 tokoe:invalid" result="pass"/><test-case name="11355NISTXML-SV-II-atomic-token-length-4-4 tokoe:invalid" result="pass"/><test-case name="11356NISTXML-SV-II-atomic-token-length-4-5 tokoe:invalid" result="pass"/><test-case name="11357NISTSchema-SV-II-atomic-token-length-5 tokoe:valid" result="pass"/><test-case name="11358NISTXML-SV-II-atomic-token-length-5-1 tokoe:invalid" result="pass"/><test-case name="11359NISTXML-SV-II-atomic-token-length-5-2 tokoe:invalid" result="pass"/><test-case name="11360NISTXML-SV-II-atomic-token-length-5-3 tokoe:invalid" result="pass"/><test-case name="11361NISTXML-SV-II-atomic-token-length-5-4 tokoe:invalid" result="pass"/><test-case name="11362NISTXML-SV-II-atomic-token-length-5-5 tokoe:invalid" result="pass"/><test-case name="11363NISTSchema-SV-II-atomic-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="11364NISTXML-SV-II-atomic-Name-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11365NISTXML-SV-II-atomic-Name-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11366NISTXML-SV-II-atomic-Name-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11367NISTXML-SV-II-atomic-Name-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11368NISTXML-SV-II-atomic-Name-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11369NISTSchema-SV-II-atomic-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="11370NISTXML-SV-II-atomic-Name-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11371NISTXML-SV-II-atomic-Name-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11372NISTXML-SV-II-atomic-Name-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11373NISTXML-SV-II-atomic-Name-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11374NISTXML-SV-II-atomic-Name-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11375NISTSchema-SV-II-atomic-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="11376NISTXML-SV-II-atomic-Name-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11377NISTXML-SV-II-atomic-Name-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11378NISTXML-SV-II-atomic-Name-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11379NISTXML-SV-II-atomic-Name-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11380NISTXML-SV-II-atomic-Name-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11381NISTSchema-SV-II-atomic-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="11382NISTXML-SV-II-atomic-Name-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11383NISTXML-SV-II-atomic-Name-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11384NISTXML-SV-II-atomic-Name-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11385NISTXML-SV-II-atomic-Name-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11386NISTXML-SV-II-atomic-Name-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11387NISTSchema-SV-II-atomic-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="11388NISTXML-SV-II-atomic-Name-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11389NISTXML-SV-II-atomic-Name-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11390NISTXML-SV-II-atomic-Name-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11391NISTXML-SV-II-atomic-Name-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11392NISTXML-SV-II-atomic-Name-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11393NISTSchema-SV-II-atomic-Name-length-1 tokoe:valid" result="pass"/><test-case name="11394NISTXML-SV-II-atomic-Name-length-1-1 tokoe:invalid" result="pass"/><test-case name="11395NISTXML-SV-II-atomic-Name-length-1-2 tokoe:invalid" result="pass"/><test-case name="11396NISTXML-SV-II-atomic-Name-length-1-3 tokoe:invalid" result="pass"/><test-case name="11397NISTXML-SV-II-atomic-Name-length-1-4 tokoe:invalid" result="pass"/><test-case name="11398NISTXML-SV-II-atomic-Name-length-1-5 tokoe:invalid" result="pass"/><test-case name="11399NISTSchema-SV-II-atomic-Name-length-2 tokoe:valid" result="pass"/><test-case name="11400NISTXML-SV-II-atomic-Name-length-2-1 tokoe:invalid" result="pass"/><test-case name="11401NISTXML-SV-II-atomic-Name-length-2-2 tokoe:invalid" result="pass"/><test-case name="11402NISTXML-SV-II-atomic-Name-length-2-3 tokoe:invalid" result="pass"/><test-case name="11403NISTXML-SV-II-atomic-Name-length-2-4 tokoe:invalid" result="pass"/><test-case name="11404NISTXML-SV-II-atomic-Name-length-2-5 tokoe:invalid" result="pass"/><test-case name="11405NISTSchema-SV-II-atomic-Name-length-3 tokoe:valid" result="pass"/><test-case name="11406NISTXML-SV-II-atomic-Name-length-3-1 tokoe:invalid" result="pass"/><test-case name="11407NISTXML-SV-II-atomic-Name-length-3-2 tokoe:invalid" result="pass"/><test-case name="11408NISTXML-SV-II-atomic-Name-length-3-3 tokoe:invalid" result="pass"/><test-case name="11409NISTXML-SV-II-atomic-Name-length-3-4 tokoe:invalid" result="pass"/><test-case name="11410NISTXML-SV-II-atomic-Name-length-3-5 tokoe:invalid" result="pass"/><test-case name="11411NISTSchema-SV-II-atomic-Name-length-4 tokoe:valid" result="pass"/><test-case name="11412NISTXML-SV-II-atomic-Name-length-4-1 tokoe:invalid" result="pass"/><test-case name="11413NISTXML-SV-II-atomic-Name-length-4-2 tokoe:invalid" result="pass"/><test-case name="11414NISTXML-SV-II-atomic-Name-length-4-3 tokoe:invalid" result="pass"/><test-case name="11415NISTXML-SV-II-atomic-Name-length-4-4 tokoe:invalid" result="pass"/><test-case name="11416NISTXML-SV-II-atomic-Name-length-4-5 tokoe:invalid" result="pass"/><test-case name="11417NISTSchema-SV-II-atomic-Name-length-5 tokoe:valid" result="pass"/><test-case name="11418NISTXML-SV-II-atomic-Name-length-5-1 tokoe:invalid" result="pass"/><test-case name="11419NISTXML-SV-II-atomic-Name-length-5-2 tokoe:invalid" result="pass"/><test-case name="11420NISTXML-SV-II-atomic-Name-length-5-3 tokoe:invalid" result="pass"/><test-case name="11421NISTXML-SV-II-atomic-Name-length-5-4 tokoe:invalid" result="pass"/><test-case name="11422NISTXML-SV-II-atomic-Name-length-5-5 tokoe:invalid" result="pass"/><test-case name="11423NISTSchema-SV-II-atomic-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="11424NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11425NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11426NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11427NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11428NISTXML-SV-II-atomic-NMTOKEN-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11429NISTSchema-SV-II-atomic-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="11430NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11431NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11432NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11433NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11434NISTXML-SV-II-atomic-NMTOKEN-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11435NISTSchema-SV-II-atomic-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="11436NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11437NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11438NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11439NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11440NISTXML-SV-II-atomic-NMTOKEN-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11441NISTSchema-SV-II-atomic-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="11442NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11443NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11444NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11445NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11446NISTXML-SV-II-atomic-NMTOKEN-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11447NISTSchema-SV-II-atomic-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="11448NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11449NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11450NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11451NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11452NISTXML-SV-II-atomic-NMTOKEN-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11453NISTSchema-SV-II-atomic-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="11454NISTXML-SV-II-atomic-NMTOKEN-length-1-1 tokoe:invalid" result="pass"/><test-case name="11455NISTXML-SV-II-atomic-NMTOKEN-length-1-2 tokoe:invalid" result="pass"/><test-case name="11456NISTXML-SV-II-atomic-NMTOKEN-length-1-3 tokoe:invalid" result="pass"/><test-case name="11457NISTXML-SV-II-atomic-NMTOKEN-length-1-4 tokoe:invalid" result="pass"/><test-case name="11458NISTXML-SV-II-atomic-NMTOKEN-length-1-5 tokoe:invalid" result="pass"/><test-case name="11459NISTSchema-SV-II-atomic-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="11460NISTXML-SV-II-atomic-NMTOKEN-length-2-1 tokoe:invalid" result="pass"/><test-case name="11461NISTXML-SV-II-atomic-NMTOKEN-length-2-2 tokoe:invalid" result="pass"/><test-case name="11462NISTXML-SV-II-atomic-NMTOKEN-length-2-3 tokoe:invalid" result="pass"/><test-case name="11463NISTXML-SV-II-atomic-NMTOKEN-length-2-4 tokoe:invalid" result="pass"/><test-case name="11464NISTXML-SV-II-atomic-NMTOKEN-length-2-5 tokoe:invalid" result="pass"/><test-case name="11465NISTSchema-SV-II-atomic-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="11466NISTXML-SV-II-atomic-NMTOKEN-length-3-1 tokoe:invalid" result="pass"/><test-case name="11467NISTXML-SV-II-atomic-NMTOKEN-length-3-2 tokoe:invalid" result="pass"/><test-case name="11468NISTXML-SV-II-atomic-NMTOKEN-length-3-3 tokoe:invalid" result="pass"/><test-case name="11469NISTXML-SV-II-atomic-NMTOKEN-length-3-4 tokoe:invalid" result="pass"/><test-case name="11470NISTXML-SV-II-atomic-NMTOKEN-length-3-5 tokoe:invalid" result="pass"/><test-case name="11471NISTSchema-SV-II-atomic-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="11472NISTXML-SV-II-atomic-NMTOKEN-length-4-1 tokoe:invalid" result="pass"/><test-case name="11473NISTXML-SV-II-atomic-NMTOKEN-length-4-2 tokoe:invalid" result="pass"/><test-case name="11474NISTXML-SV-II-atomic-NMTOKEN-length-4-3 tokoe:invalid" result="pass"/><test-case name="11475NISTXML-SV-II-atomic-NMTOKEN-length-4-4 tokoe:invalid" result="pass"/><test-case name="11476NISTXML-SV-II-atomic-NMTOKEN-length-4-5 tokoe:invalid" result="pass"/><test-case name="11477NISTSchema-SV-II-atomic-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="11478NISTXML-SV-II-atomic-NMTOKEN-length-5-1 tokoe:invalid" result="pass"/><test-case name="11479NISTXML-SV-II-atomic-NMTOKEN-length-5-2 tokoe:invalid" result="pass"/><test-case name="11480NISTXML-SV-II-atomic-NMTOKEN-length-5-3 tokoe:invalid" result="pass"/><test-case name="11481NISTXML-SV-II-atomic-NMTOKEN-length-5-4 tokoe:invalid" result="pass"/><test-case name="11482NISTXML-SV-II-atomic-NMTOKEN-length-5-5 tokoe:invalid" result="pass"/><test-case name="11483NISTSchema-SV-II-atomic-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="11484NISTXML-SV-II-atomic-NCName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11485NISTXML-SV-II-atomic-NCName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11486NISTXML-SV-II-atomic-NCName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11487NISTXML-SV-II-atomic-NCName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11488NISTXML-SV-II-atomic-NCName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11489NISTSchema-SV-II-atomic-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="11490NISTXML-SV-II-atomic-NCName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11491NISTXML-SV-II-atomic-NCName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11492NISTXML-SV-II-atomic-NCName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11493NISTXML-SV-II-atomic-NCName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11494NISTXML-SV-II-atomic-NCName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11495NISTSchema-SV-II-atomic-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="11496NISTXML-SV-II-atomic-NCName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11497NISTXML-SV-II-atomic-NCName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11498NISTXML-SV-II-atomic-NCName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11499NISTXML-SV-II-atomic-NCName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11500NISTXML-SV-II-atomic-NCName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11501NISTSchema-SV-II-atomic-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="11502NISTXML-SV-II-atomic-NCName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11503NISTXML-SV-II-atomic-NCName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11504NISTXML-SV-II-atomic-NCName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11505NISTXML-SV-II-atomic-NCName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11506NISTXML-SV-II-atomic-NCName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11507NISTSchema-SV-II-atomic-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="11508NISTXML-SV-II-atomic-NCName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11509NISTXML-SV-II-atomic-NCName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11510NISTXML-SV-II-atomic-NCName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11511NISTXML-SV-II-atomic-NCName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11512NISTXML-SV-II-atomic-NCName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11513NISTSchema-SV-II-atomic-NCName-length-1 tokoe:valid" result="pass"/><test-case name="11514NISTXML-SV-II-atomic-NCName-length-1-1 tokoe:invalid" result="pass"/><test-case name="11515NISTXML-SV-II-atomic-NCName-length-1-2 tokoe:invalid" result="pass"/><test-case name="11516NISTXML-SV-II-atomic-NCName-length-1-3 tokoe:invalid" result="pass"/><test-case name="11517NISTXML-SV-II-atomic-NCName-length-1-4 tokoe:invalid" result="pass"/><test-case name="11518NISTXML-SV-II-atomic-NCName-length-1-5 tokoe:invalid" result="pass"/><test-case name="11519NISTSchema-SV-II-atomic-NCName-length-2 tokoe:valid" result="pass"/><test-case name="11520NISTXML-SV-II-atomic-NCName-length-2-1 tokoe:invalid" result="pass"/><test-case name="11521NISTXML-SV-II-atomic-NCName-length-2-2 tokoe:invalid" result="pass"/><test-case name="11522NISTXML-SV-II-atomic-NCName-length-2-3 tokoe:invalid" result="pass"/><test-case name="11523NISTXML-SV-II-atomic-NCName-length-2-4 tokoe:invalid" result="pass"/><test-case name="11524NISTXML-SV-II-atomic-NCName-length-2-5 tokoe:invalid" result="pass"/><test-case name="11525NISTSchema-SV-II-atomic-NCName-length-3 tokoe:valid" result="pass"/><test-case name="11526NISTXML-SV-II-atomic-NCName-length-3-1 tokoe:invalid" result="pass"/><test-case name="11527NISTXML-SV-II-atomic-NCName-length-3-2 tokoe:invalid" result="pass"/><test-case name="11528NISTXML-SV-II-atomic-NCName-length-3-3 tokoe:invalid" result="pass"/><test-case name="11529NISTXML-SV-II-atomic-NCName-length-3-4 tokoe:invalid" result="pass"/><test-case name="11530NISTXML-SV-II-atomic-NCName-length-3-5 tokoe:invalid" result="pass"/><test-case name="11531NISTSchema-SV-II-atomic-NCName-length-4 tokoe:valid" result="pass"/><test-case name="11532NISTXML-SV-II-atomic-NCName-length-4-1 tokoe:invalid" result="pass"/><test-case name="11533NISTXML-SV-II-atomic-NCName-length-4-2 tokoe:invalid" result="pass"/><test-case name="11534NISTXML-SV-II-atomic-NCName-length-4-3 tokoe:invalid" result="pass"/><test-case name="11535NISTXML-SV-II-atomic-NCName-length-4-4 tokoe:invalid" result="pass"/><test-case name="11536NISTXML-SV-II-atomic-NCName-length-4-5 tokoe:invalid" result="pass"/><test-case name="11537NISTSchema-SV-II-atomic-NCName-length-5 tokoe:valid" result="pass"/><test-case name="11538NISTXML-SV-II-atomic-NCName-length-5-1 tokoe:invalid" result="pass"/><test-case name="11539NISTXML-SV-II-atomic-NCName-length-5-2 tokoe:invalid" result="pass"/><test-case name="11540NISTXML-SV-II-atomic-NCName-length-5-3 tokoe:invalid" result="pass"/><test-case name="11541NISTXML-SV-II-atomic-NCName-length-5-4 tokoe:invalid" result="pass"/><test-case name="11542NISTXML-SV-II-atomic-NCName-length-5-5 tokoe:invalid" result="pass"/><test-case name="11543NISTSchema-SV-II-atomic-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="11544NISTXML-SV-II-atomic-ID-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11545NISTXML-SV-II-atomic-ID-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11546NISTXML-SV-II-atomic-ID-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11547NISTXML-SV-II-atomic-ID-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11548NISTXML-SV-II-atomic-ID-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11549NISTSchema-SV-II-atomic-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="11550NISTXML-SV-II-atomic-ID-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11551NISTXML-SV-II-atomic-ID-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11552NISTXML-SV-II-atomic-ID-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11553NISTXML-SV-II-atomic-ID-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11554NISTXML-SV-II-atomic-ID-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11555NISTSchema-SV-II-atomic-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="11556NISTXML-SV-II-atomic-ID-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11557NISTXML-SV-II-atomic-ID-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11558NISTXML-SV-II-atomic-ID-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11559NISTXML-SV-II-atomic-ID-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11560NISTXML-SV-II-atomic-ID-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11561NISTSchema-SV-II-atomic-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="11562NISTXML-SV-II-atomic-ID-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11563NISTXML-SV-II-atomic-ID-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11564NISTXML-SV-II-atomic-ID-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11565NISTXML-SV-II-atomic-ID-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11566NISTXML-SV-II-atomic-ID-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11567NISTSchema-SV-II-atomic-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="11568NISTXML-SV-II-atomic-ID-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11569NISTXML-SV-II-atomic-ID-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11570NISTXML-SV-II-atomic-ID-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11571NISTXML-SV-II-atomic-ID-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11572NISTXML-SV-II-atomic-ID-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11573NISTSchema-SV-II-atomic-ID-length-1 tokoe:valid" result="pass"/><test-case name="11574NISTXML-SV-II-atomic-ID-length-1-1 tokoe:invalid" result="pass"/><test-case name="11575NISTXML-SV-II-atomic-ID-length-1-2 tokoe:invalid" result="pass"/><test-case name="11576NISTXML-SV-II-atomic-ID-length-1-3 tokoe:invalid" result="pass"/><test-case name="11577NISTXML-SV-II-atomic-ID-length-1-4 tokoe:invalid" result="pass"/><test-case name="11578NISTXML-SV-II-atomic-ID-length-1-5 tokoe:invalid" result="pass"/><test-case name="11579NISTSchema-SV-II-atomic-ID-length-2 tokoe:valid" result="pass"/><test-case name="11580NISTXML-SV-II-atomic-ID-length-2-1 tokoe:invalid" result="pass"/><test-case name="11581NISTXML-SV-II-atomic-ID-length-2-2 tokoe:invalid" result="pass"/><test-case name="11582NISTXML-SV-II-atomic-ID-length-2-3 tokoe:invalid" result="pass"/><test-case name="11583NISTXML-SV-II-atomic-ID-length-2-4 tokoe:invalid" result="pass"/><test-case name="11584NISTXML-SV-II-atomic-ID-length-2-5 tokoe:invalid" result="pass"/><test-case name="11585NISTSchema-SV-II-atomic-ID-length-3 tokoe:valid" result="pass"/><test-case name="11586NISTXML-SV-II-atomic-ID-length-3-1 tokoe:invalid" result="pass"/><test-case name="11587NISTXML-SV-II-atomic-ID-length-3-2 tokoe:invalid" result="pass"/><test-case name="11588NISTXML-SV-II-atomic-ID-length-3-3 tokoe:invalid" result="pass"/><test-case name="11589NISTXML-SV-II-atomic-ID-length-3-4 tokoe:invalid" result="pass"/><test-case name="11590NISTXML-SV-II-atomic-ID-length-3-5 tokoe:invalid" result="pass"/><test-case name="11591NISTSchema-SV-II-atomic-ID-length-4 tokoe:valid" result="pass"/><test-case name="11592NISTXML-SV-II-atomic-ID-length-4-1 tokoe:invalid" result="pass"/><test-case name="11593NISTXML-SV-II-atomic-ID-length-4-2 tokoe:invalid" result="pass"/><test-case name="11594NISTXML-SV-II-atomic-ID-length-4-3 tokoe:invalid" result="pass"/><test-case name="11595NISTXML-SV-II-atomic-ID-length-4-4 tokoe:invalid" result="pass"/><test-case name="11596NISTXML-SV-II-atomic-ID-length-4-5 tokoe:invalid" result="pass"/><test-case name="11597NISTSchema-SV-II-atomic-ID-length-5 tokoe:valid" result="pass"/><test-case name="11598NISTXML-SV-II-atomic-ID-length-5-1 tokoe:invalid" result="pass"/><test-case name="11599NISTXML-SV-II-atomic-ID-length-5-2 tokoe:invalid" result="pass"/><test-case name="11600NISTXML-SV-II-atomic-ID-length-5-3 tokoe:invalid" result="pass"/><test-case name="11601NISTXML-SV-II-atomic-ID-length-5-4 tokoe:invalid" result="pass"/><test-case name="11602NISTXML-SV-II-atomic-ID-length-5-5 tokoe:invalid" result="pass"/><test-case name="11603NISTSchema-SV-II-atomic-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="11604NISTXML-SV-II-atomic-anyURI-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11605NISTXML-SV-II-atomic-anyURI-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11606NISTXML-SV-II-atomic-anyURI-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11607NISTXML-SV-II-atomic-anyURI-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11608NISTXML-SV-II-atomic-anyURI-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11609NISTSchema-SV-II-atomic-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="11610NISTXML-SV-II-atomic-anyURI-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11611NISTXML-SV-II-atomic-anyURI-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11612NISTXML-SV-II-atomic-anyURI-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11613NISTXML-SV-II-atomic-anyURI-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11614NISTXML-SV-II-atomic-anyURI-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11615NISTSchema-SV-II-atomic-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="11616NISTXML-SV-II-atomic-anyURI-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11617NISTXML-SV-II-atomic-anyURI-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11618NISTXML-SV-II-atomic-anyURI-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11619NISTXML-SV-II-atomic-anyURI-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11620NISTXML-SV-II-atomic-anyURI-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11621NISTSchema-SV-II-atomic-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="11622NISTXML-SV-II-atomic-anyURI-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="11623NISTXML-SV-II-atomic-anyURI-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="11624NISTXML-SV-II-atomic-anyURI-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="11625NISTXML-SV-II-atomic-anyURI-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="11626NISTXML-SV-II-atomic-anyURI-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="11627NISTSchema-SV-II-atomic-anyURI-minLength-6 tokoe:valid" result="pass"/><test-case name="11628NISTXML-SV-II-atomic-anyURI-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11629NISTXML-SV-II-atomic-anyURI-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11630NISTXML-SV-II-atomic-anyURI-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11631NISTXML-SV-II-atomic-anyURI-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11632NISTXML-SV-II-atomic-anyURI-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11633NISTSchema-SV-II-atomic-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="11634NISTXML-SV-II-atomic-anyURI-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11635NISTXML-SV-II-atomic-anyURI-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11636NISTXML-SV-II-atomic-anyURI-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11637NISTXML-SV-II-atomic-anyURI-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11638NISTXML-SV-II-atomic-anyURI-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11639NISTSchema-SV-II-atomic-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="11640NISTXML-SV-II-atomic-anyURI-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11641NISTXML-SV-II-atomic-anyURI-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11642NISTXML-SV-II-atomic-anyURI-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11643NISTXML-SV-II-atomic-anyURI-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11644NISTXML-SV-II-atomic-anyURI-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11645NISTSchema-SV-II-atomic-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="11646NISTXML-SV-II-atomic-anyURI-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11647NISTXML-SV-II-atomic-anyURI-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11648NISTXML-SV-II-atomic-anyURI-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11649NISTXML-SV-II-atomic-anyURI-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11650NISTXML-SV-II-atomic-anyURI-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11651NISTSchema-SV-II-atomic-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="11652NISTXML-SV-II-atomic-anyURI-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11653NISTXML-SV-II-atomic-anyURI-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11654NISTXML-SV-II-atomic-anyURI-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11655NISTXML-SV-II-atomic-anyURI-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11656NISTXML-SV-II-atomic-anyURI-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11657NISTSchema-SV-II-atomic-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="11658NISTXML-SV-II-atomic-anyURI-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11659NISTXML-SV-II-atomic-anyURI-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11660NISTXML-SV-II-atomic-anyURI-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11661NISTXML-SV-II-atomic-anyURI-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11662NISTXML-SV-II-atomic-anyURI-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11663NISTSchema-SV-II-atomic-language-minLength-2 tokoe:valid" result="pass"/><test-case name="11664NISTXML-SV-II-atomic-language-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="11665NISTXML-SV-II-atomic-language-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="11666NISTXML-SV-II-atomic-language-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="11667NISTXML-SV-II-atomic-language-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="11668NISTXML-SV-II-atomic-language-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="11669NISTSchema-SV-II-atomic-language-minLength-3 tokoe:valid" result="pass"/><test-case name="11670NISTXML-SV-II-atomic-language-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="11671NISTXML-SV-II-atomic-language-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="11672NISTXML-SV-II-atomic-language-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="11673NISTXML-SV-II-atomic-language-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="11674NISTXML-SV-II-atomic-language-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="11675NISTSchema-SV-II-atomic-language-minLength-4 tokoe:valid" result="pass"/><test-case name="11676NISTXML-SV-II-atomic-language-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="11677NISTXML-SV-II-atomic-language-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="11678NISTXML-SV-II-atomic-language-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="11679NISTXML-SV-II-atomic-language-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="11680NISTXML-SV-II-atomic-language-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="11681NISTSchema-SV-II-atomic-language-minLength-6 tokoe:valid" result="pass"/><test-case name="11682NISTXML-SV-II-atomic-language-minLength-6-1 tokoe:invalid" result="pass"/><test-case name="11683NISTXML-SV-II-atomic-language-minLength-6-2 tokoe:invalid" result="pass"/><test-case name="11684NISTXML-SV-II-atomic-language-minLength-6-3 tokoe:invalid" result="pass"/><test-case name="11685NISTXML-SV-II-atomic-language-minLength-6-4 tokoe:invalid" result="pass"/><test-case name="11686NISTXML-SV-II-atomic-language-minLength-6-5 tokoe:invalid" result="pass"/><test-case name="11687NISTSchema-SV-II-atomic-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="11688NISTXML-SV-II-atomic-language-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="11689NISTXML-SV-II-atomic-language-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="11690NISTXML-SV-II-atomic-language-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="11691NISTXML-SV-II-atomic-language-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="11692NISTXML-SV-II-atomic-language-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="11693NISTSchema-SV-II-atomic-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="11694NISTXML-SV-II-atomic-language-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="11695NISTXML-SV-II-atomic-language-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="11696NISTXML-SV-II-atomic-language-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="11697NISTXML-SV-II-atomic-language-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="11698NISTXML-SV-II-atomic-language-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="11699NISTSchema-SV-II-atomic-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="11700NISTXML-SV-II-atomic-language-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="11701NISTXML-SV-II-atomic-language-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="11702NISTXML-SV-II-atomic-language-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="11703NISTXML-SV-II-atomic-language-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="11704NISTXML-SV-II-atomic-language-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="11705NISTSchema-SV-II-atomic-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="11706NISTXML-SV-II-atomic-language-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="11707NISTXML-SV-II-atomic-language-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="11708NISTXML-SV-II-atomic-language-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="11709NISTXML-SV-II-atomic-language-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="11710NISTXML-SV-II-atomic-language-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="11711NISTSchema-SV-II-atomic-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="11712NISTXML-SV-II-atomic-language-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="11713NISTXML-SV-II-atomic-language-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="11714NISTXML-SV-II-atomic-language-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="11715NISTXML-SV-II-atomic-language-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="11716NISTXML-SV-II-atomic-language-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="11717NISTSchema-SV-II-atomic-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="11718NISTXML-SV-II-atomic-anyURI-length-1-1 tokoe:invalid" result="pass"/><test-case name="11719NISTXML-SV-II-atomic-anyURI-length-1-2 tokoe:invalid" result="pass"/><test-case name="11720NISTXML-SV-II-atomic-anyURI-length-1-3 tokoe:invalid" result="pass"/><test-case name="11721NISTXML-SV-II-atomic-anyURI-length-1-4 tokoe:invalid" result="pass"/><test-case name="11722NISTXML-SV-II-atomic-anyURI-length-1-5 tokoe:invalid" result="pass"/><test-case name="11723NISTSchema-SV-II-atomic-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="11724NISTXML-SV-II-atomic-anyURI-length-2-1 tokoe:invalid" result="pass"/><test-case name="11725NISTXML-SV-II-atomic-anyURI-length-2-2 tokoe:invalid" result="pass"/><test-case name="11726NISTXML-SV-II-atomic-anyURI-length-2-3 tokoe:invalid" result="pass"/><test-case name="11727NISTXML-SV-II-atomic-anyURI-length-2-4 tokoe:invalid" result="pass"/><test-case name="11728NISTXML-SV-II-atomic-anyURI-length-2-5 tokoe:invalid" result="pass"/><test-case name="11729NISTSchema-SV-II-atomic-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="11730NISTXML-SV-II-atomic-anyURI-length-3-1 tokoe:invalid" result="pass"/><test-case name="11731NISTXML-SV-II-atomic-anyURI-length-3-2 tokoe:invalid" result="pass"/><test-case name="11732NISTXML-SV-II-atomic-anyURI-length-3-3 tokoe:invalid" result="pass"/><test-case name="11733NISTXML-SV-II-atomic-anyURI-length-3-4 tokoe:invalid" result="pass"/><test-case name="11734NISTXML-SV-II-atomic-anyURI-length-3-5 tokoe:invalid" result="pass"/><test-case name="11735NISTSchema-SV-II-atomic-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="11736NISTXML-SV-II-atomic-anyURI-length-4-1 tokoe:invalid" result="pass"/><test-case name="11737NISTXML-SV-II-atomic-anyURI-length-4-2 tokoe:invalid" result="pass"/><test-case name="11738NISTXML-SV-II-atomic-anyURI-length-4-3 tokoe:invalid" result="pass"/><test-case name="11739NISTXML-SV-II-atomic-anyURI-length-4-4 tokoe:invalid" result="pass"/><test-case name="11740NISTXML-SV-II-atomic-anyURI-length-4-5 tokoe:invalid" result="pass"/><test-case name="11741NISTSchema-SV-II-atomic-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="11742NISTXML-SV-II-atomic-anyURI-length-5-1 tokoe:invalid" result="pass"/><test-case name="11743NISTXML-SV-II-atomic-anyURI-length-5-2 tokoe:invalid" result="pass"/><test-case name="11744NISTXML-SV-II-atomic-anyURI-length-5-3 tokoe:invalid" result="pass"/><test-case name="11745NISTXML-SV-II-atomic-anyURI-length-5-4 tokoe:invalid" result="pass"/><test-case name="11746NISTXML-SV-II-atomic-anyURI-length-5-5 tokoe:invalid" result="pass"/><test-case name="11747NISTSchema-SV-II-atomic-language-length-1 tokoe:valid" result="pass"/><test-case name="11748NISTXML-SV-II-atomic-language-length-1-1 tokoe:invalid" result="pass"/><test-case name="11749NISTXML-SV-II-atomic-language-length-1-2 tokoe:invalid" result="pass"/><test-case name="11750NISTXML-SV-II-atomic-language-length-1-3 tokoe:invalid" result="pass"/><test-case name="11751NISTXML-SV-II-atomic-language-length-1-4 tokoe:invalid" result="pass"/><test-case name="11752NISTXML-SV-II-atomic-language-length-1-5 tokoe:invalid" result="pass"/><test-case name="11753NISTSchema-SV-II-atomic-language-length-2 tokoe:valid" result="pass"/><test-case name="11754NISTXML-SV-II-atomic-language-length-2-1 tokoe:invalid" result="pass"/><test-case name="11755NISTXML-SV-II-atomic-language-length-2-2 tokoe:invalid" result="pass"/><test-case name="11756NISTXML-SV-II-atomic-language-length-2-3 tokoe:invalid" result="pass"/><test-case name="11757NISTXML-SV-II-atomic-language-length-2-4 tokoe:invalid" result="pass"/><test-case name="11758NISTXML-SV-II-atomic-language-length-2-5 tokoe:invalid" result="pass"/><test-case name="11759NISTSchema-SV-II-atomic-language-length-3 tokoe:valid" result="pass"/><test-case name="11760NISTXML-SV-II-atomic-language-length-3-1 tokoe:invalid" result="pass"/><test-case name="11761NISTXML-SV-II-atomic-language-length-3-2 tokoe:invalid" result="pass"/><test-case name="11762NISTXML-SV-II-atomic-language-length-3-3 tokoe:invalid" result="pass"/><test-case name="11763NISTXML-SV-II-atomic-language-length-3-4 tokoe:invalid" result="pass"/><test-case name="11764NISTXML-SV-II-atomic-language-length-3-5 tokoe:invalid" result="pass"/><test-case name="11765NISTSchema-SV-II-atomic-language-length-4 tokoe:valid" result="pass"/><test-case name="11766NISTXML-SV-II-atomic-language-length-4-1 tokoe:invalid" result="pass"/><test-case name="11767NISTXML-SV-II-atomic-language-length-4-2 tokoe:invalid" result="pass"/><test-case name="11768NISTXML-SV-II-atomic-language-length-4-3 tokoe:invalid" result="pass"/><test-case name="11769NISTXML-SV-II-atomic-language-length-4-4 tokoe:invalid" result="pass"/><test-case name="11770NISTXML-SV-II-atomic-language-length-4-5 tokoe:invalid" result="pass"/><test-case name="11771NISTSchema-SV-II-atomic-language-length-5 tokoe:valid" result="pass"/><test-case name="11772NISTXML-SV-II-atomic-language-length-5-1 tokoe:invalid" result="pass"/><test-case name="11773NISTXML-SV-II-atomic-language-length-5-2 tokoe:invalid" result="pass"/><test-case name="11774NISTXML-SV-II-atomic-language-length-5-3 tokoe:invalid" result="pass"/><test-case name="11775NISTXML-SV-II-atomic-language-length-5-4 tokoe:invalid" result="pass"/><test-case name="11776NISTXML-SV-II-atomic-language-length-5-5 tokoe:invalid" result="pass"/><test-case name="11777NISTSchema-SV-II-atomic-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="11778NISTXML-SV-II-atomic-anyURI-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="11779NISTXML-SV-II-atomic-anyURI-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="11780NISTXML-SV-II-atomic-anyURI-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="11781NISTXML-SV-II-atomic-anyURI-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="11782NISTXML-SV-II-atomic-anyURI-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="11783NISTSchema-SV-II-atomic-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="11784NISTXML-SV-II-atomic-anyURI-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="11785NISTXML-SV-II-atomic-anyURI-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="11786NISTXML-SV-II-atomic-anyURI-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="11787NISTXML-SV-II-atomic-anyURI-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="11788NISTXML-SV-II-atomic-anyURI-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="11789NISTSchema-SV-II-atomic-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="11790NISTXML-SV-II-atomic-anyURI-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="11791NISTXML-SV-II-atomic-anyURI-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="11792NISTXML-SV-II-atomic-anyURI-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="11793NISTXML-SV-II-atomic-anyURI-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="11794NISTXML-SV-II-atomic-anyURI-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="11795NISTSchema-SV-II-atomic-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="11796NISTXML-SV-II-atomic-anyURI-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="11797NISTXML-SV-II-atomic-anyURI-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="11798NISTXML-SV-II-atomic-anyURI-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="11799NISTXML-SV-II-atomic-anyURI-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="11800NISTXML-SV-II-atomic-anyURI-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="11801NISTSchema-SV-II-atomic-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="11802NISTXML-SV-II-atomic-anyURI-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="11803NISTXML-SV-II-atomic-anyURI-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="11804NISTXML-SV-II-atomic-anyURI-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="11805NISTXML-SV-II-atomic-anyURI-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="11806NISTXML-SV-II-atomic-anyURI-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="11807NISTSchema-SV-II-atomic-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="11808NISTXML-SV-II-atomic-anyURI-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="11809NISTXML-SV-II-atomic-anyURI-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="11810NISTXML-SV-II-atomic-anyURI-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="11811NISTXML-SV-II-atomic-anyURI-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="11812NISTXML-SV-II-atomic-anyURI-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="11813NISTSchema-SV-II-atomic-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="11814NISTXML-SV-II-atomic-anyURI-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="11815NISTXML-SV-II-atomic-anyURI-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="11816NISTXML-SV-II-atomic-anyURI-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="11817NISTXML-SV-II-atomic-anyURI-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="11818NISTXML-SV-II-atomic-anyURI-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="11819NISTSchema-SV-II-atomic-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="11820NISTXML-SV-II-atomic-anyURI-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="11821NISTXML-SV-II-atomic-anyURI-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="11822NISTXML-SV-II-atomic-anyURI-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="11823NISTXML-SV-II-atomic-anyURI-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="11824NISTXML-SV-II-atomic-anyURI-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="11825NISTSchema-SV-II-atomic-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="11826NISTXML-SV-II-atomic-anyURI-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="11827NISTXML-SV-II-atomic-anyURI-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="11828NISTXML-SV-II-atomic-anyURI-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="11829NISTXML-SV-II-atomic-anyURI-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="11830NISTXML-SV-II-atomic-anyURI-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="11831NISTSchema-SV-II-atomic-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="11832NISTXML-SV-II-atomic-anyURI-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="11833NISTXML-SV-II-atomic-anyURI-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="11834NISTXML-SV-II-atomic-anyURI-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="11835NISTXML-SV-II-atomic-anyURI-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="11836NISTXML-SV-II-atomic-anyURI-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="11837NISTSchema-SV-IV-list-decimal-maxLength-1 tokoe:valid" result="pass"/><test-case name="11838NISTXML-SV-IV-list-decimal-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="11839NISTXML-SV-IV-list-decimal-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="11840NISTXML-SV-IV-list-decimal-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="11841NISTXML-SV-IV-list-decimal-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="11842NISTXML-SV-IV-list-decimal-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="11843NISTSchema-SV-IV-list-decimal-maxLength-2 tokoe:valid" result="pass"/><test-case name="11844NISTXML-SV-IV-list-decimal-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="11845NISTXML-SV-IV-list-decimal-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="11846NISTXML-SV-IV-list-decimal-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="11847NISTXML-SV-IV-list-decimal-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="11848NISTXML-SV-IV-list-decimal-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="11849NISTSchema-SV-IV-list-decimal-maxLength-3 tokoe:valid" result="pass"/><test-case name="11850NISTXML-SV-IV-list-decimal-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="11851NISTXML-SV-IV-list-decimal-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="11852NISTXML-SV-IV-list-decimal-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="11853NISTXML-SV-IV-list-decimal-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="11854NISTXML-SV-IV-list-decimal-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="11855NISTSchema-SV-IV-list-decimal-maxLength-4 tokoe:valid" result="pass"/><test-case name="11856NISTXML-SV-IV-list-decimal-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="11857NISTXML-SV-IV-list-decimal-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="11858NISTXML-SV-IV-list-decimal-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="11859NISTXML-SV-IV-list-decimal-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="11860NISTXML-SV-IV-list-decimal-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="11861NISTSchema-SV-IV-list-decimal-maxLength-5 tokoe:valid" result="pass"/><test-case name="11862NISTXML-SV-IV-list-decimal-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="11863NISTXML-SV-IV-list-decimal-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="11864NISTXML-SV-IV-list-decimal-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="11865NISTXML-SV-IV-list-decimal-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="11866NISTXML-SV-IV-list-decimal-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="11867NISTSchema-SV-IV-list-decimal-minLength-1 tokoe:valid" result="pass"/><test-case name="11868NISTXML-SV-IV-list-decimal-minLength-1-1 tokoe:valid" result="pass"/><test-case name="11869NISTXML-SV-IV-list-decimal-minLength-1-2 tokoe:valid" result="pass"/><test-case name="11870NISTXML-SV-IV-list-decimal-minLength-1-3 tokoe:valid" result="pass"/><test-case name="11871NISTXML-SV-IV-list-decimal-minLength-1-4 tokoe:valid" result="pass"/><test-case name="11872NISTXML-SV-IV-list-decimal-minLength-1-5 tokoe:valid" result="pass"/><test-case name="11873NISTSchema-SV-IV-list-decimal-minLength-2 tokoe:valid" result="pass"/><test-case name="11874NISTXML-SV-IV-list-decimal-minLength-2-1 tokoe:valid" result="pass"/><test-case name="11875NISTXML-SV-IV-list-decimal-minLength-2-2 tokoe:valid" result="pass"/><test-case name="11876NISTXML-SV-IV-list-decimal-minLength-2-3 tokoe:valid" result="pass"/><test-case name="11877NISTXML-SV-IV-list-decimal-minLength-2-4 tokoe:valid" result="pass"/><test-case name="11878NISTXML-SV-IV-list-decimal-minLength-2-5 tokoe:valid" result="pass"/><test-case name="11879NISTSchema-SV-IV-list-decimal-minLength-3 tokoe:valid" result="pass"/><test-case name="11880NISTXML-SV-IV-list-decimal-minLength-3-1 tokoe:valid" result="pass"/><test-case name="11881NISTXML-SV-IV-list-decimal-minLength-3-2 tokoe:valid" result="pass"/><test-case name="11882NISTXML-SV-IV-list-decimal-minLength-3-3 tokoe:valid" result="pass"/><test-case name="11883NISTXML-SV-IV-list-decimal-minLength-3-4 tokoe:valid" result="pass"/><test-case name="11884NISTXML-SV-IV-list-decimal-minLength-3-5 tokoe:valid" result="pass"/><test-case name="11885NISTSchema-SV-IV-list-decimal-minLength-4 tokoe:valid" result="pass"/><test-case name="11886NISTXML-SV-IV-list-decimal-minLength-4-1 tokoe:valid" result="pass"/><test-case name="11887NISTXML-SV-IV-list-decimal-minLength-4-2 tokoe:valid" result="pass"/><test-case name="11888NISTXML-SV-IV-list-decimal-minLength-4-3 tokoe:valid" result="pass"/><test-case name="11889NISTXML-SV-IV-list-decimal-minLength-4-4 tokoe:valid" result="pass"/><test-case name="11890NISTXML-SV-IV-list-decimal-minLength-4-5 tokoe:valid" result="pass"/><test-case name="11891NISTSchema-SV-IV-list-decimal-minLength-5 tokoe:valid" result="pass"/><test-case name="11892NISTXML-SV-IV-list-decimal-minLength-5-1 tokoe:valid" result="pass"/><test-case name="11893NISTXML-SV-IV-list-decimal-minLength-5-2 tokoe:valid" result="pass"/><test-case name="11894NISTXML-SV-IV-list-decimal-minLength-5-3 tokoe:valid" result="pass"/><test-case name="11895NISTXML-SV-IV-list-decimal-minLength-5-4 tokoe:valid" result="pass"/><test-case name="11896NISTXML-SV-IV-list-decimal-minLength-5-5 tokoe:valid" result="pass"/><test-case name="11897NISTSchema-SV-IV-list-decimal-length-1 tokoe:valid" result="pass"/><test-case name="11898NISTXML-SV-IV-list-decimal-length-1-1 tokoe:valid" result="pass"/><test-case name="11899NISTXML-SV-IV-list-decimal-length-1-2 tokoe:valid" result="pass"/><test-case name="11900NISTXML-SV-IV-list-decimal-length-1-3 tokoe:valid" result="pass"/><test-case name="11901NISTXML-SV-IV-list-decimal-length-1-4 tokoe:valid" result="pass"/><test-case name="11902NISTXML-SV-IV-list-decimal-length-1-5 tokoe:valid" result="pass"/><test-case name="11903NISTSchema-SV-IV-list-decimal-length-2 tokoe:valid" result="pass"/><test-case name="11904NISTXML-SV-IV-list-decimal-length-2-1 tokoe:valid" result="pass"/><test-case name="11905NISTXML-SV-IV-list-decimal-length-2-2 tokoe:valid" result="pass"/><test-case name="11906NISTXML-SV-IV-list-decimal-length-2-3 tokoe:valid" result="pass"/><test-case name="11907NISTXML-SV-IV-list-decimal-length-2-4 tokoe:valid" result="pass"/><test-case name="11908NISTXML-SV-IV-list-decimal-length-2-5 tokoe:valid" result="pass"/><test-case name="11909NISTSchema-SV-IV-list-decimal-length-3 tokoe:valid" result="pass"/><test-case name="11910NISTXML-SV-IV-list-decimal-length-3-1 tokoe:valid" result="pass"/><test-case name="11911NISTXML-SV-IV-list-decimal-length-3-2 tokoe:valid" result="pass"/><test-case name="11912NISTXML-SV-IV-list-decimal-length-3-3 tokoe:valid" result="pass"/><test-case name="11913NISTXML-SV-IV-list-decimal-length-3-4 tokoe:valid" result="pass"/><test-case name="11914NISTXML-SV-IV-list-decimal-length-3-5 tokoe:valid" result="pass"/><test-case name="11915NISTSchema-SV-IV-list-decimal-length-4 tokoe:valid" result="pass"/><test-case name="11916NISTXML-SV-IV-list-decimal-length-4-1 tokoe:valid" result="pass"/><test-case name="11917NISTXML-SV-IV-list-decimal-length-4-2 tokoe:valid" result="pass"/><test-case name="11918NISTXML-SV-IV-list-decimal-length-4-3 tokoe:valid" result="pass"/><test-case name="11919NISTXML-SV-IV-list-decimal-length-4-4 tokoe:valid" result="pass"/><test-case name="11920NISTXML-SV-IV-list-decimal-length-4-5 tokoe:valid" result="pass"/><test-case name="11921NISTSchema-SV-IV-list-decimal-length-5 tokoe:valid" result="pass"/><test-case name="11922NISTXML-SV-IV-list-decimal-length-5-1 tokoe:valid" result="pass"/><test-case name="11923NISTXML-SV-IV-list-decimal-length-5-2 tokoe:valid" result="pass"/><test-case name="11924NISTXML-SV-IV-list-decimal-length-5-3 tokoe:valid" result="pass"/><test-case name="11925NISTXML-SV-IV-list-decimal-length-5-4 tokoe:valid" result="pass"/><test-case name="11926NISTXML-SV-IV-list-decimal-length-5-5 tokoe:valid" result="pass"/><test-case name="11927NISTSchema-SV-IV-list-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="11928NISTXML-SV-IV-list-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="11929NISTXML-SV-IV-list-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="11930NISTXML-SV-IV-list-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="11931NISTXML-SV-IV-list-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="11932NISTXML-SV-IV-list-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="11933NISTSchema-SV-IV-list-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="11934NISTXML-SV-IV-list-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="11935NISTXML-SV-IV-list-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="11936NISTXML-SV-IV-list-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="11937NISTXML-SV-IV-list-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="11938NISTXML-SV-IV-list-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="11939NISTSchema-SV-IV-list-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="11940NISTXML-SV-IV-list-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="11941NISTXML-SV-IV-list-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="11942NISTXML-SV-IV-list-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="11943NISTXML-SV-IV-list-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="11944NISTXML-SV-IV-list-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="11945NISTSchema-SV-IV-list-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="11946NISTXML-SV-IV-list-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="11947NISTXML-SV-IV-list-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="11948NISTXML-SV-IV-list-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="11949NISTXML-SV-IV-list-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="11950NISTXML-SV-IV-list-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="11951NISTSchema-SV-IV-list-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="11952NISTXML-SV-IV-list-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="11953NISTXML-SV-IV-list-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="11954NISTXML-SV-IV-list-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="11955NISTXML-SV-IV-list-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="11956NISTXML-SV-IV-list-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="11957NISTSchema-SV-IV-list-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="11958NISTXML-SV-IV-list-decimal-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="11959NISTXML-SV-IV-list-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="11960NISTXML-SV-IV-list-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="11961NISTXML-SV-IV-list-decimal-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="11962NISTXML-SV-IV-list-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="11963NISTSchema-SV-IV-list-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="11964NISTXML-SV-IV-list-decimal-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="11965NISTXML-SV-IV-list-decimal-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="11966NISTXML-SV-IV-list-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="11967NISTXML-SV-IV-list-decimal-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="11968NISTXML-SV-IV-list-decimal-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="11969NISTSchema-SV-IV-list-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="11970NISTXML-SV-IV-list-decimal-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="11971NISTXML-SV-IV-list-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="11972NISTXML-SV-IV-list-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="11973NISTXML-SV-IV-list-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="11974NISTXML-SV-IV-list-decimal-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="11975NISTSchema-SV-IV-list-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="11976NISTXML-SV-IV-list-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="11977NISTXML-SV-IV-list-decimal-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="11978NISTXML-SV-IV-list-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="11979NISTXML-SV-IV-list-decimal-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="11980NISTXML-SV-IV-list-decimal-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="11981NISTSchema-SV-IV-list-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="11982NISTXML-SV-IV-list-decimal-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="11983NISTXML-SV-IV-list-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="11984NISTXML-SV-IV-list-decimal-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="11985NISTXML-SV-IV-list-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="11986NISTXML-SV-IV-list-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="11987NISTSchema-SV-IV-list-decimal-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="11988NISTXML-SV-IV-list-decimal-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="11989NISTXML-SV-IV-list-decimal-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="11990NISTXML-SV-IV-list-decimal-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="11991NISTXML-SV-IV-list-decimal-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="11992NISTXML-SV-IV-list-decimal-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="11993NISTSchema-SV-IV-list-integer-maxLength-1 tokoe:valid" result="pass"/><test-case name="11994NISTXML-SV-IV-list-integer-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="11995NISTXML-SV-IV-list-integer-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="11996NISTXML-SV-IV-list-integer-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="11997NISTXML-SV-IV-list-integer-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="11998NISTXML-SV-IV-list-integer-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="11999NISTSchema-SV-IV-list-integer-maxLength-2 tokoe:valid" result="pass"/><test-case name="12000NISTXML-SV-IV-list-integer-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12001NISTXML-SV-IV-list-integer-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12002NISTXML-SV-IV-list-integer-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12003NISTXML-SV-IV-list-integer-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12004NISTXML-SV-IV-list-integer-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12005NISTSchema-SV-IV-list-integer-maxLength-3 tokoe:valid" result="pass"/><test-case name="12006NISTXML-SV-IV-list-integer-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12007NISTXML-SV-IV-list-integer-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12008NISTXML-SV-IV-list-integer-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12009NISTXML-SV-IV-list-integer-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12010NISTXML-SV-IV-list-integer-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12011NISTSchema-SV-IV-list-integer-maxLength-4 tokoe:valid" result="pass"/><test-case name="12012NISTXML-SV-IV-list-integer-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12013NISTXML-SV-IV-list-integer-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12014NISTXML-SV-IV-list-integer-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12015NISTXML-SV-IV-list-integer-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12016NISTXML-SV-IV-list-integer-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12017NISTSchema-SV-IV-list-integer-maxLength-5 tokoe:valid" result="pass"/><test-case name="12018NISTXML-SV-IV-list-integer-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12019NISTXML-SV-IV-list-integer-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12020NISTXML-SV-IV-list-integer-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12021NISTXML-SV-IV-list-integer-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12022NISTXML-SV-IV-list-integer-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12023NISTSchema-SV-IV-list-integer-minLength-1 tokoe:valid" result="pass"/><test-case name="12024NISTXML-SV-IV-list-integer-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12025NISTXML-SV-IV-list-integer-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12026NISTXML-SV-IV-list-integer-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12027NISTXML-SV-IV-list-integer-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12028NISTXML-SV-IV-list-integer-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12029NISTSchema-SV-IV-list-integer-minLength-2 tokoe:valid" result="pass"/><test-case name="12030NISTXML-SV-IV-list-integer-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12031NISTXML-SV-IV-list-integer-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12032NISTXML-SV-IV-list-integer-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12033NISTXML-SV-IV-list-integer-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12034NISTXML-SV-IV-list-integer-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12035NISTSchema-SV-IV-list-integer-minLength-3 tokoe:valid" result="pass"/><test-case name="12036NISTXML-SV-IV-list-integer-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12037NISTXML-SV-IV-list-integer-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12038NISTXML-SV-IV-list-integer-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12039NISTXML-SV-IV-list-integer-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12040NISTXML-SV-IV-list-integer-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12041NISTSchema-SV-IV-list-integer-minLength-4 tokoe:valid" result="pass"/><test-case name="12042NISTXML-SV-IV-list-integer-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12043NISTXML-SV-IV-list-integer-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12044NISTXML-SV-IV-list-integer-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12045NISTXML-SV-IV-list-integer-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12046NISTXML-SV-IV-list-integer-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12047NISTSchema-SV-IV-list-integer-minLength-5 tokoe:valid" result="pass"/><test-case name="12048NISTXML-SV-IV-list-integer-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12049NISTXML-SV-IV-list-integer-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12050NISTXML-SV-IV-list-integer-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12051NISTXML-SV-IV-list-integer-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12052NISTXML-SV-IV-list-integer-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12053NISTSchema-SV-IV-list-integer-length-1 tokoe:valid" result="pass"/><test-case name="12054NISTXML-SV-IV-list-integer-length-1-1 tokoe:valid" result="pass"/><test-case name="12055NISTXML-SV-IV-list-integer-length-1-2 tokoe:valid" result="pass"/><test-case name="12056NISTXML-SV-IV-list-integer-length-1-3 tokoe:valid" result="pass"/><test-case name="12057NISTXML-SV-IV-list-integer-length-1-4 tokoe:valid" result="pass"/><test-case name="12058NISTXML-SV-IV-list-integer-length-1-5 tokoe:valid" result="pass"/><test-case name="12059NISTSchema-SV-IV-list-integer-length-2 tokoe:valid" result="pass"/><test-case name="12060NISTXML-SV-IV-list-integer-length-2-1 tokoe:valid" result="pass"/><test-case name="12061NISTXML-SV-IV-list-integer-length-2-2 tokoe:valid" result="pass"/><test-case name="12062NISTXML-SV-IV-list-integer-length-2-3 tokoe:valid" result="pass"/><test-case name="12063NISTXML-SV-IV-list-integer-length-2-4 tokoe:valid" result="pass"/><test-case name="12064NISTXML-SV-IV-list-integer-length-2-5 tokoe:valid" result="pass"/><test-case name="12065NISTSchema-SV-IV-list-integer-length-3 tokoe:valid" result="pass"/><test-case name="12066NISTXML-SV-IV-list-integer-length-3-1 tokoe:valid" result="pass"/><test-case name="12067NISTXML-SV-IV-list-integer-length-3-2 tokoe:valid" result="pass"/><test-case name="12068NISTXML-SV-IV-list-integer-length-3-3 tokoe:valid" result="pass"/><test-case name="12069NISTXML-SV-IV-list-integer-length-3-4 tokoe:valid" result="pass"/><test-case name="12070NISTXML-SV-IV-list-integer-length-3-5 tokoe:valid" result="pass"/><test-case name="12071NISTSchema-SV-IV-list-integer-length-4 tokoe:valid" result="pass"/><test-case name="12072NISTXML-SV-IV-list-integer-length-4-1 tokoe:valid" result="pass"/><test-case name="12073NISTXML-SV-IV-list-integer-length-4-2 tokoe:valid" result="pass"/><test-case name="12074NISTXML-SV-IV-list-integer-length-4-3 tokoe:valid" result="pass"/><test-case name="12075NISTXML-SV-IV-list-integer-length-4-4 tokoe:valid" result="pass"/><test-case name="12076NISTXML-SV-IV-list-integer-length-4-5 tokoe:valid" result="pass"/><test-case name="12077NISTSchema-SV-IV-list-integer-length-5 tokoe:valid" result="pass"/><test-case name="12078NISTXML-SV-IV-list-integer-length-5-1 tokoe:valid" result="pass"/><test-case name="12079NISTXML-SV-IV-list-integer-length-5-2 tokoe:valid" result="pass"/><test-case name="12080NISTXML-SV-IV-list-integer-length-5-3 tokoe:valid" result="pass"/><test-case name="12081NISTXML-SV-IV-list-integer-length-5-4 tokoe:valid" result="pass"/><test-case name="12082NISTXML-SV-IV-list-integer-length-5-5 tokoe:valid" result="pass"/><test-case name="12083NISTSchema-SV-IV-list-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="12084NISTXML-SV-IV-list-integer-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12085NISTXML-SV-IV-list-integer-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12086NISTXML-SV-IV-list-integer-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12087NISTXML-SV-IV-list-integer-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12088NISTXML-SV-IV-list-integer-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12089NISTSchema-SV-IV-list-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="12090NISTXML-SV-IV-list-integer-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12091NISTXML-SV-IV-list-integer-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12092NISTXML-SV-IV-list-integer-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12093NISTXML-SV-IV-list-integer-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12094NISTXML-SV-IV-list-integer-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12095NISTSchema-SV-IV-list-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="12096NISTXML-SV-IV-list-integer-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12097NISTXML-SV-IV-list-integer-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12098NISTXML-SV-IV-list-integer-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12099NISTXML-SV-IV-list-integer-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12100NISTXML-SV-IV-list-integer-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12101NISTSchema-SV-IV-list-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="12102NISTXML-SV-IV-list-integer-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12103NISTXML-SV-IV-list-integer-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12104NISTXML-SV-IV-list-integer-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12105NISTXML-SV-IV-list-integer-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12106NISTXML-SV-IV-list-integer-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12107NISTSchema-SV-IV-list-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="12108NISTXML-SV-IV-list-integer-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12109NISTXML-SV-IV-list-integer-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12110NISTXML-SV-IV-list-integer-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12111NISTXML-SV-IV-list-integer-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12112NISTXML-SV-IV-list-integer-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12113NISTSchema-SV-IV-list-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="12114NISTXML-SV-IV-list-integer-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12115NISTXML-SV-IV-list-integer-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12116NISTXML-SV-IV-list-integer-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12117NISTXML-SV-IV-list-integer-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12118NISTXML-SV-IV-list-integer-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12119NISTSchema-SV-IV-list-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="12120NISTXML-SV-IV-list-integer-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12121NISTXML-SV-IV-list-integer-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12122NISTXML-SV-IV-list-integer-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12123NISTXML-SV-IV-list-integer-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12124NISTXML-SV-IV-list-integer-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12125NISTSchema-SV-IV-list-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="12126NISTXML-SV-IV-list-integer-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12127NISTXML-SV-IV-list-integer-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12128NISTXML-SV-IV-list-integer-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12129NISTXML-SV-IV-list-integer-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12130NISTXML-SV-IV-list-integer-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12131NISTSchema-SV-IV-list-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="12132NISTXML-SV-IV-list-integer-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12133NISTXML-SV-IV-list-integer-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12134NISTXML-SV-IV-list-integer-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12135NISTXML-SV-IV-list-integer-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12136NISTXML-SV-IV-list-integer-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12137NISTSchema-SV-IV-list-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="12138NISTXML-SV-IV-list-integer-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12139NISTXML-SV-IV-list-integer-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12140NISTXML-SV-IV-list-integer-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12141NISTXML-SV-IV-list-integer-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12142NISTXML-SV-IV-list-integer-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12143NISTSchema-SV-IV-list-integer-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12144NISTXML-SV-IV-list-integer-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12145NISTXML-SV-IV-list-integer-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12146NISTXML-SV-IV-list-integer-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12147NISTXML-SV-IV-list-integer-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12148NISTXML-SV-IV-list-integer-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12149NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="12150NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12151NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12152NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12153NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12154NISTXML-SV-IV-list-nonPositiveInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12155NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="12156NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12157NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12158NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12159NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12160NISTXML-SV-IV-list-nonPositiveInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12161NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="12162NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12163NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12164NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12165NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12166NISTXML-SV-IV-list-nonPositiveInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12167NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="12168NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12169NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12170NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12171NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12172NISTXML-SV-IV-list-nonPositiveInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12173NISTSchema-SV-IV-list-nonPositiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="12174NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12175NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12176NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12177NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12178NISTXML-SV-IV-list-nonPositiveInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12179NISTSchema-SV-IV-list-nonPositiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="12180NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12181NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12182NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12183NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12184NISTXML-SV-IV-list-nonPositiveInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12185NISTSchema-SV-IV-list-nonPositiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="12186NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12187NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12188NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12189NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12190NISTXML-SV-IV-list-nonPositiveInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12191NISTSchema-SV-IV-list-nonPositiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="12192NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12193NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12194NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12195NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12196NISTXML-SV-IV-list-nonPositiveInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12197NISTSchema-SV-IV-list-nonPositiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="12198NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12199NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12200NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12201NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12202NISTXML-SV-IV-list-nonPositiveInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12203NISTSchema-SV-IV-list-nonPositiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="12204NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12205NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12206NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12207NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12208NISTXML-SV-IV-list-nonPositiveInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12209NISTSchema-SV-IV-list-nonPositiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="12210NISTXML-SV-IV-list-nonPositiveInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="12211NISTXML-SV-IV-list-nonPositiveInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="12212NISTXML-SV-IV-list-nonPositiveInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="12213NISTXML-SV-IV-list-nonPositiveInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="12214NISTXML-SV-IV-list-nonPositiveInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="12215NISTSchema-SV-IV-list-nonPositiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="12216NISTXML-SV-IV-list-nonPositiveInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="12217NISTXML-SV-IV-list-nonPositiveInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="12218NISTXML-SV-IV-list-nonPositiveInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="12219NISTXML-SV-IV-list-nonPositiveInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="12220NISTXML-SV-IV-list-nonPositiveInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="12221NISTSchema-SV-IV-list-nonPositiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="12222NISTXML-SV-IV-list-nonPositiveInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="12223NISTXML-SV-IV-list-nonPositiveInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="12224NISTXML-SV-IV-list-nonPositiveInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="12225NISTXML-SV-IV-list-nonPositiveInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="12226NISTXML-SV-IV-list-nonPositiveInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="12227NISTSchema-SV-IV-list-nonPositiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="12228NISTXML-SV-IV-list-nonPositiveInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="12229NISTXML-SV-IV-list-nonPositiveInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="12230NISTXML-SV-IV-list-nonPositiveInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="12231NISTXML-SV-IV-list-nonPositiveInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="12232NISTXML-SV-IV-list-nonPositiveInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="12233NISTSchema-SV-IV-list-nonPositiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="12234NISTXML-SV-IV-list-nonPositiveInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="12235NISTXML-SV-IV-list-nonPositiveInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="12236NISTXML-SV-IV-list-nonPositiveInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="12237NISTXML-SV-IV-list-nonPositiveInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="12238NISTXML-SV-IV-list-nonPositiveInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="12239NISTSchema-SV-IV-list-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="12240NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12241NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12242NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12243NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12244NISTXML-SV-IV-list-nonPositiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12245NISTSchema-SV-IV-list-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="12246NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12247NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12248NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12249NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12250NISTXML-SV-IV-list-nonPositiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12251NISTSchema-SV-IV-list-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="12252NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12253NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12254NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12255NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12256NISTXML-SV-IV-list-nonPositiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12257NISTSchema-SV-IV-list-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="12258NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12259NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12260NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12261NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12262NISTXML-SV-IV-list-nonPositiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12263NISTSchema-SV-IV-list-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="12264NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12265NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12266NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12267NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12268NISTXML-SV-IV-list-nonPositiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12269NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="12270NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12271NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12272NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12273NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12274NISTXML-SV-IV-list-nonPositiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12275NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="12276NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12277NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12278NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12279NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12280NISTXML-SV-IV-list-nonPositiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12281NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="12282NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12283NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12284NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12285NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12286NISTXML-SV-IV-list-nonPositiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12287NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="12288NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12289NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12290NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12291NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12292NISTXML-SV-IV-list-nonPositiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12293NISTSchema-SV-IV-list-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="12294NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12295NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12296NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12297NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12298NISTXML-SV-IV-list-nonPositiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12299NISTSchema-SV-IV-list-nonPositiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12300NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12301NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12302NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12303NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12304NISTXML-SV-IV-list-nonPositiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12305NISTSchema-SV-IV-list-negativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="12306NISTXML-SV-IV-list-negativeInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12307NISTXML-SV-IV-list-negativeInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12308NISTXML-SV-IV-list-negativeInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12309NISTXML-SV-IV-list-negativeInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12310NISTXML-SV-IV-list-negativeInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12311NISTSchema-SV-IV-list-negativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="12312NISTXML-SV-IV-list-negativeInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12313NISTXML-SV-IV-list-negativeInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12314NISTXML-SV-IV-list-negativeInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12315NISTXML-SV-IV-list-negativeInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12316NISTXML-SV-IV-list-negativeInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12317NISTSchema-SV-IV-list-negativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="12318NISTXML-SV-IV-list-negativeInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12319NISTXML-SV-IV-list-negativeInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12320NISTXML-SV-IV-list-negativeInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12321NISTXML-SV-IV-list-negativeInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12322NISTXML-SV-IV-list-negativeInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12323NISTSchema-SV-IV-list-negativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="12324NISTXML-SV-IV-list-negativeInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12325NISTXML-SV-IV-list-negativeInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12326NISTXML-SV-IV-list-negativeInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12327NISTXML-SV-IV-list-negativeInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12328NISTXML-SV-IV-list-negativeInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12329NISTSchema-SV-IV-list-negativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="12330NISTXML-SV-IV-list-negativeInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12331NISTXML-SV-IV-list-negativeInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12332NISTXML-SV-IV-list-negativeInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12333NISTXML-SV-IV-list-negativeInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12334NISTXML-SV-IV-list-negativeInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12335NISTSchema-SV-IV-list-negativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="12336NISTXML-SV-IV-list-negativeInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12337NISTXML-SV-IV-list-negativeInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12338NISTXML-SV-IV-list-negativeInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12339NISTXML-SV-IV-list-negativeInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12340NISTXML-SV-IV-list-negativeInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12341NISTSchema-SV-IV-list-negativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="12342NISTXML-SV-IV-list-negativeInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12343NISTXML-SV-IV-list-negativeInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12344NISTXML-SV-IV-list-negativeInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12345NISTXML-SV-IV-list-negativeInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12346NISTXML-SV-IV-list-negativeInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12347NISTSchema-SV-IV-list-negativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="12348NISTXML-SV-IV-list-negativeInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12349NISTXML-SV-IV-list-negativeInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12350NISTXML-SV-IV-list-negativeInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12351NISTXML-SV-IV-list-negativeInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12352NISTXML-SV-IV-list-negativeInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12353NISTSchema-SV-IV-list-negativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="12354NISTXML-SV-IV-list-negativeInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12355NISTXML-SV-IV-list-negativeInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12356NISTXML-SV-IV-list-negativeInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12357NISTXML-SV-IV-list-negativeInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12358NISTXML-SV-IV-list-negativeInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12359NISTSchema-SV-IV-list-negativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="12360NISTXML-SV-IV-list-negativeInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12361NISTXML-SV-IV-list-negativeInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12362NISTXML-SV-IV-list-negativeInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12363NISTXML-SV-IV-list-negativeInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12364NISTXML-SV-IV-list-negativeInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12365NISTSchema-SV-IV-list-negativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="12366NISTXML-SV-IV-list-negativeInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="12367NISTXML-SV-IV-list-negativeInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="12368NISTXML-SV-IV-list-negativeInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="12369NISTXML-SV-IV-list-negativeInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="12370NISTXML-SV-IV-list-negativeInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="12371NISTSchema-SV-IV-list-negativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="12372NISTXML-SV-IV-list-negativeInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="12373NISTXML-SV-IV-list-negativeInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="12374NISTXML-SV-IV-list-negativeInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="12375NISTXML-SV-IV-list-negativeInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="12376NISTXML-SV-IV-list-negativeInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="12377NISTSchema-SV-IV-list-negativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="12378NISTXML-SV-IV-list-negativeInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="12379NISTXML-SV-IV-list-negativeInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="12380NISTXML-SV-IV-list-negativeInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="12381NISTXML-SV-IV-list-negativeInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="12382NISTXML-SV-IV-list-negativeInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="12383NISTSchema-SV-IV-list-negativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="12384NISTXML-SV-IV-list-negativeInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="12385NISTXML-SV-IV-list-negativeInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="12386NISTXML-SV-IV-list-negativeInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="12387NISTXML-SV-IV-list-negativeInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="12388NISTXML-SV-IV-list-negativeInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="12389NISTSchema-SV-IV-list-negativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="12390NISTXML-SV-IV-list-negativeInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="12391NISTXML-SV-IV-list-negativeInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="12392NISTXML-SV-IV-list-negativeInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="12393NISTXML-SV-IV-list-negativeInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="12394NISTXML-SV-IV-list-negativeInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="12395NISTSchema-SV-IV-list-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="12396NISTXML-SV-IV-list-negativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12397NISTXML-SV-IV-list-negativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12398NISTXML-SV-IV-list-negativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12399NISTXML-SV-IV-list-negativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12400NISTXML-SV-IV-list-negativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12401NISTSchema-SV-IV-list-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="12402NISTXML-SV-IV-list-negativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12403NISTXML-SV-IV-list-negativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12404NISTXML-SV-IV-list-negativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12405NISTXML-SV-IV-list-negativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12406NISTXML-SV-IV-list-negativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12407NISTSchema-SV-IV-list-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="12408NISTXML-SV-IV-list-negativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12409NISTXML-SV-IV-list-negativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12410NISTXML-SV-IV-list-negativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12411NISTXML-SV-IV-list-negativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12412NISTXML-SV-IV-list-negativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12413NISTSchema-SV-IV-list-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="12414NISTXML-SV-IV-list-negativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12415NISTXML-SV-IV-list-negativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12416NISTXML-SV-IV-list-negativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12417NISTXML-SV-IV-list-negativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12418NISTXML-SV-IV-list-negativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12419NISTSchema-SV-IV-list-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="12420NISTXML-SV-IV-list-negativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12421NISTXML-SV-IV-list-negativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12422NISTXML-SV-IV-list-negativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12423NISTXML-SV-IV-list-negativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12424NISTXML-SV-IV-list-negativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12425NISTSchema-SV-IV-list-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="12426NISTXML-SV-IV-list-negativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12427NISTXML-SV-IV-list-negativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12428NISTXML-SV-IV-list-negativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12429NISTXML-SV-IV-list-negativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12430NISTXML-SV-IV-list-negativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12431NISTSchema-SV-IV-list-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="12432NISTXML-SV-IV-list-negativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12433NISTXML-SV-IV-list-negativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12434NISTXML-SV-IV-list-negativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12435NISTXML-SV-IV-list-negativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12436NISTXML-SV-IV-list-negativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12437NISTSchema-SV-IV-list-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="12438NISTXML-SV-IV-list-negativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12439NISTXML-SV-IV-list-negativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12440NISTXML-SV-IV-list-negativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12441NISTXML-SV-IV-list-negativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12442NISTXML-SV-IV-list-negativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12443NISTSchema-SV-IV-list-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="12444NISTXML-SV-IV-list-negativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12445NISTXML-SV-IV-list-negativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12446NISTXML-SV-IV-list-negativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12447NISTXML-SV-IV-list-negativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12448NISTXML-SV-IV-list-negativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12449NISTSchema-SV-IV-list-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="12450NISTXML-SV-IV-list-negativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12451NISTXML-SV-IV-list-negativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12452NISTXML-SV-IV-list-negativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12453NISTXML-SV-IV-list-negativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12454NISTXML-SV-IV-list-negativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12455NISTSchema-SV-IV-list-negativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12456NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12457NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12458NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12459NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12460NISTXML-SV-IV-list-negativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12461NISTSchema-SV-IV-list-long-maxLength-1 tokoe:valid" result="pass"/><test-case name="12462NISTXML-SV-IV-list-long-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12463NISTXML-SV-IV-list-long-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12464NISTXML-SV-IV-list-long-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12465NISTXML-SV-IV-list-long-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12466NISTXML-SV-IV-list-long-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12467NISTSchema-SV-IV-list-long-maxLength-2 tokoe:valid" result="pass"/><test-case name="12468NISTXML-SV-IV-list-long-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12469NISTXML-SV-IV-list-long-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12470NISTXML-SV-IV-list-long-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12471NISTXML-SV-IV-list-long-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12472NISTXML-SV-IV-list-long-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12473NISTSchema-SV-IV-list-long-maxLength-3 tokoe:valid" result="pass"/><test-case name="12474NISTXML-SV-IV-list-long-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12475NISTXML-SV-IV-list-long-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12476NISTXML-SV-IV-list-long-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12477NISTXML-SV-IV-list-long-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12478NISTXML-SV-IV-list-long-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12479NISTSchema-SV-IV-list-long-maxLength-4 tokoe:valid" result="pass"/><test-case name="12480NISTXML-SV-IV-list-long-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12481NISTXML-SV-IV-list-long-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12482NISTXML-SV-IV-list-long-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12483NISTXML-SV-IV-list-long-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12484NISTXML-SV-IV-list-long-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12485NISTSchema-SV-IV-list-long-maxLength-5 tokoe:valid" result="pass"/><test-case name="12486NISTXML-SV-IV-list-long-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12487NISTXML-SV-IV-list-long-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12488NISTXML-SV-IV-list-long-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12489NISTXML-SV-IV-list-long-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12490NISTXML-SV-IV-list-long-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12491NISTSchema-SV-IV-list-long-minLength-1 tokoe:valid" result="pass"/><test-case name="12492NISTXML-SV-IV-list-long-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12493NISTXML-SV-IV-list-long-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12494NISTXML-SV-IV-list-long-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12495NISTXML-SV-IV-list-long-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12496NISTXML-SV-IV-list-long-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12497NISTSchema-SV-IV-list-long-minLength-2 tokoe:valid" result="pass"/><test-case name="12498NISTXML-SV-IV-list-long-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12499NISTXML-SV-IV-list-long-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12500NISTXML-SV-IV-list-long-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12501NISTXML-SV-IV-list-long-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12502NISTXML-SV-IV-list-long-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12503NISTSchema-SV-IV-list-long-minLength-3 tokoe:valid" result="pass"/><test-case name="12504NISTXML-SV-IV-list-long-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12505NISTXML-SV-IV-list-long-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12506NISTXML-SV-IV-list-long-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12507NISTXML-SV-IV-list-long-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12508NISTXML-SV-IV-list-long-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12509NISTSchema-SV-IV-list-long-minLength-4 tokoe:valid" result="pass"/><test-case name="12510NISTXML-SV-IV-list-long-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12511NISTXML-SV-IV-list-long-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12512NISTXML-SV-IV-list-long-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12513NISTXML-SV-IV-list-long-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12514NISTXML-SV-IV-list-long-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12515NISTSchema-SV-IV-list-long-minLength-5 tokoe:valid" result="pass"/><test-case name="12516NISTXML-SV-IV-list-long-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12517NISTXML-SV-IV-list-long-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12518NISTXML-SV-IV-list-long-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12519NISTXML-SV-IV-list-long-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12520NISTXML-SV-IV-list-long-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12521NISTSchema-SV-IV-list-long-length-1 tokoe:valid" result="pass"/><test-case name="12522NISTXML-SV-IV-list-long-length-1-1 tokoe:valid" result="pass"/><test-case name="12523NISTXML-SV-IV-list-long-length-1-2 tokoe:valid" result="pass"/><test-case name="12524NISTXML-SV-IV-list-long-length-1-3 tokoe:valid" result="pass"/><test-case name="12525NISTXML-SV-IV-list-long-length-1-4 tokoe:valid" result="pass"/><test-case name="12526NISTXML-SV-IV-list-long-length-1-5 tokoe:valid" result="pass"/><test-case name="12527NISTSchema-SV-IV-list-long-length-2 tokoe:valid" result="pass"/><test-case name="12528NISTXML-SV-IV-list-long-length-2-1 tokoe:valid" result="pass"/><test-case name="12529NISTXML-SV-IV-list-long-length-2-2 tokoe:valid" result="pass"/><test-case name="12530NISTXML-SV-IV-list-long-length-2-3 tokoe:valid" result="pass"/><test-case name="12531NISTXML-SV-IV-list-long-length-2-4 tokoe:valid" result="pass"/><test-case name="12532NISTXML-SV-IV-list-long-length-2-5 tokoe:valid" result="pass"/><test-case name="12533NISTSchema-SV-IV-list-long-length-3 tokoe:valid" result="pass"/><test-case name="12534NISTXML-SV-IV-list-long-length-3-1 tokoe:valid" result="pass"/><test-case name="12535NISTXML-SV-IV-list-long-length-3-2 tokoe:valid" result="pass"/><test-case name="12536NISTXML-SV-IV-list-long-length-3-3 tokoe:valid" result="pass"/><test-case name="12537NISTXML-SV-IV-list-long-length-3-4 tokoe:valid" result="pass"/><test-case name="12538NISTXML-SV-IV-list-long-length-3-5 tokoe:valid" result="pass"/><test-case name="12539NISTSchema-SV-IV-list-long-length-4 tokoe:valid" result="pass"/><test-case name="12540NISTXML-SV-IV-list-long-length-4-1 tokoe:valid" result="pass"/><test-case name="12541NISTXML-SV-IV-list-long-length-4-2 tokoe:valid" result="pass"/><test-case name="12542NISTXML-SV-IV-list-long-length-4-3 tokoe:valid" result="pass"/><test-case name="12543NISTXML-SV-IV-list-long-length-4-4 tokoe:valid" result="pass"/><test-case name="12544NISTXML-SV-IV-list-long-length-4-5 tokoe:valid" result="pass"/><test-case name="12545NISTSchema-SV-IV-list-long-length-5 tokoe:valid" result="pass"/><test-case name="12546NISTXML-SV-IV-list-long-length-5-1 tokoe:valid" result="pass"/><test-case name="12547NISTXML-SV-IV-list-long-length-5-2 tokoe:valid" result="pass"/><test-case name="12548NISTXML-SV-IV-list-long-length-5-3 tokoe:valid" result="pass"/><test-case name="12549NISTXML-SV-IV-list-long-length-5-4 tokoe:valid" result="pass"/><test-case name="12550NISTXML-SV-IV-list-long-length-5-5 tokoe:valid" result="pass"/><test-case name="12551NISTSchema-SV-IV-list-long-pattern-1 tokoe:valid" result="pass"/><test-case name="12552NISTXML-SV-IV-list-long-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12553NISTXML-SV-IV-list-long-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12554NISTXML-SV-IV-list-long-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12555NISTXML-SV-IV-list-long-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12556NISTXML-SV-IV-list-long-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12557NISTSchema-SV-IV-list-long-pattern-2 tokoe:valid" result="pass"/><test-case name="12558NISTXML-SV-IV-list-long-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12559NISTXML-SV-IV-list-long-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12560NISTXML-SV-IV-list-long-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12561NISTXML-SV-IV-list-long-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12562NISTXML-SV-IV-list-long-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12563NISTSchema-SV-IV-list-long-pattern-3 tokoe:valid" result="pass"/><test-case name="12564NISTXML-SV-IV-list-long-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12565NISTXML-SV-IV-list-long-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12566NISTXML-SV-IV-list-long-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12567NISTXML-SV-IV-list-long-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12568NISTXML-SV-IV-list-long-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12569NISTSchema-SV-IV-list-long-pattern-4 tokoe:valid" result="pass"/><test-case name="12570NISTXML-SV-IV-list-long-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12571NISTXML-SV-IV-list-long-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12572NISTXML-SV-IV-list-long-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12573NISTXML-SV-IV-list-long-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12574NISTXML-SV-IV-list-long-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12575NISTSchema-SV-IV-list-long-pattern-5 tokoe:valid" result="pass"/><test-case name="12576NISTXML-SV-IV-list-long-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12577NISTXML-SV-IV-list-long-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12578NISTXML-SV-IV-list-long-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12579NISTXML-SV-IV-list-long-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12580NISTXML-SV-IV-list-long-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12581NISTSchema-SV-IV-list-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="12582NISTXML-SV-IV-list-long-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12583NISTXML-SV-IV-list-long-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12584NISTXML-SV-IV-list-long-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12585NISTXML-SV-IV-list-long-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12586NISTXML-SV-IV-list-long-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12587NISTSchema-SV-IV-list-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="12588NISTXML-SV-IV-list-long-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12589NISTXML-SV-IV-list-long-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12590NISTXML-SV-IV-list-long-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12591NISTXML-SV-IV-list-long-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12592NISTXML-SV-IV-list-long-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12593NISTSchema-SV-IV-list-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="12594NISTXML-SV-IV-list-long-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12595NISTXML-SV-IV-list-long-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12596NISTXML-SV-IV-list-long-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12597NISTXML-SV-IV-list-long-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12598NISTXML-SV-IV-list-long-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12599NISTSchema-SV-IV-list-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="12600NISTXML-SV-IV-list-long-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12601NISTXML-SV-IV-list-long-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12602NISTXML-SV-IV-list-long-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12603NISTXML-SV-IV-list-long-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12604NISTXML-SV-IV-list-long-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12605NISTSchema-SV-IV-list-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="12606NISTXML-SV-IV-list-long-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12607NISTXML-SV-IV-list-long-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12608NISTXML-SV-IV-list-long-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12609NISTXML-SV-IV-list-long-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12610NISTXML-SV-IV-list-long-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12611NISTSchema-SV-IV-list-long-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12612NISTXML-SV-IV-list-long-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12613NISTXML-SV-IV-list-long-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12614NISTXML-SV-IV-list-long-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12615NISTXML-SV-IV-list-long-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12616NISTXML-SV-IV-list-long-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12617NISTSchema-SV-IV-list-int-maxLength-1 tokoe:valid" result="pass"/><test-case name="12618NISTXML-SV-IV-list-int-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12619NISTXML-SV-IV-list-int-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12620NISTXML-SV-IV-list-int-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12621NISTXML-SV-IV-list-int-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12622NISTXML-SV-IV-list-int-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12623NISTSchema-SV-IV-list-int-maxLength-2 tokoe:valid" result="pass"/><test-case name="12624NISTXML-SV-IV-list-int-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12625NISTXML-SV-IV-list-int-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12626NISTXML-SV-IV-list-int-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12627NISTXML-SV-IV-list-int-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12628NISTXML-SV-IV-list-int-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12629NISTSchema-SV-IV-list-int-maxLength-3 tokoe:valid" result="pass"/><test-case name="12630NISTXML-SV-IV-list-int-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12631NISTXML-SV-IV-list-int-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12632NISTXML-SV-IV-list-int-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12633NISTXML-SV-IV-list-int-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12634NISTXML-SV-IV-list-int-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12635NISTSchema-SV-IV-list-int-maxLength-4 tokoe:valid" result="pass"/><test-case name="12636NISTXML-SV-IV-list-int-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12637NISTXML-SV-IV-list-int-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12638NISTXML-SV-IV-list-int-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12639NISTXML-SV-IV-list-int-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12640NISTXML-SV-IV-list-int-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12641NISTSchema-SV-IV-list-int-maxLength-5 tokoe:valid" result="pass"/><test-case name="12642NISTXML-SV-IV-list-int-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12643NISTXML-SV-IV-list-int-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12644NISTXML-SV-IV-list-int-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12645NISTXML-SV-IV-list-int-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12646NISTXML-SV-IV-list-int-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12647NISTSchema-SV-IV-list-int-minLength-1 tokoe:valid" result="pass"/><test-case name="12648NISTXML-SV-IV-list-int-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12649NISTXML-SV-IV-list-int-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12650NISTXML-SV-IV-list-int-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12651NISTXML-SV-IV-list-int-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12652NISTXML-SV-IV-list-int-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12653NISTSchema-SV-IV-list-int-minLength-2 tokoe:valid" result="pass"/><test-case name="12654NISTXML-SV-IV-list-int-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12655NISTXML-SV-IV-list-int-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12656NISTXML-SV-IV-list-int-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12657NISTXML-SV-IV-list-int-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12658NISTXML-SV-IV-list-int-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12659NISTSchema-SV-IV-list-int-minLength-3 tokoe:valid" result="pass"/><test-case name="12660NISTXML-SV-IV-list-int-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12661NISTXML-SV-IV-list-int-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12662NISTXML-SV-IV-list-int-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12663NISTXML-SV-IV-list-int-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12664NISTXML-SV-IV-list-int-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12665NISTSchema-SV-IV-list-int-minLength-4 tokoe:valid" result="pass"/><test-case name="12666NISTXML-SV-IV-list-int-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12667NISTXML-SV-IV-list-int-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12668NISTXML-SV-IV-list-int-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12669NISTXML-SV-IV-list-int-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12670NISTXML-SV-IV-list-int-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12671NISTSchema-SV-IV-list-int-minLength-5 tokoe:valid" result="pass"/><test-case name="12672NISTXML-SV-IV-list-int-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12673NISTXML-SV-IV-list-int-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12674NISTXML-SV-IV-list-int-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12675NISTXML-SV-IV-list-int-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12676NISTXML-SV-IV-list-int-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12677NISTSchema-SV-IV-list-int-length-1 tokoe:valid" result="pass"/><test-case name="12678NISTXML-SV-IV-list-int-length-1-1 tokoe:valid" result="pass"/><test-case name="12679NISTXML-SV-IV-list-int-length-1-2 tokoe:valid" result="pass"/><test-case name="12680NISTXML-SV-IV-list-int-length-1-3 tokoe:valid" result="pass"/><test-case name="12681NISTXML-SV-IV-list-int-length-1-4 tokoe:valid" result="pass"/><test-case name="12682NISTXML-SV-IV-list-int-length-1-5 tokoe:valid" result="pass"/><test-case name="12683NISTSchema-SV-IV-list-int-length-2 tokoe:valid" result="pass"/><test-case name="12684NISTXML-SV-IV-list-int-length-2-1 tokoe:valid" result="pass"/><test-case name="12685NISTXML-SV-IV-list-int-length-2-2 tokoe:valid" result="pass"/><test-case name="12686NISTXML-SV-IV-list-int-length-2-3 tokoe:valid" result="pass"/><test-case name="12687NISTXML-SV-IV-list-int-length-2-4 tokoe:valid" result="pass"/><test-case name="12688NISTXML-SV-IV-list-int-length-2-5 tokoe:valid" result="pass"/><test-case name="12689NISTSchema-SV-IV-list-int-length-3 tokoe:valid" result="pass"/><test-case name="12690NISTXML-SV-IV-list-int-length-3-1 tokoe:valid" result="pass"/><test-case name="12691NISTXML-SV-IV-list-int-length-3-2 tokoe:valid" result="pass"/><test-case name="12692NISTXML-SV-IV-list-int-length-3-3 tokoe:valid" result="pass"/><test-case name="12693NISTXML-SV-IV-list-int-length-3-4 tokoe:valid" result="pass"/><test-case name="12694NISTXML-SV-IV-list-int-length-3-5 tokoe:valid" result="pass"/><test-case name="12695NISTSchema-SV-IV-list-int-length-4 tokoe:valid" result="pass"/><test-case name="12696NISTXML-SV-IV-list-int-length-4-1 tokoe:valid" result="pass"/><test-case name="12697NISTXML-SV-IV-list-int-length-4-2 tokoe:valid" result="pass"/><test-case name="12698NISTXML-SV-IV-list-int-length-4-3 tokoe:valid" result="pass"/><test-case name="12699NISTXML-SV-IV-list-int-length-4-4 tokoe:valid" result="pass"/><test-case name="12700NISTXML-SV-IV-list-int-length-4-5 tokoe:valid" result="pass"/><test-case name="12701NISTSchema-SV-IV-list-int-length-5 tokoe:valid" result="pass"/><test-case name="12702NISTXML-SV-IV-list-int-length-5-1 tokoe:valid" result="pass"/><test-case name="12703NISTXML-SV-IV-list-int-length-5-2 tokoe:valid" result="pass"/><test-case name="12704NISTXML-SV-IV-list-int-length-5-3 tokoe:valid" result="pass"/><test-case name="12705NISTXML-SV-IV-list-int-length-5-4 tokoe:valid" result="pass"/><test-case name="12706NISTXML-SV-IV-list-int-length-5-5 tokoe:valid" result="pass"/><test-case name="12707NISTSchema-SV-IV-list-int-pattern-1 tokoe:valid" result="pass"/><test-case name="12708NISTXML-SV-IV-list-int-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12709NISTXML-SV-IV-list-int-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12710NISTXML-SV-IV-list-int-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12711NISTXML-SV-IV-list-int-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12712NISTXML-SV-IV-list-int-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12713NISTSchema-SV-IV-list-int-pattern-2 tokoe:valid" result="pass"/><test-case name="12714NISTXML-SV-IV-list-int-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12715NISTXML-SV-IV-list-int-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12716NISTXML-SV-IV-list-int-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12717NISTXML-SV-IV-list-int-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12718NISTXML-SV-IV-list-int-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12719NISTSchema-SV-IV-list-int-pattern-3 tokoe:valid" result="pass"/><test-case name="12720NISTXML-SV-IV-list-int-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12721NISTXML-SV-IV-list-int-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12722NISTXML-SV-IV-list-int-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12723NISTXML-SV-IV-list-int-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12724NISTXML-SV-IV-list-int-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12725NISTSchema-SV-IV-list-int-pattern-4 tokoe:valid" result="pass"/><test-case name="12726NISTXML-SV-IV-list-int-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12727NISTXML-SV-IV-list-int-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12728NISTXML-SV-IV-list-int-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12729NISTXML-SV-IV-list-int-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12730NISTXML-SV-IV-list-int-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12731NISTSchema-SV-IV-list-int-pattern-5 tokoe:valid" result="pass"/><test-case name="12732NISTXML-SV-IV-list-int-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12733NISTXML-SV-IV-list-int-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12734NISTXML-SV-IV-list-int-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12735NISTXML-SV-IV-list-int-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12736NISTXML-SV-IV-list-int-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12737NISTSchema-SV-IV-list-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="12738NISTXML-SV-IV-list-int-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12739NISTXML-SV-IV-list-int-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12740NISTXML-SV-IV-list-int-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12741NISTXML-SV-IV-list-int-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12742NISTXML-SV-IV-list-int-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12743NISTSchema-SV-IV-list-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="12744NISTXML-SV-IV-list-int-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12745NISTXML-SV-IV-list-int-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12746NISTXML-SV-IV-list-int-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12747NISTXML-SV-IV-list-int-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12748NISTXML-SV-IV-list-int-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12749NISTSchema-SV-IV-list-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="12750NISTXML-SV-IV-list-int-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12751NISTXML-SV-IV-list-int-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12752NISTXML-SV-IV-list-int-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12753NISTXML-SV-IV-list-int-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12754NISTXML-SV-IV-list-int-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12755NISTSchema-SV-IV-list-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="12756NISTXML-SV-IV-list-int-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12757NISTXML-SV-IV-list-int-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12758NISTXML-SV-IV-list-int-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12759NISTXML-SV-IV-list-int-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12760NISTXML-SV-IV-list-int-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12761NISTSchema-SV-IV-list-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="12762NISTXML-SV-IV-list-int-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12763NISTXML-SV-IV-list-int-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12764NISTXML-SV-IV-list-int-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12765NISTXML-SV-IV-list-int-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12766NISTXML-SV-IV-list-int-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12767NISTSchema-SV-IV-list-int-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12768NISTXML-SV-IV-list-int-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12769NISTXML-SV-IV-list-int-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12770NISTXML-SV-IV-list-int-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12771NISTXML-SV-IV-list-int-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12772NISTXML-SV-IV-list-int-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12773NISTSchema-SV-IV-list-short-maxLength-1 tokoe:valid" result="pass"/><test-case name="12774NISTXML-SV-IV-list-short-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12775NISTXML-SV-IV-list-short-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12776NISTXML-SV-IV-list-short-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12777NISTXML-SV-IV-list-short-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12778NISTXML-SV-IV-list-short-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12779NISTSchema-SV-IV-list-short-maxLength-2 tokoe:valid" result="pass"/><test-case name="12780NISTXML-SV-IV-list-short-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12781NISTXML-SV-IV-list-short-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12782NISTXML-SV-IV-list-short-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12783NISTXML-SV-IV-list-short-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12784NISTXML-SV-IV-list-short-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12785NISTSchema-SV-IV-list-short-maxLength-3 tokoe:valid" result="pass"/><test-case name="12786NISTXML-SV-IV-list-short-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12787NISTXML-SV-IV-list-short-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12788NISTXML-SV-IV-list-short-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12789NISTXML-SV-IV-list-short-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12790NISTXML-SV-IV-list-short-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12791NISTSchema-SV-IV-list-short-maxLength-4 tokoe:valid" result="pass"/><test-case name="12792NISTXML-SV-IV-list-short-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12793NISTXML-SV-IV-list-short-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12794NISTXML-SV-IV-list-short-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12795NISTXML-SV-IV-list-short-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12796NISTXML-SV-IV-list-short-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12797NISTSchema-SV-IV-list-short-maxLength-5 tokoe:valid" result="pass"/><test-case name="12798NISTXML-SV-IV-list-short-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12799NISTXML-SV-IV-list-short-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12800NISTXML-SV-IV-list-short-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12801NISTXML-SV-IV-list-short-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12802NISTXML-SV-IV-list-short-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12803NISTSchema-SV-IV-list-short-minLength-1 tokoe:valid" result="pass"/><test-case name="12804NISTXML-SV-IV-list-short-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12805NISTXML-SV-IV-list-short-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12806NISTXML-SV-IV-list-short-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12807NISTXML-SV-IV-list-short-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12808NISTXML-SV-IV-list-short-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12809NISTSchema-SV-IV-list-short-minLength-2 tokoe:valid" result="pass"/><test-case name="12810NISTXML-SV-IV-list-short-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12811NISTXML-SV-IV-list-short-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12812NISTXML-SV-IV-list-short-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12813NISTXML-SV-IV-list-short-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12814NISTXML-SV-IV-list-short-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12815NISTSchema-SV-IV-list-short-minLength-3 tokoe:valid" result="pass"/><test-case name="12816NISTXML-SV-IV-list-short-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12817NISTXML-SV-IV-list-short-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12818NISTXML-SV-IV-list-short-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12819NISTXML-SV-IV-list-short-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12820NISTXML-SV-IV-list-short-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12821NISTSchema-SV-IV-list-short-minLength-4 tokoe:valid" result="pass"/><test-case name="12822NISTXML-SV-IV-list-short-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12823NISTXML-SV-IV-list-short-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12824NISTXML-SV-IV-list-short-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12825NISTXML-SV-IV-list-short-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12826NISTXML-SV-IV-list-short-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12827NISTSchema-SV-IV-list-short-minLength-5 tokoe:valid" result="pass"/><test-case name="12828NISTXML-SV-IV-list-short-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12829NISTXML-SV-IV-list-short-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12830NISTXML-SV-IV-list-short-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12831NISTXML-SV-IV-list-short-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12832NISTXML-SV-IV-list-short-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12833NISTSchema-SV-IV-list-short-length-1 tokoe:valid" result="pass"/><test-case name="12834NISTXML-SV-IV-list-short-length-1-1 tokoe:valid" result="pass"/><test-case name="12835NISTXML-SV-IV-list-short-length-1-2 tokoe:valid" result="pass"/><test-case name="12836NISTXML-SV-IV-list-short-length-1-3 tokoe:valid" result="pass"/><test-case name="12837NISTXML-SV-IV-list-short-length-1-4 tokoe:valid" result="pass"/><test-case name="12838NISTXML-SV-IV-list-short-length-1-5 tokoe:valid" result="pass"/><test-case name="12839NISTSchema-SV-IV-list-short-length-2 tokoe:valid" result="pass"/><test-case name="12840NISTXML-SV-IV-list-short-length-2-1 tokoe:valid" result="pass"/><test-case name="12841NISTXML-SV-IV-list-short-length-2-2 tokoe:valid" result="pass"/><test-case name="12842NISTXML-SV-IV-list-short-length-2-3 tokoe:valid" result="pass"/><test-case name="12843NISTXML-SV-IV-list-short-length-2-4 tokoe:valid" result="pass"/><test-case name="12844NISTXML-SV-IV-list-short-length-2-5 tokoe:valid" result="pass"/><test-case name="12845NISTSchema-SV-IV-list-short-length-3 tokoe:valid" result="pass"/><test-case name="12846NISTXML-SV-IV-list-short-length-3-1 tokoe:valid" result="pass"/><test-case name="12847NISTXML-SV-IV-list-short-length-3-2 tokoe:valid" result="pass"/><test-case name="12848NISTXML-SV-IV-list-short-length-3-3 tokoe:valid" result="pass"/><test-case name="12849NISTXML-SV-IV-list-short-length-3-4 tokoe:valid" result="pass"/><test-case name="12850NISTXML-SV-IV-list-short-length-3-5 tokoe:valid" result="pass"/><test-case name="12851NISTSchema-SV-IV-list-short-length-4 tokoe:valid" result="pass"/><test-case name="12852NISTXML-SV-IV-list-short-length-4-1 tokoe:valid" result="pass"/><test-case name="12853NISTXML-SV-IV-list-short-length-4-2 tokoe:valid" result="pass"/><test-case name="12854NISTXML-SV-IV-list-short-length-4-3 tokoe:valid" result="pass"/><test-case name="12855NISTXML-SV-IV-list-short-length-4-4 tokoe:valid" result="pass"/><test-case name="12856NISTXML-SV-IV-list-short-length-4-5 tokoe:valid" result="pass"/><test-case name="12857NISTSchema-SV-IV-list-short-length-5 tokoe:valid" result="pass"/><test-case name="12858NISTXML-SV-IV-list-short-length-5-1 tokoe:valid" result="pass"/><test-case name="12859NISTXML-SV-IV-list-short-length-5-2 tokoe:valid" result="pass"/><test-case name="12860NISTXML-SV-IV-list-short-length-5-3 tokoe:valid" result="pass"/><test-case name="12861NISTXML-SV-IV-list-short-length-5-4 tokoe:valid" result="pass"/><test-case name="12862NISTXML-SV-IV-list-short-length-5-5 tokoe:valid" result="pass"/><test-case name="12863NISTSchema-SV-IV-list-short-pattern-1 tokoe:valid" result="pass"/><test-case name="12864NISTXML-SV-IV-list-short-pattern-1-1 tokoe:valid" result="pass"/><test-case name="12865NISTXML-SV-IV-list-short-pattern-1-2 tokoe:valid" result="pass"/><test-case name="12866NISTXML-SV-IV-list-short-pattern-1-3 tokoe:valid" result="pass"/><test-case name="12867NISTXML-SV-IV-list-short-pattern-1-4 tokoe:valid" result="pass"/><test-case name="12868NISTXML-SV-IV-list-short-pattern-1-5 tokoe:valid" result="pass"/><test-case name="12869NISTSchema-SV-IV-list-short-pattern-2 tokoe:valid" result="pass"/><test-case name="12870NISTXML-SV-IV-list-short-pattern-2-1 tokoe:valid" result="pass"/><test-case name="12871NISTXML-SV-IV-list-short-pattern-2-2 tokoe:valid" result="pass"/><test-case name="12872NISTXML-SV-IV-list-short-pattern-2-3 tokoe:valid" result="pass"/><test-case name="12873NISTXML-SV-IV-list-short-pattern-2-4 tokoe:valid" result="pass"/><test-case name="12874NISTXML-SV-IV-list-short-pattern-2-5 tokoe:valid" result="pass"/><test-case name="12875NISTSchema-SV-IV-list-short-pattern-3 tokoe:valid" result="pass"/><test-case name="12876NISTXML-SV-IV-list-short-pattern-3-1 tokoe:valid" result="pass"/><test-case name="12877NISTXML-SV-IV-list-short-pattern-3-2 tokoe:valid" result="pass"/><test-case name="12878NISTXML-SV-IV-list-short-pattern-3-3 tokoe:valid" result="pass"/><test-case name="12879NISTXML-SV-IV-list-short-pattern-3-4 tokoe:valid" result="pass"/><test-case name="12880NISTXML-SV-IV-list-short-pattern-3-5 tokoe:valid" result="pass"/><test-case name="12881NISTSchema-SV-IV-list-short-pattern-4 tokoe:valid" result="pass"/><test-case name="12882NISTXML-SV-IV-list-short-pattern-4-1 tokoe:valid" result="pass"/><test-case name="12883NISTXML-SV-IV-list-short-pattern-4-2 tokoe:valid" result="pass"/><test-case name="12884NISTXML-SV-IV-list-short-pattern-4-3 tokoe:valid" result="pass"/><test-case name="12885NISTXML-SV-IV-list-short-pattern-4-4 tokoe:valid" result="pass"/><test-case name="12886NISTXML-SV-IV-list-short-pattern-4-5 tokoe:valid" result="pass"/><test-case name="12887NISTSchema-SV-IV-list-short-pattern-5 tokoe:valid" result="pass"/><test-case name="12888NISTXML-SV-IV-list-short-pattern-5-1 tokoe:valid" result="pass"/><test-case name="12889NISTXML-SV-IV-list-short-pattern-5-2 tokoe:valid" result="pass"/><test-case name="12890NISTXML-SV-IV-list-short-pattern-5-3 tokoe:valid" result="pass"/><test-case name="12891NISTXML-SV-IV-list-short-pattern-5-4 tokoe:valid" result="pass"/><test-case name="12892NISTXML-SV-IV-list-short-pattern-5-5 tokoe:valid" result="pass"/><test-case name="12893NISTSchema-SV-IV-list-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="12894NISTXML-SV-IV-list-short-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="12895NISTXML-SV-IV-list-short-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="12896NISTXML-SV-IV-list-short-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="12897NISTXML-SV-IV-list-short-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="12898NISTXML-SV-IV-list-short-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="12899NISTSchema-SV-IV-list-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="12900NISTXML-SV-IV-list-short-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="12901NISTXML-SV-IV-list-short-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="12902NISTXML-SV-IV-list-short-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="12903NISTXML-SV-IV-list-short-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="12904NISTXML-SV-IV-list-short-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="12905NISTSchema-SV-IV-list-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="12906NISTXML-SV-IV-list-short-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="12907NISTXML-SV-IV-list-short-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="12908NISTXML-SV-IV-list-short-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="12909NISTXML-SV-IV-list-short-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="12910NISTXML-SV-IV-list-short-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="12911NISTSchema-SV-IV-list-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="12912NISTXML-SV-IV-list-short-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="12913NISTXML-SV-IV-list-short-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="12914NISTXML-SV-IV-list-short-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="12915NISTXML-SV-IV-list-short-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="12916NISTXML-SV-IV-list-short-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="12917NISTSchema-SV-IV-list-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="12918NISTXML-SV-IV-list-short-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="12919NISTXML-SV-IV-list-short-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="12920NISTXML-SV-IV-list-short-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="12921NISTXML-SV-IV-list-short-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="12922NISTXML-SV-IV-list-short-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="12923NISTSchema-SV-IV-list-short-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="12924NISTXML-SV-IV-list-short-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="12925NISTXML-SV-IV-list-short-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="12926NISTXML-SV-IV-list-short-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="12927NISTXML-SV-IV-list-short-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="12928NISTXML-SV-IV-list-short-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="12929NISTSchema-SV-IV-list-byte-maxLength-1 tokoe:valid" result="pass"/><test-case name="12930NISTXML-SV-IV-list-byte-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="12931NISTXML-SV-IV-list-byte-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="12932NISTXML-SV-IV-list-byte-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="12933NISTXML-SV-IV-list-byte-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="12934NISTXML-SV-IV-list-byte-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="12935NISTSchema-SV-IV-list-byte-maxLength-2 tokoe:valid" result="pass"/><test-case name="12936NISTXML-SV-IV-list-byte-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="12937NISTXML-SV-IV-list-byte-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="12938NISTXML-SV-IV-list-byte-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="12939NISTXML-SV-IV-list-byte-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="12940NISTXML-SV-IV-list-byte-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="12941NISTSchema-SV-IV-list-byte-maxLength-3 tokoe:valid" result="pass"/><test-case name="12942NISTXML-SV-IV-list-byte-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="12943NISTXML-SV-IV-list-byte-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="12944NISTXML-SV-IV-list-byte-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="12945NISTXML-SV-IV-list-byte-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="12946NISTXML-SV-IV-list-byte-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="12947NISTSchema-SV-IV-list-byte-maxLength-4 tokoe:valid" result="pass"/><test-case name="12948NISTXML-SV-IV-list-byte-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="12949NISTXML-SV-IV-list-byte-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="12950NISTXML-SV-IV-list-byte-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="12951NISTXML-SV-IV-list-byte-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="12952NISTXML-SV-IV-list-byte-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="12953NISTSchema-SV-IV-list-byte-maxLength-5 tokoe:valid" result="pass"/><test-case name="12954NISTXML-SV-IV-list-byte-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="12955NISTXML-SV-IV-list-byte-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="12956NISTXML-SV-IV-list-byte-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="12957NISTXML-SV-IV-list-byte-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="12958NISTXML-SV-IV-list-byte-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="12959NISTSchema-SV-IV-list-byte-minLength-1 tokoe:valid" result="pass"/><test-case name="12960NISTXML-SV-IV-list-byte-minLength-1-1 tokoe:valid" result="pass"/><test-case name="12961NISTXML-SV-IV-list-byte-minLength-1-2 tokoe:valid" result="pass"/><test-case name="12962NISTXML-SV-IV-list-byte-minLength-1-3 tokoe:valid" result="pass"/><test-case name="12963NISTXML-SV-IV-list-byte-minLength-1-4 tokoe:valid" result="pass"/><test-case name="12964NISTXML-SV-IV-list-byte-minLength-1-5 tokoe:valid" result="pass"/><test-case name="12965NISTSchema-SV-IV-list-byte-minLength-2 tokoe:valid" result="pass"/><test-case name="12966NISTXML-SV-IV-list-byte-minLength-2-1 tokoe:valid" result="pass"/><test-case name="12967NISTXML-SV-IV-list-byte-minLength-2-2 tokoe:valid" result="pass"/><test-case name="12968NISTXML-SV-IV-list-byte-minLength-2-3 tokoe:valid" result="pass"/><test-case name="12969NISTXML-SV-IV-list-byte-minLength-2-4 tokoe:valid" result="pass"/><test-case name="12970NISTXML-SV-IV-list-byte-minLength-2-5 tokoe:valid" result="pass"/><test-case name="12971NISTSchema-SV-IV-list-byte-minLength-3 tokoe:valid" result="pass"/><test-case name="12972NISTXML-SV-IV-list-byte-minLength-3-1 tokoe:valid" result="pass"/><test-case name="12973NISTXML-SV-IV-list-byte-minLength-3-2 tokoe:valid" result="pass"/><test-case name="12974NISTXML-SV-IV-list-byte-minLength-3-3 tokoe:valid" result="pass"/><test-case name="12975NISTXML-SV-IV-list-byte-minLength-3-4 tokoe:valid" result="pass"/><test-case name="12976NISTXML-SV-IV-list-byte-minLength-3-5 tokoe:valid" result="pass"/><test-case name="12977NISTSchema-SV-IV-list-byte-minLength-4 tokoe:valid" result="pass"/><test-case name="12978NISTXML-SV-IV-list-byte-minLength-4-1 tokoe:valid" result="pass"/><test-case name="12979NISTXML-SV-IV-list-byte-minLength-4-2 tokoe:valid" result="pass"/><test-case name="12980NISTXML-SV-IV-list-byte-minLength-4-3 tokoe:valid" result="pass"/><test-case name="12981NISTXML-SV-IV-list-byte-minLength-4-4 tokoe:valid" result="pass"/><test-case name="12982NISTXML-SV-IV-list-byte-minLength-4-5 tokoe:valid" result="pass"/><test-case name="12983NISTSchema-SV-IV-list-byte-minLength-5 tokoe:valid" result="pass"/><test-case name="12984NISTXML-SV-IV-list-byte-minLength-5-1 tokoe:valid" result="pass"/><test-case name="12985NISTXML-SV-IV-list-byte-minLength-5-2 tokoe:valid" result="pass"/><test-case name="12986NISTXML-SV-IV-list-byte-minLength-5-3 tokoe:valid" result="pass"/><test-case name="12987NISTXML-SV-IV-list-byte-minLength-5-4 tokoe:valid" result="pass"/><test-case name="12988NISTXML-SV-IV-list-byte-minLength-5-5 tokoe:valid" result="pass"/><test-case name="12989NISTSchema-SV-IV-list-byte-length-1 tokoe:valid" result="pass"/><test-case name="12990NISTXML-SV-IV-list-byte-length-1-1 tokoe:valid" result="pass"/><test-case name="12991NISTXML-SV-IV-list-byte-length-1-2 tokoe:valid" result="pass"/><test-case name="12992NISTXML-SV-IV-list-byte-length-1-3 tokoe:valid" result="pass"/><test-case name="12993NISTXML-SV-IV-list-byte-length-1-4 tokoe:valid" result="pass"/><test-case name="12994NISTXML-SV-IV-list-byte-length-1-5 tokoe:valid" result="pass"/><test-case name="12995NISTSchema-SV-IV-list-byte-length-2 tokoe:valid" result="pass"/><test-case name="12996NISTXML-SV-IV-list-byte-length-2-1 tokoe:valid" result="pass"/><test-case name="12997NISTXML-SV-IV-list-byte-length-2-2 tokoe:valid" result="pass"/><test-case name="12998NISTXML-SV-IV-list-byte-length-2-3 tokoe:valid" result="pass"/><test-case name="12999NISTXML-SV-IV-list-byte-length-2-4 tokoe:valid" result="pass"/><test-case name="13000NISTXML-SV-IV-list-byte-length-2-5 tokoe:valid" result="pass"/><test-case name="13001NISTSchema-SV-IV-list-byte-length-3 tokoe:valid" result="pass"/><test-case name="13002NISTXML-SV-IV-list-byte-length-3-1 tokoe:valid" result="pass"/><test-case name="13003NISTXML-SV-IV-list-byte-length-3-2 tokoe:valid" result="pass"/><test-case name="13004NISTXML-SV-IV-list-byte-length-3-3 tokoe:valid" result="pass"/><test-case name="13005NISTXML-SV-IV-list-byte-length-3-4 tokoe:valid" result="pass"/><test-case name="13006NISTXML-SV-IV-list-byte-length-3-5 tokoe:valid" result="pass"/><test-case name="13007NISTSchema-SV-IV-list-byte-length-4 tokoe:valid" result="pass"/><test-case name="13008NISTXML-SV-IV-list-byte-length-4-1 tokoe:valid" result="pass"/><test-case name="13009NISTXML-SV-IV-list-byte-length-4-2 tokoe:valid" result="pass"/><test-case name="13010NISTXML-SV-IV-list-byte-length-4-3 tokoe:valid" result="pass"/><test-case name="13011NISTXML-SV-IV-list-byte-length-4-4 tokoe:valid" result="pass"/><test-case name="13012NISTXML-SV-IV-list-byte-length-4-5 tokoe:valid" result="pass"/><test-case name="13013NISTSchema-SV-IV-list-byte-length-5 tokoe:valid" result="pass"/><test-case name="13014NISTXML-SV-IV-list-byte-length-5-1 tokoe:valid" result="pass"/><test-case name="13015NISTXML-SV-IV-list-byte-length-5-2 tokoe:valid" result="pass"/><test-case name="13016NISTXML-SV-IV-list-byte-length-5-3 tokoe:valid" result="pass"/><test-case name="13017NISTXML-SV-IV-list-byte-length-5-4 tokoe:valid" result="pass"/><test-case name="13018NISTXML-SV-IV-list-byte-length-5-5 tokoe:valid" result="pass"/><test-case name="13019NISTSchema-SV-IV-list-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="13020NISTXML-SV-IV-list-byte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13021NISTXML-SV-IV-list-byte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13022NISTXML-SV-IV-list-byte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13023NISTXML-SV-IV-list-byte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13024NISTXML-SV-IV-list-byte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13025NISTSchema-SV-IV-list-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="13026NISTXML-SV-IV-list-byte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13027NISTXML-SV-IV-list-byte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13028NISTXML-SV-IV-list-byte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13029NISTXML-SV-IV-list-byte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13030NISTXML-SV-IV-list-byte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13031NISTSchema-SV-IV-list-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="13032NISTXML-SV-IV-list-byte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13033NISTXML-SV-IV-list-byte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13034NISTXML-SV-IV-list-byte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13035NISTXML-SV-IV-list-byte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13036NISTXML-SV-IV-list-byte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13037NISTSchema-SV-IV-list-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="13038NISTXML-SV-IV-list-byte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13039NISTXML-SV-IV-list-byte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13040NISTXML-SV-IV-list-byte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13041NISTXML-SV-IV-list-byte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13042NISTXML-SV-IV-list-byte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13043NISTSchema-SV-IV-list-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="13044NISTXML-SV-IV-list-byte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13045NISTXML-SV-IV-list-byte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13046NISTXML-SV-IV-list-byte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13047NISTXML-SV-IV-list-byte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13048NISTXML-SV-IV-list-byte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13049NISTSchema-SV-IV-list-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="13050NISTXML-SV-IV-list-byte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13051NISTXML-SV-IV-list-byte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13052NISTXML-SV-IV-list-byte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13053NISTXML-SV-IV-list-byte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13054NISTXML-SV-IV-list-byte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13055NISTSchema-SV-IV-list-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="13056NISTXML-SV-IV-list-byte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13057NISTXML-SV-IV-list-byte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13058NISTXML-SV-IV-list-byte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13059NISTXML-SV-IV-list-byte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13060NISTXML-SV-IV-list-byte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13061NISTSchema-SV-IV-list-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="13062NISTXML-SV-IV-list-byte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13063NISTXML-SV-IV-list-byte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13064NISTXML-SV-IV-list-byte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13065NISTXML-SV-IV-list-byte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13066NISTXML-SV-IV-list-byte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13067NISTSchema-SV-IV-list-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="13068NISTXML-SV-IV-list-byte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13069NISTXML-SV-IV-list-byte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13070NISTXML-SV-IV-list-byte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13071NISTXML-SV-IV-list-byte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13072NISTXML-SV-IV-list-byte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13073NISTSchema-SV-IV-list-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="13074NISTXML-SV-IV-list-byte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13075NISTXML-SV-IV-list-byte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13076NISTXML-SV-IV-list-byte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13077NISTXML-SV-IV-list-byte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13078NISTXML-SV-IV-list-byte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13079NISTSchema-SV-IV-list-byte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13080NISTXML-SV-IV-list-byte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13081NISTXML-SV-IV-list-byte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13082NISTXML-SV-IV-list-byte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13083NISTXML-SV-IV-list-byte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13084NISTXML-SV-IV-list-byte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13085NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="13086NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13087NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13088NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13089NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13090NISTXML-SV-IV-list-nonNegativeInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13091NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="13092NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13093NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13094NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13095NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13096NISTXML-SV-IV-list-nonNegativeInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13097NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="13098NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13099NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13100NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13101NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13102NISTXML-SV-IV-list-nonNegativeInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13103NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="13104NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13105NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13106NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13107NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13108NISTXML-SV-IV-list-nonNegativeInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13109NISTSchema-SV-IV-list-nonNegativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="13110NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13111NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13112NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13113NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13114NISTXML-SV-IV-list-nonNegativeInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13115NISTSchema-SV-IV-list-nonNegativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="13116NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13117NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13118NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13119NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13120NISTXML-SV-IV-list-nonNegativeInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13121NISTSchema-SV-IV-list-nonNegativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="13122NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13123NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13124NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13125NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13126NISTXML-SV-IV-list-nonNegativeInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13127NISTSchema-SV-IV-list-nonNegativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="13128NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13129NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13130NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13131NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13132NISTXML-SV-IV-list-nonNegativeInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13133NISTSchema-SV-IV-list-nonNegativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="13134NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13135NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13136NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13137NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13138NISTXML-SV-IV-list-nonNegativeInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13139NISTSchema-SV-IV-list-nonNegativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="13140NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13141NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13142NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13143NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13144NISTXML-SV-IV-list-nonNegativeInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13145NISTSchema-SV-IV-list-nonNegativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="13146NISTXML-SV-IV-list-nonNegativeInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="13147NISTXML-SV-IV-list-nonNegativeInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="13148NISTXML-SV-IV-list-nonNegativeInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="13149NISTXML-SV-IV-list-nonNegativeInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="13150NISTXML-SV-IV-list-nonNegativeInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="13151NISTSchema-SV-IV-list-nonNegativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="13152NISTXML-SV-IV-list-nonNegativeInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="13153NISTXML-SV-IV-list-nonNegativeInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="13154NISTXML-SV-IV-list-nonNegativeInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="13155NISTXML-SV-IV-list-nonNegativeInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="13156NISTXML-SV-IV-list-nonNegativeInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="13157NISTSchema-SV-IV-list-nonNegativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="13158NISTXML-SV-IV-list-nonNegativeInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="13159NISTXML-SV-IV-list-nonNegativeInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="13160NISTXML-SV-IV-list-nonNegativeInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="13161NISTXML-SV-IV-list-nonNegativeInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="13162NISTXML-SV-IV-list-nonNegativeInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="13163NISTSchema-SV-IV-list-nonNegativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="13164NISTXML-SV-IV-list-nonNegativeInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="13165NISTXML-SV-IV-list-nonNegativeInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="13166NISTXML-SV-IV-list-nonNegativeInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="13167NISTXML-SV-IV-list-nonNegativeInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="13168NISTXML-SV-IV-list-nonNegativeInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="13169NISTSchema-SV-IV-list-nonNegativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="13170NISTXML-SV-IV-list-nonNegativeInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="13171NISTXML-SV-IV-list-nonNegativeInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="13172NISTXML-SV-IV-list-nonNegativeInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="13173NISTXML-SV-IV-list-nonNegativeInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="13174NISTXML-SV-IV-list-nonNegativeInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="13175NISTSchema-SV-IV-list-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="13176NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13177NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13178NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13179NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13180NISTXML-SV-IV-list-nonNegativeInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13181NISTSchema-SV-IV-list-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="13182NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13183NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13184NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13185NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13186NISTXML-SV-IV-list-nonNegativeInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13187NISTSchema-SV-IV-list-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="13188NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13189NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13190NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13191NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13192NISTXML-SV-IV-list-nonNegativeInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13193NISTSchema-SV-IV-list-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="13194NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13195NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13196NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13197NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13198NISTXML-SV-IV-list-nonNegativeInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13199NISTSchema-SV-IV-list-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="13200NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13201NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13202NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13203NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13204NISTXML-SV-IV-list-nonNegativeInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13205NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="13206NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13207NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13208NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13209NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13210NISTXML-SV-IV-list-nonNegativeInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13211NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="13212NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13213NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13214NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13215NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13216NISTXML-SV-IV-list-nonNegativeInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13217NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="13218NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13219NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13220NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13221NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13222NISTXML-SV-IV-list-nonNegativeInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13223NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="13224NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13225NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13226NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13227NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13228NISTXML-SV-IV-list-nonNegativeInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13229NISTSchema-SV-IV-list-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="13230NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13231NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13232NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13233NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13234NISTXML-SV-IV-list-nonNegativeInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13235NISTSchema-SV-IV-list-nonNegativeInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13236NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13237NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13238NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13239NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13240NISTXML-SV-IV-list-nonNegativeInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13241NISTSchema-SV-IV-list-unsignedLong-maxLength-1 tokoe:valid" result="pass"/><test-case name="13242NISTXML-SV-IV-list-unsignedLong-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13243NISTXML-SV-IV-list-unsignedLong-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13244NISTXML-SV-IV-list-unsignedLong-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13245NISTXML-SV-IV-list-unsignedLong-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13246NISTXML-SV-IV-list-unsignedLong-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13247NISTSchema-SV-IV-list-unsignedLong-maxLength-2 tokoe:valid" result="pass"/><test-case name="13248NISTXML-SV-IV-list-unsignedLong-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13249NISTXML-SV-IV-list-unsignedLong-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13250NISTXML-SV-IV-list-unsignedLong-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13251NISTXML-SV-IV-list-unsignedLong-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13252NISTXML-SV-IV-list-unsignedLong-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13253NISTSchema-SV-IV-list-unsignedLong-maxLength-3 tokoe:valid" result="pass"/><test-case name="13254NISTXML-SV-IV-list-unsignedLong-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13255NISTXML-SV-IV-list-unsignedLong-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13256NISTXML-SV-IV-list-unsignedLong-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13257NISTXML-SV-IV-list-unsignedLong-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13258NISTXML-SV-IV-list-unsignedLong-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13259NISTSchema-SV-IV-list-unsignedLong-maxLength-4 tokoe:valid" result="pass"/><test-case name="13260NISTXML-SV-IV-list-unsignedLong-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13261NISTXML-SV-IV-list-unsignedLong-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13262NISTXML-SV-IV-list-unsignedLong-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13263NISTXML-SV-IV-list-unsignedLong-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13264NISTXML-SV-IV-list-unsignedLong-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13265NISTSchema-SV-IV-list-unsignedLong-maxLength-5 tokoe:valid" result="pass"/><test-case name="13266NISTXML-SV-IV-list-unsignedLong-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13267NISTXML-SV-IV-list-unsignedLong-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13268NISTXML-SV-IV-list-unsignedLong-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13269NISTXML-SV-IV-list-unsignedLong-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13270NISTXML-SV-IV-list-unsignedLong-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13271NISTSchema-SV-IV-list-unsignedLong-minLength-1 tokoe:valid" result="pass"/><test-case name="13272NISTXML-SV-IV-list-unsignedLong-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13273NISTXML-SV-IV-list-unsignedLong-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13274NISTXML-SV-IV-list-unsignedLong-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13275NISTXML-SV-IV-list-unsignedLong-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13276NISTXML-SV-IV-list-unsignedLong-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13277NISTSchema-SV-IV-list-unsignedLong-minLength-2 tokoe:valid" result="pass"/><test-case name="13278NISTXML-SV-IV-list-unsignedLong-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13279NISTXML-SV-IV-list-unsignedLong-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13280NISTXML-SV-IV-list-unsignedLong-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13281NISTXML-SV-IV-list-unsignedLong-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13282NISTXML-SV-IV-list-unsignedLong-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13283NISTSchema-SV-IV-list-unsignedLong-minLength-3 tokoe:valid" result="pass"/><test-case name="13284NISTXML-SV-IV-list-unsignedLong-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13285NISTXML-SV-IV-list-unsignedLong-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13286NISTXML-SV-IV-list-unsignedLong-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13287NISTXML-SV-IV-list-unsignedLong-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13288NISTXML-SV-IV-list-unsignedLong-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13289NISTSchema-SV-IV-list-unsignedLong-minLength-4 tokoe:valid" result="pass"/><test-case name="13290NISTXML-SV-IV-list-unsignedLong-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13291NISTXML-SV-IV-list-unsignedLong-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13292NISTXML-SV-IV-list-unsignedLong-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13293NISTXML-SV-IV-list-unsignedLong-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13294NISTXML-SV-IV-list-unsignedLong-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13295NISTSchema-SV-IV-list-unsignedLong-minLength-5 tokoe:valid" result="pass"/><test-case name="13296NISTXML-SV-IV-list-unsignedLong-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13297NISTXML-SV-IV-list-unsignedLong-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13298NISTXML-SV-IV-list-unsignedLong-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13299NISTXML-SV-IV-list-unsignedLong-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13300NISTXML-SV-IV-list-unsignedLong-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13301NISTSchema-SV-IV-list-unsignedLong-length-1 tokoe:valid" result="pass"/><test-case name="13302NISTXML-SV-IV-list-unsignedLong-length-1-1 tokoe:valid" result="pass"/><test-case name="13303NISTXML-SV-IV-list-unsignedLong-length-1-2 tokoe:valid" result="pass"/><test-case name="13304NISTXML-SV-IV-list-unsignedLong-length-1-3 tokoe:valid" result="pass"/><test-case name="13305NISTXML-SV-IV-list-unsignedLong-length-1-4 tokoe:valid" result="pass"/><test-case name="13306NISTXML-SV-IV-list-unsignedLong-length-1-5 tokoe:valid" result="pass"/><test-case name="13307NISTSchema-SV-IV-list-unsignedLong-length-2 tokoe:valid" result="pass"/><test-case name="13308NISTXML-SV-IV-list-unsignedLong-length-2-1 tokoe:valid" result="pass"/><test-case name="13309NISTXML-SV-IV-list-unsignedLong-length-2-2 tokoe:valid" result="pass"/><test-case name="13310NISTXML-SV-IV-list-unsignedLong-length-2-3 tokoe:valid" result="pass"/><test-case name="13311NISTXML-SV-IV-list-unsignedLong-length-2-4 tokoe:valid" result="pass"/><test-case name="13312NISTXML-SV-IV-list-unsignedLong-length-2-5 tokoe:valid" result="pass"/><test-case name="13313NISTSchema-SV-IV-list-unsignedLong-length-3 tokoe:valid" result="pass"/><test-case name="13314NISTXML-SV-IV-list-unsignedLong-length-3-1 tokoe:valid" result="pass"/><test-case name="13315NISTXML-SV-IV-list-unsignedLong-length-3-2 tokoe:valid" result="pass"/><test-case name="13316NISTXML-SV-IV-list-unsignedLong-length-3-3 tokoe:valid" result="pass"/><test-case name="13317NISTXML-SV-IV-list-unsignedLong-length-3-4 tokoe:valid" result="pass"/><test-case name="13318NISTXML-SV-IV-list-unsignedLong-length-3-5 tokoe:valid" result="pass"/><test-case name="13319NISTSchema-SV-IV-list-unsignedLong-length-4 tokoe:valid" result="pass"/><test-case name="13320NISTXML-SV-IV-list-unsignedLong-length-4-1 tokoe:valid" result="pass"/><test-case name="13321NISTXML-SV-IV-list-unsignedLong-length-4-2 tokoe:valid" result="pass"/><test-case name="13322NISTXML-SV-IV-list-unsignedLong-length-4-3 tokoe:valid" result="pass"/><test-case name="13323NISTXML-SV-IV-list-unsignedLong-length-4-4 tokoe:valid" result="pass"/><test-case name="13324NISTXML-SV-IV-list-unsignedLong-length-4-5 tokoe:valid" result="pass"/><test-case name="13325NISTSchema-SV-IV-list-unsignedLong-length-5 tokoe:valid" result="pass"/><test-case name="13326NISTXML-SV-IV-list-unsignedLong-length-5-1 tokoe:valid" result="pass"/><test-case name="13327NISTXML-SV-IV-list-unsignedLong-length-5-2 tokoe:valid" result="pass"/><test-case name="13328NISTXML-SV-IV-list-unsignedLong-length-5-3 tokoe:valid" result="pass"/><test-case name="13329NISTXML-SV-IV-list-unsignedLong-length-5-4 tokoe:valid" result="pass"/><test-case name="13330NISTXML-SV-IV-list-unsignedLong-length-5-5 tokoe:valid" result="pass"/><test-case name="13331NISTSchema-SV-IV-list-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="13332NISTXML-SV-IV-list-unsignedLong-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13333NISTXML-SV-IV-list-unsignedLong-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13334NISTXML-SV-IV-list-unsignedLong-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13335NISTXML-SV-IV-list-unsignedLong-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13336NISTXML-SV-IV-list-unsignedLong-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13337NISTSchema-SV-IV-list-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="13338NISTXML-SV-IV-list-unsignedLong-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13339NISTXML-SV-IV-list-unsignedLong-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13340NISTXML-SV-IV-list-unsignedLong-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13341NISTXML-SV-IV-list-unsignedLong-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13342NISTXML-SV-IV-list-unsignedLong-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13343NISTSchema-SV-IV-list-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="13344NISTXML-SV-IV-list-unsignedLong-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13345NISTXML-SV-IV-list-unsignedLong-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13346NISTXML-SV-IV-list-unsignedLong-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13347NISTXML-SV-IV-list-unsignedLong-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13348NISTXML-SV-IV-list-unsignedLong-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13349NISTSchema-SV-IV-list-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="13350NISTXML-SV-IV-list-unsignedLong-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13351NISTXML-SV-IV-list-unsignedLong-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13352NISTXML-SV-IV-list-unsignedLong-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13353NISTXML-SV-IV-list-unsignedLong-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13354NISTXML-SV-IV-list-unsignedLong-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13355NISTSchema-SV-IV-list-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="13356NISTXML-SV-IV-list-unsignedLong-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13357NISTXML-SV-IV-list-unsignedLong-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13358NISTXML-SV-IV-list-unsignedLong-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13359NISTXML-SV-IV-list-unsignedLong-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13360NISTXML-SV-IV-list-unsignedLong-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13361NISTSchema-SV-IV-list-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="13362NISTXML-SV-IV-list-unsignedLong-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13363NISTXML-SV-IV-list-unsignedLong-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13364NISTXML-SV-IV-list-unsignedLong-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13365NISTXML-SV-IV-list-unsignedLong-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13366NISTXML-SV-IV-list-unsignedLong-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13367NISTSchema-SV-IV-list-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="13368NISTXML-SV-IV-list-unsignedLong-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13369NISTXML-SV-IV-list-unsignedLong-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13370NISTXML-SV-IV-list-unsignedLong-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13371NISTXML-SV-IV-list-unsignedLong-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13372NISTXML-SV-IV-list-unsignedLong-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13373NISTSchema-SV-IV-list-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="13374NISTXML-SV-IV-list-unsignedLong-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13375NISTXML-SV-IV-list-unsignedLong-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13376NISTXML-SV-IV-list-unsignedLong-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13377NISTXML-SV-IV-list-unsignedLong-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13378NISTXML-SV-IV-list-unsignedLong-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13379NISTSchema-SV-IV-list-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="13380NISTXML-SV-IV-list-unsignedLong-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13381NISTXML-SV-IV-list-unsignedLong-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13382NISTXML-SV-IV-list-unsignedLong-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13383NISTXML-SV-IV-list-unsignedLong-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13384NISTXML-SV-IV-list-unsignedLong-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13385NISTSchema-SV-IV-list-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="13386NISTXML-SV-IV-list-unsignedLong-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13387NISTXML-SV-IV-list-unsignedLong-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13388NISTXML-SV-IV-list-unsignedLong-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13389NISTXML-SV-IV-list-unsignedLong-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13390NISTXML-SV-IV-list-unsignedLong-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13391NISTSchema-SV-IV-list-unsignedLong-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13392NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13393NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13394NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13395NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13396NISTXML-SV-IV-list-unsignedLong-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13397NISTSchema-SV-IV-list-unsignedInt-maxLength-1 tokoe:valid" result="pass"/><test-case name="13398NISTXML-SV-IV-list-unsignedInt-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13399NISTXML-SV-IV-list-unsignedInt-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13400NISTXML-SV-IV-list-unsignedInt-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13401NISTXML-SV-IV-list-unsignedInt-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13402NISTXML-SV-IV-list-unsignedInt-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13403NISTSchema-SV-IV-list-unsignedInt-maxLength-2 tokoe:valid" result="pass"/><test-case name="13404NISTXML-SV-IV-list-unsignedInt-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13405NISTXML-SV-IV-list-unsignedInt-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13406NISTXML-SV-IV-list-unsignedInt-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13407NISTXML-SV-IV-list-unsignedInt-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13408NISTXML-SV-IV-list-unsignedInt-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13409NISTSchema-SV-IV-list-unsignedInt-maxLength-3 tokoe:valid" result="pass"/><test-case name="13410NISTXML-SV-IV-list-unsignedInt-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13411NISTXML-SV-IV-list-unsignedInt-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13412NISTXML-SV-IV-list-unsignedInt-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13413NISTXML-SV-IV-list-unsignedInt-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13414NISTXML-SV-IV-list-unsignedInt-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13415NISTSchema-SV-IV-list-unsignedInt-maxLength-4 tokoe:valid" result="pass"/><test-case name="13416NISTXML-SV-IV-list-unsignedInt-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13417NISTXML-SV-IV-list-unsignedInt-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13418NISTXML-SV-IV-list-unsignedInt-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13419NISTXML-SV-IV-list-unsignedInt-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13420NISTXML-SV-IV-list-unsignedInt-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13421NISTSchema-SV-IV-list-unsignedInt-maxLength-5 tokoe:valid" result="pass"/><test-case name="13422NISTXML-SV-IV-list-unsignedInt-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13423NISTXML-SV-IV-list-unsignedInt-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13424NISTXML-SV-IV-list-unsignedInt-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13425NISTXML-SV-IV-list-unsignedInt-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13426NISTXML-SV-IV-list-unsignedInt-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13427NISTSchema-SV-IV-list-unsignedInt-minLength-1 tokoe:valid" result="pass"/><test-case name="13428NISTXML-SV-IV-list-unsignedInt-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13429NISTXML-SV-IV-list-unsignedInt-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13430NISTXML-SV-IV-list-unsignedInt-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13431NISTXML-SV-IV-list-unsignedInt-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13432NISTXML-SV-IV-list-unsignedInt-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13433NISTSchema-SV-IV-list-unsignedInt-minLength-2 tokoe:valid" result="pass"/><test-case name="13434NISTXML-SV-IV-list-unsignedInt-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13435NISTXML-SV-IV-list-unsignedInt-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13436NISTXML-SV-IV-list-unsignedInt-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13437NISTXML-SV-IV-list-unsignedInt-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13438NISTXML-SV-IV-list-unsignedInt-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13439NISTSchema-SV-IV-list-unsignedInt-minLength-3 tokoe:valid" result="pass"/><test-case name="13440NISTXML-SV-IV-list-unsignedInt-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13441NISTXML-SV-IV-list-unsignedInt-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13442NISTXML-SV-IV-list-unsignedInt-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13443NISTXML-SV-IV-list-unsignedInt-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13444NISTXML-SV-IV-list-unsignedInt-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13445NISTSchema-SV-IV-list-unsignedInt-minLength-4 tokoe:valid" result="pass"/><test-case name="13446NISTXML-SV-IV-list-unsignedInt-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13447NISTXML-SV-IV-list-unsignedInt-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13448NISTXML-SV-IV-list-unsignedInt-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13449NISTXML-SV-IV-list-unsignedInt-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13450NISTXML-SV-IV-list-unsignedInt-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13451NISTSchema-SV-IV-list-unsignedInt-minLength-5 tokoe:valid" result="pass"/><test-case name="13452NISTXML-SV-IV-list-unsignedInt-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13453NISTXML-SV-IV-list-unsignedInt-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13454NISTXML-SV-IV-list-unsignedInt-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13455NISTXML-SV-IV-list-unsignedInt-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13456NISTXML-SV-IV-list-unsignedInt-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13457NISTSchema-SV-IV-list-unsignedInt-length-1 tokoe:valid" result="pass"/><test-case name="13458NISTXML-SV-IV-list-unsignedInt-length-1-1 tokoe:valid" result="pass"/><test-case name="13459NISTXML-SV-IV-list-unsignedInt-length-1-2 tokoe:valid" result="pass"/><test-case name="13460NISTXML-SV-IV-list-unsignedInt-length-1-3 tokoe:valid" result="pass"/><test-case name="13461NISTXML-SV-IV-list-unsignedInt-length-1-4 tokoe:valid" result="pass"/><test-case name="13462NISTXML-SV-IV-list-unsignedInt-length-1-5 tokoe:valid" result="pass"/><test-case name="13463NISTSchema-SV-IV-list-unsignedInt-length-2 tokoe:valid" result="pass"/><test-case name="13464NISTXML-SV-IV-list-unsignedInt-length-2-1 tokoe:valid" result="pass"/><test-case name="13465NISTXML-SV-IV-list-unsignedInt-length-2-2 tokoe:valid" result="pass"/><test-case name="13466NISTXML-SV-IV-list-unsignedInt-length-2-3 tokoe:valid" result="pass"/><test-case name="13467NISTXML-SV-IV-list-unsignedInt-length-2-4 tokoe:valid" result="pass"/><test-case name="13468NISTXML-SV-IV-list-unsignedInt-length-2-5 tokoe:valid" result="pass"/><test-case name="13469NISTSchema-SV-IV-list-unsignedInt-length-3 tokoe:valid" result="pass"/><test-case name="13470NISTXML-SV-IV-list-unsignedInt-length-3-1 tokoe:valid" result="pass"/><test-case name="13471NISTXML-SV-IV-list-unsignedInt-length-3-2 tokoe:valid" result="pass"/><test-case name="13472NISTXML-SV-IV-list-unsignedInt-length-3-3 tokoe:valid" result="pass"/><test-case name="13473NISTXML-SV-IV-list-unsignedInt-length-3-4 tokoe:valid" result="pass"/><test-case name="13474NISTXML-SV-IV-list-unsignedInt-length-3-5 tokoe:valid" result="pass"/><test-case name="13475NISTSchema-SV-IV-list-unsignedInt-length-4 tokoe:valid" result="pass"/><test-case name="13476NISTXML-SV-IV-list-unsignedInt-length-4-1 tokoe:valid" result="pass"/><test-case name="13477NISTXML-SV-IV-list-unsignedInt-length-4-2 tokoe:valid" result="pass"/><test-case name="13478NISTXML-SV-IV-list-unsignedInt-length-4-3 tokoe:valid" result="pass"/><test-case name="13479NISTXML-SV-IV-list-unsignedInt-length-4-4 tokoe:valid" result="pass"/><test-case name="13480NISTXML-SV-IV-list-unsignedInt-length-4-5 tokoe:valid" result="pass"/><test-case name="13481NISTSchema-SV-IV-list-unsignedInt-length-5 tokoe:valid" result="pass"/><test-case name="13482NISTXML-SV-IV-list-unsignedInt-length-5-1 tokoe:valid" result="pass"/><test-case name="13483NISTXML-SV-IV-list-unsignedInt-length-5-2 tokoe:valid" result="pass"/><test-case name="13484NISTXML-SV-IV-list-unsignedInt-length-5-3 tokoe:valid" result="pass"/><test-case name="13485NISTXML-SV-IV-list-unsignedInt-length-5-4 tokoe:valid" result="pass"/><test-case name="13486NISTXML-SV-IV-list-unsignedInt-length-5-5 tokoe:valid" result="pass"/><test-case name="13487NISTSchema-SV-IV-list-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="13488NISTXML-SV-IV-list-unsignedInt-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13489NISTXML-SV-IV-list-unsignedInt-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13490NISTXML-SV-IV-list-unsignedInt-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13491NISTXML-SV-IV-list-unsignedInt-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13492NISTXML-SV-IV-list-unsignedInt-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13493NISTSchema-SV-IV-list-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="13494NISTXML-SV-IV-list-unsignedInt-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13495NISTXML-SV-IV-list-unsignedInt-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13496NISTXML-SV-IV-list-unsignedInt-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13497NISTXML-SV-IV-list-unsignedInt-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13498NISTXML-SV-IV-list-unsignedInt-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13499NISTSchema-SV-IV-list-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="13500NISTXML-SV-IV-list-unsignedInt-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13501NISTXML-SV-IV-list-unsignedInt-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13502NISTXML-SV-IV-list-unsignedInt-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13503NISTXML-SV-IV-list-unsignedInt-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13504NISTXML-SV-IV-list-unsignedInt-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13505NISTSchema-SV-IV-list-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="13506NISTXML-SV-IV-list-unsignedInt-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13507NISTXML-SV-IV-list-unsignedInt-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13508NISTXML-SV-IV-list-unsignedInt-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13509NISTXML-SV-IV-list-unsignedInt-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13510NISTXML-SV-IV-list-unsignedInt-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13511NISTSchema-SV-IV-list-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="13512NISTXML-SV-IV-list-unsignedInt-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13513NISTXML-SV-IV-list-unsignedInt-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13514NISTXML-SV-IV-list-unsignedInt-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13515NISTXML-SV-IV-list-unsignedInt-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13516NISTXML-SV-IV-list-unsignedInt-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13517NISTSchema-SV-IV-list-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="13518NISTXML-SV-IV-list-unsignedInt-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13519NISTXML-SV-IV-list-unsignedInt-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13520NISTXML-SV-IV-list-unsignedInt-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13521NISTXML-SV-IV-list-unsignedInt-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13522NISTXML-SV-IV-list-unsignedInt-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13523NISTSchema-SV-IV-list-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="13524NISTXML-SV-IV-list-unsignedInt-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13525NISTXML-SV-IV-list-unsignedInt-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13526NISTXML-SV-IV-list-unsignedInt-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13527NISTXML-SV-IV-list-unsignedInt-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13528NISTXML-SV-IV-list-unsignedInt-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13529NISTSchema-SV-IV-list-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="13530NISTXML-SV-IV-list-unsignedInt-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13531NISTXML-SV-IV-list-unsignedInt-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13532NISTXML-SV-IV-list-unsignedInt-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13533NISTXML-SV-IV-list-unsignedInt-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13534NISTXML-SV-IV-list-unsignedInt-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13535NISTSchema-SV-IV-list-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="13536NISTXML-SV-IV-list-unsignedInt-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13537NISTXML-SV-IV-list-unsignedInt-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13538NISTXML-SV-IV-list-unsignedInt-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13539NISTXML-SV-IV-list-unsignedInt-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13540NISTXML-SV-IV-list-unsignedInt-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13541NISTSchema-SV-IV-list-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="13542NISTXML-SV-IV-list-unsignedInt-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13543NISTXML-SV-IV-list-unsignedInt-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13544NISTXML-SV-IV-list-unsignedInt-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13545NISTXML-SV-IV-list-unsignedInt-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13546NISTXML-SV-IV-list-unsignedInt-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13547NISTSchema-SV-IV-list-unsignedInt-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13548NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13549NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13550NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13551NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13552NISTXML-SV-IV-list-unsignedInt-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13553NISTSchema-SV-IV-list-unsignedShort-maxLength-1 tokoe:valid" result="pass"/><test-case name="13554NISTXML-SV-IV-list-unsignedShort-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13555NISTXML-SV-IV-list-unsignedShort-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13556NISTXML-SV-IV-list-unsignedShort-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13557NISTXML-SV-IV-list-unsignedShort-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13558NISTXML-SV-IV-list-unsignedShort-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13559NISTSchema-SV-IV-list-unsignedShort-maxLength-2 tokoe:valid" result="pass"/><test-case name="13560NISTXML-SV-IV-list-unsignedShort-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13561NISTXML-SV-IV-list-unsignedShort-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13562NISTXML-SV-IV-list-unsignedShort-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13563NISTXML-SV-IV-list-unsignedShort-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13564NISTXML-SV-IV-list-unsignedShort-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13565NISTSchema-SV-IV-list-unsignedShort-maxLength-3 tokoe:valid" result="pass"/><test-case name="13566NISTXML-SV-IV-list-unsignedShort-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13567NISTXML-SV-IV-list-unsignedShort-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13568NISTXML-SV-IV-list-unsignedShort-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13569NISTXML-SV-IV-list-unsignedShort-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13570NISTXML-SV-IV-list-unsignedShort-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13571NISTSchema-SV-IV-list-unsignedShort-maxLength-4 tokoe:valid" result="pass"/><test-case name="13572NISTXML-SV-IV-list-unsignedShort-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13573NISTXML-SV-IV-list-unsignedShort-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13574NISTXML-SV-IV-list-unsignedShort-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13575NISTXML-SV-IV-list-unsignedShort-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13576NISTXML-SV-IV-list-unsignedShort-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13577NISTSchema-SV-IV-list-unsignedShort-maxLength-5 tokoe:valid" result="pass"/><test-case name="13578NISTXML-SV-IV-list-unsignedShort-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13579NISTXML-SV-IV-list-unsignedShort-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13580NISTXML-SV-IV-list-unsignedShort-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13581NISTXML-SV-IV-list-unsignedShort-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13582NISTXML-SV-IV-list-unsignedShort-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13583NISTSchema-SV-IV-list-unsignedShort-minLength-1 tokoe:valid" result="pass"/><test-case name="13584NISTXML-SV-IV-list-unsignedShort-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13585NISTXML-SV-IV-list-unsignedShort-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13586NISTXML-SV-IV-list-unsignedShort-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13587NISTXML-SV-IV-list-unsignedShort-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13588NISTXML-SV-IV-list-unsignedShort-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13589NISTSchema-SV-IV-list-unsignedShort-minLength-2 tokoe:valid" result="pass"/><test-case name="13590NISTXML-SV-IV-list-unsignedShort-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13591NISTXML-SV-IV-list-unsignedShort-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13592NISTXML-SV-IV-list-unsignedShort-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13593NISTXML-SV-IV-list-unsignedShort-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13594NISTXML-SV-IV-list-unsignedShort-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13595NISTSchema-SV-IV-list-unsignedShort-minLength-3 tokoe:valid" result="pass"/><test-case name="13596NISTXML-SV-IV-list-unsignedShort-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13597NISTXML-SV-IV-list-unsignedShort-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13598NISTXML-SV-IV-list-unsignedShort-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13599NISTXML-SV-IV-list-unsignedShort-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13600NISTXML-SV-IV-list-unsignedShort-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13601NISTSchema-SV-IV-list-unsignedShort-minLength-4 tokoe:valid" result="pass"/><test-case name="13602NISTXML-SV-IV-list-unsignedShort-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13603NISTXML-SV-IV-list-unsignedShort-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13604NISTXML-SV-IV-list-unsignedShort-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13605NISTXML-SV-IV-list-unsignedShort-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13606NISTXML-SV-IV-list-unsignedShort-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13607NISTSchema-SV-IV-list-unsignedShort-minLength-5 tokoe:valid" result="pass"/><test-case name="13608NISTXML-SV-IV-list-unsignedShort-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13609NISTXML-SV-IV-list-unsignedShort-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13610NISTXML-SV-IV-list-unsignedShort-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13611NISTXML-SV-IV-list-unsignedShort-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13612NISTXML-SV-IV-list-unsignedShort-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13613NISTSchema-SV-IV-list-unsignedShort-length-1 tokoe:valid" result="pass"/><test-case name="13614NISTXML-SV-IV-list-unsignedShort-length-1-1 tokoe:valid" result="pass"/><test-case name="13615NISTXML-SV-IV-list-unsignedShort-length-1-2 tokoe:valid" result="pass"/><test-case name="13616NISTXML-SV-IV-list-unsignedShort-length-1-3 tokoe:valid" result="pass"/><test-case name="13617NISTXML-SV-IV-list-unsignedShort-length-1-4 tokoe:valid" result="pass"/><test-case name="13618NISTXML-SV-IV-list-unsignedShort-length-1-5 tokoe:valid" result="pass"/><test-case name="13619NISTSchema-SV-IV-list-unsignedShort-length-2 tokoe:valid" result="pass"/><test-case name="13620NISTXML-SV-IV-list-unsignedShort-length-2-1 tokoe:valid" result="pass"/><test-case name="13621NISTXML-SV-IV-list-unsignedShort-length-2-2 tokoe:valid" result="pass"/><test-case name="13622NISTXML-SV-IV-list-unsignedShort-length-2-3 tokoe:valid" result="pass"/><test-case name="13623NISTXML-SV-IV-list-unsignedShort-length-2-4 tokoe:valid" result="pass"/><test-case name="13624NISTXML-SV-IV-list-unsignedShort-length-2-5 tokoe:valid" result="pass"/><test-case name="13625NISTSchema-SV-IV-list-unsignedShort-length-3 tokoe:valid" result="pass"/><test-case name="13626NISTXML-SV-IV-list-unsignedShort-length-3-1 tokoe:valid" result="pass"/><test-case name="13627NISTXML-SV-IV-list-unsignedShort-length-3-2 tokoe:valid" result="pass"/><test-case name="13628NISTXML-SV-IV-list-unsignedShort-length-3-3 tokoe:valid" result="pass"/><test-case name="13629NISTXML-SV-IV-list-unsignedShort-length-3-4 tokoe:valid" result="pass"/><test-case name="13630NISTXML-SV-IV-list-unsignedShort-length-3-5 tokoe:valid" result="pass"/><test-case name="13631NISTSchema-SV-IV-list-unsignedShort-length-4 tokoe:valid" result="pass"/><test-case name="13632NISTXML-SV-IV-list-unsignedShort-length-4-1 tokoe:valid" result="pass"/><test-case name="13633NISTXML-SV-IV-list-unsignedShort-length-4-2 tokoe:valid" result="pass"/><test-case name="13634NISTXML-SV-IV-list-unsignedShort-length-4-3 tokoe:valid" result="pass"/><test-case name="13635NISTXML-SV-IV-list-unsignedShort-length-4-4 tokoe:valid" result="pass"/><test-case name="13636NISTXML-SV-IV-list-unsignedShort-length-4-5 tokoe:valid" result="pass"/><test-case name="13637NISTSchema-SV-IV-list-unsignedShort-length-5 tokoe:valid" result="pass"/><test-case name="13638NISTXML-SV-IV-list-unsignedShort-length-5-1 tokoe:valid" result="pass"/><test-case name="13639NISTXML-SV-IV-list-unsignedShort-length-5-2 tokoe:valid" result="pass"/><test-case name="13640NISTXML-SV-IV-list-unsignedShort-length-5-3 tokoe:valid" result="pass"/><test-case name="13641NISTXML-SV-IV-list-unsignedShort-length-5-4 tokoe:valid" result="pass"/><test-case name="13642NISTXML-SV-IV-list-unsignedShort-length-5-5 tokoe:valid" result="pass"/><test-case name="13643NISTSchema-SV-IV-list-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="13644NISTXML-SV-IV-list-unsignedShort-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13645NISTXML-SV-IV-list-unsignedShort-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13646NISTXML-SV-IV-list-unsignedShort-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13647NISTXML-SV-IV-list-unsignedShort-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13648NISTXML-SV-IV-list-unsignedShort-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13649NISTSchema-SV-IV-list-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="13650NISTXML-SV-IV-list-unsignedShort-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13651NISTXML-SV-IV-list-unsignedShort-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13652NISTXML-SV-IV-list-unsignedShort-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13653NISTXML-SV-IV-list-unsignedShort-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13654NISTXML-SV-IV-list-unsignedShort-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13655NISTSchema-SV-IV-list-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="13656NISTXML-SV-IV-list-unsignedShort-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13657NISTXML-SV-IV-list-unsignedShort-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13658NISTXML-SV-IV-list-unsignedShort-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13659NISTXML-SV-IV-list-unsignedShort-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13660NISTXML-SV-IV-list-unsignedShort-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13661NISTSchema-SV-IV-list-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="13662NISTXML-SV-IV-list-unsignedShort-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13663NISTXML-SV-IV-list-unsignedShort-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13664NISTXML-SV-IV-list-unsignedShort-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13665NISTXML-SV-IV-list-unsignedShort-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13666NISTXML-SV-IV-list-unsignedShort-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13667NISTSchema-SV-IV-list-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="13668NISTXML-SV-IV-list-unsignedShort-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13669NISTXML-SV-IV-list-unsignedShort-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13670NISTXML-SV-IV-list-unsignedShort-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13671NISTXML-SV-IV-list-unsignedShort-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13672NISTXML-SV-IV-list-unsignedShort-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13673NISTSchema-SV-IV-list-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="13674NISTXML-SV-IV-list-unsignedShort-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13675NISTXML-SV-IV-list-unsignedShort-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13676NISTXML-SV-IV-list-unsignedShort-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13677NISTXML-SV-IV-list-unsignedShort-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13678NISTXML-SV-IV-list-unsignedShort-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13679NISTSchema-SV-IV-list-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="13680NISTXML-SV-IV-list-unsignedShort-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13681NISTXML-SV-IV-list-unsignedShort-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13682NISTXML-SV-IV-list-unsignedShort-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13683NISTXML-SV-IV-list-unsignedShort-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13684NISTXML-SV-IV-list-unsignedShort-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13685NISTSchema-SV-IV-list-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="13686NISTXML-SV-IV-list-unsignedShort-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13687NISTXML-SV-IV-list-unsignedShort-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13688NISTXML-SV-IV-list-unsignedShort-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13689NISTXML-SV-IV-list-unsignedShort-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13690NISTXML-SV-IV-list-unsignedShort-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13691NISTSchema-SV-IV-list-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="13692NISTXML-SV-IV-list-unsignedShort-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13693NISTXML-SV-IV-list-unsignedShort-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13694NISTXML-SV-IV-list-unsignedShort-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13695NISTXML-SV-IV-list-unsignedShort-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13696NISTXML-SV-IV-list-unsignedShort-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13697NISTSchema-SV-IV-list-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="13698NISTXML-SV-IV-list-unsignedShort-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13699NISTXML-SV-IV-list-unsignedShort-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13700NISTXML-SV-IV-list-unsignedShort-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13701NISTXML-SV-IV-list-unsignedShort-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13702NISTXML-SV-IV-list-unsignedShort-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13703NISTSchema-SV-IV-list-unsignedShort-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13704NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13705NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13706NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13707NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13708NISTXML-SV-IV-list-unsignedShort-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13709NISTSchema-SV-IV-list-unsignedByte-maxLength-1 tokoe:valid" result="pass"/><test-case name="13710NISTXML-SV-IV-list-unsignedByte-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13711NISTXML-SV-IV-list-unsignedByte-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13712NISTXML-SV-IV-list-unsignedByte-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13713NISTXML-SV-IV-list-unsignedByte-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13714NISTXML-SV-IV-list-unsignedByte-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13715NISTSchema-SV-IV-list-unsignedByte-maxLength-2 tokoe:valid" result="pass"/><test-case name="13716NISTXML-SV-IV-list-unsignedByte-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13717NISTXML-SV-IV-list-unsignedByte-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13718NISTXML-SV-IV-list-unsignedByte-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13719NISTXML-SV-IV-list-unsignedByte-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13720NISTXML-SV-IV-list-unsignedByte-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13721NISTSchema-SV-IV-list-unsignedByte-maxLength-3 tokoe:valid" result="pass"/><test-case name="13722NISTXML-SV-IV-list-unsignedByte-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13723NISTXML-SV-IV-list-unsignedByte-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13724NISTXML-SV-IV-list-unsignedByte-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13725NISTXML-SV-IV-list-unsignedByte-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13726NISTXML-SV-IV-list-unsignedByte-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13727NISTSchema-SV-IV-list-unsignedByte-maxLength-4 tokoe:valid" result="pass"/><test-case name="13728NISTXML-SV-IV-list-unsignedByte-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13729NISTXML-SV-IV-list-unsignedByte-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13730NISTXML-SV-IV-list-unsignedByte-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13731NISTXML-SV-IV-list-unsignedByte-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13732NISTXML-SV-IV-list-unsignedByte-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13733NISTSchema-SV-IV-list-unsignedByte-maxLength-5 tokoe:valid" result="pass"/><test-case name="13734NISTXML-SV-IV-list-unsignedByte-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13735NISTXML-SV-IV-list-unsignedByte-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13736NISTXML-SV-IV-list-unsignedByte-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13737NISTXML-SV-IV-list-unsignedByte-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13738NISTXML-SV-IV-list-unsignedByte-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13739NISTSchema-SV-IV-list-unsignedByte-minLength-1 tokoe:valid" result="pass"/><test-case name="13740NISTXML-SV-IV-list-unsignedByte-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13741NISTXML-SV-IV-list-unsignedByte-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13742NISTXML-SV-IV-list-unsignedByte-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13743NISTXML-SV-IV-list-unsignedByte-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13744NISTXML-SV-IV-list-unsignedByte-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13745NISTSchema-SV-IV-list-unsignedByte-minLength-2 tokoe:valid" result="pass"/><test-case name="13746NISTXML-SV-IV-list-unsignedByte-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13747NISTXML-SV-IV-list-unsignedByte-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13748NISTXML-SV-IV-list-unsignedByte-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13749NISTXML-SV-IV-list-unsignedByte-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13750NISTXML-SV-IV-list-unsignedByte-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13751NISTSchema-SV-IV-list-unsignedByte-minLength-3 tokoe:valid" result="pass"/><test-case name="13752NISTXML-SV-IV-list-unsignedByte-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13753NISTXML-SV-IV-list-unsignedByte-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13754NISTXML-SV-IV-list-unsignedByte-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13755NISTXML-SV-IV-list-unsignedByte-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13756NISTXML-SV-IV-list-unsignedByte-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13757NISTSchema-SV-IV-list-unsignedByte-minLength-4 tokoe:valid" result="pass"/><test-case name="13758NISTXML-SV-IV-list-unsignedByte-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13759NISTXML-SV-IV-list-unsignedByte-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13760NISTXML-SV-IV-list-unsignedByte-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13761NISTXML-SV-IV-list-unsignedByte-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13762NISTXML-SV-IV-list-unsignedByte-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13763NISTSchema-SV-IV-list-unsignedByte-minLength-5 tokoe:valid" result="pass"/><test-case name="13764NISTXML-SV-IV-list-unsignedByte-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13765NISTXML-SV-IV-list-unsignedByte-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13766NISTXML-SV-IV-list-unsignedByte-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13767NISTXML-SV-IV-list-unsignedByte-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13768NISTXML-SV-IV-list-unsignedByte-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13769NISTSchema-SV-IV-list-unsignedByte-length-1 tokoe:valid" result="pass"/><test-case name="13770NISTXML-SV-IV-list-unsignedByte-length-1-1 tokoe:valid" result="pass"/><test-case name="13771NISTXML-SV-IV-list-unsignedByte-length-1-2 tokoe:valid" result="pass"/><test-case name="13772NISTXML-SV-IV-list-unsignedByte-length-1-3 tokoe:valid" result="pass"/><test-case name="13773NISTXML-SV-IV-list-unsignedByte-length-1-4 tokoe:valid" result="pass"/><test-case name="13774NISTXML-SV-IV-list-unsignedByte-length-1-5 tokoe:valid" result="pass"/><test-case name="13775NISTSchema-SV-IV-list-unsignedByte-length-2 tokoe:valid" result="pass"/><test-case name="13776NISTXML-SV-IV-list-unsignedByte-length-2-1 tokoe:valid" result="pass"/><test-case name="13777NISTXML-SV-IV-list-unsignedByte-length-2-2 tokoe:valid" result="pass"/><test-case name="13778NISTXML-SV-IV-list-unsignedByte-length-2-3 tokoe:valid" result="pass"/><test-case name="13779NISTXML-SV-IV-list-unsignedByte-length-2-4 tokoe:valid" result="pass"/><test-case name="13780NISTXML-SV-IV-list-unsignedByte-length-2-5 tokoe:valid" result="pass"/><test-case name="13781NISTSchema-SV-IV-list-unsignedByte-length-3 tokoe:valid" result="pass"/><test-case name="13782NISTXML-SV-IV-list-unsignedByte-length-3-1 tokoe:valid" result="pass"/><test-case name="13783NISTXML-SV-IV-list-unsignedByte-length-3-2 tokoe:valid" result="pass"/><test-case name="13784NISTXML-SV-IV-list-unsignedByte-length-3-3 tokoe:valid" result="pass"/><test-case name="13785NISTXML-SV-IV-list-unsignedByte-length-3-4 tokoe:valid" result="pass"/><test-case name="13786NISTXML-SV-IV-list-unsignedByte-length-3-5 tokoe:valid" result="pass"/><test-case name="13787NISTSchema-SV-IV-list-unsignedByte-length-4 tokoe:valid" result="pass"/><test-case name="13788NISTXML-SV-IV-list-unsignedByte-length-4-1 tokoe:valid" result="pass"/><test-case name="13789NISTXML-SV-IV-list-unsignedByte-length-4-2 tokoe:valid" result="pass"/><test-case name="13790NISTXML-SV-IV-list-unsignedByte-length-4-3 tokoe:valid" result="pass"/><test-case name="13791NISTXML-SV-IV-list-unsignedByte-length-4-4 tokoe:valid" result="pass"/><test-case name="13792NISTXML-SV-IV-list-unsignedByte-length-4-5 tokoe:valid" result="pass"/><test-case name="13793NISTSchema-SV-IV-list-unsignedByte-length-5 tokoe:valid" result="pass"/><test-case name="13794NISTXML-SV-IV-list-unsignedByte-length-5-1 tokoe:valid" result="pass"/><test-case name="13795NISTXML-SV-IV-list-unsignedByte-length-5-2 tokoe:valid" result="pass"/><test-case name="13796NISTXML-SV-IV-list-unsignedByte-length-5-3 tokoe:valid" result="pass"/><test-case name="13797NISTXML-SV-IV-list-unsignedByte-length-5-4 tokoe:valid" result="pass"/><test-case name="13798NISTXML-SV-IV-list-unsignedByte-length-5-5 tokoe:valid" result="pass"/><test-case name="13799NISTSchema-SV-IV-list-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="13800NISTXML-SV-IV-list-unsignedByte-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13801NISTXML-SV-IV-list-unsignedByte-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13802NISTXML-SV-IV-list-unsignedByte-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13803NISTXML-SV-IV-list-unsignedByte-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13804NISTXML-SV-IV-list-unsignedByte-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13805NISTSchema-SV-IV-list-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="13806NISTXML-SV-IV-list-unsignedByte-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13807NISTXML-SV-IV-list-unsignedByte-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13808NISTXML-SV-IV-list-unsignedByte-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13809NISTXML-SV-IV-list-unsignedByte-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13810NISTXML-SV-IV-list-unsignedByte-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13811NISTSchema-SV-IV-list-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="13812NISTXML-SV-IV-list-unsignedByte-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13813NISTXML-SV-IV-list-unsignedByte-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13814NISTXML-SV-IV-list-unsignedByte-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13815NISTXML-SV-IV-list-unsignedByte-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13816NISTXML-SV-IV-list-unsignedByte-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13817NISTSchema-SV-IV-list-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="13818NISTXML-SV-IV-list-unsignedByte-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13819NISTXML-SV-IV-list-unsignedByte-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13820NISTXML-SV-IV-list-unsignedByte-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13821NISTXML-SV-IV-list-unsignedByte-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13822NISTXML-SV-IV-list-unsignedByte-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13823NISTSchema-SV-IV-list-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="13824NISTXML-SV-IV-list-unsignedByte-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13825NISTXML-SV-IV-list-unsignedByte-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13826NISTXML-SV-IV-list-unsignedByte-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13827NISTXML-SV-IV-list-unsignedByte-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13828NISTXML-SV-IV-list-unsignedByte-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13829NISTSchema-SV-IV-list-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="13830NISTXML-SV-IV-list-unsignedByte-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13831NISTXML-SV-IV-list-unsignedByte-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13832NISTXML-SV-IV-list-unsignedByte-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13833NISTXML-SV-IV-list-unsignedByte-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13834NISTXML-SV-IV-list-unsignedByte-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13835NISTSchema-SV-IV-list-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="13836NISTXML-SV-IV-list-unsignedByte-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13837NISTXML-SV-IV-list-unsignedByte-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13838NISTXML-SV-IV-list-unsignedByte-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13839NISTXML-SV-IV-list-unsignedByte-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13840NISTXML-SV-IV-list-unsignedByte-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13841NISTSchema-SV-IV-list-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="13842NISTXML-SV-IV-list-unsignedByte-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13843NISTXML-SV-IV-list-unsignedByte-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="13844NISTXML-SV-IV-list-unsignedByte-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="13845NISTXML-SV-IV-list-unsignedByte-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="13846NISTXML-SV-IV-list-unsignedByte-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="13847NISTSchema-SV-IV-list-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="13848NISTXML-SV-IV-list-unsignedByte-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="13849NISTXML-SV-IV-list-unsignedByte-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="13850NISTXML-SV-IV-list-unsignedByte-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="13851NISTXML-SV-IV-list-unsignedByte-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="13852NISTXML-SV-IV-list-unsignedByte-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="13853NISTSchema-SV-IV-list-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="13854NISTXML-SV-IV-list-unsignedByte-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="13855NISTXML-SV-IV-list-unsignedByte-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="13856NISTXML-SV-IV-list-unsignedByte-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="13857NISTXML-SV-IV-list-unsignedByte-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="13858NISTXML-SV-IV-list-unsignedByte-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="13859NISTSchema-SV-IV-list-unsignedByte-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="13860NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="13861NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="13862NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="13863NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="13864NISTXML-SV-IV-list-unsignedByte-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="13865NISTSchema-SV-IV-list-positiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="13866NISTXML-SV-IV-list-positiveInteger-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="13867NISTXML-SV-IV-list-positiveInteger-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="13868NISTXML-SV-IV-list-positiveInteger-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="13869NISTXML-SV-IV-list-positiveInteger-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="13870NISTXML-SV-IV-list-positiveInteger-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="13871NISTSchema-SV-IV-list-positiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="13872NISTXML-SV-IV-list-positiveInteger-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="13873NISTXML-SV-IV-list-positiveInteger-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="13874NISTXML-SV-IV-list-positiveInteger-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="13875NISTXML-SV-IV-list-positiveInteger-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="13876NISTXML-SV-IV-list-positiveInteger-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="13877NISTSchema-SV-IV-list-positiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="13878NISTXML-SV-IV-list-positiveInteger-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="13879NISTXML-SV-IV-list-positiveInteger-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="13880NISTXML-SV-IV-list-positiveInteger-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="13881NISTXML-SV-IV-list-positiveInteger-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="13882NISTXML-SV-IV-list-positiveInteger-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="13883NISTSchema-SV-IV-list-positiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="13884NISTXML-SV-IV-list-positiveInteger-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="13885NISTXML-SV-IV-list-positiveInteger-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="13886NISTXML-SV-IV-list-positiveInteger-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="13887NISTXML-SV-IV-list-positiveInteger-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="13888NISTXML-SV-IV-list-positiveInteger-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="13889NISTSchema-SV-IV-list-positiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="13890NISTXML-SV-IV-list-positiveInteger-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="13891NISTXML-SV-IV-list-positiveInteger-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="13892NISTXML-SV-IV-list-positiveInteger-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="13893NISTXML-SV-IV-list-positiveInteger-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="13894NISTXML-SV-IV-list-positiveInteger-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="13895NISTSchema-SV-IV-list-positiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="13896NISTXML-SV-IV-list-positiveInteger-minLength-1-1 tokoe:valid" result="pass"/><test-case name="13897NISTXML-SV-IV-list-positiveInteger-minLength-1-2 tokoe:valid" result="pass"/><test-case name="13898NISTXML-SV-IV-list-positiveInteger-minLength-1-3 tokoe:valid" result="pass"/><test-case name="13899NISTXML-SV-IV-list-positiveInteger-minLength-1-4 tokoe:valid" result="pass"/><test-case name="13900NISTXML-SV-IV-list-positiveInteger-minLength-1-5 tokoe:valid" result="pass"/><test-case name="13901NISTSchema-SV-IV-list-positiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="13902NISTXML-SV-IV-list-positiveInteger-minLength-2-1 tokoe:valid" result="pass"/><test-case name="13903NISTXML-SV-IV-list-positiveInteger-minLength-2-2 tokoe:valid" result="pass"/><test-case name="13904NISTXML-SV-IV-list-positiveInteger-minLength-2-3 tokoe:valid" result="pass"/><test-case name="13905NISTXML-SV-IV-list-positiveInteger-minLength-2-4 tokoe:valid" result="pass"/><test-case name="13906NISTXML-SV-IV-list-positiveInteger-minLength-2-5 tokoe:valid" result="pass"/><test-case name="13907NISTSchema-SV-IV-list-positiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="13908NISTXML-SV-IV-list-positiveInteger-minLength-3-1 tokoe:valid" result="pass"/><test-case name="13909NISTXML-SV-IV-list-positiveInteger-minLength-3-2 tokoe:valid" result="pass"/><test-case name="13910NISTXML-SV-IV-list-positiveInteger-minLength-3-3 tokoe:valid" result="pass"/><test-case name="13911NISTXML-SV-IV-list-positiveInteger-minLength-3-4 tokoe:valid" result="pass"/><test-case name="13912NISTXML-SV-IV-list-positiveInteger-minLength-3-5 tokoe:valid" result="pass"/><test-case name="13913NISTSchema-SV-IV-list-positiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="13914NISTXML-SV-IV-list-positiveInteger-minLength-4-1 tokoe:valid" result="pass"/><test-case name="13915NISTXML-SV-IV-list-positiveInteger-minLength-4-2 tokoe:valid" result="pass"/><test-case name="13916NISTXML-SV-IV-list-positiveInteger-minLength-4-3 tokoe:valid" result="pass"/><test-case name="13917NISTXML-SV-IV-list-positiveInteger-minLength-4-4 tokoe:valid" result="pass"/><test-case name="13918NISTXML-SV-IV-list-positiveInteger-minLength-4-5 tokoe:valid" result="pass"/><test-case name="13919NISTSchema-SV-IV-list-positiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="13920NISTXML-SV-IV-list-positiveInteger-minLength-5-1 tokoe:valid" result="pass"/><test-case name="13921NISTXML-SV-IV-list-positiveInteger-minLength-5-2 tokoe:valid" result="pass"/><test-case name="13922NISTXML-SV-IV-list-positiveInteger-minLength-5-3 tokoe:valid" result="pass"/><test-case name="13923NISTXML-SV-IV-list-positiveInteger-minLength-5-4 tokoe:valid" result="pass"/><test-case name="13924NISTXML-SV-IV-list-positiveInteger-minLength-5-5 tokoe:valid" result="pass"/><test-case name="13925NISTSchema-SV-IV-list-positiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="13926NISTXML-SV-IV-list-positiveInteger-length-1-1 tokoe:valid" result="pass"/><test-case name="13927NISTXML-SV-IV-list-positiveInteger-length-1-2 tokoe:valid" result="pass"/><test-case name="13928NISTXML-SV-IV-list-positiveInteger-length-1-3 tokoe:valid" result="pass"/><test-case name="13929NISTXML-SV-IV-list-positiveInteger-length-1-4 tokoe:valid" result="pass"/><test-case name="13930NISTXML-SV-IV-list-positiveInteger-length-1-5 tokoe:valid" result="pass"/><test-case name="13931NISTSchema-SV-IV-list-positiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="13932NISTXML-SV-IV-list-positiveInteger-length-2-1 tokoe:valid" result="pass"/><test-case name="13933NISTXML-SV-IV-list-positiveInteger-length-2-2 tokoe:valid" result="pass"/><test-case name="13934NISTXML-SV-IV-list-positiveInteger-length-2-3 tokoe:valid" result="pass"/><test-case name="13935NISTXML-SV-IV-list-positiveInteger-length-2-4 tokoe:valid" result="pass"/><test-case name="13936NISTXML-SV-IV-list-positiveInteger-length-2-5 tokoe:valid" result="pass"/><test-case name="13937NISTSchema-SV-IV-list-positiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="13938NISTXML-SV-IV-list-positiveInteger-length-3-1 tokoe:valid" result="pass"/><test-case name="13939NISTXML-SV-IV-list-positiveInteger-length-3-2 tokoe:valid" result="pass"/><test-case name="13940NISTXML-SV-IV-list-positiveInteger-length-3-3 tokoe:valid" result="pass"/><test-case name="13941NISTXML-SV-IV-list-positiveInteger-length-3-4 tokoe:valid" result="pass"/><test-case name="13942NISTXML-SV-IV-list-positiveInteger-length-3-5 tokoe:valid" result="pass"/><test-case name="13943NISTSchema-SV-IV-list-positiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="13944NISTXML-SV-IV-list-positiveInteger-length-4-1 tokoe:valid" result="pass"/><test-case name="13945NISTXML-SV-IV-list-positiveInteger-length-4-2 tokoe:valid" result="pass"/><test-case name="13946NISTXML-SV-IV-list-positiveInteger-length-4-3 tokoe:valid" result="pass"/><test-case name="13947NISTXML-SV-IV-list-positiveInteger-length-4-4 tokoe:valid" result="pass"/><test-case name="13948NISTXML-SV-IV-list-positiveInteger-length-4-5 tokoe:valid" result="pass"/><test-case name="13949NISTSchema-SV-IV-list-positiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="13950NISTXML-SV-IV-list-positiveInteger-length-5-1 tokoe:valid" result="pass"/><test-case name="13951NISTXML-SV-IV-list-positiveInteger-length-5-2 tokoe:valid" result="pass"/><test-case name="13952NISTXML-SV-IV-list-positiveInteger-length-5-3 tokoe:valid" result="pass"/><test-case name="13953NISTXML-SV-IV-list-positiveInteger-length-5-4 tokoe:valid" result="pass"/><test-case name="13954NISTXML-SV-IV-list-positiveInteger-length-5-5 tokoe:valid" result="pass"/><test-case name="13955NISTSchema-SV-IV-list-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="13956NISTXML-SV-IV-list-positiveInteger-pattern-1-1 tokoe:valid" result="pass"/><test-case name="13957NISTXML-SV-IV-list-positiveInteger-pattern-1-2 tokoe:valid" result="pass"/><test-case name="13958NISTXML-SV-IV-list-positiveInteger-pattern-1-3 tokoe:valid" result="pass"/><test-case name="13959NISTXML-SV-IV-list-positiveInteger-pattern-1-4 tokoe:valid" result="pass"/><test-case name="13960NISTXML-SV-IV-list-positiveInteger-pattern-1-5 tokoe:valid" result="pass"/><test-case name="13961NISTSchema-SV-IV-list-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="13962NISTXML-SV-IV-list-positiveInteger-pattern-2-1 tokoe:valid" result="pass"/><test-case name="13963NISTXML-SV-IV-list-positiveInteger-pattern-2-2 tokoe:valid" result="pass"/><test-case name="13964NISTXML-SV-IV-list-positiveInteger-pattern-2-3 tokoe:valid" result="pass"/><test-case name="13965NISTXML-SV-IV-list-positiveInteger-pattern-2-4 tokoe:valid" result="pass"/><test-case name="13966NISTXML-SV-IV-list-positiveInteger-pattern-2-5 tokoe:valid" result="pass"/><test-case name="13967NISTSchema-SV-IV-list-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="13968NISTXML-SV-IV-list-positiveInteger-pattern-3-1 tokoe:valid" result="pass"/><test-case name="13969NISTXML-SV-IV-list-positiveInteger-pattern-3-2 tokoe:valid" result="pass"/><test-case name="13970NISTXML-SV-IV-list-positiveInteger-pattern-3-3 tokoe:valid" result="pass"/><test-case name="13971NISTXML-SV-IV-list-positiveInteger-pattern-3-4 tokoe:valid" result="pass"/><test-case name="13972NISTXML-SV-IV-list-positiveInteger-pattern-3-5 tokoe:valid" result="pass"/><test-case name="13973NISTSchema-SV-IV-list-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="13974NISTXML-SV-IV-list-positiveInteger-pattern-4-1 tokoe:valid" result="pass"/><test-case name="13975NISTXML-SV-IV-list-positiveInteger-pattern-4-2 tokoe:valid" result="pass"/><test-case name="13976NISTXML-SV-IV-list-positiveInteger-pattern-4-3 tokoe:valid" result="pass"/><test-case name="13977NISTXML-SV-IV-list-positiveInteger-pattern-4-4 tokoe:valid" result="pass"/><test-case name="13978NISTXML-SV-IV-list-positiveInteger-pattern-4-5 tokoe:valid" result="pass"/><test-case name="13979NISTSchema-SV-IV-list-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="13980NISTXML-SV-IV-list-positiveInteger-pattern-5-1 tokoe:valid" result="pass"/><test-case name="13981NISTXML-SV-IV-list-positiveInteger-pattern-5-2 tokoe:valid" result="pass"/><test-case name="13982NISTXML-SV-IV-list-positiveInteger-pattern-5-3 tokoe:valid" result="pass"/><test-case name="13983NISTXML-SV-IV-list-positiveInteger-pattern-5-4 tokoe:valid" result="pass"/><test-case name="13984NISTXML-SV-IV-list-positiveInteger-pattern-5-5 tokoe:valid" result="pass"/><test-case name="13985NISTSchema-SV-IV-list-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="13986NISTXML-SV-IV-list-positiveInteger-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="13987NISTXML-SV-IV-list-positiveInteger-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="13988NISTXML-SV-IV-list-positiveInteger-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="13989NISTXML-SV-IV-list-positiveInteger-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="13990NISTXML-SV-IV-list-positiveInteger-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="13991NISTSchema-SV-IV-list-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="13992NISTXML-SV-IV-list-positiveInteger-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="13993NISTXML-SV-IV-list-positiveInteger-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="13994NISTXML-SV-IV-list-positiveInteger-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="13995NISTXML-SV-IV-list-positiveInteger-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="13996NISTXML-SV-IV-list-positiveInteger-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="13997NISTSchema-SV-IV-list-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="13998NISTXML-SV-IV-list-positiveInteger-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="13999NISTXML-SV-IV-list-positiveInteger-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14000NISTXML-SV-IV-list-positiveInteger-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14001NISTXML-SV-IV-list-positiveInteger-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14002NISTXML-SV-IV-list-positiveInteger-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14003NISTSchema-SV-IV-list-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="14004NISTXML-SV-IV-list-positiveInteger-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14005NISTXML-SV-IV-list-positiveInteger-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14006NISTXML-SV-IV-list-positiveInteger-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14007NISTXML-SV-IV-list-positiveInteger-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14008NISTXML-SV-IV-list-positiveInteger-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14009NISTSchema-SV-IV-list-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="14010NISTXML-SV-IV-list-positiveInteger-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14011NISTXML-SV-IV-list-positiveInteger-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14012NISTXML-SV-IV-list-positiveInteger-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14013NISTXML-SV-IV-list-positiveInteger-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14014NISTXML-SV-IV-list-positiveInteger-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14015NISTSchema-SV-IV-list-positiveInteger-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14016NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14017NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14018NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14019NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14020NISTXML-SV-IV-list-positiveInteger-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14021NISTSchema-SV-IV-list-double-maxLength-1 tokoe:valid" result="pass"/><test-case name="14022NISTXML-SV-IV-list-double-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14023NISTXML-SV-IV-list-double-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14024NISTXML-SV-IV-list-double-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14025NISTXML-SV-IV-list-double-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14026NISTXML-SV-IV-list-double-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14027NISTSchema-SV-IV-list-double-maxLength-2 tokoe:valid" result="pass"/><test-case name="14028NISTXML-SV-IV-list-double-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14029NISTXML-SV-IV-list-double-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14030NISTXML-SV-IV-list-double-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14031NISTXML-SV-IV-list-double-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14032NISTXML-SV-IV-list-double-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14033NISTSchema-SV-IV-list-double-maxLength-3 tokoe:valid" result="pass"/><test-case name="14034NISTXML-SV-IV-list-double-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14035NISTXML-SV-IV-list-double-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14036NISTXML-SV-IV-list-double-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14037NISTXML-SV-IV-list-double-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14038NISTXML-SV-IV-list-double-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14039NISTSchema-SV-IV-list-double-maxLength-4 tokoe:valid" result="pass"/><test-case name="14040NISTXML-SV-IV-list-double-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14041NISTXML-SV-IV-list-double-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14042NISTXML-SV-IV-list-double-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14043NISTXML-SV-IV-list-double-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14044NISTXML-SV-IV-list-double-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14045NISTSchema-SV-IV-list-double-maxLength-5 tokoe:valid" result="pass"/><test-case name="14046NISTXML-SV-IV-list-double-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14047NISTXML-SV-IV-list-double-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14048NISTXML-SV-IV-list-double-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14049NISTXML-SV-IV-list-double-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14050NISTXML-SV-IV-list-double-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14051NISTSchema-SV-IV-list-double-minLength-1 tokoe:valid" result="pass"/><test-case name="14052NISTXML-SV-IV-list-double-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14053NISTXML-SV-IV-list-double-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14054NISTXML-SV-IV-list-double-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14055NISTXML-SV-IV-list-double-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14056NISTXML-SV-IV-list-double-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14057NISTSchema-SV-IV-list-double-minLength-2 tokoe:valid" result="pass"/><test-case name="14058NISTXML-SV-IV-list-double-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14059NISTXML-SV-IV-list-double-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14060NISTXML-SV-IV-list-double-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14061NISTXML-SV-IV-list-double-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14062NISTXML-SV-IV-list-double-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14063NISTSchema-SV-IV-list-double-minLength-3 tokoe:valid" result="pass"/><test-case name="14064NISTXML-SV-IV-list-double-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14065NISTXML-SV-IV-list-double-minLength-3-2 tokoe:valid" result="fail"/><test-case name="14066NISTXML-SV-IV-list-double-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14067NISTXML-SV-IV-list-double-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14068NISTXML-SV-IV-list-double-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14069NISTSchema-SV-IV-list-double-minLength-4 tokoe:valid" result="pass"/><test-case name="14070NISTXML-SV-IV-list-double-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14071NISTXML-SV-IV-list-double-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14072NISTXML-SV-IV-list-double-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14073NISTXML-SV-IV-list-double-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14074NISTXML-SV-IV-list-double-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14075NISTSchema-SV-IV-list-double-minLength-5 tokoe:valid" result="pass"/><test-case name="14076NISTXML-SV-IV-list-double-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14077NISTXML-SV-IV-list-double-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14078NISTXML-SV-IV-list-double-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14079NISTXML-SV-IV-list-double-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14080NISTXML-SV-IV-list-double-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14081NISTSchema-SV-IV-list-double-length-1 tokoe:valid" result="pass"/><test-case name="14082NISTXML-SV-IV-list-double-length-1-1 tokoe:valid" result="pass"/><test-case name="14083NISTXML-SV-IV-list-double-length-1-2 tokoe:valid" result="pass"/><test-case name="14084NISTXML-SV-IV-list-double-length-1-3 tokoe:valid" result="pass"/><test-case name="14085NISTXML-SV-IV-list-double-length-1-4 tokoe:valid" result="pass"/><test-case name="14086NISTXML-SV-IV-list-double-length-1-5 tokoe:valid" result="pass"/><test-case name="14087NISTSchema-SV-IV-list-double-length-2 tokoe:valid" result="pass"/><test-case name="14088NISTXML-SV-IV-list-double-length-2-1 tokoe:valid" result="pass"/><test-case name="14089NISTXML-SV-IV-list-double-length-2-2 tokoe:valid" result="pass"/><test-case name="14090NISTXML-SV-IV-list-double-length-2-3 tokoe:valid" result="pass"/><test-case name="14091NISTXML-SV-IV-list-double-length-2-4 tokoe:valid" result="pass"/><test-case name="14092NISTXML-SV-IV-list-double-length-2-5 tokoe:valid" result="pass"/><test-case name="14093NISTSchema-SV-IV-list-double-length-3 tokoe:valid" result="pass"/><test-case name="14094NISTXML-SV-IV-list-double-length-3-1 tokoe:valid" result="pass"/><test-case name="14095NISTXML-SV-IV-list-double-length-3-2 tokoe:valid" result="pass"/><test-case name="14096NISTXML-SV-IV-list-double-length-3-3 tokoe:valid" result="pass"/><test-case name="14097NISTXML-SV-IV-list-double-length-3-4 tokoe:valid" result="pass"/><test-case name="14098NISTXML-SV-IV-list-double-length-3-5 tokoe:valid" result="pass"/><test-case name="14099NISTSchema-SV-IV-list-double-length-4 tokoe:valid" result="pass"/><test-case name="14100NISTXML-SV-IV-list-double-length-4-1 tokoe:valid" result="pass"/><test-case name="14101NISTXML-SV-IV-list-double-length-4-2 tokoe:valid" result="pass"/><test-case name="14102NISTXML-SV-IV-list-double-length-4-3 tokoe:valid" result="pass"/><test-case name="14103NISTXML-SV-IV-list-double-length-4-4 tokoe:valid" result="pass"/><test-case name="14104NISTXML-SV-IV-list-double-length-4-5 tokoe:valid" result="pass"/><test-case name="14105NISTSchema-SV-IV-list-double-length-5 tokoe:valid" result="pass"/><test-case name="14106NISTXML-SV-IV-list-double-length-5-1 tokoe:valid" result="pass"/><test-case name="14107NISTXML-SV-IV-list-double-length-5-2 tokoe:valid" result="pass"/><test-case name="14108NISTXML-SV-IV-list-double-length-5-3 tokoe:valid" result="pass"/><test-case name="14109NISTXML-SV-IV-list-double-length-5-4 tokoe:valid" result="pass"/><test-case name="14110NISTXML-SV-IV-list-double-length-5-5 tokoe:valid" result="pass"/><test-case name="14111NISTSchema-SV-IV-list-double-pattern-1 tokoe:valid" result="pass"/><test-case name="14112NISTXML-SV-IV-list-double-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14113NISTXML-SV-IV-list-double-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14114NISTXML-SV-IV-list-double-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14115NISTXML-SV-IV-list-double-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14116NISTXML-SV-IV-list-double-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14117NISTSchema-SV-IV-list-double-pattern-2 tokoe:valid" result="pass"/><test-case name="14118NISTXML-SV-IV-list-double-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14119NISTXML-SV-IV-list-double-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14120NISTXML-SV-IV-list-double-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14121NISTXML-SV-IV-list-double-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14122NISTXML-SV-IV-list-double-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14123NISTSchema-SV-IV-list-double-pattern-3 tokoe:valid" result="pass"/><test-case name="14124NISTXML-SV-IV-list-double-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14125NISTXML-SV-IV-list-double-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14126NISTXML-SV-IV-list-double-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14127NISTXML-SV-IV-list-double-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14128NISTXML-SV-IV-list-double-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14129NISTSchema-SV-IV-list-double-pattern-4 tokoe:valid" result="pass"/><test-case name="14130NISTXML-SV-IV-list-double-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14131NISTXML-SV-IV-list-double-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14132NISTXML-SV-IV-list-double-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14133NISTXML-SV-IV-list-double-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14134NISTXML-SV-IV-list-double-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14135NISTSchema-SV-IV-list-double-pattern-5 tokoe:valid" result="pass"/><test-case name="14136NISTXML-SV-IV-list-double-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14137NISTXML-SV-IV-list-double-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14138NISTXML-SV-IV-list-double-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14139NISTXML-SV-IV-list-double-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14140NISTXML-SV-IV-list-double-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14141NISTSchema-SV-IV-list-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="14142NISTXML-SV-IV-list-double-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14143NISTXML-SV-IV-list-double-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14144NISTXML-SV-IV-list-double-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14145NISTXML-SV-IV-list-double-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14146NISTXML-SV-IV-list-double-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14147NISTSchema-SV-IV-list-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="14148NISTXML-SV-IV-list-double-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14149NISTXML-SV-IV-list-double-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14150NISTXML-SV-IV-list-double-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14151NISTXML-SV-IV-list-double-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14152NISTXML-SV-IV-list-double-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14153NISTSchema-SV-IV-list-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="14154NISTXML-SV-IV-list-double-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14155NISTXML-SV-IV-list-double-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14156NISTXML-SV-IV-list-double-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14157NISTXML-SV-IV-list-double-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14158NISTXML-SV-IV-list-double-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14159NISTSchema-SV-IV-list-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="14160NISTXML-SV-IV-list-double-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14161NISTXML-SV-IV-list-double-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14162NISTXML-SV-IV-list-double-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14163NISTXML-SV-IV-list-double-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14164NISTXML-SV-IV-list-double-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14165NISTSchema-SV-IV-list-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="14166NISTXML-SV-IV-list-double-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14167NISTXML-SV-IV-list-double-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14168NISTXML-SV-IV-list-double-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14169NISTXML-SV-IV-list-double-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14170NISTXML-SV-IV-list-double-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14171NISTSchema-SV-IV-list-double-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14172NISTXML-SV-IV-list-double-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14173NISTXML-SV-IV-list-double-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14174NISTXML-SV-IV-list-double-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14175NISTXML-SV-IV-list-double-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14176NISTXML-SV-IV-list-double-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14177NISTSchema-SV-IV-list-float-maxLength-1 tokoe:valid" result="pass"/><test-case name="14178NISTXML-SV-IV-list-float-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14179NISTXML-SV-IV-list-float-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14180NISTXML-SV-IV-list-float-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14181NISTXML-SV-IV-list-float-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14182NISTXML-SV-IV-list-float-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14183NISTSchema-SV-IV-list-float-maxLength-2 tokoe:valid" result="pass"/><test-case name="14184NISTXML-SV-IV-list-float-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14185NISTXML-SV-IV-list-float-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14186NISTXML-SV-IV-list-float-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14187NISTXML-SV-IV-list-float-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14188NISTXML-SV-IV-list-float-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14189NISTSchema-SV-IV-list-float-maxLength-3 tokoe:valid" result="pass"/><test-case name="14190NISTXML-SV-IV-list-float-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14191NISTXML-SV-IV-list-float-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14192NISTXML-SV-IV-list-float-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14193NISTXML-SV-IV-list-float-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14194NISTXML-SV-IV-list-float-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14195NISTSchema-SV-IV-list-float-maxLength-4 tokoe:valid" result="pass"/><test-case name="14196NISTXML-SV-IV-list-float-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14197NISTXML-SV-IV-list-float-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14198NISTXML-SV-IV-list-float-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14199NISTXML-SV-IV-list-float-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14200NISTXML-SV-IV-list-float-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14201NISTSchema-SV-IV-list-float-maxLength-5 tokoe:valid" result="pass"/><test-case name="14202NISTXML-SV-IV-list-float-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14203NISTXML-SV-IV-list-float-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14204NISTXML-SV-IV-list-float-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14205NISTXML-SV-IV-list-float-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14206NISTXML-SV-IV-list-float-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14207NISTSchema-SV-IV-list-float-minLength-1 tokoe:valid" result="pass"/><test-case name="14208NISTXML-SV-IV-list-float-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14209NISTXML-SV-IV-list-float-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14210NISTXML-SV-IV-list-float-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14211NISTXML-SV-IV-list-float-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14212NISTXML-SV-IV-list-float-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14213NISTSchema-SV-IV-list-float-minLength-2 tokoe:valid" result="pass"/><test-case name="14214NISTXML-SV-IV-list-float-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14215NISTXML-SV-IV-list-float-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14216NISTXML-SV-IV-list-float-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14217NISTXML-SV-IV-list-float-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14218NISTXML-SV-IV-list-float-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14219NISTSchema-SV-IV-list-float-minLength-3 tokoe:valid" result="pass"/><test-case name="14220NISTXML-SV-IV-list-float-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14221NISTXML-SV-IV-list-float-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14222NISTXML-SV-IV-list-float-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14223NISTXML-SV-IV-list-float-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14224NISTXML-SV-IV-list-float-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14225NISTSchema-SV-IV-list-float-minLength-4 tokoe:valid" result="pass"/><test-case name="14226NISTXML-SV-IV-list-float-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14227NISTXML-SV-IV-list-float-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14228NISTXML-SV-IV-list-float-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14229NISTXML-SV-IV-list-float-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14230NISTXML-SV-IV-list-float-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14231NISTSchema-SV-IV-list-float-minLength-5 tokoe:valid" result="pass"/><test-case name="14232NISTXML-SV-IV-list-float-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14233NISTXML-SV-IV-list-float-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14234NISTXML-SV-IV-list-float-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14235NISTXML-SV-IV-list-float-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14236NISTXML-SV-IV-list-float-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14237NISTSchema-SV-IV-list-float-length-1 tokoe:valid" result="pass"/><test-case name="14238NISTXML-SV-IV-list-float-length-1-1 tokoe:valid" result="pass"/><test-case name="14239NISTXML-SV-IV-list-float-length-1-2 tokoe:valid" result="pass"/><test-case name="14240NISTXML-SV-IV-list-float-length-1-3 tokoe:valid" result="pass"/><test-case name="14241NISTXML-SV-IV-list-float-length-1-4 tokoe:valid" result="pass"/><test-case name="14242NISTXML-SV-IV-list-float-length-1-5 tokoe:valid" result="pass"/><test-case name="14243NISTSchema-SV-IV-list-float-length-2 tokoe:valid" result="pass"/><test-case name="14244NISTXML-SV-IV-list-float-length-2-1 tokoe:valid" result="pass"/><test-case name="14245NISTXML-SV-IV-list-float-length-2-2 tokoe:valid" result="pass"/><test-case name="14246NISTXML-SV-IV-list-float-length-2-3 tokoe:valid" result="pass"/><test-case name="14247NISTXML-SV-IV-list-float-length-2-4 tokoe:valid" result="pass"/><test-case name="14248NISTXML-SV-IV-list-float-length-2-5 tokoe:valid" result="pass"/><test-case name="14249NISTSchema-SV-IV-list-float-length-3 tokoe:valid" result="pass"/><test-case name="14250NISTXML-SV-IV-list-float-length-3-1 tokoe:valid" result="pass"/><test-case name="14251NISTXML-SV-IV-list-float-length-3-2 tokoe:valid" result="pass"/><test-case name="14252NISTXML-SV-IV-list-float-length-3-3 tokoe:valid" result="pass"/><test-case name="14253NISTXML-SV-IV-list-float-length-3-4 tokoe:valid" result="pass"/><test-case name="14254NISTXML-SV-IV-list-float-length-3-5 tokoe:valid" result="pass"/><test-case name="14255NISTSchema-SV-IV-list-float-length-4 tokoe:valid" result="pass"/><test-case name="14256NISTXML-SV-IV-list-float-length-4-1 tokoe:valid" result="pass"/><test-case name="14257NISTXML-SV-IV-list-float-length-4-2 tokoe:valid" result="pass"/><test-case name="14258NISTXML-SV-IV-list-float-length-4-3 tokoe:valid" result="pass"/><test-case name="14259NISTXML-SV-IV-list-float-length-4-4 tokoe:valid" result="pass"/><test-case name="14260NISTXML-SV-IV-list-float-length-4-5 tokoe:valid" result="pass"/><test-case name="14261NISTSchema-SV-IV-list-float-length-5 tokoe:valid" result="pass"/><test-case name="14262NISTXML-SV-IV-list-float-length-5-1 tokoe:valid" result="pass"/><test-case name="14263NISTXML-SV-IV-list-float-length-5-2 tokoe:valid" result="pass"/><test-case name="14264NISTXML-SV-IV-list-float-length-5-3 tokoe:valid" result="pass"/><test-case name="14265NISTXML-SV-IV-list-float-length-5-4 tokoe:valid" result="pass"/><test-case name="14266NISTXML-SV-IV-list-float-length-5-5 tokoe:valid" result="pass"/><test-case name="14267NISTSchema-SV-IV-list-float-pattern-1 tokoe:valid" result="pass"/><test-case name="14268NISTXML-SV-IV-list-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14269NISTXML-SV-IV-list-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14270NISTXML-SV-IV-list-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14271NISTXML-SV-IV-list-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14272NISTXML-SV-IV-list-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14273NISTSchema-SV-IV-list-float-pattern-2 tokoe:valid" result="pass"/><test-case name="14274NISTXML-SV-IV-list-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14275NISTXML-SV-IV-list-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14276NISTXML-SV-IV-list-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14277NISTXML-SV-IV-list-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14278NISTXML-SV-IV-list-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14279NISTSchema-SV-IV-list-float-pattern-3 tokoe:valid" result="pass"/><test-case name="14280NISTXML-SV-IV-list-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14281NISTXML-SV-IV-list-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14282NISTXML-SV-IV-list-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14283NISTXML-SV-IV-list-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14284NISTXML-SV-IV-list-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14285NISTSchema-SV-IV-list-float-pattern-4 tokoe:valid" result="pass"/><test-case name="14286NISTXML-SV-IV-list-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14287NISTXML-SV-IV-list-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14288NISTXML-SV-IV-list-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14289NISTXML-SV-IV-list-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14290NISTXML-SV-IV-list-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14291NISTSchema-SV-IV-list-float-pattern-5 tokoe:valid" result="pass"/><test-case name="14292NISTXML-SV-IV-list-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14293NISTXML-SV-IV-list-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14294NISTXML-SV-IV-list-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14295NISTXML-SV-IV-list-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14296NISTXML-SV-IV-list-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14297NISTSchema-SV-IV-list-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="14298NISTXML-SV-IV-list-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14299NISTXML-SV-IV-list-float-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14300NISTXML-SV-IV-list-float-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14301NISTXML-SV-IV-list-float-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14302NISTXML-SV-IV-list-float-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14303NISTSchema-SV-IV-list-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="14304NISTXML-SV-IV-list-float-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14305NISTXML-SV-IV-list-float-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14306NISTXML-SV-IV-list-float-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14307NISTXML-SV-IV-list-float-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14308NISTXML-SV-IV-list-float-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14309NISTSchema-SV-IV-list-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="14310NISTXML-SV-IV-list-float-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14311NISTXML-SV-IV-list-float-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14312NISTXML-SV-IV-list-float-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14313NISTXML-SV-IV-list-float-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14314NISTXML-SV-IV-list-float-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14315NISTSchema-SV-IV-list-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="14316NISTXML-SV-IV-list-float-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14317NISTXML-SV-IV-list-float-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14318NISTXML-SV-IV-list-float-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14319NISTXML-SV-IV-list-float-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14320NISTXML-SV-IV-list-float-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14321NISTSchema-SV-IV-list-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="14322NISTXML-SV-IV-list-float-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14323NISTXML-SV-IV-list-float-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14324NISTXML-SV-IV-list-float-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14325NISTXML-SV-IV-list-float-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14326NISTXML-SV-IV-list-float-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14327NISTSchema-SV-IV-list-float-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14328NISTXML-SV-IV-list-float-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14329NISTXML-SV-IV-list-float-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14330NISTXML-SV-IV-list-float-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14331NISTXML-SV-IV-list-float-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14332NISTXML-SV-IV-list-float-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14333NISTSchema-SV-IV-list-duration-maxLength-1 tokoe:valid" result="pass"/><test-case name="14334NISTXML-SV-IV-list-duration-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14335NISTXML-SV-IV-list-duration-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14336NISTXML-SV-IV-list-duration-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14337NISTXML-SV-IV-list-duration-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14338NISTXML-SV-IV-list-duration-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14339NISTSchema-SV-IV-list-duration-maxLength-2 tokoe:valid" result="pass"/><test-case name="14340NISTXML-SV-IV-list-duration-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14341NISTXML-SV-IV-list-duration-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14342NISTXML-SV-IV-list-duration-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14343NISTXML-SV-IV-list-duration-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14344NISTXML-SV-IV-list-duration-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14345NISTSchema-SV-IV-list-duration-maxLength-3 tokoe:valid" result="pass"/><test-case name="14346NISTXML-SV-IV-list-duration-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14347NISTXML-SV-IV-list-duration-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14348NISTXML-SV-IV-list-duration-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14349NISTXML-SV-IV-list-duration-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14350NISTXML-SV-IV-list-duration-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14351NISTSchema-SV-IV-list-duration-maxLength-4 tokoe:valid" result="pass"/><test-case name="14352NISTXML-SV-IV-list-duration-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14353NISTXML-SV-IV-list-duration-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14354NISTXML-SV-IV-list-duration-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14355NISTXML-SV-IV-list-duration-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14356NISTXML-SV-IV-list-duration-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14357NISTSchema-SV-IV-list-duration-maxLength-5 tokoe:valid" result="pass"/><test-case name="14358NISTXML-SV-IV-list-duration-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14359NISTXML-SV-IV-list-duration-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14360NISTXML-SV-IV-list-duration-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14361NISTXML-SV-IV-list-duration-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14362NISTXML-SV-IV-list-duration-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14363NISTSchema-SV-IV-list-duration-minLength-1 tokoe:valid" result="pass"/><test-case name="14364NISTXML-SV-IV-list-duration-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14365NISTXML-SV-IV-list-duration-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14366NISTXML-SV-IV-list-duration-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14367NISTXML-SV-IV-list-duration-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14368NISTXML-SV-IV-list-duration-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14369NISTSchema-SV-IV-list-duration-minLength-2 tokoe:valid" result="pass"/><test-case name="14370NISTXML-SV-IV-list-duration-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14371NISTXML-SV-IV-list-duration-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14372NISTXML-SV-IV-list-duration-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14373NISTXML-SV-IV-list-duration-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14374NISTXML-SV-IV-list-duration-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14375NISTSchema-SV-IV-list-duration-minLength-3 tokoe:valid" result="pass"/><test-case name="14376NISTXML-SV-IV-list-duration-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14377NISTXML-SV-IV-list-duration-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14378NISTXML-SV-IV-list-duration-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14379NISTXML-SV-IV-list-duration-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14380NISTXML-SV-IV-list-duration-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14381NISTSchema-SV-IV-list-duration-minLength-4 tokoe:valid" result="pass"/><test-case name="14382NISTXML-SV-IV-list-duration-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14383NISTXML-SV-IV-list-duration-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14384NISTXML-SV-IV-list-duration-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14385NISTXML-SV-IV-list-duration-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14386NISTXML-SV-IV-list-duration-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14387NISTSchema-SV-IV-list-duration-minLength-5 tokoe:valid" result="pass"/><test-case name="14388NISTXML-SV-IV-list-duration-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14389NISTXML-SV-IV-list-duration-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14390NISTXML-SV-IV-list-duration-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14391NISTXML-SV-IV-list-duration-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14392NISTXML-SV-IV-list-duration-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14393NISTSchema-SV-IV-list-duration-length-1 tokoe:valid" result="pass"/><test-case name="14394NISTXML-SV-IV-list-duration-length-1-1 tokoe:valid" result="pass"/><test-case name="14395NISTXML-SV-IV-list-duration-length-1-2 tokoe:valid" result="pass"/><test-case name="14396NISTXML-SV-IV-list-duration-length-1-3 tokoe:valid" result="pass"/><test-case name="14397NISTXML-SV-IV-list-duration-length-1-4 tokoe:valid" result="pass"/><test-case name="14398NISTXML-SV-IV-list-duration-length-1-5 tokoe:valid" result="pass"/><test-case name="14399NISTSchema-SV-IV-list-duration-length-2 tokoe:valid" result="pass"/><test-case name="14400NISTXML-SV-IV-list-duration-length-2-1 tokoe:valid" result="pass"/><test-case name="14401NISTXML-SV-IV-list-duration-length-2-2 tokoe:valid" result="pass"/><test-case name="14402NISTXML-SV-IV-list-duration-length-2-3 tokoe:valid" result="pass"/><test-case name="14403NISTXML-SV-IV-list-duration-length-2-4 tokoe:valid" result="pass"/><test-case name="14404NISTXML-SV-IV-list-duration-length-2-5 tokoe:valid" result="pass"/><test-case name="14405NISTSchema-SV-IV-list-duration-length-3 tokoe:valid" result="pass"/><test-case name="14406NISTXML-SV-IV-list-duration-length-3-1 tokoe:valid" result="pass"/><test-case name="14407NISTXML-SV-IV-list-duration-length-3-2 tokoe:valid" result="pass"/><test-case name="14408NISTXML-SV-IV-list-duration-length-3-3 tokoe:valid" result="pass"/><test-case name="14409NISTXML-SV-IV-list-duration-length-3-4 tokoe:valid" result="pass"/><test-case name="14410NISTXML-SV-IV-list-duration-length-3-5 tokoe:valid" result="pass"/><test-case name="14411NISTSchema-SV-IV-list-duration-length-4 tokoe:valid" result="pass"/><test-case name="14412NISTXML-SV-IV-list-duration-length-4-1 tokoe:valid" result="pass"/><test-case name="14413NISTXML-SV-IV-list-duration-length-4-2 tokoe:valid" result="pass"/><test-case name="14414NISTXML-SV-IV-list-duration-length-4-3 tokoe:valid" result="pass"/><test-case name="14415NISTXML-SV-IV-list-duration-length-4-4 tokoe:valid" result="pass"/><test-case name="14416NISTXML-SV-IV-list-duration-length-4-5 tokoe:valid" result="pass"/><test-case name="14417NISTSchema-SV-IV-list-duration-length-5 tokoe:valid" result="pass"/><test-case name="14418NISTXML-SV-IV-list-duration-length-5-1 tokoe:valid" result="pass"/><test-case name="14419NISTXML-SV-IV-list-duration-length-5-2 tokoe:valid" result="pass"/><test-case name="14420NISTXML-SV-IV-list-duration-length-5-3 tokoe:valid" result="pass"/><test-case name="14421NISTXML-SV-IV-list-duration-length-5-4 tokoe:valid" result="pass"/><test-case name="14422NISTXML-SV-IV-list-duration-length-5-5 tokoe:valid" result="pass"/><test-case name="14423NISTSchema-SV-IV-list-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="14424NISTXML-SV-IV-list-duration-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14425NISTXML-SV-IV-list-duration-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14426NISTXML-SV-IV-list-duration-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14427NISTXML-SV-IV-list-duration-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14428NISTXML-SV-IV-list-duration-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14429NISTSchema-SV-IV-list-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="14430NISTXML-SV-IV-list-duration-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14431NISTXML-SV-IV-list-duration-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14432NISTXML-SV-IV-list-duration-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14433NISTXML-SV-IV-list-duration-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14434NISTXML-SV-IV-list-duration-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14435NISTSchema-SV-IV-list-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="14436NISTXML-SV-IV-list-duration-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14437NISTXML-SV-IV-list-duration-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14438NISTXML-SV-IV-list-duration-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14439NISTXML-SV-IV-list-duration-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14440NISTXML-SV-IV-list-duration-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14441NISTSchema-SV-IV-list-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="14442NISTXML-SV-IV-list-duration-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14443NISTXML-SV-IV-list-duration-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14444NISTXML-SV-IV-list-duration-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14445NISTXML-SV-IV-list-duration-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14446NISTXML-SV-IV-list-duration-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14447NISTSchema-SV-IV-list-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="14448NISTXML-SV-IV-list-duration-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14449NISTXML-SV-IV-list-duration-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14450NISTXML-SV-IV-list-duration-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14451NISTXML-SV-IV-list-duration-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14452NISTXML-SV-IV-list-duration-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14453NISTSchema-SV-IV-list-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="14454NISTXML-SV-IV-list-duration-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14455NISTXML-SV-IV-list-duration-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14456NISTXML-SV-IV-list-duration-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14457NISTXML-SV-IV-list-duration-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14458NISTXML-SV-IV-list-duration-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14459NISTSchema-SV-IV-list-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="14460NISTXML-SV-IV-list-duration-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14461NISTXML-SV-IV-list-duration-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14462NISTXML-SV-IV-list-duration-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14463NISTXML-SV-IV-list-duration-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14464NISTXML-SV-IV-list-duration-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14465NISTSchema-SV-IV-list-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="14466NISTXML-SV-IV-list-duration-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14467NISTXML-SV-IV-list-duration-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14468NISTXML-SV-IV-list-duration-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14469NISTXML-SV-IV-list-duration-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14470NISTXML-SV-IV-list-duration-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14471NISTSchema-SV-IV-list-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="14472NISTXML-SV-IV-list-duration-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14473NISTXML-SV-IV-list-duration-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14474NISTXML-SV-IV-list-duration-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14475NISTXML-SV-IV-list-duration-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14476NISTXML-SV-IV-list-duration-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14477NISTSchema-SV-IV-list-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="14478NISTXML-SV-IV-list-duration-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14479NISTXML-SV-IV-list-duration-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14480NISTXML-SV-IV-list-duration-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14481NISTXML-SV-IV-list-duration-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14482NISTXML-SV-IV-list-duration-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14483NISTSchema-SV-IV-list-duration-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14484NISTXML-SV-IV-list-duration-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14485NISTXML-SV-IV-list-duration-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14486NISTXML-SV-IV-list-duration-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14487NISTXML-SV-IV-list-duration-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14488NISTXML-SV-IV-list-duration-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14489NISTSchema-SV-IV-list-dateTime-maxLength-1 tokoe:valid" result="pass"/><test-case name="14490NISTXML-SV-IV-list-dateTime-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14491NISTXML-SV-IV-list-dateTime-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14492NISTXML-SV-IV-list-dateTime-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14493NISTXML-SV-IV-list-dateTime-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14494NISTXML-SV-IV-list-dateTime-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14495NISTSchema-SV-IV-list-dateTime-maxLength-2 tokoe:valid" result="pass"/><test-case name="14496NISTXML-SV-IV-list-dateTime-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14497NISTXML-SV-IV-list-dateTime-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14498NISTXML-SV-IV-list-dateTime-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14499NISTXML-SV-IV-list-dateTime-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14500NISTXML-SV-IV-list-dateTime-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14501NISTSchema-SV-IV-list-dateTime-maxLength-3 tokoe:valid" result="pass"/><test-case name="14502NISTXML-SV-IV-list-dateTime-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14503NISTXML-SV-IV-list-dateTime-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14504NISTXML-SV-IV-list-dateTime-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14505NISTXML-SV-IV-list-dateTime-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14506NISTXML-SV-IV-list-dateTime-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14507NISTSchema-SV-IV-list-dateTime-maxLength-4 tokoe:valid" result="pass"/><test-case name="14508NISTXML-SV-IV-list-dateTime-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14509NISTXML-SV-IV-list-dateTime-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14510NISTXML-SV-IV-list-dateTime-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14511NISTXML-SV-IV-list-dateTime-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14512NISTXML-SV-IV-list-dateTime-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14513NISTSchema-SV-IV-list-dateTime-maxLength-5 tokoe:valid" result="pass"/><test-case name="14514NISTXML-SV-IV-list-dateTime-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14515NISTXML-SV-IV-list-dateTime-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14516NISTXML-SV-IV-list-dateTime-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14517NISTXML-SV-IV-list-dateTime-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14518NISTXML-SV-IV-list-dateTime-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14519NISTSchema-SV-IV-list-dateTime-minLength-1 tokoe:valid" result="pass"/><test-case name="14520NISTXML-SV-IV-list-dateTime-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14521NISTXML-SV-IV-list-dateTime-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14522NISTXML-SV-IV-list-dateTime-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14523NISTXML-SV-IV-list-dateTime-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14524NISTXML-SV-IV-list-dateTime-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14525NISTSchema-SV-IV-list-dateTime-minLength-2 tokoe:valid" result="pass"/><test-case name="14526NISTXML-SV-IV-list-dateTime-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14527NISTXML-SV-IV-list-dateTime-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14528NISTXML-SV-IV-list-dateTime-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14529NISTXML-SV-IV-list-dateTime-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14530NISTXML-SV-IV-list-dateTime-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14531NISTSchema-SV-IV-list-dateTime-minLength-3 tokoe:valid" result="pass"/><test-case name="14532NISTXML-SV-IV-list-dateTime-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14533NISTXML-SV-IV-list-dateTime-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14534NISTXML-SV-IV-list-dateTime-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14535NISTXML-SV-IV-list-dateTime-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14536NISTXML-SV-IV-list-dateTime-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14537NISTSchema-SV-IV-list-dateTime-minLength-4 tokoe:valid" result="pass"/><test-case name="14538NISTXML-SV-IV-list-dateTime-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14539NISTXML-SV-IV-list-dateTime-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14540NISTXML-SV-IV-list-dateTime-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14541NISTXML-SV-IV-list-dateTime-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14542NISTXML-SV-IV-list-dateTime-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14543NISTSchema-SV-IV-list-dateTime-minLength-5 tokoe:valid" result="pass"/><test-case name="14544NISTXML-SV-IV-list-dateTime-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14545NISTXML-SV-IV-list-dateTime-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14546NISTXML-SV-IV-list-dateTime-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14547NISTXML-SV-IV-list-dateTime-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14548NISTXML-SV-IV-list-dateTime-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14549NISTSchema-SV-IV-list-dateTime-length-1 tokoe:valid" result="pass"/><test-case name="14550NISTXML-SV-IV-list-dateTime-length-1-1 tokoe:valid" result="pass"/><test-case name="14551NISTXML-SV-IV-list-dateTime-length-1-2 tokoe:valid" result="pass"/><test-case name="14552NISTXML-SV-IV-list-dateTime-length-1-3 tokoe:valid" result="pass"/><test-case name="14553NISTXML-SV-IV-list-dateTime-length-1-4 tokoe:valid" result="pass"/><test-case name="14554NISTXML-SV-IV-list-dateTime-length-1-5 tokoe:valid" result="pass"/><test-case name="14555NISTSchema-SV-IV-list-dateTime-length-2 tokoe:valid" result="pass"/><test-case name="14556NISTXML-SV-IV-list-dateTime-length-2-1 tokoe:valid" result="pass"/><test-case name="14557NISTXML-SV-IV-list-dateTime-length-2-2 tokoe:valid" result="pass"/><test-case name="14558NISTXML-SV-IV-list-dateTime-length-2-3 tokoe:valid" result="pass"/><test-case name="14559NISTXML-SV-IV-list-dateTime-length-2-4 tokoe:valid" result="pass"/><test-case name="14560NISTXML-SV-IV-list-dateTime-length-2-5 tokoe:valid" result="pass"/><test-case name="14561NISTSchema-SV-IV-list-dateTime-length-3 tokoe:valid" result="pass"/><test-case name="14562NISTXML-SV-IV-list-dateTime-length-3-1 tokoe:valid" result="pass"/><test-case name="14563NISTXML-SV-IV-list-dateTime-length-3-2 tokoe:valid" result="pass"/><test-case name="14564NISTXML-SV-IV-list-dateTime-length-3-3 tokoe:valid" result="pass"/><test-case name="14565NISTXML-SV-IV-list-dateTime-length-3-4 tokoe:valid" result="pass"/><test-case name="14566NISTXML-SV-IV-list-dateTime-length-3-5 tokoe:valid" result="pass"/><test-case name="14567NISTSchema-SV-IV-list-dateTime-length-4 tokoe:valid" result="pass"/><test-case name="14568NISTXML-SV-IV-list-dateTime-length-4-1 tokoe:valid" result="pass"/><test-case name="14569NISTXML-SV-IV-list-dateTime-length-4-2 tokoe:valid" result="pass"/><test-case name="14570NISTXML-SV-IV-list-dateTime-length-4-3 tokoe:valid" result="pass"/><test-case name="14571NISTXML-SV-IV-list-dateTime-length-4-4 tokoe:valid" result="pass"/><test-case name="14572NISTXML-SV-IV-list-dateTime-length-4-5 tokoe:valid" result="pass"/><test-case name="14573NISTSchema-SV-IV-list-dateTime-length-5 tokoe:valid" result="pass"/><test-case name="14574NISTXML-SV-IV-list-dateTime-length-5-1 tokoe:valid" result="pass"/><test-case name="14575NISTXML-SV-IV-list-dateTime-length-5-2 tokoe:valid" result="pass"/><test-case name="14576NISTXML-SV-IV-list-dateTime-length-5-3 tokoe:valid" result="pass"/><test-case name="14577NISTXML-SV-IV-list-dateTime-length-5-4 tokoe:valid" result="pass"/><test-case name="14578NISTXML-SV-IV-list-dateTime-length-5-5 tokoe:valid" result="pass"/><test-case name="14579NISTSchema-SV-IV-list-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="14580NISTXML-SV-IV-list-dateTime-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14581NISTXML-SV-IV-list-dateTime-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14582NISTXML-SV-IV-list-dateTime-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14583NISTXML-SV-IV-list-dateTime-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14584NISTXML-SV-IV-list-dateTime-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14585NISTSchema-SV-IV-list-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="14586NISTXML-SV-IV-list-dateTime-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14587NISTXML-SV-IV-list-dateTime-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14588NISTXML-SV-IV-list-dateTime-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14589NISTXML-SV-IV-list-dateTime-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14590NISTXML-SV-IV-list-dateTime-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14591NISTSchema-SV-IV-list-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="14592NISTXML-SV-IV-list-dateTime-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14593NISTXML-SV-IV-list-dateTime-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14594NISTXML-SV-IV-list-dateTime-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14595NISTXML-SV-IV-list-dateTime-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14596NISTXML-SV-IV-list-dateTime-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14597NISTSchema-SV-IV-list-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="14598NISTXML-SV-IV-list-dateTime-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14599NISTXML-SV-IV-list-dateTime-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14600NISTXML-SV-IV-list-dateTime-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14601NISTXML-SV-IV-list-dateTime-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14602NISTXML-SV-IV-list-dateTime-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14603NISTSchema-SV-IV-list-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="14604NISTXML-SV-IV-list-dateTime-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14605NISTXML-SV-IV-list-dateTime-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14606NISTXML-SV-IV-list-dateTime-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14607NISTXML-SV-IV-list-dateTime-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14608NISTXML-SV-IV-list-dateTime-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14609NISTSchema-SV-IV-list-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="14610NISTXML-SV-IV-list-dateTime-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14611NISTXML-SV-IV-list-dateTime-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14612NISTXML-SV-IV-list-dateTime-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14613NISTXML-SV-IV-list-dateTime-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14614NISTXML-SV-IV-list-dateTime-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14615NISTSchema-SV-IV-list-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="14616NISTXML-SV-IV-list-dateTime-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14617NISTXML-SV-IV-list-dateTime-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14618NISTXML-SV-IV-list-dateTime-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14619NISTXML-SV-IV-list-dateTime-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14620NISTXML-SV-IV-list-dateTime-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14621NISTSchema-SV-IV-list-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="14622NISTXML-SV-IV-list-dateTime-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14623NISTXML-SV-IV-list-dateTime-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14624NISTXML-SV-IV-list-dateTime-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14625NISTXML-SV-IV-list-dateTime-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14626NISTXML-SV-IV-list-dateTime-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14627NISTSchema-SV-IV-list-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="14628NISTXML-SV-IV-list-dateTime-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14629NISTXML-SV-IV-list-dateTime-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14630NISTXML-SV-IV-list-dateTime-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14631NISTXML-SV-IV-list-dateTime-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14632NISTXML-SV-IV-list-dateTime-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14633NISTSchema-SV-IV-list-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="14634NISTXML-SV-IV-list-dateTime-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14635NISTXML-SV-IV-list-dateTime-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14636NISTXML-SV-IV-list-dateTime-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14637NISTXML-SV-IV-list-dateTime-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14638NISTXML-SV-IV-list-dateTime-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14639NISTSchema-SV-IV-list-dateTime-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14640NISTXML-SV-IV-list-dateTime-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14641NISTXML-SV-IV-list-dateTime-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14642NISTXML-SV-IV-list-dateTime-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14643NISTXML-SV-IV-list-dateTime-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14644NISTXML-SV-IV-list-dateTime-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14645NISTSchema-SV-IV-list-time-maxLength-1 tokoe:valid" result="pass"/><test-case name="14646NISTXML-SV-IV-list-time-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14647NISTXML-SV-IV-list-time-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14648NISTXML-SV-IV-list-time-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14649NISTXML-SV-IV-list-time-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14650NISTXML-SV-IV-list-time-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14651NISTSchema-SV-IV-list-time-maxLength-2 tokoe:valid" result="pass"/><test-case name="14652NISTXML-SV-IV-list-time-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14653NISTXML-SV-IV-list-time-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14654NISTXML-SV-IV-list-time-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14655NISTXML-SV-IV-list-time-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14656NISTXML-SV-IV-list-time-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14657NISTSchema-SV-IV-list-time-maxLength-3 tokoe:valid" result="pass"/><test-case name="14658NISTXML-SV-IV-list-time-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14659NISTXML-SV-IV-list-time-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14660NISTXML-SV-IV-list-time-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14661NISTXML-SV-IV-list-time-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14662NISTXML-SV-IV-list-time-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14663NISTSchema-SV-IV-list-time-maxLength-4 tokoe:valid" result="pass"/><test-case name="14664NISTXML-SV-IV-list-time-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14665NISTXML-SV-IV-list-time-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14666NISTXML-SV-IV-list-time-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14667NISTXML-SV-IV-list-time-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14668NISTXML-SV-IV-list-time-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14669NISTSchema-SV-IV-list-time-maxLength-5 tokoe:valid" result="pass"/><test-case name="14670NISTXML-SV-IV-list-time-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14671NISTXML-SV-IV-list-time-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14672NISTXML-SV-IV-list-time-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14673NISTXML-SV-IV-list-time-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14674NISTXML-SV-IV-list-time-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14675NISTSchema-SV-IV-list-time-minLength-1 tokoe:valid" result="pass"/><test-case name="14676NISTXML-SV-IV-list-time-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14677NISTXML-SV-IV-list-time-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14678NISTXML-SV-IV-list-time-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14679NISTXML-SV-IV-list-time-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14680NISTXML-SV-IV-list-time-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14681NISTSchema-SV-IV-list-time-minLength-2 tokoe:valid" result="pass"/><test-case name="14682NISTXML-SV-IV-list-time-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14683NISTXML-SV-IV-list-time-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14684NISTXML-SV-IV-list-time-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14685NISTXML-SV-IV-list-time-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14686NISTXML-SV-IV-list-time-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14687NISTSchema-SV-IV-list-time-minLength-3 tokoe:valid" result="pass"/><test-case name="14688NISTXML-SV-IV-list-time-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14689NISTXML-SV-IV-list-time-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14690NISTXML-SV-IV-list-time-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14691NISTXML-SV-IV-list-time-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14692NISTXML-SV-IV-list-time-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14693NISTSchema-SV-IV-list-time-minLength-4 tokoe:valid" result="pass"/><test-case name="14694NISTXML-SV-IV-list-time-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14695NISTXML-SV-IV-list-time-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14696NISTXML-SV-IV-list-time-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14697NISTXML-SV-IV-list-time-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14698NISTXML-SV-IV-list-time-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14699NISTSchema-SV-IV-list-time-minLength-5 tokoe:valid" result="pass"/><test-case name="14700NISTXML-SV-IV-list-time-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14701NISTXML-SV-IV-list-time-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14702NISTXML-SV-IV-list-time-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14703NISTXML-SV-IV-list-time-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14704NISTXML-SV-IV-list-time-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14705NISTSchema-SV-IV-list-time-length-1 tokoe:valid" result="pass"/><test-case name="14706NISTXML-SV-IV-list-time-length-1-1 tokoe:valid" result="pass"/><test-case name="14707NISTXML-SV-IV-list-time-length-1-2 tokoe:valid" result="pass"/><test-case name="14708NISTXML-SV-IV-list-time-length-1-3 tokoe:valid" result="pass"/><test-case name="14709NISTXML-SV-IV-list-time-length-1-4 tokoe:valid" result="pass"/><test-case name="14710NISTXML-SV-IV-list-time-length-1-5 tokoe:valid" result="pass"/><test-case name="14711NISTSchema-SV-IV-list-time-length-2 tokoe:valid" result="pass"/><test-case name="14712NISTXML-SV-IV-list-time-length-2-1 tokoe:valid" result="pass"/><test-case name="14713NISTXML-SV-IV-list-time-length-2-2 tokoe:valid" result="pass"/><test-case name="14714NISTXML-SV-IV-list-time-length-2-3 tokoe:valid" result="pass"/><test-case name="14715NISTXML-SV-IV-list-time-length-2-4 tokoe:valid" result="pass"/><test-case name="14716NISTXML-SV-IV-list-time-length-2-5 tokoe:valid" result="pass"/><test-case name="14717NISTSchema-SV-IV-list-time-length-3 tokoe:valid" result="pass"/><test-case name="14718NISTXML-SV-IV-list-time-length-3-1 tokoe:valid" result="pass"/><test-case name="14719NISTXML-SV-IV-list-time-length-3-2 tokoe:valid" result="pass"/><test-case name="14720NISTXML-SV-IV-list-time-length-3-3 tokoe:valid" result="pass"/><test-case name="14721NISTXML-SV-IV-list-time-length-3-4 tokoe:valid" result="pass"/><test-case name="14722NISTXML-SV-IV-list-time-length-3-5 tokoe:valid" result="pass"/><test-case name="14723NISTSchema-SV-IV-list-time-length-4 tokoe:valid" result="pass"/><test-case name="14724NISTXML-SV-IV-list-time-length-4-1 tokoe:valid" result="pass"/><test-case name="14725NISTXML-SV-IV-list-time-length-4-2 tokoe:valid" result="pass"/><test-case name="14726NISTXML-SV-IV-list-time-length-4-3 tokoe:valid" result="pass"/><test-case name="14727NISTXML-SV-IV-list-time-length-4-4 tokoe:valid" result="pass"/><test-case name="14728NISTXML-SV-IV-list-time-length-4-5 tokoe:valid" result="pass"/><test-case name="14729NISTSchema-SV-IV-list-time-length-5 tokoe:valid" result="pass"/><test-case name="14730NISTXML-SV-IV-list-time-length-5-1 tokoe:valid" result="pass"/><test-case name="14731NISTXML-SV-IV-list-time-length-5-2 tokoe:valid" result="pass"/><test-case name="14732NISTXML-SV-IV-list-time-length-5-3 tokoe:valid" result="pass"/><test-case name="14733NISTXML-SV-IV-list-time-length-5-4 tokoe:valid" result="pass"/><test-case name="14734NISTXML-SV-IV-list-time-length-5-5 tokoe:valid" result="pass"/><test-case name="14735NISTSchema-SV-IV-list-time-pattern-1 tokoe:valid" result="pass"/><test-case name="14736NISTXML-SV-IV-list-time-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14737NISTXML-SV-IV-list-time-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14738NISTXML-SV-IV-list-time-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14739NISTXML-SV-IV-list-time-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14740NISTXML-SV-IV-list-time-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14741NISTSchema-SV-IV-list-time-pattern-2 tokoe:valid" result="pass"/><test-case name="14742NISTXML-SV-IV-list-time-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14743NISTXML-SV-IV-list-time-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14744NISTXML-SV-IV-list-time-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14745NISTXML-SV-IV-list-time-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14746NISTXML-SV-IV-list-time-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14747NISTSchema-SV-IV-list-time-pattern-3 tokoe:valid" result="pass"/><test-case name="14748NISTXML-SV-IV-list-time-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14749NISTXML-SV-IV-list-time-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14750NISTXML-SV-IV-list-time-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14751NISTXML-SV-IV-list-time-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14752NISTXML-SV-IV-list-time-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14753NISTSchema-SV-IV-list-time-pattern-4 tokoe:valid" result="pass"/><test-case name="14754NISTXML-SV-IV-list-time-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14755NISTXML-SV-IV-list-time-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14756NISTXML-SV-IV-list-time-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14757NISTXML-SV-IV-list-time-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14758NISTXML-SV-IV-list-time-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14759NISTSchema-SV-IV-list-time-pattern-5 tokoe:valid" result="pass"/><test-case name="14760NISTXML-SV-IV-list-time-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14761NISTXML-SV-IV-list-time-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14762NISTXML-SV-IV-list-time-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14763NISTXML-SV-IV-list-time-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14764NISTXML-SV-IV-list-time-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14765NISTSchema-SV-IV-list-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="14766NISTXML-SV-IV-list-time-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14767NISTXML-SV-IV-list-time-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14768NISTXML-SV-IV-list-time-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14769NISTXML-SV-IV-list-time-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14770NISTXML-SV-IV-list-time-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14771NISTSchema-SV-IV-list-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="14772NISTXML-SV-IV-list-time-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14773NISTXML-SV-IV-list-time-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14774NISTXML-SV-IV-list-time-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14775NISTXML-SV-IV-list-time-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14776NISTXML-SV-IV-list-time-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14777NISTSchema-SV-IV-list-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="14778NISTXML-SV-IV-list-time-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14779NISTXML-SV-IV-list-time-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14780NISTXML-SV-IV-list-time-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14781NISTXML-SV-IV-list-time-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14782NISTXML-SV-IV-list-time-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14783NISTSchema-SV-IV-list-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="14784NISTXML-SV-IV-list-time-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14785NISTXML-SV-IV-list-time-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14786NISTXML-SV-IV-list-time-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14787NISTXML-SV-IV-list-time-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14788NISTXML-SV-IV-list-time-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14789NISTSchema-SV-IV-list-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="14790NISTXML-SV-IV-list-time-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14791NISTXML-SV-IV-list-time-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14792NISTXML-SV-IV-list-time-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14793NISTXML-SV-IV-list-time-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14794NISTXML-SV-IV-list-time-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14795NISTSchema-SV-IV-list-time-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14796NISTXML-SV-IV-list-time-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14797NISTXML-SV-IV-list-time-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14798NISTXML-SV-IV-list-time-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14799NISTXML-SV-IV-list-time-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14800NISTXML-SV-IV-list-time-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14801NISTSchema-SV-IV-list-date-maxLength-1 tokoe:valid" result="pass"/><test-case name="14802NISTXML-SV-IV-list-date-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14803NISTXML-SV-IV-list-date-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14804NISTXML-SV-IV-list-date-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14805NISTXML-SV-IV-list-date-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14806NISTXML-SV-IV-list-date-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14807NISTSchema-SV-IV-list-date-maxLength-2 tokoe:valid" result="pass"/><test-case name="14808NISTXML-SV-IV-list-date-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14809NISTXML-SV-IV-list-date-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14810NISTXML-SV-IV-list-date-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14811NISTXML-SV-IV-list-date-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14812NISTXML-SV-IV-list-date-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14813NISTSchema-SV-IV-list-date-maxLength-3 tokoe:valid" result="pass"/><test-case name="14814NISTXML-SV-IV-list-date-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14815NISTXML-SV-IV-list-date-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14816NISTXML-SV-IV-list-date-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14817NISTXML-SV-IV-list-date-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14818NISTXML-SV-IV-list-date-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14819NISTSchema-SV-IV-list-date-maxLength-4 tokoe:valid" result="pass"/><test-case name="14820NISTXML-SV-IV-list-date-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14821NISTXML-SV-IV-list-date-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14822NISTXML-SV-IV-list-date-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14823NISTXML-SV-IV-list-date-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14824NISTXML-SV-IV-list-date-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14825NISTSchema-SV-IV-list-date-maxLength-5 tokoe:valid" result="pass"/><test-case name="14826NISTXML-SV-IV-list-date-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14827NISTXML-SV-IV-list-date-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14828NISTXML-SV-IV-list-date-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14829NISTXML-SV-IV-list-date-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14830NISTXML-SV-IV-list-date-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14831NISTSchema-SV-IV-list-date-minLength-1 tokoe:valid" result="pass"/><test-case name="14832NISTXML-SV-IV-list-date-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14833NISTXML-SV-IV-list-date-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14834NISTXML-SV-IV-list-date-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14835NISTXML-SV-IV-list-date-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14836NISTXML-SV-IV-list-date-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14837NISTSchema-SV-IV-list-date-minLength-2 tokoe:valid" result="pass"/><test-case name="14838NISTXML-SV-IV-list-date-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14839NISTXML-SV-IV-list-date-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14840NISTXML-SV-IV-list-date-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14841NISTXML-SV-IV-list-date-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14842NISTXML-SV-IV-list-date-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14843NISTSchema-SV-IV-list-date-minLength-3 tokoe:valid" result="pass"/><test-case name="14844NISTXML-SV-IV-list-date-minLength-3-1 tokoe:valid" result="pass"/><test-case name="14845NISTXML-SV-IV-list-date-minLength-3-2 tokoe:valid" result="pass"/><test-case name="14846NISTXML-SV-IV-list-date-minLength-3-3 tokoe:valid" result="pass"/><test-case name="14847NISTXML-SV-IV-list-date-minLength-3-4 tokoe:valid" result="pass"/><test-case name="14848NISTXML-SV-IV-list-date-minLength-3-5 tokoe:valid" result="pass"/><test-case name="14849NISTSchema-SV-IV-list-date-minLength-4 tokoe:valid" result="pass"/><test-case name="14850NISTXML-SV-IV-list-date-minLength-4-1 tokoe:valid" result="pass"/><test-case name="14851NISTXML-SV-IV-list-date-minLength-4-2 tokoe:valid" result="pass"/><test-case name="14852NISTXML-SV-IV-list-date-minLength-4-3 tokoe:valid" result="pass"/><test-case name="14853NISTXML-SV-IV-list-date-minLength-4-4 tokoe:valid" result="pass"/><test-case name="14854NISTXML-SV-IV-list-date-minLength-4-5 tokoe:valid" result="pass"/><test-case name="14855NISTSchema-SV-IV-list-date-minLength-5 tokoe:valid" result="pass"/><test-case name="14856NISTXML-SV-IV-list-date-minLength-5-1 tokoe:valid" result="pass"/><test-case name="14857NISTXML-SV-IV-list-date-minLength-5-2 tokoe:valid" result="pass"/><test-case name="14858NISTXML-SV-IV-list-date-minLength-5-3 tokoe:valid" result="pass"/><test-case name="14859NISTXML-SV-IV-list-date-minLength-5-4 tokoe:valid" result="pass"/><test-case name="14860NISTXML-SV-IV-list-date-minLength-5-5 tokoe:valid" result="pass"/><test-case name="14861NISTSchema-SV-IV-list-date-length-1 tokoe:valid" result="pass"/><test-case name="14862NISTXML-SV-IV-list-date-length-1-1 tokoe:valid" result="pass"/><test-case name="14863NISTXML-SV-IV-list-date-length-1-2 tokoe:valid" result="pass"/><test-case name="14864NISTXML-SV-IV-list-date-length-1-3 tokoe:valid" result="pass"/><test-case name="14865NISTXML-SV-IV-list-date-length-1-4 tokoe:valid" result="pass"/><test-case name="14866NISTXML-SV-IV-list-date-length-1-5 tokoe:valid" result="pass"/><test-case name="14867NISTSchema-SV-IV-list-date-length-2 tokoe:valid" result="pass"/><test-case name="14868NISTXML-SV-IV-list-date-length-2-1 tokoe:valid" result="pass"/><test-case name="14869NISTXML-SV-IV-list-date-length-2-2 tokoe:valid" result="pass"/><test-case name="14870NISTXML-SV-IV-list-date-length-2-3 tokoe:valid" result="pass"/><test-case name="14871NISTXML-SV-IV-list-date-length-2-4 tokoe:valid" result="pass"/><test-case name="14872NISTXML-SV-IV-list-date-length-2-5 tokoe:valid" result="pass"/><test-case name="14873NISTSchema-SV-IV-list-date-length-3 tokoe:valid" result="pass"/><test-case name="14874NISTXML-SV-IV-list-date-length-3-1 tokoe:valid" result="pass"/><test-case name="14875NISTXML-SV-IV-list-date-length-3-2 tokoe:valid" result="pass"/><test-case name="14876NISTXML-SV-IV-list-date-length-3-3 tokoe:valid" result="pass"/><test-case name="14877NISTXML-SV-IV-list-date-length-3-4 tokoe:valid" result="pass"/><test-case name="14878NISTXML-SV-IV-list-date-length-3-5 tokoe:valid" result="pass"/><test-case name="14879NISTSchema-SV-IV-list-date-length-4 tokoe:valid" result="pass"/><test-case name="14880NISTXML-SV-IV-list-date-length-4-1 tokoe:valid" result="pass"/><test-case name="14881NISTXML-SV-IV-list-date-length-4-2 tokoe:valid" result="pass"/><test-case name="14882NISTXML-SV-IV-list-date-length-4-3 tokoe:valid" result="pass"/><test-case name="14883NISTXML-SV-IV-list-date-length-4-4 tokoe:valid" result="pass"/><test-case name="14884NISTXML-SV-IV-list-date-length-4-5 tokoe:valid" result="pass"/><test-case name="14885NISTSchema-SV-IV-list-date-length-5 tokoe:valid" result="pass"/><test-case name="14886NISTXML-SV-IV-list-date-length-5-1 tokoe:valid" result="pass"/><test-case name="14887NISTXML-SV-IV-list-date-length-5-2 tokoe:valid" result="pass"/><test-case name="14888NISTXML-SV-IV-list-date-length-5-3 tokoe:valid" result="pass"/><test-case name="14889NISTXML-SV-IV-list-date-length-5-4 tokoe:valid" result="pass"/><test-case name="14890NISTXML-SV-IV-list-date-length-5-5 tokoe:valid" result="pass"/><test-case name="14891NISTSchema-SV-IV-list-date-pattern-1 tokoe:valid" result="pass"/><test-case name="14892NISTXML-SV-IV-list-date-pattern-1-1 tokoe:valid" result="pass"/><test-case name="14893NISTXML-SV-IV-list-date-pattern-1-2 tokoe:valid" result="pass"/><test-case name="14894NISTXML-SV-IV-list-date-pattern-1-3 tokoe:valid" result="pass"/><test-case name="14895NISTXML-SV-IV-list-date-pattern-1-4 tokoe:valid" result="pass"/><test-case name="14896NISTXML-SV-IV-list-date-pattern-1-5 tokoe:valid" result="pass"/><test-case name="14897NISTSchema-SV-IV-list-date-pattern-2 tokoe:valid" result="pass"/><test-case name="14898NISTXML-SV-IV-list-date-pattern-2-1 tokoe:valid" result="pass"/><test-case name="14899NISTXML-SV-IV-list-date-pattern-2-2 tokoe:valid" result="pass"/><test-case name="14900NISTXML-SV-IV-list-date-pattern-2-3 tokoe:valid" result="pass"/><test-case name="14901NISTXML-SV-IV-list-date-pattern-2-4 tokoe:valid" result="pass"/><test-case name="14902NISTXML-SV-IV-list-date-pattern-2-5 tokoe:valid" result="pass"/><test-case name="14903NISTSchema-SV-IV-list-date-pattern-3 tokoe:valid" result="pass"/><test-case name="14904NISTXML-SV-IV-list-date-pattern-3-1 tokoe:valid" result="pass"/><test-case name="14905NISTXML-SV-IV-list-date-pattern-3-2 tokoe:valid" result="pass"/><test-case name="14906NISTXML-SV-IV-list-date-pattern-3-3 tokoe:valid" result="pass"/><test-case name="14907NISTXML-SV-IV-list-date-pattern-3-4 tokoe:valid" result="pass"/><test-case name="14908NISTXML-SV-IV-list-date-pattern-3-5 tokoe:valid" result="pass"/><test-case name="14909NISTSchema-SV-IV-list-date-pattern-4 tokoe:valid" result="pass"/><test-case name="14910NISTXML-SV-IV-list-date-pattern-4-1 tokoe:valid" result="pass"/><test-case name="14911NISTXML-SV-IV-list-date-pattern-4-2 tokoe:valid" result="pass"/><test-case name="14912NISTXML-SV-IV-list-date-pattern-4-3 tokoe:valid" result="pass"/><test-case name="14913NISTXML-SV-IV-list-date-pattern-4-4 tokoe:valid" result="pass"/><test-case name="14914NISTXML-SV-IV-list-date-pattern-4-5 tokoe:valid" result="pass"/><test-case name="14915NISTSchema-SV-IV-list-date-pattern-5 tokoe:valid" result="pass"/><test-case name="14916NISTXML-SV-IV-list-date-pattern-5-1 tokoe:valid" result="pass"/><test-case name="14917NISTXML-SV-IV-list-date-pattern-5-2 tokoe:valid" result="pass"/><test-case name="14918NISTXML-SV-IV-list-date-pattern-5-3 tokoe:valid" result="pass"/><test-case name="14919NISTXML-SV-IV-list-date-pattern-5-4 tokoe:valid" result="pass"/><test-case name="14920NISTXML-SV-IV-list-date-pattern-5-5 tokoe:valid" result="pass"/><test-case name="14921NISTSchema-SV-IV-list-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="14922NISTXML-SV-IV-list-date-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="14923NISTXML-SV-IV-list-date-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="14924NISTXML-SV-IV-list-date-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="14925NISTXML-SV-IV-list-date-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="14926NISTXML-SV-IV-list-date-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="14927NISTSchema-SV-IV-list-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="14928NISTXML-SV-IV-list-date-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="14929NISTXML-SV-IV-list-date-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="14930NISTXML-SV-IV-list-date-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="14931NISTXML-SV-IV-list-date-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="14932NISTXML-SV-IV-list-date-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="14933NISTSchema-SV-IV-list-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="14934NISTXML-SV-IV-list-date-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="14935NISTXML-SV-IV-list-date-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="14936NISTXML-SV-IV-list-date-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="14937NISTXML-SV-IV-list-date-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="14938NISTXML-SV-IV-list-date-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="14939NISTSchema-SV-IV-list-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="14940NISTXML-SV-IV-list-date-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="14941NISTXML-SV-IV-list-date-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="14942NISTXML-SV-IV-list-date-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="14943NISTXML-SV-IV-list-date-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="14944NISTXML-SV-IV-list-date-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="14945NISTSchema-SV-IV-list-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="14946NISTXML-SV-IV-list-date-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="14947NISTXML-SV-IV-list-date-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="14948NISTXML-SV-IV-list-date-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="14949NISTXML-SV-IV-list-date-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="14950NISTXML-SV-IV-list-date-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="14951NISTSchema-SV-IV-list-date-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="14952NISTXML-SV-IV-list-date-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="14953NISTXML-SV-IV-list-date-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="14954NISTXML-SV-IV-list-date-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="14955NISTXML-SV-IV-list-date-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="14956NISTXML-SV-IV-list-date-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="14957NISTSchema-SV-IV-list-gYearMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="14958NISTXML-SV-IV-list-gYearMonth-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="14959NISTXML-SV-IV-list-gYearMonth-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="14960NISTXML-SV-IV-list-gYearMonth-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="14961NISTXML-SV-IV-list-gYearMonth-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="14962NISTXML-SV-IV-list-gYearMonth-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="14963NISTSchema-SV-IV-list-gYearMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="14964NISTXML-SV-IV-list-gYearMonth-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="14965NISTXML-SV-IV-list-gYearMonth-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="14966NISTXML-SV-IV-list-gYearMonth-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="14967NISTXML-SV-IV-list-gYearMonth-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="14968NISTXML-SV-IV-list-gYearMonth-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="14969NISTSchema-SV-IV-list-gYearMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="14970NISTXML-SV-IV-list-gYearMonth-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="14971NISTXML-SV-IV-list-gYearMonth-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="14972NISTXML-SV-IV-list-gYearMonth-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="14973NISTXML-SV-IV-list-gYearMonth-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="14974NISTXML-SV-IV-list-gYearMonth-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="14975NISTSchema-SV-IV-list-gYearMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="14976NISTXML-SV-IV-list-gYearMonth-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="14977NISTXML-SV-IV-list-gYearMonth-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="14978NISTXML-SV-IV-list-gYearMonth-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="14979NISTXML-SV-IV-list-gYearMonth-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="14980NISTXML-SV-IV-list-gYearMonth-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="14981NISTSchema-SV-IV-list-gYearMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="14982NISTXML-SV-IV-list-gYearMonth-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="14983NISTXML-SV-IV-list-gYearMonth-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="14984NISTXML-SV-IV-list-gYearMonth-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="14985NISTXML-SV-IV-list-gYearMonth-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="14986NISTXML-SV-IV-list-gYearMonth-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="14987NISTSchema-SV-IV-list-gYearMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="14988NISTXML-SV-IV-list-gYearMonth-minLength-1-1 tokoe:valid" result="pass"/><test-case name="14989NISTXML-SV-IV-list-gYearMonth-minLength-1-2 tokoe:valid" result="pass"/><test-case name="14990NISTXML-SV-IV-list-gYearMonth-minLength-1-3 tokoe:valid" result="pass"/><test-case name="14991NISTXML-SV-IV-list-gYearMonth-minLength-1-4 tokoe:valid" result="pass"/><test-case name="14992NISTXML-SV-IV-list-gYearMonth-minLength-1-5 tokoe:valid" result="pass"/><test-case name="14993NISTSchema-SV-IV-list-gYearMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="14994NISTXML-SV-IV-list-gYearMonth-minLength-2-1 tokoe:valid" result="pass"/><test-case name="14995NISTXML-SV-IV-list-gYearMonth-minLength-2-2 tokoe:valid" result="pass"/><test-case name="14996NISTXML-SV-IV-list-gYearMonth-minLength-2-3 tokoe:valid" result="pass"/><test-case name="14997NISTXML-SV-IV-list-gYearMonth-minLength-2-4 tokoe:valid" result="pass"/><test-case name="14998NISTXML-SV-IV-list-gYearMonth-minLength-2-5 tokoe:valid" result="pass"/><test-case name="14999NISTSchema-SV-IV-list-gYearMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="15000NISTXML-SV-IV-list-gYearMonth-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15001NISTXML-SV-IV-list-gYearMonth-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15002NISTXML-SV-IV-list-gYearMonth-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15003NISTXML-SV-IV-list-gYearMonth-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15004NISTXML-SV-IV-list-gYearMonth-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15005NISTSchema-SV-IV-list-gYearMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="15006NISTXML-SV-IV-list-gYearMonth-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15007NISTXML-SV-IV-list-gYearMonth-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15008NISTXML-SV-IV-list-gYearMonth-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15009NISTXML-SV-IV-list-gYearMonth-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15010NISTXML-SV-IV-list-gYearMonth-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15011NISTSchema-SV-IV-list-gYearMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="15012NISTXML-SV-IV-list-gYearMonth-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15013NISTXML-SV-IV-list-gYearMonth-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15014NISTXML-SV-IV-list-gYearMonth-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15015NISTXML-SV-IV-list-gYearMonth-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15016NISTXML-SV-IV-list-gYearMonth-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15017NISTSchema-SV-IV-list-gYearMonth-length-1 tokoe:valid" result="pass"/><test-case name="15018NISTXML-SV-IV-list-gYearMonth-length-1-1 tokoe:valid" result="pass"/><test-case name="15019NISTXML-SV-IV-list-gYearMonth-length-1-2 tokoe:valid" result="pass"/><test-case name="15020NISTXML-SV-IV-list-gYearMonth-length-1-3 tokoe:valid" result="pass"/><test-case name="15021NISTXML-SV-IV-list-gYearMonth-length-1-4 tokoe:valid" result="pass"/><test-case name="15022NISTXML-SV-IV-list-gYearMonth-length-1-5 tokoe:valid" result="pass"/><test-case name="15023NISTSchema-SV-IV-list-gYearMonth-length-2 tokoe:valid" result="pass"/><test-case name="15024NISTXML-SV-IV-list-gYearMonth-length-2-1 tokoe:valid" result="pass"/><test-case name="15025NISTXML-SV-IV-list-gYearMonth-length-2-2 tokoe:valid" result="pass"/><test-case name="15026NISTXML-SV-IV-list-gYearMonth-length-2-3 tokoe:valid" result="pass"/><test-case name="15027NISTXML-SV-IV-list-gYearMonth-length-2-4 tokoe:valid" result="pass"/><test-case name="15028NISTXML-SV-IV-list-gYearMonth-length-2-5 tokoe:valid" result="pass"/><test-case name="15029NISTSchema-SV-IV-list-gYearMonth-length-3 tokoe:valid" result="pass"/><test-case name="15030NISTXML-SV-IV-list-gYearMonth-length-3-1 tokoe:valid" result="pass"/><test-case name="15031NISTXML-SV-IV-list-gYearMonth-length-3-2 tokoe:valid" result="pass"/><test-case name="15032NISTXML-SV-IV-list-gYearMonth-length-3-3 tokoe:valid" result="pass"/><test-case name="15033NISTXML-SV-IV-list-gYearMonth-length-3-4 tokoe:valid" result="pass"/><test-case name="15034NISTXML-SV-IV-list-gYearMonth-length-3-5 tokoe:valid" result="pass"/><test-case name="15035NISTSchema-SV-IV-list-gYearMonth-length-4 tokoe:valid" result="pass"/><test-case name="15036NISTXML-SV-IV-list-gYearMonth-length-4-1 tokoe:valid" result="pass"/><test-case name="15037NISTXML-SV-IV-list-gYearMonth-length-4-2 tokoe:valid" result="pass"/><test-case name="15038NISTXML-SV-IV-list-gYearMonth-length-4-3 tokoe:valid" result="pass"/><test-case name="15039NISTXML-SV-IV-list-gYearMonth-length-4-4 tokoe:valid" result="pass"/><test-case name="15040NISTXML-SV-IV-list-gYearMonth-length-4-5 tokoe:valid" result="pass"/><test-case name="15041NISTSchema-SV-IV-list-gYearMonth-length-5 tokoe:valid" result="pass"/><test-case name="15042NISTXML-SV-IV-list-gYearMonth-length-5-1 tokoe:valid" result="pass"/><test-case name="15043NISTXML-SV-IV-list-gYearMonth-length-5-2 tokoe:valid" result="pass"/><test-case name="15044NISTXML-SV-IV-list-gYearMonth-length-5-3 tokoe:valid" result="pass"/><test-case name="15045NISTXML-SV-IV-list-gYearMonth-length-5-4 tokoe:valid" result="pass"/><test-case name="15046NISTXML-SV-IV-list-gYearMonth-length-5-5 tokoe:valid" result="pass"/><test-case name="15047NISTSchema-SV-IV-list-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="15048NISTXML-SV-IV-list-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15049NISTXML-SV-IV-list-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15050NISTXML-SV-IV-list-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15051NISTXML-SV-IV-list-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15052NISTXML-SV-IV-list-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15053NISTSchema-SV-IV-list-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="15054NISTXML-SV-IV-list-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15055NISTXML-SV-IV-list-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15056NISTXML-SV-IV-list-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15057NISTXML-SV-IV-list-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15058NISTXML-SV-IV-list-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15059NISTSchema-SV-IV-list-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="15060NISTXML-SV-IV-list-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15061NISTXML-SV-IV-list-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15062NISTXML-SV-IV-list-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15063NISTXML-SV-IV-list-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15064NISTXML-SV-IV-list-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15065NISTSchema-SV-IV-list-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="15066NISTXML-SV-IV-list-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15067NISTXML-SV-IV-list-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15068NISTXML-SV-IV-list-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15069NISTXML-SV-IV-list-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15070NISTXML-SV-IV-list-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15071NISTSchema-SV-IV-list-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="15072NISTXML-SV-IV-list-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15073NISTXML-SV-IV-list-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15074NISTXML-SV-IV-list-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15075NISTXML-SV-IV-list-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15076NISTXML-SV-IV-list-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15077NISTSchema-SV-IV-list-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="15078NISTXML-SV-IV-list-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15079NISTXML-SV-IV-list-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15080NISTXML-SV-IV-list-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15081NISTXML-SV-IV-list-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15082NISTXML-SV-IV-list-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15083NISTSchema-SV-IV-list-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="15084NISTXML-SV-IV-list-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15085NISTXML-SV-IV-list-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15086NISTXML-SV-IV-list-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15087NISTXML-SV-IV-list-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15088NISTXML-SV-IV-list-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15089NISTSchema-SV-IV-list-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="15090NISTXML-SV-IV-list-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15091NISTXML-SV-IV-list-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15092NISTXML-SV-IV-list-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15093NISTXML-SV-IV-list-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15094NISTXML-SV-IV-list-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15095NISTSchema-SV-IV-list-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="15096NISTXML-SV-IV-list-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15097NISTXML-SV-IV-list-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15098NISTXML-SV-IV-list-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15099NISTXML-SV-IV-list-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15100NISTXML-SV-IV-list-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15101NISTSchema-SV-IV-list-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="15102NISTXML-SV-IV-list-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15103NISTXML-SV-IV-list-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15104NISTXML-SV-IV-list-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15105NISTXML-SV-IV-list-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15106NISTXML-SV-IV-list-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15107NISTSchema-SV-IV-list-gYearMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15108NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15109NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15110NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15111NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15112NISTXML-SV-IV-list-gYearMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15113NISTSchema-SV-IV-list-gYear-maxLength-1 tokoe:valid" result="pass"/><test-case name="15114NISTXML-SV-IV-list-gYear-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15115NISTXML-SV-IV-list-gYear-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15116NISTXML-SV-IV-list-gYear-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15117NISTXML-SV-IV-list-gYear-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15118NISTXML-SV-IV-list-gYear-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15119NISTSchema-SV-IV-list-gYear-maxLength-2 tokoe:valid" result="pass"/><test-case name="15120NISTXML-SV-IV-list-gYear-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15121NISTXML-SV-IV-list-gYear-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15122NISTXML-SV-IV-list-gYear-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15123NISTXML-SV-IV-list-gYear-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15124NISTXML-SV-IV-list-gYear-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15125NISTSchema-SV-IV-list-gYear-maxLength-3 tokoe:valid" result="pass"/><test-case name="15126NISTXML-SV-IV-list-gYear-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15127NISTXML-SV-IV-list-gYear-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15128NISTXML-SV-IV-list-gYear-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15129NISTXML-SV-IV-list-gYear-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15130NISTXML-SV-IV-list-gYear-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15131NISTSchema-SV-IV-list-gYear-maxLength-4 tokoe:valid" result="pass"/><test-case name="15132NISTXML-SV-IV-list-gYear-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15133NISTXML-SV-IV-list-gYear-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15134NISTXML-SV-IV-list-gYear-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15135NISTXML-SV-IV-list-gYear-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15136NISTXML-SV-IV-list-gYear-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15137NISTSchema-SV-IV-list-gYear-maxLength-5 tokoe:valid" result="pass"/><test-case name="15138NISTXML-SV-IV-list-gYear-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15139NISTXML-SV-IV-list-gYear-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15140NISTXML-SV-IV-list-gYear-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15141NISTXML-SV-IV-list-gYear-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15142NISTXML-SV-IV-list-gYear-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15143NISTSchema-SV-IV-list-gYear-minLength-1 tokoe:valid" result="pass"/><test-case name="15144NISTXML-SV-IV-list-gYear-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15145NISTXML-SV-IV-list-gYear-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15146NISTXML-SV-IV-list-gYear-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15147NISTXML-SV-IV-list-gYear-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15148NISTXML-SV-IV-list-gYear-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15149NISTSchema-SV-IV-list-gYear-minLength-2 tokoe:valid" result="pass"/><test-case name="15150NISTXML-SV-IV-list-gYear-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15151NISTXML-SV-IV-list-gYear-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15152NISTXML-SV-IV-list-gYear-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15153NISTXML-SV-IV-list-gYear-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15154NISTXML-SV-IV-list-gYear-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15155NISTSchema-SV-IV-list-gYear-minLength-3 tokoe:valid" result="pass"/><test-case name="15156NISTXML-SV-IV-list-gYear-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15157NISTXML-SV-IV-list-gYear-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15158NISTXML-SV-IV-list-gYear-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15159NISTXML-SV-IV-list-gYear-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15160NISTXML-SV-IV-list-gYear-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15161NISTSchema-SV-IV-list-gYear-minLength-4 tokoe:valid" result="pass"/><test-case name="15162NISTXML-SV-IV-list-gYear-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15163NISTXML-SV-IV-list-gYear-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15164NISTXML-SV-IV-list-gYear-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15165NISTXML-SV-IV-list-gYear-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15166NISTXML-SV-IV-list-gYear-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15167NISTSchema-SV-IV-list-gYear-minLength-5 tokoe:valid" result="pass"/><test-case name="15168NISTXML-SV-IV-list-gYear-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15169NISTXML-SV-IV-list-gYear-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15170NISTXML-SV-IV-list-gYear-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15171NISTXML-SV-IV-list-gYear-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15172NISTXML-SV-IV-list-gYear-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15173NISTSchema-SV-IV-list-gYear-length-1 tokoe:valid" result="pass"/><test-case name="15174NISTXML-SV-IV-list-gYear-length-1-1 tokoe:valid" result="pass"/><test-case name="15175NISTXML-SV-IV-list-gYear-length-1-2 tokoe:valid" result="pass"/><test-case name="15176NISTXML-SV-IV-list-gYear-length-1-3 tokoe:valid" result="pass"/><test-case name="15177NISTXML-SV-IV-list-gYear-length-1-4 tokoe:valid" result="pass"/><test-case name="15178NISTXML-SV-IV-list-gYear-length-1-5 tokoe:valid" result="pass"/><test-case name="15179NISTSchema-SV-IV-list-gYear-length-2 tokoe:valid" result="pass"/><test-case name="15180NISTXML-SV-IV-list-gYear-length-2-1 tokoe:valid" result="pass"/><test-case name="15181NISTXML-SV-IV-list-gYear-length-2-2 tokoe:valid" result="pass"/><test-case name="15182NISTXML-SV-IV-list-gYear-length-2-3 tokoe:valid" result="pass"/><test-case name="15183NISTXML-SV-IV-list-gYear-length-2-4 tokoe:valid" result="pass"/><test-case name="15184NISTXML-SV-IV-list-gYear-length-2-5 tokoe:valid" result="pass"/><test-case name="15185NISTSchema-SV-IV-list-gYear-length-3 tokoe:valid" result="pass"/><test-case name="15186NISTXML-SV-IV-list-gYear-length-3-1 tokoe:valid" result="pass"/><test-case name="15187NISTXML-SV-IV-list-gYear-length-3-2 tokoe:valid" result="pass"/><test-case name="15188NISTXML-SV-IV-list-gYear-length-3-3 tokoe:valid" result="pass"/><test-case name="15189NISTXML-SV-IV-list-gYear-length-3-4 tokoe:valid" result="pass"/><test-case name="15190NISTXML-SV-IV-list-gYear-length-3-5 tokoe:valid" result="pass"/><test-case name="15191NISTSchema-SV-IV-list-gYear-length-4 tokoe:valid" result="pass"/><test-case name="15192NISTXML-SV-IV-list-gYear-length-4-1 tokoe:valid" result="pass"/><test-case name="15193NISTXML-SV-IV-list-gYear-length-4-2 tokoe:valid" result="pass"/><test-case name="15194NISTXML-SV-IV-list-gYear-length-4-3 tokoe:valid" result="pass"/><test-case name="15195NISTXML-SV-IV-list-gYear-length-4-4 tokoe:valid" result="pass"/><test-case name="15196NISTXML-SV-IV-list-gYear-length-4-5 tokoe:valid" result="pass"/><test-case name="15197NISTSchema-SV-IV-list-gYear-length-5 tokoe:valid" result="pass"/><test-case name="15198NISTXML-SV-IV-list-gYear-length-5-1 tokoe:valid" result="pass"/><test-case name="15199NISTXML-SV-IV-list-gYear-length-5-2 tokoe:valid" result="pass"/><test-case name="15200NISTXML-SV-IV-list-gYear-length-5-3 tokoe:valid" result="pass"/><test-case name="15201NISTXML-SV-IV-list-gYear-length-5-4 tokoe:valid" result="pass"/><test-case name="15202NISTXML-SV-IV-list-gYear-length-5-5 tokoe:valid" result="pass"/><test-case name="15203NISTSchema-SV-IV-list-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="15204NISTXML-SV-IV-list-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15205NISTXML-SV-IV-list-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15206NISTXML-SV-IV-list-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15207NISTXML-SV-IV-list-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15208NISTXML-SV-IV-list-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15209NISTSchema-SV-IV-list-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="15210NISTXML-SV-IV-list-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15211NISTXML-SV-IV-list-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15212NISTXML-SV-IV-list-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15213NISTXML-SV-IV-list-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15214NISTXML-SV-IV-list-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15215NISTSchema-SV-IV-list-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="15216NISTXML-SV-IV-list-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15217NISTXML-SV-IV-list-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15218NISTXML-SV-IV-list-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15219NISTXML-SV-IV-list-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15220NISTXML-SV-IV-list-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15221NISTSchema-SV-IV-list-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="15222NISTXML-SV-IV-list-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15223NISTXML-SV-IV-list-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15224NISTXML-SV-IV-list-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15225NISTXML-SV-IV-list-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15226NISTXML-SV-IV-list-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15227NISTSchema-SV-IV-list-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="15228NISTXML-SV-IV-list-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15229NISTXML-SV-IV-list-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15230NISTXML-SV-IV-list-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15231NISTXML-SV-IV-list-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15232NISTXML-SV-IV-list-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15233NISTSchema-SV-IV-list-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="15234NISTXML-SV-IV-list-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15235NISTXML-SV-IV-list-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15236NISTXML-SV-IV-list-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15237NISTXML-SV-IV-list-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15238NISTXML-SV-IV-list-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15239NISTSchema-SV-IV-list-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="15240NISTXML-SV-IV-list-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15241NISTXML-SV-IV-list-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15242NISTXML-SV-IV-list-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15243NISTXML-SV-IV-list-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15244NISTXML-SV-IV-list-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15245NISTSchema-SV-IV-list-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="15246NISTXML-SV-IV-list-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15247NISTXML-SV-IV-list-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15248NISTXML-SV-IV-list-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15249NISTXML-SV-IV-list-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15250NISTXML-SV-IV-list-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15251NISTSchema-SV-IV-list-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="15252NISTXML-SV-IV-list-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15253NISTXML-SV-IV-list-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15254NISTXML-SV-IV-list-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15255NISTXML-SV-IV-list-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15256NISTXML-SV-IV-list-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15257NISTSchema-SV-IV-list-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="15258NISTXML-SV-IV-list-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15259NISTXML-SV-IV-list-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15260NISTXML-SV-IV-list-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15261NISTXML-SV-IV-list-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15262NISTXML-SV-IV-list-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15263NISTSchema-SV-IV-list-gYear-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15264NISTXML-SV-IV-list-gYear-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15265NISTXML-SV-IV-list-gYear-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15266NISTXML-SV-IV-list-gYear-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15267NISTXML-SV-IV-list-gYear-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15268NISTXML-SV-IV-list-gYear-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15269NISTSchema-SV-IV-list-gMonthDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="15270NISTXML-SV-IV-list-gMonthDay-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15271NISTXML-SV-IV-list-gMonthDay-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15272NISTXML-SV-IV-list-gMonthDay-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15273NISTXML-SV-IV-list-gMonthDay-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15274NISTXML-SV-IV-list-gMonthDay-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15275NISTSchema-SV-IV-list-gMonthDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="15276NISTXML-SV-IV-list-gMonthDay-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15277NISTXML-SV-IV-list-gMonthDay-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15278NISTXML-SV-IV-list-gMonthDay-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15279NISTXML-SV-IV-list-gMonthDay-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15280NISTXML-SV-IV-list-gMonthDay-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15281NISTSchema-SV-IV-list-gMonthDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="15282NISTXML-SV-IV-list-gMonthDay-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15283NISTXML-SV-IV-list-gMonthDay-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15284NISTXML-SV-IV-list-gMonthDay-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15285NISTXML-SV-IV-list-gMonthDay-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15286NISTXML-SV-IV-list-gMonthDay-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15287NISTSchema-SV-IV-list-gMonthDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="15288NISTXML-SV-IV-list-gMonthDay-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15289NISTXML-SV-IV-list-gMonthDay-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15290NISTXML-SV-IV-list-gMonthDay-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15291NISTXML-SV-IV-list-gMonthDay-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15292NISTXML-SV-IV-list-gMonthDay-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15293NISTSchema-SV-IV-list-gMonthDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="15294NISTXML-SV-IV-list-gMonthDay-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15295NISTXML-SV-IV-list-gMonthDay-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15296NISTXML-SV-IV-list-gMonthDay-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15297NISTXML-SV-IV-list-gMonthDay-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15298NISTXML-SV-IV-list-gMonthDay-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15299NISTSchema-SV-IV-list-gMonthDay-minLength-1 tokoe:valid" result="pass"/><test-case name="15300NISTXML-SV-IV-list-gMonthDay-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15301NISTXML-SV-IV-list-gMonthDay-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15302NISTXML-SV-IV-list-gMonthDay-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15303NISTXML-SV-IV-list-gMonthDay-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15304NISTXML-SV-IV-list-gMonthDay-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15305NISTSchema-SV-IV-list-gMonthDay-minLength-2 tokoe:valid" result="pass"/><test-case name="15306NISTXML-SV-IV-list-gMonthDay-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15307NISTXML-SV-IV-list-gMonthDay-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15308NISTXML-SV-IV-list-gMonthDay-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15309NISTXML-SV-IV-list-gMonthDay-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15310NISTXML-SV-IV-list-gMonthDay-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15311NISTSchema-SV-IV-list-gMonthDay-minLength-3 tokoe:valid" result="pass"/><test-case name="15312NISTXML-SV-IV-list-gMonthDay-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15313NISTXML-SV-IV-list-gMonthDay-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15314NISTXML-SV-IV-list-gMonthDay-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15315NISTXML-SV-IV-list-gMonthDay-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15316NISTXML-SV-IV-list-gMonthDay-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15317NISTSchema-SV-IV-list-gMonthDay-minLength-4 tokoe:valid" result="pass"/><test-case name="15318NISTXML-SV-IV-list-gMonthDay-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15319NISTXML-SV-IV-list-gMonthDay-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15320NISTXML-SV-IV-list-gMonthDay-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15321NISTXML-SV-IV-list-gMonthDay-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15322NISTXML-SV-IV-list-gMonthDay-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15323NISTSchema-SV-IV-list-gMonthDay-minLength-5 tokoe:valid" result="pass"/><test-case name="15324NISTXML-SV-IV-list-gMonthDay-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15325NISTXML-SV-IV-list-gMonthDay-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15326NISTXML-SV-IV-list-gMonthDay-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15327NISTXML-SV-IV-list-gMonthDay-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15328NISTXML-SV-IV-list-gMonthDay-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15329NISTSchema-SV-IV-list-gMonthDay-length-1 tokoe:valid" result="pass"/><test-case name="15330NISTXML-SV-IV-list-gMonthDay-length-1-1 tokoe:valid" result="pass"/><test-case name="15331NISTXML-SV-IV-list-gMonthDay-length-1-2 tokoe:valid" result="pass"/><test-case name="15332NISTXML-SV-IV-list-gMonthDay-length-1-3 tokoe:valid" result="pass"/><test-case name="15333NISTXML-SV-IV-list-gMonthDay-length-1-4 tokoe:valid" result="pass"/><test-case name="15334NISTXML-SV-IV-list-gMonthDay-length-1-5 tokoe:valid" result="pass"/><test-case name="15335NISTSchema-SV-IV-list-gMonthDay-length-2 tokoe:valid" result="pass"/><test-case name="15336NISTXML-SV-IV-list-gMonthDay-length-2-1 tokoe:valid" result="pass"/><test-case name="15337NISTXML-SV-IV-list-gMonthDay-length-2-2 tokoe:valid" result="pass"/><test-case name="15338NISTXML-SV-IV-list-gMonthDay-length-2-3 tokoe:valid" result="pass"/><test-case name="15339NISTXML-SV-IV-list-gMonthDay-length-2-4 tokoe:valid" result="pass"/><test-case name="15340NISTXML-SV-IV-list-gMonthDay-length-2-5 tokoe:valid" result="pass"/><test-case name="15341NISTSchema-SV-IV-list-gMonthDay-length-3 tokoe:valid" result="pass"/><test-case name="15342NISTXML-SV-IV-list-gMonthDay-length-3-1 tokoe:valid" result="pass"/><test-case name="15343NISTXML-SV-IV-list-gMonthDay-length-3-2 tokoe:valid" result="pass"/><test-case name="15344NISTXML-SV-IV-list-gMonthDay-length-3-3 tokoe:valid" result="pass"/><test-case name="15345NISTXML-SV-IV-list-gMonthDay-length-3-4 tokoe:valid" result="pass"/><test-case name="15346NISTXML-SV-IV-list-gMonthDay-length-3-5 tokoe:valid" result="pass"/><test-case name="15347NISTSchema-SV-IV-list-gMonthDay-length-4 tokoe:valid" result="pass"/><test-case name="15348NISTXML-SV-IV-list-gMonthDay-length-4-1 tokoe:valid" result="pass"/><test-case name="15349NISTXML-SV-IV-list-gMonthDay-length-4-2 tokoe:valid" result="pass"/><test-case name="15350NISTXML-SV-IV-list-gMonthDay-length-4-3 tokoe:valid" result="pass"/><test-case name="15351NISTXML-SV-IV-list-gMonthDay-length-4-4 tokoe:valid" result="pass"/><test-case name="15352NISTXML-SV-IV-list-gMonthDay-length-4-5 tokoe:valid" result="pass"/><test-case name="15353NISTSchema-SV-IV-list-gMonthDay-length-5 tokoe:valid" result="pass"/><test-case name="15354NISTXML-SV-IV-list-gMonthDay-length-5-1 tokoe:valid" result="pass"/><test-case name="15355NISTXML-SV-IV-list-gMonthDay-length-5-2 tokoe:valid" result="pass"/><test-case name="15356NISTXML-SV-IV-list-gMonthDay-length-5-3 tokoe:valid" result="pass"/><test-case name="15357NISTXML-SV-IV-list-gMonthDay-length-5-4 tokoe:valid" result="pass"/><test-case name="15358NISTXML-SV-IV-list-gMonthDay-length-5-5 tokoe:valid" result="pass"/><test-case name="15359NISTSchema-SV-IV-list-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="15360NISTXML-SV-IV-list-gMonthDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15361NISTXML-SV-IV-list-gMonthDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15362NISTXML-SV-IV-list-gMonthDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15363NISTXML-SV-IV-list-gMonthDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15364NISTXML-SV-IV-list-gMonthDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15365NISTSchema-SV-IV-list-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="15366NISTXML-SV-IV-list-gMonthDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15367NISTXML-SV-IV-list-gMonthDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15368NISTXML-SV-IV-list-gMonthDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15369NISTXML-SV-IV-list-gMonthDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15370NISTXML-SV-IV-list-gMonthDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15371NISTSchema-SV-IV-list-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="15372NISTXML-SV-IV-list-gMonthDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15373NISTXML-SV-IV-list-gMonthDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15374NISTXML-SV-IV-list-gMonthDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15375NISTXML-SV-IV-list-gMonthDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15376NISTXML-SV-IV-list-gMonthDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15377NISTSchema-SV-IV-list-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="15378NISTXML-SV-IV-list-gMonthDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15379NISTXML-SV-IV-list-gMonthDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15380NISTXML-SV-IV-list-gMonthDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15381NISTXML-SV-IV-list-gMonthDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15382NISTXML-SV-IV-list-gMonthDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15383NISTSchema-SV-IV-list-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="15384NISTXML-SV-IV-list-gMonthDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15385NISTXML-SV-IV-list-gMonthDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15386NISTXML-SV-IV-list-gMonthDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15387NISTXML-SV-IV-list-gMonthDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15388NISTXML-SV-IV-list-gMonthDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15389NISTSchema-SV-IV-list-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="15390NISTXML-SV-IV-list-gMonthDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15391NISTXML-SV-IV-list-gMonthDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15392NISTXML-SV-IV-list-gMonthDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15393NISTXML-SV-IV-list-gMonthDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15394NISTXML-SV-IV-list-gMonthDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15395NISTSchema-SV-IV-list-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="15396NISTXML-SV-IV-list-gMonthDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15397NISTXML-SV-IV-list-gMonthDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15398NISTXML-SV-IV-list-gMonthDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15399NISTXML-SV-IV-list-gMonthDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15400NISTXML-SV-IV-list-gMonthDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15401NISTSchema-SV-IV-list-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="15402NISTXML-SV-IV-list-gMonthDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15403NISTXML-SV-IV-list-gMonthDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15404NISTXML-SV-IV-list-gMonthDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15405NISTXML-SV-IV-list-gMonthDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15406NISTXML-SV-IV-list-gMonthDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15407NISTSchema-SV-IV-list-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="15408NISTXML-SV-IV-list-gMonthDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15409NISTXML-SV-IV-list-gMonthDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15410NISTXML-SV-IV-list-gMonthDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15411NISTXML-SV-IV-list-gMonthDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15412NISTXML-SV-IV-list-gMonthDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15413NISTSchema-SV-IV-list-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="15414NISTXML-SV-IV-list-gMonthDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15415NISTXML-SV-IV-list-gMonthDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15416NISTXML-SV-IV-list-gMonthDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15417NISTXML-SV-IV-list-gMonthDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15418NISTXML-SV-IV-list-gMonthDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15419NISTSchema-SV-IV-list-gMonthDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15420NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15421NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15422NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15423NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15424NISTXML-SV-IV-list-gMonthDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15425NISTSchema-SV-IV-list-gDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="15426NISTXML-SV-IV-list-gDay-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15427NISTXML-SV-IV-list-gDay-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15428NISTXML-SV-IV-list-gDay-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15429NISTXML-SV-IV-list-gDay-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15430NISTXML-SV-IV-list-gDay-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15431NISTSchema-SV-IV-list-gDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="15432NISTXML-SV-IV-list-gDay-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15433NISTXML-SV-IV-list-gDay-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15434NISTXML-SV-IV-list-gDay-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15435NISTXML-SV-IV-list-gDay-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15436NISTXML-SV-IV-list-gDay-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15437NISTSchema-SV-IV-list-gDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="15438NISTXML-SV-IV-list-gDay-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15439NISTXML-SV-IV-list-gDay-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15440NISTXML-SV-IV-list-gDay-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15441NISTXML-SV-IV-list-gDay-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15442NISTXML-SV-IV-list-gDay-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15443NISTSchema-SV-IV-list-gDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="15444NISTXML-SV-IV-list-gDay-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15445NISTXML-SV-IV-list-gDay-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15446NISTXML-SV-IV-list-gDay-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15447NISTXML-SV-IV-list-gDay-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15448NISTXML-SV-IV-list-gDay-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15449NISTSchema-SV-IV-list-gDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="15450NISTXML-SV-IV-list-gDay-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15451NISTXML-SV-IV-list-gDay-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15452NISTXML-SV-IV-list-gDay-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15453NISTXML-SV-IV-list-gDay-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15454NISTXML-SV-IV-list-gDay-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15455NISTSchema-SV-IV-list-gDay-minLength-1 tokoe:valid" result="pass"/><test-case name="15456NISTXML-SV-IV-list-gDay-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15457NISTXML-SV-IV-list-gDay-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15458NISTXML-SV-IV-list-gDay-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15459NISTXML-SV-IV-list-gDay-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15460NISTXML-SV-IV-list-gDay-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15461NISTSchema-SV-IV-list-gDay-minLength-2 tokoe:valid" result="pass"/><test-case name="15462NISTXML-SV-IV-list-gDay-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15463NISTXML-SV-IV-list-gDay-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15464NISTXML-SV-IV-list-gDay-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15465NISTXML-SV-IV-list-gDay-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15466NISTXML-SV-IV-list-gDay-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15467NISTSchema-SV-IV-list-gDay-minLength-3 tokoe:valid" result="pass"/><test-case name="15468NISTXML-SV-IV-list-gDay-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15469NISTXML-SV-IV-list-gDay-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15470NISTXML-SV-IV-list-gDay-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15471NISTXML-SV-IV-list-gDay-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15472NISTXML-SV-IV-list-gDay-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15473NISTSchema-SV-IV-list-gDay-minLength-4 tokoe:valid" result="pass"/><test-case name="15474NISTXML-SV-IV-list-gDay-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15475NISTXML-SV-IV-list-gDay-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15476NISTXML-SV-IV-list-gDay-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15477NISTXML-SV-IV-list-gDay-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15478NISTXML-SV-IV-list-gDay-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15479NISTSchema-SV-IV-list-gDay-minLength-5 tokoe:valid" result="pass"/><test-case name="15480NISTXML-SV-IV-list-gDay-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15481NISTXML-SV-IV-list-gDay-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15482NISTXML-SV-IV-list-gDay-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15483NISTXML-SV-IV-list-gDay-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15484NISTXML-SV-IV-list-gDay-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15485NISTSchema-SV-IV-list-gDay-length-1 tokoe:valid" result="pass"/><test-case name="15486NISTXML-SV-IV-list-gDay-length-1-1 tokoe:valid" result="pass"/><test-case name="15487NISTXML-SV-IV-list-gDay-length-1-2 tokoe:valid" result="pass"/><test-case name="15488NISTXML-SV-IV-list-gDay-length-1-3 tokoe:valid" result="pass"/><test-case name="15489NISTXML-SV-IV-list-gDay-length-1-4 tokoe:valid" result="pass"/><test-case name="15490NISTXML-SV-IV-list-gDay-length-1-5 tokoe:valid" result="pass"/><test-case name="15491NISTSchema-SV-IV-list-gDay-length-2 tokoe:valid" result="pass"/><test-case name="15492NISTXML-SV-IV-list-gDay-length-2-1 tokoe:valid" result="pass"/><test-case name="15493NISTXML-SV-IV-list-gDay-length-2-2 tokoe:valid" result="pass"/><test-case name="15494NISTXML-SV-IV-list-gDay-length-2-3 tokoe:valid" result="pass"/><test-case name="15495NISTXML-SV-IV-list-gDay-length-2-4 tokoe:valid" result="pass"/><test-case name="15496NISTXML-SV-IV-list-gDay-length-2-5 tokoe:valid" result="pass"/><test-case name="15497NISTSchema-SV-IV-list-gDay-length-3 tokoe:valid" result="pass"/><test-case name="15498NISTXML-SV-IV-list-gDay-length-3-1 tokoe:valid" result="pass"/><test-case name="15499NISTXML-SV-IV-list-gDay-length-3-2 tokoe:valid" result="pass"/><test-case name="15500NISTXML-SV-IV-list-gDay-length-3-3 tokoe:valid" result="pass"/><test-case name="15501NISTXML-SV-IV-list-gDay-length-3-4 tokoe:valid" result="pass"/><test-case name="15502NISTXML-SV-IV-list-gDay-length-3-5 tokoe:valid" result="pass"/><test-case name="15503NISTSchema-SV-IV-list-gDay-length-4 tokoe:valid" result="pass"/><test-case name="15504NISTXML-SV-IV-list-gDay-length-4-1 tokoe:valid" result="pass"/><test-case name="15505NISTXML-SV-IV-list-gDay-length-4-2 tokoe:valid" result="pass"/><test-case name="15506NISTXML-SV-IV-list-gDay-length-4-3 tokoe:valid" result="pass"/><test-case name="15507NISTXML-SV-IV-list-gDay-length-4-4 tokoe:valid" result="pass"/><test-case name="15508NISTXML-SV-IV-list-gDay-length-4-5 tokoe:valid" result="pass"/><test-case name="15509NISTSchema-SV-IV-list-gDay-length-5 tokoe:valid" result="pass"/><test-case name="15510NISTXML-SV-IV-list-gDay-length-5-1 tokoe:valid" result="pass"/><test-case name="15511NISTXML-SV-IV-list-gDay-length-5-2 tokoe:valid" result="pass"/><test-case name="15512NISTXML-SV-IV-list-gDay-length-5-3 tokoe:valid" result="pass"/><test-case name="15513NISTXML-SV-IV-list-gDay-length-5-4 tokoe:valid" result="pass"/><test-case name="15514NISTXML-SV-IV-list-gDay-length-5-5 tokoe:valid" result="pass"/><test-case name="15515NISTSchema-SV-IV-list-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="15516NISTXML-SV-IV-list-gDay-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15517NISTXML-SV-IV-list-gDay-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15518NISTXML-SV-IV-list-gDay-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15519NISTXML-SV-IV-list-gDay-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15520NISTXML-SV-IV-list-gDay-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15521NISTSchema-SV-IV-list-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="15522NISTXML-SV-IV-list-gDay-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15523NISTXML-SV-IV-list-gDay-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15524NISTXML-SV-IV-list-gDay-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15525NISTXML-SV-IV-list-gDay-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15526NISTXML-SV-IV-list-gDay-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15527NISTSchema-SV-IV-list-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="15528NISTXML-SV-IV-list-gDay-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15529NISTXML-SV-IV-list-gDay-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15530NISTXML-SV-IV-list-gDay-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15531NISTXML-SV-IV-list-gDay-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15532NISTXML-SV-IV-list-gDay-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15533NISTSchema-SV-IV-list-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="15534NISTXML-SV-IV-list-gDay-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15535NISTXML-SV-IV-list-gDay-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15536NISTXML-SV-IV-list-gDay-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15537NISTXML-SV-IV-list-gDay-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15538NISTXML-SV-IV-list-gDay-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15539NISTSchema-SV-IV-list-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="15540NISTXML-SV-IV-list-gDay-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15541NISTXML-SV-IV-list-gDay-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15542NISTXML-SV-IV-list-gDay-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15543NISTXML-SV-IV-list-gDay-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15544NISTXML-SV-IV-list-gDay-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15545NISTSchema-SV-IV-list-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="15546NISTXML-SV-IV-list-gDay-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15547NISTXML-SV-IV-list-gDay-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15548NISTXML-SV-IV-list-gDay-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15549NISTXML-SV-IV-list-gDay-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15550NISTXML-SV-IV-list-gDay-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15551NISTSchema-SV-IV-list-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="15552NISTXML-SV-IV-list-gDay-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15553NISTXML-SV-IV-list-gDay-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15554NISTXML-SV-IV-list-gDay-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15555NISTXML-SV-IV-list-gDay-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15556NISTXML-SV-IV-list-gDay-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15557NISTSchema-SV-IV-list-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="15558NISTXML-SV-IV-list-gDay-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15559NISTXML-SV-IV-list-gDay-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15560NISTXML-SV-IV-list-gDay-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15561NISTXML-SV-IV-list-gDay-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15562NISTXML-SV-IV-list-gDay-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15563NISTSchema-SV-IV-list-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="15564NISTXML-SV-IV-list-gDay-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15565NISTXML-SV-IV-list-gDay-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15566NISTXML-SV-IV-list-gDay-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15567NISTXML-SV-IV-list-gDay-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15568NISTXML-SV-IV-list-gDay-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15569NISTSchema-SV-IV-list-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="15570NISTXML-SV-IV-list-gDay-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15571NISTXML-SV-IV-list-gDay-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15572NISTXML-SV-IV-list-gDay-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15573NISTXML-SV-IV-list-gDay-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15574NISTXML-SV-IV-list-gDay-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15575NISTSchema-SV-IV-list-gDay-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15576NISTXML-SV-IV-list-gDay-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15577NISTXML-SV-IV-list-gDay-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15578NISTXML-SV-IV-list-gDay-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15579NISTXML-SV-IV-list-gDay-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15580NISTXML-SV-IV-list-gDay-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15581NISTSchema-SV-IV-list-gMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="15582NISTXML-SV-IV-list-gMonth-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15583NISTXML-SV-IV-list-gMonth-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15584NISTXML-SV-IV-list-gMonth-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15585NISTXML-SV-IV-list-gMonth-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15586NISTXML-SV-IV-list-gMonth-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15587NISTSchema-SV-IV-list-gMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="15588NISTXML-SV-IV-list-gMonth-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15589NISTXML-SV-IV-list-gMonth-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15590NISTXML-SV-IV-list-gMonth-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15591NISTXML-SV-IV-list-gMonth-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15592NISTXML-SV-IV-list-gMonth-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15593NISTSchema-SV-IV-list-gMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="15594NISTXML-SV-IV-list-gMonth-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15595NISTXML-SV-IV-list-gMonth-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15596NISTXML-SV-IV-list-gMonth-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15597NISTXML-SV-IV-list-gMonth-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15598NISTXML-SV-IV-list-gMonth-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15599NISTSchema-SV-IV-list-gMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="15600NISTXML-SV-IV-list-gMonth-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15601NISTXML-SV-IV-list-gMonth-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15602NISTXML-SV-IV-list-gMonth-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15603NISTXML-SV-IV-list-gMonth-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15604NISTXML-SV-IV-list-gMonth-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15605NISTSchema-SV-IV-list-gMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="15606NISTXML-SV-IV-list-gMonth-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15607NISTXML-SV-IV-list-gMonth-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15608NISTXML-SV-IV-list-gMonth-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15609NISTXML-SV-IV-list-gMonth-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15610NISTXML-SV-IV-list-gMonth-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15611NISTSchema-SV-IV-list-gMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="15612NISTXML-SV-IV-list-gMonth-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15613NISTXML-SV-IV-list-gMonth-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15614NISTXML-SV-IV-list-gMonth-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15615NISTXML-SV-IV-list-gMonth-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15616NISTXML-SV-IV-list-gMonth-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15617NISTSchema-SV-IV-list-gMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="15618NISTXML-SV-IV-list-gMonth-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15619NISTXML-SV-IV-list-gMonth-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15620NISTXML-SV-IV-list-gMonth-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15621NISTXML-SV-IV-list-gMonth-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15622NISTXML-SV-IV-list-gMonth-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15623NISTSchema-SV-IV-list-gMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="15624NISTXML-SV-IV-list-gMonth-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15625NISTXML-SV-IV-list-gMonth-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15626NISTXML-SV-IV-list-gMonth-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15627NISTXML-SV-IV-list-gMonth-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15628NISTXML-SV-IV-list-gMonth-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15629NISTSchema-SV-IV-list-gMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="15630NISTXML-SV-IV-list-gMonth-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15631NISTXML-SV-IV-list-gMonth-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15632NISTXML-SV-IV-list-gMonth-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15633NISTXML-SV-IV-list-gMonth-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15634NISTXML-SV-IV-list-gMonth-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15635NISTSchema-SV-IV-list-gMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="15636NISTXML-SV-IV-list-gMonth-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15637NISTXML-SV-IV-list-gMonth-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15638NISTXML-SV-IV-list-gMonth-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15639NISTXML-SV-IV-list-gMonth-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15640NISTXML-SV-IV-list-gMonth-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15641NISTSchema-SV-IV-list-gMonth-length-1 tokoe:valid" result="pass"/><test-case name="15642NISTXML-SV-IV-list-gMonth-length-1-1 tokoe:valid" result="pass"/><test-case name="15643NISTXML-SV-IV-list-gMonth-length-1-2 tokoe:valid" result="pass"/><test-case name="15644NISTXML-SV-IV-list-gMonth-length-1-3 tokoe:valid" result="pass"/><test-case name="15645NISTXML-SV-IV-list-gMonth-length-1-4 tokoe:valid" result="pass"/><test-case name="15646NISTXML-SV-IV-list-gMonth-length-1-5 tokoe:valid" result="pass"/><test-case name="15647NISTSchema-SV-IV-list-gMonth-length-2 tokoe:valid" result="pass"/><test-case name="15648NISTXML-SV-IV-list-gMonth-length-2-1 tokoe:valid" result="pass"/><test-case name="15649NISTXML-SV-IV-list-gMonth-length-2-2 tokoe:valid" result="pass"/><test-case name="15650NISTXML-SV-IV-list-gMonth-length-2-3 tokoe:valid" result="pass"/><test-case name="15651NISTXML-SV-IV-list-gMonth-length-2-4 tokoe:valid" result="pass"/><test-case name="15652NISTXML-SV-IV-list-gMonth-length-2-5 tokoe:valid" result="pass"/><test-case name="15653NISTSchema-SV-IV-list-gMonth-length-3 tokoe:valid" result="pass"/><test-case name="15654NISTXML-SV-IV-list-gMonth-length-3-1 tokoe:valid" result="pass"/><test-case name="15655NISTXML-SV-IV-list-gMonth-length-3-2 tokoe:valid" result="pass"/><test-case name="15656NISTXML-SV-IV-list-gMonth-length-3-3 tokoe:valid" result="pass"/><test-case name="15657NISTXML-SV-IV-list-gMonth-length-3-4 tokoe:valid" result="pass"/><test-case name="15658NISTXML-SV-IV-list-gMonth-length-3-5 tokoe:valid" result="pass"/><test-case name="15659NISTSchema-SV-IV-list-gMonth-length-4 tokoe:valid" result="pass"/><test-case name="15660NISTXML-SV-IV-list-gMonth-length-4-1 tokoe:valid" result="pass"/><test-case name="15661NISTXML-SV-IV-list-gMonth-length-4-2 tokoe:valid" result="pass"/><test-case name="15662NISTXML-SV-IV-list-gMonth-length-4-3 tokoe:valid" result="pass"/><test-case name="15663NISTXML-SV-IV-list-gMonth-length-4-4 tokoe:valid" result="pass"/><test-case name="15664NISTXML-SV-IV-list-gMonth-length-4-5 tokoe:valid" result="pass"/><test-case name="15665NISTSchema-SV-IV-list-gMonth-length-5 tokoe:valid" result="pass"/><test-case name="15666NISTXML-SV-IV-list-gMonth-length-5-1 tokoe:valid" result="pass"/><test-case name="15667NISTXML-SV-IV-list-gMonth-length-5-2 tokoe:valid" result="pass"/><test-case name="15668NISTXML-SV-IV-list-gMonth-length-5-3 tokoe:valid" result="pass"/><test-case name="15669NISTXML-SV-IV-list-gMonth-length-5-4 tokoe:valid" result="pass"/><test-case name="15670NISTXML-SV-IV-list-gMonth-length-5-5 tokoe:valid" result="pass"/><test-case name="15671NISTSchema-SV-IV-list-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="15672NISTXML-SV-IV-list-gMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15673NISTXML-SV-IV-list-gMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15674NISTXML-SV-IV-list-gMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15675NISTXML-SV-IV-list-gMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15676NISTXML-SV-IV-list-gMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15677NISTSchema-SV-IV-list-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="15678NISTXML-SV-IV-list-gMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15679NISTXML-SV-IV-list-gMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15680NISTXML-SV-IV-list-gMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15681NISTXML-SV-IV-list-gMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15682NISTXML-SV-IV-list-gMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15683NISTSchema-SV-IV-list-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="15684NISTXML-SV-IV-list-gMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15685NISTXML-SV-IV-list-gMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15686NISTXML-SV-IV-list-gMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15687NISTXML-SV-IV-list-gMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15688NISTXML-SV-IV-list-gMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15689NISTSchema-SV-IV-list-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="15690NISTXML-SV-IV-list-gMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15691NISTXML-SV-IV-list-gMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15692NISTXML-SV-IV-list-gMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15693NISTXML-SV-IV-list-gMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15694NISTXML-SV-IV-list-gMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15695NISTSchema-SV-IV-list-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="15696NISTXML-SV-IV-list-gMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15697NISTXML-SV-IV-list-gMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15698NISTXML-SV-IV-list-gMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15699NISTXML-SV-IV-list-gMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15700NISTXML-SV-IV-list-gMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15701NISTSchema-SV-IV-list-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="15702NISTXML-SV-IV-list-gMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15703NISTXML-SV-IV-list-gMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15704NISTXML-SV-IV-list-gMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15705NISTXML-SV-IV-list-gMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15706NISTXML-SV-IV-list-gMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15707NISTSchema-SV-IV-list-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="15708NISTXML-SV-IV-list-gMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15709NISTXML-SV-IV-list-gMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15710NISTXML-SV-IV-list-gMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15711NISTXML-SV-IV-list-gMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15712NISTXML-SV-IV-list-gMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15713NISTSchema-SV-IV-list-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="15714NISTXML-SV-IV-list-gMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15715NISTXML-SV-IV-list-gMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15716NISTXML-SV-IV-list-gMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15717NISTXML-SV-IV-list-gMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15718NISTXML-SV-IV-list-gMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15719NISTSchema-SV-IV-list-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="15720NISTXML-SV-IV-list-gMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15721NISTXML-SV-IV-list-gMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15722NISTXML-SV-IV-list-gMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15723NISTXML-SV-IV-list-gMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15724NISTXML-SV-IV-list-gMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15725NISTSchema-SV-IV-list-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="15726NISTXML-SV-IV-list-gMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15727NISTXML-SV-IV-list-gMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15728NISTXML-SV-IV-list-gMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15729NISTXML-SV-IV-list-gMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15730NISTXML-SV-IV-list-gMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15731NISTSchema-SV-IV-list-gMonth-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15732NISTXML-SV-IV-list-gMonth-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15733NISTXML-SV-IV-list-gMonth-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15734NISTXML-SV-IV-list-gMonth-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15735NISTXML-SV-IV-list-gMonth-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15736NISTXML-SV-IV-list-gMonth-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15737NISTSchema-SV-IV-list-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="15738NISTXML-SV-IV-list-string-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15739NISTXML-SV-IV-list-string-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15740NISTXML-SV-IV-list-string-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15741NISTXML-SV-IV-list-string-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15742NISTXML-SV-IV-list-string-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15743NISTSchema-SV-IV-list-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="15744NISTXML-SV-IV-list-string-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15745NISTXML-SV-IV-list-string-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15746NISTXML-SV-IV-list-string-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15747NISTXML-SV-IV-list-string-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15748NISTXML-SV-IV-list-string-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15749NISTSchema-SV-IV-list-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="15750NISTXML-SV-IV-list-string-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15751NISTXML-SV-IV-list-string-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15752NISTXML-SV-IV-list-string-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15753NISTXML-SV-IV-list-string-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15754NISTXML-SV-IV-list-string-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15755NISTSchema-SV-IV-list-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="15756NISTXML-SV-IV-list-string-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15757NISTXML-SV-IV-list-string-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15758NISTXML-SV-IV-list-string-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15759NISTXML-SV-IV-list-string-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15760NISTXML-SV-IV-list-string-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15761NISTSchema-SV-IV-list-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="15762NISTXML-SV-IV-list-string-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15763NISTXML-SV-IV-list-string-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15764NISTXML-SV-IV-list-string-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15765NISTXML-SV-IV-list-string-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15766NISTXML-SV-IV-list-string-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15767NISTSchema-SV-IV-list-string-minLength-1 tokoe:valid" result="pass"/><test-case name="15768NISTXML-SV-IV-list-string-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15769NISTXML-SV-IV-list-string-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15770NISTXML-SV-IV-list-string-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15771NISTXML-SV-IV-list-string-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15772NISTXML-SV-IV-list-string-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15773NISTSchema-SV-IV-list-string-minLength-2 tokoe:valid" result="pass"/><test-case name="15774NISTXML-SV-IV-list-string-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15775NISTXML-SV-IV-list-string-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15776NISTXML-SV-IV-list-string-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15777NISTXML-SV-IV-list-string-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15778NISTXML-SV-IV-list-string-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15779NISTSchema-SV-IV-list-string-minLength-3 tokoe:valid" result="pass"/><test-case name="15780NISTXML-SV-IV-list-string-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15781NISTXML-SV-IV-list-string-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15782NISTXML-SV-IV-list-string-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15783NISTXML-SV-IV-list-string-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15784NISTXML-SV-IV-list-string-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15785NISTSchema-SV-IV-list-string-minLength-4 tokoe:valid" result="pass"/><test-case name="15786NISTXML-SV-IV-list-string-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15787NISTXML-SV-IV-list-string-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15788NISTXML-SV-IV-list-string-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15789NISTXML-SV-IV-list-string-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15790NISTXML-SV-IV-list-string-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15791NISTSchema-SV-IV-list-string-minLength-5 tokoe:valid" result="pass"/><test-case name="15792NISTXML-SV-IV-list-string-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15793NISTXML-SV-IV-list-string-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15794NISTXML-SV-IV-list-string-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15795NISTXML-SV-IV-list-string-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15796NISTXML-SV-IV-list-string-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15797NISTSchema-SV-IV-list-string-length-1 tokoe:valid" result="pass"/><test-case name="15798NISTXML-SV-IV-list-string-length-1-1 tokoe:valid" result="pass"/><test-case name="15799NISTXML-SV-IV-list-string-length-1-2 tokoe:valid" result="pass"/><test-case name="15800NISTXML-SV-IV-list-string-length-1-3 tokoe:valid" result="pass"/><test-case name="15801NISTXML-SV-IV-list-string-length-1-4 tokoe:valid" result="pass"/><test-case name="15802NISTXML-SV-IV-list-string-length-1-5 tokoe:valid" result="pass"/><test-case name="15803NISTSchema-SV-IV-list-string-length-2 tokoe:valid" result="pass"/><test-case name="15804NISTXML-SV-IV-list-string-length-2-1 tokoe:valid" result="pass"/><test-case name="15805NISTXML-SV-IV-list-string-length-2-2 tokoe:valid" result="pass"/><test-case name="15806NISTXML-SV-IV-list-string-length-2-3 tokoe:valid" result="pass"/><test-case name="15807NISTXML-SV-IV-list-string-length-2-4 tokoe:valid" result="pass"/><test-case name="15808NISTXML-SV-IV-list-string-length-2-5 tokoe:valid" result="pass"/><test-case name="15809NISTSchema-SV-IV-list-string-length-3 tokoe:valid" result="pass"/><test-case name="15810NISTXML-SV-IV-list-string-length-3-1 tokoe:valid" result="pass"/><test-case name="15811NISTXML-SV-IV-list-string-length-3-2 tokoe:valid" result="pass"/><test-case name="15812NISTXML-SV-IV-list-string-length-3-3 tokoe:valid" result="pass"/><test-case name="15813NISTXML-SV-IV-list-string-length-3-4 tokoe:valid" result="pass"/><test-case name="15814NISTXML-SV-IV-list-string-length-3-5 tokoe:valid" result="pass"/><test-case name="15815NISTSchema-SV-IV-list-string-length-4 tokoe:valid" result="pass"/><test-case name="15816NISTXML-SV-IV-list-string-length-4-1 tokoe:valid" result="pass"/><test-case name="15817NISTXML-SV-IV-list-string-length-4-2 tokoe:valid" result="pass"/><test-case name="15818NISTXML-SV-IV-list-string-length-4-3 tokoe:valid" result="pass"/><test-case name="15819NISTXML-SV-IV-list-string-length-4-4 tokoe:valid" result="pass"/><test-case name="15820NISTXML-SV-IV-list-string-length-4-5 tokoe:valid" result="pass"/><test-case name="15821NISTSchema-SV-IV-list-string-length-5 tokoe:valid" result="pass"/><test-case name="15822NISTXML-SV-IV-list-string-length-5-1 tokoe:valid" result="pass"/><test-case name="15823NISTXML-SV-IV-list-string-length-5-2 tokoe:valid" result="pass"/><test-case name="15824NISTXML-SV-IV-list-string-length-5-3 tokoe:valid" result="pass"/><test-case name="15825NISTXML-SV-IV-list-string-length-5-4 tokoe:valid" result="pass"/><test-case name="15826NISTXML-SV-IV-list-string-length-5-5 tokoe:valid" result="pass"/><test-case name="15827NISTSchema-SV-IV-list-string-pattern-1 tokoe:valid" result="pass"/><test-case name="15828NISTXML-SV-IV-list-string-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15829NISTXML-SV-IV-list-string-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15830NISTXML-SV-IV-list-string-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15831NISTXML-SV-IV-list-string-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15832NISTXML-SV-IV-list-string-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15833NISTSchema-SV-IV-list-string-pattern-2 tokoe:valid" result="pass"/><test-case name="15834NISTXML-SV-IV-list-string-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15835NISTXML-SV-IV-list-string-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15836NISTXML-SV-IV-list-string-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15837NISTXML-SV-IV-list-string-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15838NISTXML-SV-IV-list-string-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15839NISTSchema-SV-IV-list-string-pattern-3 tokoe:valid" result="pass"/><test-case name="15840NISTXML-SV-IV-list-string-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15841NISTXML-SV-IV-list-string-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15842NISTXML-SV-IV-list-string-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15843NISTXML-SV-IV-list-string-pattern-3-4 tokoe:valid" result="pass"/><test-case name="15844NISTXML-SV-IV-list-string-pattern-3-5 tokoe:valid" result="pass"/><test-case name="15845NISTSchema-SV-IV-list-string-pattern-4 tokoe:valid" result="pass"/><test-case name="15846NISTXML-SV-IV-list-string-pattern-4-1 tokoe:valid" result="pass"/><test-case name="15847NISTXML-SV-IV-list-string-pattern-4-2 tokoe:valid" result="pass"/><test-case name="15848NISTXML-SV-IV-list-string-pattern-4-3 tokoe:valid" result="pass"/><test-case name="15849NISTXML-SV-IV-list-string-pattern-4-4 tokoe:valid" result="pass"/><test-case name="15850NISTXML-SV-IV-list-string-pattern-4-5 tokoe:valid" result="pass"/><test-case name="15851NISTSchema-SV-IV-list-string-pattern-5 tokoe:valid" result="pass"/><test-case name="15852NISTXML-SV-IV-list-string-pattern-5-1 tokoe:valid" result="pass"/><test-case name="15853NISTXML-SV-IV-list-string-pattern-5-2 tokoe:valid" result="pass"/><test-case name="15854NISTXML-SV-IV-list-string-pattern-5-3 tokoe:valid" result="pass"/><test-case name="15855NISTXML-SV-IV-list-string-pattern-5-4 tokoe:valid" result="pass"/><test-case name="15856NISTXML-SV-IV-list-string-pattern-5-5 tokoe:valid" result="pass"/><test-case name="15857NISTSchema-SV-IV-list-string-enumeration-1 tokoe:valid" result="pass"/><test-case name="15858NISTXML-SV-IV-list-string-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="15859NISTXML-SV-IV-list-string-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="15860NISTXML-SV-IV-list-string-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="15861NISTXML-SV-IV-list-string-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="15862NISTXML-SV-IV-list-string-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="15863NISTSchema-SV-IV-list-string-enumeration-2 tokoe:valid" result="pass"/><test-case name="15864NISTXML-SV-IV-list-string-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="15865NISTXML-SV-IV-list-string-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="15866NISTXML-SV-IV-list-string-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="15867NISTXML-SV-IV-list-string-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="15868NISTXML-SV-IV-list-string-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="15869NISTSchema-SV-IV-list-string-enumeration-3 tokoe:valid" result="pass"/><test-case name="15870NISTXML-SV-IV-list-string-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="15871NISTXML-SV-IV-list-string-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="15872NISTXML-SV-IV-list-string-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="15873NISTXML-SV-IV-list-string-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="15874NISTXML-SV-IV-list-string-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="15875NISTSchema-SV-IV-list-string-enumeration-4 tokoe:valid" result="pass"/><test-case name="15876NISTXML-SV-IV-list-string-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="15877NISTXML-SV-IV-list-string-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="15878NISTXML-SV-IV-list-string-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="15879NISTXML-SV-IV-list-string-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="15880NISTXML-SV-IV-list-string-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="15881NISTSchema-SV-IV-list-string-enumeration-5 tokoe:valid" result="pass"/><test-case name="15882NISTXML-SV-IV-list-string-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="15883NISTXML-SV-IV-list-string-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="15884NISTXML-SV-IV-list-string-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="15885NISTXML-SV-IV-list-string-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="15886NISTXML-SV-IV-list-string-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="15887NISTSchema-SV-IV-list-string-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="15888NISTXML-SV-IV-list-string-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="15889NISTXML-SV-IV-list-string-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="15890NISTXML-SV-IV-list-string-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="15891NISTXML-SV-IV-list-string-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="15892NISTXML-SV-IV-list-string-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="15893NISTSchema-SV-IV-list-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="15894NISTXML-SV-IV-list-normalizedString-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="15895NISTXML-SV-IV-list-normalizedString-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="15896NISTXML-SV-IV-list-normalizedString-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="15897NISTXML-SV-IV-list-normalizedString-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="15898NISTXML-SV-IV-list-normalizedString-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="15899NISTSchema-SV-IV-list-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="15900NISTXML-SV-IV-list-normalizedString-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="15901NISTXML-SV-IV-list-normalizedString-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="15902NISTXML-SV-IV-list-normalizedString-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="15903NISTXML-SV-IV-list-normalizedString-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="15904NISTXML-SV-IV-list-normalizedString-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="15905NISTSchema-SV-IV-list-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="15906NISTXML-SV-IV-list-normalizedString-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="15907NISTXML-SV-IV-list-normalizedString-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="15908NISTXML-SV-IV-list-normalizedString-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="15909NISTXML-SV-IV-list-normalizedString-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="15910NISTXML-SV-IV-list-normalizedString-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="15911NISTSchema-SV-IV-list-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="15912NISTXML-SV-IV-list-normalizedString-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="15913NISTXML-SV-IV-list-normalizedString-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="15914NISTXML-SV-IV-list-normalizedString-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="15915NISTXML-SV-IV-list-normalizedString-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="15916NISTXML-SV-IV-list-normalizedString-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="15917NISTSchema-SV-IV-list-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="15918NISTXML-SV-IV-list-normalizedString-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="15919NISTXML-SV-IV-list-normalizedString-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="15920NISTXML-SV-IV-list-normalizedString-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="15921NISTXML-SV-IV-list-normalizedString-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="15922NISTXML-SV-IV-list-normalizedString-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="15923NISTSchema-SV-IV-list-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="15924NISTXML-SV-IV-list-normalizedString-minLength-1-1 tokoe:valid" result="pass"/><test-case name="15925NISTXML-SV-IV-list-normalizedString-minLength-1-2 tokoe:valid" result="pass"/><test-case name="15926NISTXML-SV-IV-list-normalizedString-minLength-1-3 tokoe:valid" result="pass"/><test-case name="15927NISTXML-SV-IV-list-normalizedString-minLength-1-4 tokoe:valid" result="pass"/><test-case name="15928NISTXML-SV-IV-list-normalizedString-minLength-1-5 tokoe:valid" result="pass"/><test-case name="15929NISTSchema-SV-IV-list-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="15930NISTXML-SV-IV-list-normalizedString-minLength-2-1 tokoe:valid" result="pass"/><test-case name="15931NISTXML-SV-IV-list-normalizedString-minLength-2-2 tokoe:valid" result="pass"/><test-case name="15932NISTXML-SV-IV-list-normalizedString-minLength-2-3 tokoe:valid" result="pass"/><test-case name="15933NISTXML-SV-IV-list-normalizedString-minLength-2-4 tokoe:valid" result="pass"/><test-case name="15934NISTXML-SV-IV-list-normalizedString-minLength-2-5 tokoe:valid" result="pass"/><test-case name="15935NISTSchema-SV-IV-list-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="15936NISTXML-SV-IV-list-normalizedString-minLength-3-1 tokoe:valid" result="pass"/><test-case name="15937NISTXML-SV-IV-list-normalizedString-minLength-3-2 tokoe:valid" result="pass"/><test-case name="15938NISTXML-SV-IV-list-normalizedString-minLength-3-3 tokoe:valid" result="pass"/><test-case name="15939NISTXML-SV-IV-list-normalizedString-minLength-3-4 tokoe:valid" result="pass"/><test-case name="15940NISTXML-SV-IV-list-normalizedString-minLength-3-5 tokoe:valid" result="pass"/><test-case name="15941NISTSchema-SV-IV-list-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="15942NISTXML-SV-IV-list-normalizedString-minLength-4-1 tokoe:valid" result="pass"/><test-case name="15943NISTXML-SV-IV-list-normalizedString-minLength-4-2 tokoe:valid" result="pass"/><test-case name="15944NISTXML-SV-IV-list-normalizedString-minLength-4-3 tokoe:valid" result="pass"/><test-case name="15945NISTXML-SV-IV-list-normalizedString-minLength-4-4 tokoe:valid" result="pass"/><test-case name="15946NISTXML-SV-IV-list-normalizedString-minLength-4-5 tokoe:valid" result="pass"/><test-case name="15947NISTSchema-SV-IV-list-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="15948NISTXML-SV-IV-list-normalizedString-minLength-5-1 tokoe:valid" result="pass"/><test-case name="15949NISTXML-SV-IV-list-normalizedString-minLength-5-2 tokoe:valid" result="pass"/><test-case name="15950NISTXML-SV-IV-list-normalizedString-minLength-5-3 tokoe:valid" result="pass"/><test-case name="15951NISTXML-SV-IV-list-normalizedString-minLength-5-4 tokoe:valid" result="pass"/><test-case name="15952NISTXML-SV-IV-list-normalizedString-minLength-5-5 tokoe:valid" result="pass"/><test-case name="15953NISTSchema-SV-IV-list-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="15954NISTXML-SV-IV-list-normalizedString-length-1-1 tokoe:valid" result="pass"/><test-case name="15955NISTXML-SV-IV-list-normalizedString-length-1-2 tokoe:valid" result="pass"/><test-case name="15956NISTXML-SV-IV-list-normalizedString-length-1-3 tokoe:valid" result="pass"/><test-case name="15957NISTXML-SV-IV-list-normalizedString-length-1-4 tokoe:valid" result="pass"/><test-case name="15958NISTXML-SV-IV-list-normalizedString-length-1-5 tokoe:valid" result="pass"/><test-case name="15959NISTSchema-SV-IV-list-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="15960NISTXML-SV-IV-list-normalizedString-length-2-1 tokoe:valid" result="pass"/><test-case name="15961NISTXML-SV-IV-list-normalizedString-length-2-2 tokoe:valid" result="pass"/><test-case name="15962NISTXML-SV-IV-list-normalizedString-length-2-3 tokoe:valid" result="pass"/><test-case name="15963NISTXML-SV-IV-list-normalizedString-length-2-4 tokoe:valid" result="pass"/><test-case name="15964NISTXML-SV-IV-list-normalizedString-length-2-5 tokoe:valid" result="pass"/><test-case name="15965NISTSchema-SV-IV-list-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="15966NISTXML-SV-IV-list-normalizedString-length-3-1 tokoe:valid" result="pass"/><test-case name="15967NISTXML-SV-IV-list-normalizedString-length-3-2 tokoe:valid" result="pass"/><test-case name="15968NISTXML-SV-IV-list-normalizedString-length-3-3 tokoe:valid" result="pass"/><test-case name="15969NISTXML-SV-IV-list-normalizedString-length-3-4 tokoe:valid" result="pass"/><test-case name="15970NISTXML-SV-IV-list-normalizedString-length-3-5 tokoe:valid" result="pass"/><test-case name="15971NISTSchema-SV-IV-list-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="15972NISTXML-SV-IV-list-normalizedString-length-4-1 tokoe:valid" result="pass"/><test-case name="15973NISTXML-SV-IV-list-normalizedString-length-4-2 tokoe:valid" result="pass"/><test-case name="15974NISTXML-SV-IV-list-normalizedString-length-4-3 tokoe:valid" result="pass"/><test-case name="15975NISTXML-SV-IV-list-normalizedString-length-4-4 tokoe:valid" result="pass"/><test-case name="15976NISTXML-SV-IV-list-normalizedString-length-4-5 tokoe:valid" result="pass"/><test-case name="15977NISTSchema-SV-IV-list-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="15978NISTXML-SV-IV-list-normalizedString-length-5-1 tokoe:valid" result="pass"/><test-case name="15979NISTXML-SV-IV-list-normalizedString-length-5-2 tokoe:valid" result="pass"/><test-case name="15980NISTXML-SV-IV-list-normalizedString-length-5-3 tokoe:valid" result="pass"/><test-case name="15981NISTXML-SV-IV-list-normalizedString-length-5-4 tokoe:valid" result="pass"/><test-case name="15982NISTXML-SV-IV-list-normalizedString-length-5-5 tokoe:valid" result="pass"/><test-case name="15983NISTSchema-SV-IV-list-normalizedString-pattern-1 tokoe:valid" result="pass"/><test-case name="15984NISTXML-SV-IV-list-normalizedString-pattern-1-1 tokoe:valid" result="pass"/><test-case name="15985NISTXML-SV-IV-list-normalizedString-pattern-1-2 tokoe:valid" result="pass"/><test-case name="15986NISTXML-SV-IV-list-normalizedString-pattern-1-3 tokoe:valid" result="pass"/><test-case name="15987NISTXML-SV-IV-list-normalizedString-pattern-1-4 tokoe:valid" result="pass"/><test-case name="15988NISTXML-SV-IV-list-normalizedString-pattern-1-5 tokoe:valid" result="pass"/><test-case name="15989NISTSchema-SV-IV-list-normalizedString-pattern-2 tokoe:valid" result="pass"/><test-case name="15990NISTXML-SV-IV-list-normalizedString-pattern-2-1 tokoe:valid" result="pass"/><test-case name="15991NISTXML-SV-IV-list-normalizedString-pattern-2-2 tokoe:valid" result="pass"/><test-case name="15992NISTXML-SV-IV-list-normalizedString-pattern-2-3 tokoe:valid" result="pass"/><test-case name="15993NISTXML-SV-IV-list-normalizedString-pattern-2-4 tokoe:valid" result="pass"/><test-case name="15994NISTXML-SV-IV-list-normalizedString-pattern-2-5 tokoe:valid" result="pass"/><test-case name="15995NISTSchema-SV-IV-list-normalizedString-pattern-3 tokoe:valid" result="pass"/><test-case name="15996NISTXML-SV-IV-list-normalizedString-pattern-3-1 tokoe:valid" result="pass"/><test-case name="15997NISTXML-SV-IV-list-normalizedString-pattern-3-2 tokoe:valid" result="pass"/><test-case name="15998NISTXML-SV-IV-list-normalizedString-pattern-3-3 tokoe:valid" result="pass"/><test-case name="15999NISTXML-SV-IV-list-normalizedString-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16000NISTXML-SV-IV-list-normalizedString-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16001NISTSchema-SV-IV-list-normalizedString-pattern-4 tokoe:valid" result="pass"/><test-case name="16002NISTXML-SV-IV-list-normalizedString-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16003NISTXML-SV-IV-list-normalizedString-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16004NISTXML-SV-IV-list-normalizedString-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16005NISTXML-SV-IV-list-normalizedString-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16006NISTXML-SV-IV-list-normalizedString-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16007NISTSchema-SV-IV-list-normalizedString-pattern-5 tokoe:valid" result="pass"/><test-case name="16008NISTXML-SV-IV-list-normalizedString-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16009NISTXML-SV-IV-list-normalizedString-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16010NISTXML-SV-IV-list-normalizedString-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16011NISTXML-SV-IV-list-normalizedString-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16012NISTXML-SV-IV-list-normalizedString-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16013NISTSchema-SV-IV-list-normalizedString-enumeration-1 tokoe:valid" result="pass"/><test-case name="16014NISTXML-SV-IV-list-normalizedString-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16015NISTXML-SV-IV-list-normalizedString-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16016NISTXML-SV-IV-list-normalizedString-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16017NISTXML-SV-IV-list-normalizedString-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16018NISTXML-SV-IV-list-normalizedString-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16019NISTSchema-SV-IV-list-normalizedString-enumeration-2 tokoe:valid" result="pass"/><test-case name="16020NISTXML-SV-IV-list-normalizedString-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16021NISTXML-SV-IV-list-normalizedString-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16022NISTXML-SV-IV-list-normalizedString-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16023NISTXML-SV-IV-list-normalizedString-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16024NISTXML-SV-IV-list-normalizedString-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16025NISTSchema-SV-IV-list-normalizedString-enumeration-3 tokoe:valid" result="pass"/><test-case name="16026NISTXML-SV-IV-list-normalizedString-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16027NISTXML-SV-IV-list-normalizedString-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16028NISTXML-SV-IV-list-normalizedString-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16029NISTXML-SV-IV-list-normalizedString-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16030NISTXML-SV-IV-list-normalizedString-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16031NISTSchema-SV-IV-list-normalizedString-enumeration-4 tokoe:valid" result="pass"/><test-case name="16032NISTXML-SV-IV-list-normalizedString-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16033NISTXML-SV-IV-list-normalizedString-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16034NISTXML-SV-IV-list-normalizedString-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16035NISTXML-SV-IV-list-normalizedString-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16036NISTXML-SV-IV-list-normalizedString-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16037NISTSchema-SV-IV-list-normalizedString-enumeration-5 tokoe:valid" result="pass"/><test-case name="16038NISTXML-SV-IV-list-normalizedString-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16039NISTXML-SV-IV-list-normalizedString-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16040NISTXML-SV-IV-list-normalizedString-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16041NISTXML-SV-IV-list-normalizedString-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16042NISTXML-SV-IV-list-normalizedString-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16043NISTSchema-SV-IV-list-normalizedString-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16044NISTXML-SV-IV-list-normalizedString-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16045NISTXML-SV-IV-list-normalizedString-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16046NISTXML-SV-IV-list-normalizedString-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16047NISTXML-SV-IV-list-normalizedString-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16048NISTXML-SV-IV-list-normalizedString-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16049NISTSchema-SV-IV-list-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="16050NISTXML-SV-IV-list-token-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16051NISTXML-SV-IV-list-token-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16052NISTXML-SV-IV-list-token-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16053NISTXML-SV-IV-list-token-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16054NISTXML-SV-IV-list-token-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16055NISTSchema-SV-IV-list-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="16056NISTXML-SV-IV-list-token-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16057NISTXML-SV-IV-list-token-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16058NISTXML-SV-IV-list-token-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16059NISTXML-SV-IV-list-token-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16060NISTXML-SV-IV-list-token-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16061NISTSchema-SV-IV-list-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="16062NISTXML-SV-IV-list-token-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16063NISTXML-SV-IV-list-token-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16064NISTXML-SV-IV-list-token-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16065NISTXML-SV-IV-list-token-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16066NISTXML-SV-IV-list-token-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16067NISTSchema-SV-IV-list-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="16068NISTXML-SV-IV-list-token-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16069NISTXML-SV-IV-list-token-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16070NISTXML-SV-IV-list-token-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16071NISTXML-SV-IV-list-token-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16072NISTXML-SV-IV-list-token-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16073NISTSchema-SV-IV-list-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="16074NISTXML-SV-IV-list-token-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16075NISTXML-SV-IV-list-token-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16076NISTXML-SV-IV-list-token-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16077NISTXML-SV-IV-list-token-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16078NISTXML-SV-IV-list-token-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16079NISTSchema-SV-IV-list-token-minLength-1 tokoe:valid" result="pass"/><test-case name="16080NISTXML-SV-IV-list-token-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16081NISTXML-SV-IV-list-token-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16082NISTXML-SV-IV-list-token-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16083NISTXML-SV-IV-list-token-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16084NISTXML-SV-IV-list-token-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16085NISTSchema-SV-IV-list-token-minLength-2 tokoe:valid" result="pass"/><test-case name="16086NISTXML-SV-IV-list-token-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16087NISTXML-SV-IV-list-token-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16088NISTXML-SV-IV-list-token-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16089NISTXML-SV-IV-list-token-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16090NISTXML-SV-IV-list-token-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16091NISTSchema-SV-IV-list-token-minLength-3 tokoe:valid" result="pass"/><test-case name="16092NISTXML-SV-IV-list-token-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16093NISTXML-SV-IV-list-token-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16094NISTXML-SV-IV-list-token-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16095NISTXML-SV-IV-list-token-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16096NISTXML-SV-IV-list-token-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16097NISTSchema-SV-IV-list-token-minLength-4 tokoe:valid" result="pass"/><test-case name="16098NISTXML-SV-IV-list-token-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16099NISTXML-SV-IV-list-token-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16100NISTXML-SV-IV-list-token-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16101NISTXML-SV-IV-list-token-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16102NISTXML-SV-IV-list-token-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16103NISTSchema-SV-IV-list-token-minLength-5 tokoe:valid" result="pass"/><test-case name="16104NISTXML-SV-IV-list-token-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16105NISTXML-SV-IV-list-token-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16106NISTXML-SV-IV-list-token-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16107NISTXML-SV-IV-list-token-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16108NISTXML-SV-IV-list-token-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16109NISTSchema-SV-IV-list-token-length-1 tokoe:valid" result="pass"/><test-case name="16110NISTXML-SV-IV-list-token-length-1-1 tokoe:valid" result="pass"/><test-case name="16111NISTXML-SV-IV-list-token-length-1-2 tokoe:valid" result="pass"/><test-case name="16112NISTXML-SV-IV-list-token-length-1-3 tokoe:valid" result="pass"/><test-case name="16113NISTXML-SV-IV-list-token-length-1-4 tokoe:valid" result="pass"/><test-case name="16114NISTXML-SV-IV-list-token-length-1-5 tokoe:valid" result="pass"/><test-case name="16115NISTSchema-SV-IV-list-token-length-2 tokoe:valid" result="pass"/><test-case name="16116NISTXML-SV-IV-list-token-length-2-1 tokoe:valid" result="pass"/><test-case name="16117NISTXML-SV-IV-list-token-length-2-2 tokoe:valid" result="pass"/><test-case name="16118NISTXML-SV-IV-list-token-length-2-3 tokoe:valid" result="pass"/><test-case name="16119NISTXML-SV-IV-list-token-length-2-4 tokoe:valid" result="pass"/><test-case name="16120NISTXML-SV-IV-list-token-length-2-5 tokoe:valid" result="pass"/><test-case name="16121NISTSchema-SV-IV-list-token-length-3 tokoe:valid" result="pass"/><test-case name="16122NISTXML-SV-IV-list-token-length-3-1 tokoe:valid" result="pass"/><test-case name="16123NISTXML-SV-IV-list-token-length-3-2 tokoe:valid" result="pass"/><test-case name="16124NISTXML-SV-IV-list-token-length-3-3 tokoe:valid" result="pass"/><test-case name="16125NISTXML-SV-IV-list-token-length-3-4 tokoe:valid" result="pass"/><test-case name="16126NISTXML-SV-IV-list-token-length-3-5 tokoe:valid" result="pass"/><test-case name="16127NISTSchema-SV-IV-list-token-length-4 tokoe:valid" result="pass"/><test-case name="16128NISTXML-SV-IV-list-token-length-4-1 tokoe:valid" result="pass"/><test-case name="16129NISTXML-SV-IV-list-token-length-4-2 tokoe:valid" result="pass"/><test-case name="16130NISTXML-SV-IV-list-token-length-4-3 tokoe:valid" result="pass"/><test-case name="16131NISTXML-SV-IV-list-token-length-4-4 tokoe:valid" result="pass"/><test-case name="16132NISTXML-SV-IV-list-token-length-4-5 tokoe:valid" result="pass"/><test-case name="16133NISTSchema-SV-IV-list-token-length-5 tokoe:valid" result="pass"/><test-case name="16134NISTXML-SV-IV-list-token-length-5-1 tokoe:valid" result="pass"/><test-case name="16135NISTXML-SV-IV-list-token-length-5-2 tokoe:valid" result="pass"/><test-case name="16136NISTXML-SV-IV-list-token-length-5-3 tokoe:valid" result="pass"/><test-case name="16137NISTXML-SV-IV-list-token-length-5-4 tokoe:valid" result="pass"/><test-case name="16138NISTXML-SV-IV-list-token-length-5-5 tokoe:valid" result="pass"/><test-case name="16139NISTSchema-SV-IV-list-token-pattern-1 tokoe:valid" result="pass"/><test-case name="16140NISTXML-SV-IV-list-token-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16141NISTXML-SV-IV-list-token-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16142NISTXML-SV-IV-list-token-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16143NISTXML-SV-IV-list-token-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16144NISTXML-SV-IV-list-token-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16145NISTSchema-SV-IV-list-token-pattern-2 tokoe:valid" result="pass"/><test-case name="16146NISTXML-SV-IV-list-token-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16147NISTXML-SV-IV-list-token-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16148NISTXML-SV-IV-list-token-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16149NISTXML-SV-IV-list-token-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16150NISTXML-SV-IV-list-token-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16151NISTSchema-SV-IV-list-token-pattern-3 tokoe:valid" result="pass"/><test-case name="16152NISTXML-SV-IV-list-token-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16153NISTXML-SV-IV-list-token-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16154NISTXML-SV-IV-list-token-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16155NISTXML-SV-IV-list-token-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16156NISTXML-SV-IV-list-token-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16157NISTSchema-SV-IV-list-token-pattern-4 tokoe:valid" result="pass"/><test-case name="16158NISTXML-SV-IV-list-token-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16159NISTXML-SV-IV-list-token-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16160NISTXML-SV-IV-list-token-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16161NISTXML-SV-IV-list-token-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16162NISTXML-SV-IV-list-token-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16163NISTSchema-SV-IV-list-token-pattern-5 tokoe:valid" result="pass"/><test-case name="16164NISTXML-SV-IV-list-token-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16165NISTXML-SV-IV-list-token-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16166NISTXML-SV-IV-list-token-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16167NISTXML-SV-IV-list-token-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16168NISTXML-SV-IV-list-token-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16169NISTSchema-SV-IV-list-token-enumeration-1 tokoe:valid" result="pass"/><test-case name="16170NISTXML-SV-IV-list-token-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16171NISTXML-SV-IV-list-token-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16172NISTXML-SV-IV-list-token-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16173NISTXML-SV-IV-list-token-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16174NISTXML-SV-IV-list-token-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16175NISTSchema-SV-IV-list-token-enumeration-2 tokoe:valid" result="pass"/><test-case name="16176NISTXML-SV-IV-list-token-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16177NISTXML-SV-IV-list-token-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16178NISTXML-SV-IV-list-token-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16179NISTXML-SV-IV-list-token-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16180NISTXML-SV-IV-list-token-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16181NISTSchema-SV-IV-list-token-enumeration-3 tokoe:valid" result="pass"/><test-case name="16182NISTXML-SV-IV-list-token-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16183NISTXML-SV-IV-list-token-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16184NISTXML-SV-IV-list-token-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16185NISTXML-SV-IV-list-token-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16186NISTXML-SV-IV-list-token-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16187NISTSchema-SV-IV-list-token-enumeration-4 tokoe:valid" result="pass"/><test-case name="16188NISTXML-SV-IV-list-token-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16189NISTXML-SV-IV-list-token-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16190NISTXML-SV-IV-list-token-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16191NISTXML-SV-IV-list-token-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16192NISTXML-SV-IV-list-token-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16193NISTSchema-SV-IV-list-token-enumeration-5 tokoe:valid" result="pass"/><test-case name="16194NISTXML-SV-IV-list-token-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16195NISTXML-SV-IV-list-token-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16196NISTXML-SV-IV-list-token-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16197NISTXML-SV-IV-list-token-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16198NISTXML-SV-IV-list-token-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16199NISTSchema-SV-IV-list-token-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16200NISTXML-SV-IV-list-token-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16201NISTXML-SV-IV-list-token-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16202NISTXML-SV-IV-list-token-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16203NISTXML-SV-IV-list-token-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16204NISTXML-SV-IV-list-token-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16205NISTSchema-SV-IV-list-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="16206NISTXML-SV-IV-list-Name-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16207NISTXML-SV-IV-list-Name-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16208NISTXML-SV-IV-list-Name-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16209NISTXML-SV-IV-list-Name-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16210NISTXML-SV-IV-list-Name-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16211NISTSchema-SV-IV-list-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="16212NISTXML-SV-IV-list-Name-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16213NISTXML-SV-IV-list-Name-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16214NISTXML-SV-IV-list-Name-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16215NISTXML-SV-IV-list-Name-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16216NISTXML-SV-IV-list-Name-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16217NISTSchema-SV-IV-list-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="16218NISTXML-SV-IV-list-Name-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16219NISTXML-SV-IV-list-Name-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16220NISTXML-SV-IV-list-Name-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16221NISTXML-SV-IV-list-Name-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16222NISTXML-SV-IV-list-Name-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16223NISTSchema-SV-IV-list-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="16224NISTXML-SV-IV-list-Name-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16225NISTXML-SV-IV-list-Name-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16226NISTXML-SV-IV-list-Name-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16227NISTXML-SV-IV-list-Name-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16228NISTXML-SV-IV-list-Name-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16229NISTSchema-SV-IV-list-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="16230NISTXML-SV-IV-list-Name-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16231NISTXML-SV-IV-list-Name-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16232NISTXML-SV-IV-list-Name-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16233NISTXML-SV-IV-list-Name-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16234NISTXML-SV-IV-list-Name-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16235NISTSchema-SV-IV-list-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="16236NISTXML-SV-IV-list-Name-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16237NISTXML-SV-IV-list-Name-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16238NISTXML-SV-IV-list-Name-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16239NISTXML-SV-IV-list-Name-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16240NISTXML-SV-IV-list-Name-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16241NISTSchema-SV-IV-list-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="16242NISTXML-SV-IV-list-Name-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16243NISTXML-SV-IV-list-Name-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16244NISTXML-SV-IV-list-Name-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16245NISTXML-SV-IV-list-Name-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16246NISTXML-SV-IV-list-Name-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16247NISTSchema-SV-IV-list-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="16248NISTXML-SV-IV-list-Name-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16249NISTXML-SV-IV-list-Name-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16250NISTXML-SV-IV-list-Name-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16251NISTXML-SV-IV-list-Name-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16252NISTXML-SV-IV-list-Name-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16253NISTSchema-SV-IV-list-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="16254NISTXML-SV-IV-list-Name-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16255NISTXML-SV-IV-list-Name-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16256NISTXML-SV-IV-list-Name-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16257NISTXML-SV-IV-list-Name-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16258NISTXML-SV-IV-list-Name-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16259NISTSchema-SV-IV-list-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="16260NISTXML-SV-IV-list-Name-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16261NISTXML-SV-IV-list-Name-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16262NISTXML-SV-IV-list-Name-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16263NISTXML-SV-IV-list-Name-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16264NISTXML-SV-IV-list-Name-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16265NISTSchema-SV-IV-list-Name-length-1 tokoe:valid" result="pass"/><test-case name="16266NISTXML-SV-IV-list-Name-length-1-1 tokoe:valid" result="pass"/><test-case name="16267NISTXML-SV-IV-list-Name-length-1-2 tokoe:valid" result="pass"/><test-case name="16268NISTXML-SV-IV-list-Name-length-1-3 tokoe:valid" result="pass"/><test-case name="16269NISTXML-SV-IV-list-Name-length-1-4 tokoe:valid" result="pass"/><test-case name="16270NISTXML-SV-IV-list-Name-length-1-5 tokoe:valid" result="pass"/><test-case name="16271NISTSchema-SV-IV-list-Name-length-2 tokoe:valid" result="pass"/><test-case name="16272NISTXML-SV-IV-list-Name-length-2-1 tokoe:valid" result="pass"/><test-case name="16273NISTXML-SV-IV-list-Name-length-2-2 tokoe:valid" result="pass"/><test-case name="16274NISTXML-SV-IV-list-Name-length-2-3 tokoe:valid" result="pass"/><test-case name="16275NISTXML-SV-IV-list-Name-length-2-4 tokoe:valid" result="pass"/><test-case name="16276NISTXML-SV-IV-list-Name-length-2-5 tokoe:valid" result="pass"/><test-case name="16277NISTSchema-SV-IV-list-Name-length-3 tokoe:valid" result="pass"/><test-case name="16278NISTXML-SV-IV-list-Name-length-3-1 tokoe:valid" result="pass"/><test-case name="16279NISTXML-SV-IV-list-Name-length-3-2 tokoe:valid" result="pass"/><test-case name="16280NISTXML-SV-IV-list-Name-length-3-3 tokoe:valid" result="pass"/><test-case name="16281NISTXML-SV-IV-list-Name-length-3-4 tokoe:valid" result="pass"/><test-case name="16282NISTXML-SV-IV-list-Name-length-3-5 tokoe:valid" result="pass"/><test-case name="16283NISTSchema-SV-IV-list-Name-length-4 tokoe:valid" result="pass"/><test-case name="16284NISTXML-SV-IV-list-Name-length-4-1 tokoe:valid" result="pass"/><test-case name="16285NISTXML-SV-IV-list-Name-length-4-2 tokoe:valid" result="pass"/><test-case name="16286NISTXML-SV-IV-list-Name-length-4-3 tokoe:valid" result="pass"/><test-case name="16287NISTXML-SV-IV-list-Name-length-4-4 tokoe:valid" result="pass"/><test-case name="16288NISTXML-SV-IV-list-Name-length-4-5 tokoe:valid" result="pass"/><test-case name="16289NISTSchema-SV-IV-list-Name-length-5 tokoe:valid" result="pass"/><test-case name="16290NISTXML-SV-IV-list-Name-length-5-1 tokoe:valid" result="pass"/><test-case name="16291NISTXML-SV-IV-list-Name-length-5-2 tokoe:valid" result="pass"/><test-case name="16292NISTXML-SV-IV-list-Name-length-5-3 tokoe:valid" result="pass"/><test-case name="16293NISTXML-SV-IV-list-Name-length-5-4 tokoe:valid" result="pass"/><test-case name="16294NISTXML-SV-IV-list-Name-length-5-5 tokoe:valid" result="pass"/><test-case name="16295NISTSchema-SV-IV-list-Name-pattern-1 tokoe:valid" result="pass"/><test-case name="16296NISTXML-SV-IV-list-Name-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16297NISTXML-SV-IV-list-Name-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16298NISTXML-SV-IV-list-Name-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16299NISTXML-SV-IV-list-Name-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16300NISTXML-SV-IV-list-Name-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16301NISTSchema-SV-IV-list-Name-pattern-2 tokoe:valid" result="pass"/><test-case name="16302NISTXML-SV-IV-list-Name-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16303NISTXML-SV-IV-list-Name-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16304NISTXML-SV-IV-list-Name-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16305NISTXML-SV-IV-list-Name-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16306NISTXML-SV-IV-list-Name-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16307NISTSchema-SV-IV-list-Name-pattern-3 tokoe:valid" result="pass"/><test-case name="16308NISTXML-SV-IV-list-Name-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16309NISTXML-SV-IV-list-Name-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16310NISTXML-SV-IV-list-Name-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16311NISTXML-SV-IV-list-Name-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16312NISTXML-SV-IV-list-Name-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16313NISTSchema-SV-IV-list-Name-pattern-4 tokoe:valid" result="pass"/><test-case name="16314NISTXML-SV-IV-list-Name-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16315NISTXML-SV-IV-list-Name-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16316NISTXML-SV-IV-list-Name-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16317NISTXML-SV-IV-list-Name-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16318NISTXML-SV-IV-list-Name-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16319NISTSchema-SV-IV-list-Name-pattern-5 tokoe:valid" result="pass"/><test-case name="16320NISTXML-SV-IV-list-Name-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16321NISTXML-SV-IV-list-Name-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16322NISTXML-SV-IV-list-Name-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16323NISTXML-SV-IV-list-Name-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16324NISTXML-SV-IV-list-Name-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16325NISTSchema-SV-IV-list-Name-enumeration-1 tokoe:valid" result="pass"/><test-case name="16326NISTXML-SV-IV-list-Name-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16327NISTXML-SV-IV-list-Name-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16328NISTXML-SV-IV-list-Name-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16329NISTXML-SV-IV-list-Name-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16330NISTXML-SV-IV-list-Name-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16331NISTSchema-SV-IV-list-Name-enumeration-2 tokoe:valid" result="pass"/><test-case name="16332NISTXML-SV-IV-list-Name-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16333NISTXML-SV-IV-list-Name-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16334NISTXML-SV-IV-list-Name-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16335NISTXML-SV-IV-list-Name-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16336NISTXML-SV-IV-list-Name-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16337NISTSchema-SV-IV-list-Name-enumeration-3 tokoe:valid" result="pass"/><test-case name="16338NISTXML-SV-IV-list-Name-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16339NISTXML-SV-IV-list-Name-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16340NISTXML-SV-IV-list-Name-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16341NISTXML-SV-IV-list-Name-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16342NISTXML-SV-IV-list-Name-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16343NISTSchema-SV-IV-list-Name-enumeration-4 tokoe:valid" result="pass"/><test-case name="16344NISTXML-SV-IV-list-Name-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16345NISTXML-SV-IV-list-Name-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16346NISTXML-SV-IV-list-Name-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16347NISTXML-SV-IV-list-Name-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16348NISTXML-SV-IV-list-Name-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16349NISTSchema-SV-IV-list-Name-enumeration-5 tokoe:valid" result="pass"/><test-case name="16350NISTXML-SV-IV-list-Name-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16351NISTXML-SV-IV-list-Name-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16352NISTXML-SV-IV-list-Name-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16353NISTXML-SV-IV-list-Name-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16354NISTXML-SV-IV-list-Name-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16355NISTSchema-SV-IV-list-Name-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16356NISTXML-SV-IV-list-Name-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16357NISTXML-SV-IV-list-Name-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16358NISTXML-SV-IV-list-Name-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16359NISTXML-SV-IV-list-Name-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16360NISTXML-SV-IV-list-Name-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16361NISTSchema-SV-IV-list-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="16362NISTXML-SV-IV-list-NMTOKEN-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16363NISTXML-SV-IV-list-NMTOKEN-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16364NISTXML-SV-IV-list-NMTOKEN-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16365NISTXML-SV-IV-list-NMTOKEN-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16366NISTXML-SV-IV-list-NMTOKEN-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16367NISTSchema-SV-IV-list-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="16368NISTXML-SV-IV-list-NMTOKEN-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16369NISTXML-SV-IV-list-NMTOKEN-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16370NISTXML-SV-IV-list-NMTOKEN-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16371NISTXML-SV-IV-list-NMTOKEN-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16372NISTXML-SV-IV-list-NMTOKEN-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16373NISTSchema-SV-IV-list-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="16374NISTXML-SV-IV-list-NMTOKEN-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16375NISTXML-SV-IV-list-NMTOKEN-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16376NISTXML-SV-IV-list-NMTOKEN-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16377NISTXML-SV-IV-list-NMTOKEN-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16378NISTXML-SV-IV-list-NMTOKEN-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16379NISTSchema-SV-IV-list-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="16380NISTXML-SV-IV-list-NMTOKEN-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16381NISTXML-SV-IV-list-NMTOKEN-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16382NISTXML-SV-IV-list-NMTOKEN-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16383NISTXML-SV-IV-list-NMTOKEN-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16384NISTXML-SV-IV-list-NMTOKEN-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16385NISTSchema-SV-IV-list-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="16386NISTXML-SV-IV-list-NMTOKEN-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16387NISTXML-SV-IV-list-NMTOKEN-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16388NISTXML-SV-IV-list-NMTOKEN-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16389NISTXML-SV-IV-list-NMTOKEN-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16390NISTXML-SV-IV-list-NMTOKEN-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16391NISTSchema-SV-IV-list-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="16392NISTXML-SV-IV-list-NMTOKEN-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16393NISTXML-SV-IV-list-NMTOKEN-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16394NISTXML-SV-IV-list-NMTOKEN-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16395NISTXML-SV-IV-list-NMTOKEN-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16396NISTXML-SV-IV-list-NMTOKEN-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16397NISTSchema-SV-IV-list-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="16398NISTXML-SV-IV-list-NMTOKEN-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16399NISTXML-SV-IV-list-NMTOKEN-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16400NISTXML-SV-IV-list-NMTOKEN-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16401NISTXML-SV-IV-list-NMTOKEN-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16402NISTXML-SV-IV-list-NMTOKEN-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16403NISTSchema-SV-IV-list-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="16404NISTXML-SV-IV-list-NMTOKEN-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16405NISTXML-SV-IV-list-NMTOKEN-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16406NISTXML-SV-IV-list-NMTOKEN-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16407NISTXML-SV-IV-list-NMTOKEN-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16408NISTXML-SV-IV-list-NMTOKEN-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16409NISTSchema-SV-IV-list-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="16410NISTXML-SV-IV-list-NMTOKEN-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16411NISTXML-SV-IV-list-NMTOKEN-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16412NISTXML-SV-IV-list-NMTOKEN-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16413NISTXML-SV-IV-list-NMTOKEN-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16414NISTXML-SV-IV-list-NMTOKEN-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16415NISTSchema-SV-IV-list-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="16416NISTXML-SV-IV-list-NMTOKEN-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16417NISTXML-SV-IV-list-NMTOKEN-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16418NISTXML-SV-IV-list-NMTOKEN-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16419NISTXML-SV-IV-list-NMTOKEN-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16420NISTXML-SV-IV-list-NMTOKEN-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16421NISTSchema-SV-IV-list-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="16422NISTXML-SV-IV-list-NMTOKEN-length-1-1 tokoe:valid" result="pass"/><test-case name="16423NISTXML-SV-IV-list-NMTOKEN-length-1-2 tokoe:valid" result="pass"/><test-case name="16424NISTXML-SV-IV-list-NMTOKEN-length-1-3 tokoe:valid" result="pass"/><test-case name="16425NISTXML-SV-IV-list-NMTOKEN-length-1-4 tokoe:valid" result="pass"/><test-case name="16426NISTXML-SV-IV-list-NMTOKEN-length-1-5 tokoe:valid" result="pass"/><test-case name="16427NISTSchema-SV-IV-list-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="16428NISTXML-SV-IV-list-NMTOKEN-length-2-1 tokoe:valid" result="pass"/><test-case name="16429NISTXML-SV-IV-list-NMTOKEN-length-2-2 tokoe:valid" result="pass"/><test-case name="16430NISTXML-SV-IV-list-NMTOKEN-length-2-3 tokoe:valid" result="pass"/><test-case name="16431NISTXML-SV-IV-list-NMTOKEN-length-2-4 tokoe:valid" result="pass"/><test-case name="16432NISTXML-SV-IV-list-NMTOKEN-length-2-5 tokoe:valid" result="pass"/><test-case name="16433NISTSchema-SV-IV-list-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="16434NISTXML-SV-IV-list-NMTOKEN-length-3-1 tokoe:valid" result="pass"/><test-case name="16435NISTXML-SV-IV-list-NMTOKEN-length-3-2 tokoe:valid" result="pass"/><test-case name="16436NISTXML-SV-IV-list-NMTOKEN-length-3-3 tokoe:valid" result="pass"/><test-case name="16437NISTXML-SV-IV-list-NMTOKEN-length-3-4 tokoe:valid" result="pass"/><test-case name="16438NISTXML-SV-IV-list-NMTOKEN-length-3-5 tokoe:valid" result="pass"/><test-case name="16439NISTSchema-SV-IV-list-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="16440NISTXML-SV-IV-list-NMTOKEN-length-4-1 tokoe:valid" result="pass"/><test-case name="16441NISTXML-SV-IV-list-NMTOKEN-length-4-2 tokoe:valid" result="pass"/><test-case name="16442NISTXML-SV-IV-list-NMTOKEN-length-4-3 tokoe:valid" result="pass"/><test-case name="16443NISTXML-SV-IV-list-NMTOKEN-length-4-4 tokoe:valid" result="pass"/><test-case name="16444NISTXML-SV-IV-list-NMTOKEN-length-4-5 tokoe:valid" result="pass"/><test-case name="16445NISTSchema-SV-IV-list-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="16446NISTXML-SV-IV-list-NMTOKEN-length-5-1 tokoe:valid" result="pass"/><test-case name="16447NISTXML-SV-IV-list-NMTOKEN-length-5-2 tokoe:valid" result="pass"/><test-case name="16448NISTXML-SV-IV-list-NMTOKEN-length-5-3 tokoe:valid" result="pass"/><test-case name="16449NISTXML-SV-IV-list-NMTOKEN-length-5-4 tokoe:valid" result="pass"/><test-case name="16450NISTXML-SV-IV-list-NMTOKEN-length-5-5 tokoe:valid" result="pass"/><test-case name="16451NISTSchema-SV-IV-list-NMTOKEN-pattern-1 tokoe:valid" result="pass"/><test-case name="16452NISTXML-SV-IV-list-NMTOKEN-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16453NISTXML-SV-IV-list-NMTOKEN-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16454NISTXML-SV-IV-list-NMTOKEN-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16455NISTXML-SV-IV-list-NMTOKEN-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16456NISTXML-SV-IV-list-NMTOKEN-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16457NISTSchema-SV-IV-list-NMTOKEN-pattern-2 tokoe:valid" result="pass"/><test-case name="16458NISTXML-SV-IV-list-NMTOKEN-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16459NISTXML-SV-IV-list-NMTOKEN-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16460NISTXML-SV-IV-list-NMTOKEN-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16461NISTXML-SV-IV-list-NMTOKEN-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16462NISTXML-SV-IV-list-NMTOKEN-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16463NISTSchema-SV-IV-list-NMTOKEN-pattern-3 tokoe:valid" result="pass"/><test-case name="16464NISTXML-SV-IV-list-NMTOKEN-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16465NISTXML-SV-IV-list-NMTOKEN-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16466NISTXML-SV-IV-list-NMTOKEN-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16467NISTXML-SV-IV-list-NMTOKEN-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16468NISTXML-SV-IV-list-NMTOKEN-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16469NISTSchema-SV-IV-list-NMTOKEN-pattern-4 tokoe:valid" result="pass"/><test-case name="16470NISTXML-SV-IV-list-NMTOKEN-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16471NISTXML-SV-IV-list-NMTOKEN-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16472NISTXML-SV-IV-list-NMTOKEN-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16473NISTXML-SV-IV-list-NMTOKEN-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16474NISTXML-SV-IV-list-NMTOKEN-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16475NISTSchema-SV-IV-list-NMTOKEN-pattern-5 tokoe:valid" result="pass"/><test-case name="16476NISTXML-SV-IV-list-NMTOKEN-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16477NISTXML-SV-IV-list-NMTOKEN-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16478NISTXML-SV-IV-list-NMTOKEN-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16479NISTXML-SV-IV-list-NMTOKEN-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16480NISTXML-SV-IV-list-NMTOKEN-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16481NISTSchema-SV-IV-list-NMTOKEN-enumeration-1 tokoe:valid" result="pass"/><test-case name="16482NISTXML-SV-IV-list-NMTOKEN-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16483NISTXML-SV-IV-list-NMTOKEN-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16484NISTXML-SV-IV-list-NMTOKEN-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16485NISTXML-SV-IV-list-NMTOKEN-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16486NISTXML-SV-IV-list-NMTOKEN-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16487NISTSchema-SV-IV-list-NMTOKEN-enumeration-2 tokoe:valid" result="pass"/><test-case name="16488NISTXML-SV-IV-list-NMTOKEN-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16489NISTXML-SV-IV-list-NMTOKEN-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16490NISTXML-SV-IV-list-NMTOKEN-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16491NISTXML-SV-IV-list-NMTOKEN-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16492NISTXML-SV-IV-list-NMTOKEN-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16493NISTSchema-SV-IV-list-NMTOKEN-enumeration-3 tokoe:valid" result="pass"/><test-case name="16494NISTXML-SV-IV-list-NMTOKEN-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16495NISTXML-SV-IV-list-NMTOKEN-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16496NISTXML-SV-IV-list-NMTOKEN-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16497NISTXML-SV-IV-list-NMTOKEN-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16498NISTXML-SV-IV-list-NMTOKEN-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16499NISTSchema-SV-IV-list-NMTOKEN-enumeration-4 tokoe:valid" result="pass"/><test-case name="16500NISTXML-SV-IV-list-NMTOKEN-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16501NISTXML-SV-IV-list-NMTOKEN-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16502NISTXML-SV-IV-list-NMTOKEN-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16503NISTXML-SV-IV-list-NMTOKEN-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16504NISTXML-SV-IV-list-NMTOKEN-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16505NISTSchema-SV-IV-list-NMTOKEN-enumeration-5 tokoe:valid" result="pass"/><test-case name="16506NISTXML-SV-IV-list-NMTOKEN-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16507NISTXML-SV-IV-list-NMTOKEN-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16508NISTXML-SV-IV-list-NMTOKEN-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16509NISTXML-SV-IV-list-NMTOKEN-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16510NISTXML-SV-IV-list-NMTOKEN-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16511NISTSchema-SV-IV-list-NMTOKEN-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16512NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16513NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16514NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16515NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16516NISTXML-SV-IV-list-NMTOKEN-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16517NISTSchema-SV-IV-list-NMTOKENS-maxLength-1 tokoe:valid" result="pass"/><test-case name="16518NISTXML-SV-IV-list-NMTOKENS-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16519NISTXML-SV-IV-list-NMTOKENS-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16520NISTXML-SV-IV-list-NMTOKENS-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16521NISTXML-SV-IV-list-NMTOKENS-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16522NISTXML-SV-IV-list-NMTOKENS-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16523NISTSchema-SV-IV-list-NMTOKENS-maxLength-2 tokoe:valid" result="pass"/><test-case name="16524NISTXML-SV-IV-list-NMTOKENS-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16525NISTXML-SV-IV-list-NMTOKENS-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16526NISTXML-SV-IV-list-NMTOKENS-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16527NISTXML-SV-IV-list-NMTOKENS-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16528NISTXML-SV-IV-list-NMTOKENS-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16529NISTSchema-SV-IV-list-NMTOKENS-maxLength-3 tokoe:valid" result="pass"/><test-case name="16530NISTXML-SV-IV-list-NMTOKENS-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16531NISTXML-SV-IV-list-NMTOKENS-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16532NISTXML-SV-IV-list-NMTOKENS-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16533NISTXML-SV-IV-list-NMTOKENS-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16534NISTXML-SV-IV-list-NMTOKENS-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16535NISTSchema-SV-IV-list-NMTOKENS-maxLength-4 tokoe:valid" result="pass"/><test-case name="16536NISTXML-SV-IV-list-NMTOKENS-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16537NISTXML-SV-IV-list-NMTOKENS-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16538NISTXML-SV-IV-list-NMTOKENS-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16539NISTXML-SV-IV-list-NMTOKENS-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16540NISTXML-SV-IV-list-NMTOKENS-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16541NISTSchema-SV-IV-list-NMTOKENS-maxLength-5 tokoe:valid" result="pass"/><test-case name="16542NISTXML-SV-IV-list-NMTOKENS-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16543NISTXML-SV-IV-list-NMTOKENS-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16544NISTXML-SV-IV-list-NMTOKENS-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16545NISTXML-SV-IV-list-NMTOKENS-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16546NISTXML-SV-IV-list-NMTOKENS-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16547NISTSchema-SV-IV-list-NMTOKENS-minLength-1 tokoe:valid" result="pass"/><test-case name="16548NISTXML-SV-IV-list-NMTOKENS-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16549NISTXML-SV-IV-list-NMTOKENS-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16550NISTXML-SV-IV-list-NMTOKENS-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16551NISTXML-SV-IV-list-NMTOKENS-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16552NISTXML-SV-IV-list-NMTOKENS-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16553NISTSchema-SV-IV-list-NMTOKENS-minLength-2 tokoe:valid" result="pass"/><test-case name="16554NISTXML-SV-IV-list-NMTOKENS-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16555NISTXML-SV-IV-list-NMTOKENS-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16556NISTXML-SV-IV-list-NMTOKENS-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16557NISTXML-SV-IV-list-NMTOKENS-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16558NISTXML-SV-IV-list-NMTOKENS-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16559NISTSchema-SV-IV-list-NMTOKENS-minLength-3 tokoe:valid" result="pass"/><test-case name="16560NISTXML-SV-IV-list-NMTOKENS-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16561NISTXML-SV-IV-list-NMTOKENS-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16562NISTXML-SV-IV-list-NMTOKENS-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16563NISTXML-SV-IV-list-NMTOKENS-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16564NISTXML-SV-IV-list-NMTOKENS-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16565NISTSchema-SV-IV-list-NMTOKENS-minLength-4 tokoe:valid" result="pass"/><test-case name="16566NISTXML-SV-IV-list-NMTOKENS-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16567NISTXML-SV-IV-list-NMTOKENS-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16568NISTXML-SV-IV-list-NMTOKENS-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16569NISTXML-SV-IV-list-NMTOKENS-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16570NISTXML-SV-IV-list-NMTOKENS-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16571NISTSchema-SV-IV-list-NMTOKENS-minLength-5 tokoe:valid" result="pass"/><test-case name="16572NISTXML-SV-IV-list-NMTOKENS-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16573NISTXML-SV-IV-list-NMTOKENS-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16574NISTXML-SV-IV-list-NMTOKENS-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16575NISTXML-SV-IV-list-NMTOKENS-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16576NISTXML-SV-IV-list-NMTOKENS-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16577NISTSchema-SV-IV-list-NMTOKENS-length-1 tokoe:valid" result="pass"/><test-case name="16578NISTXML-SV-IV-list-NMTOKENS-length-1-1 tokoe:valid" result="pass"/><test-case name="16579NISTXML-SV-IV-list-NMTOKENS-length-1-2 tokoe:valid" result="pass"/><test-case name="16580NISTXML-SV-IV-list-NMTOKENS-length-1-3 tokoe:valid" result="pass"/><test-case name="16581NISTXML-SV-IV-list-NMTOKENS-length-1-4 tokoe:valid" result="pass"/><test-case name="16582NISTXML-SV-IV-list-NMTOKENS-length-1-5 tokoe:valid" result="pass"/><test-case name="16583NISTSchema-SV-IV-list-NMTOKENS-length-2 tokoe:valid" result="pass"/><test-case name="16584NISTXML-SV-IV-list-NMTOKENS-length-2-1 tokoe:valid" result="pass"/><test-case name="16585NISTXML-SV-IV-list-NMTOKENS-length-2-2 tokoe:valid" result="pass"/><test-case name="16586NISTXML-SV-IV-list-NMTOKENS-length-2-3 tokoe:valid" result="pass"/><test-case name="16587NISTXML-SV-IV-list-NMTOKENS-length-2-4 tokoe:valid" result="pass"/><test-case name="16588NISTXML-SV-IV-list-NMTOKENS-length-2-5 tokoe:valid" result="pass"/><test-case name="16589NISTSchema-SV-IV-list-NMTOKENS-length-3 tokoe:valid" result="pass"/><test-case name="16590NISTXML-SV-IV-list-NMTOKENS-length-3-1 tokoe:valid" result="pass"/><test-case name="16591NISTXML-SV-IV-list-NMTOKENS-length-3-2 tokoe:valid" result="pass"/><test-case name="16592NISTXML-SV-IV-list-NMTOKENS-length-3-3 tokoe:valid" result="pass"/><test-case name="16593NISTXML-SV-IV-list-NMTOKENS-length-3-4 tokoe:valid" result="pass"/><test-case name="16594NISTXML-SV-IV-list-NMTOKENS-length-3-5 tokoe:valid" result="pass"/><test-case name="16595NISTSchema-SV-IV-list-NMTOKENS-length-4 tokoe:valid" result="pass"/><test-case name="16596NISTXML-SV-IV-list-NMTOKENS-length-4-1 tokoe:valid" result="pass"/><test-case name="16597NISTXML-SV-IV-list-NMTOKENS-length-4-2 tokoe:valid" result="pass"/><test-case name="16598NISTXML-SV-IV-list-NMTOKENS-length-4-3 tokoe:valid" result="pass"/><test-case name="16599NISTXML-SV-IV-list-NMTOKENS-length-4-4 tokoe:valid" result="pass"/><test-case name="16600NISTXML-SV-IV-list-NMTOKENS-length-4-5 tokoe:valid" result="pass"/><test-case name="16601NISTSchema-SV-IV-list-NMTOKENS-length-5 tokoe:valid" result="pass"/><test-case name="16602NISTXML-SV-IV-list-NMTOKENS-length-5-1 tokoe:valid" result="pass"/><test-case name="16603NISTXML-SV-IV-list-NMTOKENS-length-5-2 tokoe:valid" result="pass"/><test-case name="16604NISTXML-SV-IV-list-NMTOKENS-length-5-3 tokoe:valid" result="pass"/><test-case name="16605NISTXML-SV-IV-list-NMTOKENS-length-5-4 tokoe:valid" result="pass"/><test-case name="16606NISTXML-SV-IV-list-NMTOKENS-length-5-5 tokoe:valid" result="pass"/><test-case name="16607NISTSchema-SV-IV-list-NMTOKENS-pattern-1 tokoe:valid" result="pass"/><test-case name="16608NISTXML-SV-IV-list-NMTOKENS-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16609NISTXML-SV-IV-list-NMTOKENS-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16610NISTXML-SV-IV-list-NMTOKENS-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16611NISTXML-SV-IV-list-NMTOKENS-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16612NISTXML-SV-IV-list-NMTOKENS-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16613NISTSchema-SV-IV-list-NMTOKENS-pattern-2 tokoe:valid" result="pass"/><test-case name="16614NISTXML-SV-IV-list-NMTOKENS-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16615NISTXML-SV-IV-list-NMTOKENS-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16616NISTXML-SV-IV-list-NMTOKENS-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16617NISTXML-SV-IV-list-NMTOKENS-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16618NISTXML-SV-IV-list-NMTOKENS-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16619NISTSchema-SV-IV-list-NMTOKENS-pattern-3 tokoe:valid" result="pass"/><test-case name="16620NISTXML-SV-IV-list-NMTOKENS-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16621NISTXML-SV-IV-list-NMTOKENS-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16622NISTXML-SV-IV-list-NMTOKENS-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16623NISTXML-SV-IV-list-NMTOKENS-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16624NISTXML-SV-IV-list-NMTOKENS-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16625NISTSchema-SV-IV-list-NMTOKENS-pattern-4 tokoe:valid" result="pass"/><test-case name="16626NISTXML-SV-IV-list-NMTOKENS-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16627NISTXML-SV-IV-list-NMTOKENS-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16628NISTXML-SV-IV-list-NMTOKENS-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16629NISTXML-SV-IV-list-NMTOKENS-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16630NISTXML-SV-IV-list-NMTOKENS-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16631NISTSchema-SV-IV-list-NMTOKENS-pattern-5 tokoe:valid" result="pass"/><test-case name="16632NISTXML-SV-IV-list-NMTOKENS-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16633NISTXML-SV-IV-list-NMTOKENS-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16634NISTXML-SV-IV-list-NMTOKENS-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16635NISTXML-SV-IV-list-NMTOKENS-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16636NISTXML-SV-IV-list-NMTOKENS-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16637NISTSchema-SV-IV-list-NMTOKENS-enumeration-1 tokoe:valid" result="pass"/><test-case name="16638NISTXML-SV-IV-list-NMTOKENS-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16639NISTXML-SV-IV-list-NMTOKENS-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16640NISTXML-SV-IV-list-NMTOKENS-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16641NISTXML-SV-IV-list-NMTOKENS-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16642NISTXML-SV-IV-list-NMTOKENS-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16643NISTSchema-SV-IV-list-NMTOKENS-enumeration-2 tokoe:valid" result="pass"/><test-case name="16644NISTXML-SV-IV-list-NMTOKENS-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16645NISTXML-SV-IV-list-NMTOKENS-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16646NISTXML-SV-IV-list-NMTOKENS-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16647NISTXML-SV-IV-list-NMTOKENS-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16648NISTXML-SV-IV-list-NMTOKENS-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16649NISTSchema-SV-IV-list-NMTOKENS-enumeration-3 tokoe:valid" result="pass"/><test-case name="16650NISTXML-SV-IV-list-NMTOKENS-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16651NISTXML-SV-IV-list-NMTOKENS-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16652NISTXML-SV-IV-list-NMTOKENS-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16653NISTXML-SV-IV-list-NMTOKENS-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16654NISTXML-SV-IV-list-NMTOKENS-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16655NISTSchema-SV-IV-list-NMTOKENS-enumeration-4 tokoe:valid" result="pass"/><test-case name="16656NISTXML-SV-IV-list-NMTOKENS-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16657NISTXML-SV-IV-list-NMTOKENS-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16658NISTXML-SV-IV-list-NMTOKENS-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16659NISTXML-SV-IV-list-NMTOKENS-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16660NISTXML-SV-IV-list-NMTOKENS-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16661NISTSchema-SV-IV-list-NMTOKENS-enumeration-5 tokoe:valid" result="pass"/><test-case name="16662NISTXML-SV-IV-list-NMTOKENS-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16663NISTXML-SV-IV-list-NMTOKENS-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16664NISTXML-SV-IV-list-NMTOKENS-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16665NISTXML-SV-IV-list-NMTOKENS-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16666NISTXML-SV-IV-list-NMTOKENS-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16667NISTSchema-SV-IV-list-NMTOKENS-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16668NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16669NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16670NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16671NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16672NISTXML-SV-IV-list-NMTOKENS-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16673NISTSchema-SV-IV-list-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="16674NISTXML-SV-IV-list-NCName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16675NISTXML-SV-IV-list-NCName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16676NISTXML-SV-IV-list-NCName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16677NISTXML-SV-IV-list-NCName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16678NISTXML-SV-IV-list-NCName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16679NISTSchema-SV-IV-list-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="16680NISTXML-SV-IV-list-NCName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16681NISTXML-SV-IV-list-NCName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16682NISTXML-SV-IV-list-NCName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16683NISTXML-SV-IV-list-NCName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16684NISTXML-SV-IV-list-NCName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16685NISTSchema-SV-IV-list-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="16686NISTXML-SV-IV-list-NCName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16687NISTXML-SV-IV-list-NCName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16688NISTXML-SV-IV-list-NCName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16689NISTXML-SV-IV-list-NCName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16690NISTXML-SV-IV-list-NCName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16691NISTSchema-SV-IV-list-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="16692NISTXML-SV-IV-list-NCName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16693NISTXML-SV-IV-list-NCName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16694NISTXML-SV-IV-list-NCName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16695NISTXML-SV-IV-list-NCName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16696NISTXML-SV-IV-list-NCName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16697NISTSchema-SV-IV-list-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="16698NISTXML-SV-IV-list-NCName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16699NISTXML-SV-IV-list-NCName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16700NISTXML-SV-IV-list-NCName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16701NISTXML-SV-IV-list-NCName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16702NISTXML-SV-IV-list-NCName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16703NISTSchema-SV-IV-list-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="16704NISTXML-SV-IV-list-NCName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16705NISTXML-SV-IV-list-NCName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16706NISTXML-SV-IV-list-NCName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16707NISTXML-SV-IV-list-NCName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16708NISTXML-SV-IV-list-NCName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16709NISTSchema-SV-IV-list-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="16710NISTXML-SV-IV-list-NCName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16711NISTXML-SV-IV-list-NCName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16712NISTXML-SV-IV-list-NCName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16713NISTXML-SV-IV-list-NCName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16714NISTXML-SV-IV-list-NCName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16715NISTSchema-SV-IV-list-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="16716NISTXML-SV-IV-list-NCName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16717NISTXML-SV-IV-list-NCName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16718NISTXML-SV-IV-list-NCName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16719NISTXML-SV-IV-list-NCName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16720NISTXML-SV-IV-list-NCName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16721NISTSchema-SV-IV-list-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="16722NISTXML-SV-IV-list-NCName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16723NISTXML-SV-IV-list-NCName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16724NISTXML-SV-IV-list-NCName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16725NISTXML-SV-IV-list-NCName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16726NISTXML-SV-IV-list-NCName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16727NISTSchema-SV-IV-list-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="16728NISTXML-SV-IV-list-NCName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16729NISTXML-SV-IV-list-NCName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16730NISTXML-SV-IV-list-NCName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16731NISTXML-SV-IV-list-NCName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16732NISTXML-SV-IV-list-NCName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16733NISTSchema-SV-IV-list-NCName-length-1 tokoe:valid" result="pass"/><test-case name="16734NISTXML-SV-IV-list-NCName-length-1-1 tokoe:valid" result="pass"/><test-case name="16735NISTXML-SV-IV-list-NCName-length-1-2 tokoe:valid" result="pass"/><test-case name="16736NISTXML-SV-IV-list-NCName-length-1-3 tokoe:valid" result="pass"/><test-case name="16737NISTXML-SV-IV-list-NCName-length-1-4 tokoe:valid" result="pass"/><test-case name="16738NISTXML-SV-IV-list-NCName-length-1-5 tokoe:valid" result="pass"/><test-case name="16739NISTSchema-SV-IV-list-NCName-length-2 tokoe:valid" result="pass"/><test-case name="16740NISTXML-SV-IV-list-NCName-length-2-1 tokoe:valid" result="pass"/><test-case name="16741NISTXML-SV-IV-list-NCName-length-2-2 tokoe:valid" result="pass"/><test-case name="16742NISTXML-SV-IV-list-NCName-length-2-3 tokoe:valid" result="pass"/><test-case name="16743NISTXML-SV-IV-list-NCName-length-2-4 tokoe:valid" result="pass"/><test-case name="16744NISTXML-SV-IV-list-NCName-length-2-5 tokoe:valid" result="pass"/><test-case name="16745NISTSchema-SV-IV-list-NCName-length-3 tokoe:valid" result="pass"/><test-case name="16746NISTXML-SV-IV-list-NCName-length-3-1 tokoe:valid" result="pass"/><test-case name="16747NISTXML-SV-IV-list-NCName-length-3-2 tokoe:valid" result="pass"/><test-case name="16748NISTXML-SV-IV-list-NCName-length-3-3 tokoe:valid" result="pass"/><test-case name="16749NISTXML-SV-IV-list-NCName-length-3-4 tokoe:valid" result="pass"/><test-case name="16750NISTXML-SV-IV-list-NCName-length-3-5 tokoe:valid" result="pass"/><test-case name="16751NISTSchema-SV-IV-list-NCName-length-4 tokoe:valid" result="pass"/><test-case name="16752NISTXML-SV-IV-list-NCName-length-4-1 tokoe:valid" result="pass"/><test-case name="16753NISTXML-SV-IV-list-NCName-length-4-2 tokoe:valid" result="pass"/><test-case name="16754NISTXML-SV-IV-list-NCName-length-4-3 tokoe:valid" result="pass"/><test-case name="16755NISTXML-SV-IV-list-NCName-length-4-4 tokoe:valid" result="pass"/><test-case name="16756NISTXML-SV-IV-list-NCName-length-4-5 tokoe:valid" result="pass"/><test-case name="16757NISTSchema-SV-IV-list-NCName-length-5 tokoe:valid" result="pass"/><test-case name="16758NISTXML-SV-IV-list-NCName-length-5-1 tokoe:valid" result="pass"/><test-case name="16759NISTXML-SV-IV-list-NCName-length-5-2 tokoe:valid" result="pass"/><test-case name="16760NISTXML-SV-IV-list-NCName-length-5-3 tokoe:valid" result="pass"/><test-case name="16761NISTXML-SV-IV-list-NCName-length-5-4 tokoe:valid" result="pass"/><test-case name="16762NISTXML-SV-IV-list-NCName-length-5-5 tokoe:valid" result="pass"/><test-case name="16763NISTSchema-SV-IV-list-NCName-pattern-1 tokoe:valid" result="pass"/><test-case name="16764NISTXML-SV-IV-list-NCName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16765NISTXML-SV-IV-list-NCName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16766NISTXML-SV-IV-list-NCName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16767NISTXML-SV-IV-list-NCName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16768NISTXML-SV-IV-list-NCName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16769NISTSchema-SV-IV-list-NCName-pattern-2 tokoe:valid" result="pass"/><test-case name="16770NISTXML-SV-IV-list-NCName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16771NISTXML-SV-IV-list-NCName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16772NISTXML-SV-IV-list-NCName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16773NISTXML-SV-IV-list-NCName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16774NISTXML-SV-IV-list-NCName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16775NISTSchema-SV-IV-list-NCName-pattern-3 tokoe:valid" result="pass"/><test-case name="16776NISTXML-SV-IV-list-NCName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16777NISTXML-SV-IV-list-NCName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16778NISTXML-SV-IV-list-NCName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16779NISTXML-SV-IV-list-NCName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16780NISTXML-SV-IV-list-NCName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16781NISTSchema-SV-IV-list-NCName-pattern-4 tokoe:valid" result="pass"/><test-case name="16782NISTXML-SV-IV-list-NCName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16783NISTXML-SV-IV-list-NCName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16784NISTXML-SV-IV-list-NCName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16785NISTXML-SV-IV-list-NCName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16786NISTXML-SV-IV-list-NCName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16787NISTSchema-SV-IV-list-NCName-pattern-5 tokoe:valid" result="pass"/><test-case name="16788NISTXML-SV-IV-list-NCName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16789NISTXML-SV-IV-list-NCName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16790NISTXML-SV-IV-list-NCName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16791NISTXML-SV-IV-list-NCName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16792NISTXML-SV-IV-list-NCName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16793NISTSchema-SV-IV-list-NCName-enumeration-1 tokoe:valid" result="pass"/><test-case name="16794NISTXML-SV-IV-list-NCName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16795NISTXML-SV-IV-list-NCName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16796NISTXML-SV-IV-list-NCName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16797NISTXML-SV-IV-list-NCName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16798NISTXML-SV-IV-list-NCName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16799NISTSchema-SV-IV-list-NCName-enumeration-2 tokoe:valid" result="pass"/><test-case name="16800NISTXML-SV-IV-list-NCName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16801NISTXML-SV-IV-list-NCName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16802NISTXML-SV-IV-list-NCName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16803NISTXML-SV-IV-list-NCName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16804NISTXML-SV-IV-list-NCName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16805NISTSchema-SV-IV-list-NCName-enumeration-3 tokoe:valid" result="pass"/><test-case name="16806NISTXML-SV-IV-list-NCName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16807NISTXML-SV-IV-list-NCName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16808NISTXML-SV-IV-list-NCName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16809NISTXML-SV-IV-list-NCName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16810NISTXML-SV-IV-list-NCName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16811NISTSchema-SV-IV-list-NCName-enumeration-4 tokoe:valid" result="pass"/><test-case name="16812NISTXML-SV-IV-list-NCName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16813NISTXML-SV-IV-list-NCName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16814NISTXML-SV-IV-list-NCName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16815NISTXML-SV-IV-list-NCName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16816NISTXML-SV-IV-list-NCName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16817NISTSchema-SV-IV-list-NCName-enumeration-5 tokoe:valid" result="pass"/><test-case name="16818NISTXML-SV-IV-list-NCName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16819NISTXML-SV-IV-list-NCName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16820NISTXML-SV-IV-list-NCName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16821NISTXML-SV-IV-list-NCName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16822NISTXML-SV-IV-list-NCName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16823NISTSchema-SV-IV-list-NCName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16824NISTXML-SV-IV-list-NCName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16825NISTXML-SV-IV-list-NCName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16826NISTXML-SV-IV-list-NCName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16827NISTXML-SV-IV-list-NCName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16828NISTXML-SV-IV-list-NCName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16829NISTSchema-SV-IV-list-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="16830NISTXML-SV-IV-list-ID-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16831NISTXML-SV-IV-list-ID-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16832NISTXML-SV-IV-list-ID-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16833NISTXML-SV-IV-list-ID-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16834NISTXML-SV-IV-list-ID-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16835NISTSchema-SV-IV-list-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="16836NISTXML-SV-IV-list-ID-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16837NISTXML-SV-IV-list-ID-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16838NISTXML-SV-IV-list-ID-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16839NISTXML-SV-IV-list-ID-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16840NISTXML-SV-IV-list-ID-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16841NISTSchema-SV-IV-list-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="16842NISTXML-SV-IV-list-ID-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16843NISTXML-SV-IV-list-ID-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="16844NISTXML-SV-IV-list-ID-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="16845NISTXML-SV-IV-list-ID-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="16846NISTXML-SV-IV-list-ID-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="16847NISTSchema-SV-IV-list-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="16848NISTXML-SV-IV-list-ID-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="16849NISTXML-SV-IV-list-ID-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="16850NISTXML-SV-IV-list-ID-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="16851NISTXML-SV-IV-list-ID-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="16852NISTXML-SV-IV-list-ID-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="16853NISTSchema-SV-IV-list-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="16854NISTXML-SV-IV-list-ID-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="16855NISTXML-SV-IV-list-ID-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="16856NISTXML-SV-IV-list-ID-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="16857NISTXML-SV-IV-list-ID-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="16858NISTXML-SV-IV-list-ID-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="16859NISTSchema-SV-IV-list-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="16860NISTXML-SV-IV-list-ID-minLength-1-1 tokoe:valid" result="pass"/><test-case name="16861NISTXML-SV-IV-list-ID-minLength-1-2 tokoe:valid" result="pass"/><test-case name="16862NISTXML-SV-IV-list-ID-minLength-1-3 tokoe:valid" result="pass"/><test-case name="16863NISTXML-SV-IV-list-ID-minLength-1-4 tokoe:valid" result="pass"/><test-case name="16864NISTXML-SV-IV-list-ID-minLength-1-5 tokoe:valid" result="pass"/><test-case name="16865NISTSchema-SV-IV-list-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="16866NISTXML-SV-IV-list-ID-minLength-2-1 tokoe:valid" result="pass"/><test-case name="16867NISTXML-SV-IV-list-ID-minLength-2-2 tokoe:valid" result="pass"/><test-case name="16868NISTXML-SV-IV-list-ID-minLength-2-3 tokoe:valid" result="pass"/><test-case name="16869NISTXML-SV-IV-list-ID-minLength-2-4 tokoe:valid" result="pass"/><test-case name="16870NISTXML-SV-IV-list-ID-minLength-2-5 tokoe:valid" result="pass"/><test-case name="16871NISTSchema-SV-IV-list-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="16872NISTXML-SV-IV-list-ID-minLength-3-1 tokoe:valid" result="pass"/><test-case name="16873NISTXML-SV-IV-list-ID-minLength-3-2 tokoe:valid" result="pass"/><test-case name="16874NISTXML-SV-IV-list-ID-minLength-3-3 tokoe:valid" result="pass"/><test-case name="16875NISTXML-SV-IV-list-ID-minLength-3-4 tokoe:valid" result="pass"/><test-case name="16876NISTXML-SV-IV-list-ID-minLength-3-5 tokoe:valid" result="pass"/><test-case name="16877NISTSchema-SV-IV-list-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="16878NISTXML-SV-IV-list-ID-minLength-4-1 tokoe:valid" result="pass"/><test-case name="16879NISTXML-SV-IV-list-ID-minLength-4-2 tokoe:valid" result="pass"/><test-case name="16880NISTXML-SV-IV-list-ID-minLength-4-3 tokoe:valid" result="pass"/><test-case name="16881NISTXML-SV-IV-list-ID-minLength-4-4 tokoe:valid" result="pass"/><test-case name="16882NISTXML-SV-IV-list-ID-minLength-4-5 tokoe:valid" result="pass"/><test-case name="16883NISTSchema-SV-IV-list-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="16884NISTXML-SV-IV-list-ID-minLength-5-1 tokoe:valid" result="pass"/><test-case name="16885NISTXML-SV-IV-list-ID-minLength-5-2 tokoe:valid" result="pass"/><test-case name="16886NISTXML-SV-IV-list-ID-minLength-5-3 tokoe:valid" result="pass"/><test-case name="16887NISTXML-SV-IV-list-ID-minLength-5-4 tokoe:valid" result="pass"/><test-case name="16888NISTXML-SV-IV-list-ID-minLength-5-5 tokoe:valid" result="pass"/><test-case name="16889NISTSchema-SV-IV-list-ID-length-1 tokoe:valid" result="pass"/><test-case name="16890NISTXML-SV-IV-list-ID-length-1-1 tokoe:valid" result="pass"/><test-case name="16891NISTXML-SV-IV-list-ID-length-1-2 tokoe:valid" result="pass"/><test-case name="16892NISTXML-SV-IV-list-ID-length-1-3 tokoe:valid" result="pass"/><test-case name="16893NISTXML-SV-IV-list-ID-length-1-4 tokoe:valid" result="pass"/><test-case name="16894NISTXML-SV-IV-list-ID-length-1-5 tokoe:valid" result="pass"/><test-case name="16895NISTSchema-SV-IV-list-ID-length-2 tokoe:valid" result="pass"/><test-case name="16896NISTXML-SV-IV-list-ID-length-2-1 tokoe:valid" result="pass"/><test-case name="16897NISTXML-SV-IV-list-ID-length-2-2 tokoe:valid" result="pass"/><test-case name="16898NISTXML-SV-IV-list-ID-length-2-3 tokoe:valid" result="pass"/><test-case name="16899NISTXML-SV-IV-list-ID-length-2-4 tokoe:valid" result="pass"/><test-case name="16900NISTXML-SV-IV-list-ID-length-2-5 tokoe:valid" result="pass"/><test-case name="16901NISTSchema-SV-IV-list-ID-length-3 tokoe:valid" result="pass"/><test-case name="16902NISTXML-SV-IV-list-ID-length-3-1 tokoe:valid" result="pass"/><test-case name="16903NISTXML-SV-IV-list-ID-length-3-2 tokoe:valid" result="pass"/><test-case name="16904NISTXML-SV-IV-list-ID-length-3-3 tokoe:valid" result="pass"/><test-case name="16905NISTXML-SV-IV-list-ID-length-3-4 tokoe:valid" result="pass"/><test-case name="16906NISTXML-SV-IV-list-ID-length-3-5 tokoe:valid" result="pass"/><test-case name="16907NISTSchema-SV-IV-list-ID-length-4 tokoe:valid" result="pass"/><test-case name="16908NISTXML-SV-IV-list-ID-length-4-1 tokoe:valid" result="pass"/><test-case name="16909NISTXML-SV-IV-list-ID-length-4-2 tokoe:valid" result="pass"/><test-case name="16910NISTXML-SV-IV-list-ID-length-4-3 tokoe:valid" result="pass"/><test-case name="16911NISTXML-SV-IV-list-ID-length-4-4 tokoe:valid" result="pass"/><test-case name="16912NISTXML-SV-IV-list-ID-length-4-5 tokoe:valid" result="pass"/><test-case name="16913NISTSchema-SV-IV-list-ID-length-5 tokoe:valid" result="pass"/><test-case name="16914NISTXML-SV-IV-list-ID-length-5-1 tokoe:valid" result="pass"/><test-case name="16915NISTXML-SV-IV-list-ID-length-5-2 tokoe:valid" result="pass"/><test-case name="16916NISTXML-SV-IV-list-ID-length-5-3 tokoe:valid" result="pass"/><test-case name="16917NISTXML-SV-IV-list-ID-length-5-4 tokoe:valid" result="pass"/><test-case name="16918NISTXML-SV-IV-list-ID-length-5-5 tokoe:valid" result="pass"/><test-case name="16919NISTSchema-SV-IV-list-ID-pattern-1 tokoe:valid" result="pass"/><test-case name="16920NISTXML-SV-IV-list-ID-pattern-1-1 tokoe:valid" result="pass"/><test-case name="16921NISTXML-SV-IV-list-ID-pattern-1-2 tokoe:valid" result="pass"/><test-case name="16922NISTXML-SV-IV-list-ID-pattern-1-3 tokoe:valid" result="pass"/><test-case name="16923NISTXML-SV-IV-list-ID-pattern-1-4 tokoe:valid" result="pass"/><test-case name="16924NISTXML-SV-IV-list-ID-pattern-1-5 tokoe:valid" result="pass"/><test-case name="16925NISTSchema-SV-IV-list-ID-pattern-2 tokoe:valid" result="pass"/><test-case name="16926NISTXML-SV-IV-list-ID-pattern-2-1 tokoe:valid" result="pass"/><test-case name="16927NISTXML-SV-IV-list-ID-pattern-2-2 tokoe:valid" result="pass"/><test-case name="16928NISTXML-SV-IV-list-ID-pattern-2-3 tokoe:valid" result="pass"/><test-case name="16929NISTXML-SV-IV-list-ID-pattern-2-4 tokoe:valid" result="pass"/><test-case name="16930NISTXML-SV-IV-list-ID-pattern-2-5 tokoe:valid" result="pass"/><test-case name="16931NISTSchema-SV-IV-list-ID-pattern-3 tokoe:valid" result="pass"/><test-case name="16932NISTXML-SV-IV-list-ID-pattern-3-1 tokoe:valid" result="pass"/><test-case name="16933NISTXML-SV-IV-list-ID-pattern-3-2 tokoe:valid" result="pass"/><test-case name="16934NISTXML-SV-IV-list-ID-pattern-3-3 tokoe:valid" result="pass"/><test-case name="16935NISTXML-SV-IV-list-ID-pattern-3-4 tokoe:valid" result="pass"/><test-case name="16936NISTXML-SV-IV-list-ID-pattern-3-5 tokoe:valid" result="pass"/><test-case name="16937NISTSchema-SV-IV-list-ID-pattern-4 tokoe:valid" result="pass"/><test-case name="16938NISTXML-SV-IV-list-ID-pattern-4-1 tokoe:valid" result="pass"/><test-case name="16939NISTXML-SV-IV-list-ID-pattern-4-2 tokoe:valid" result="pass"/><test-case name="16940NISTXML-SV-IV-list-ID-pattern-4-3 tokoe:valid" result="pass"/><test-case name="16941NISTXML-SV-IV-list-ID-pattern-4-4 tokoe:valid" result="pass"/><test-case name="16942NISTXML-SV-IV-list-ID-pattern-4-5 tokoe:valid" result="pass"/><test-case name="16943NISTSchema-SV-IV-list-ID-pattern-5 tokoe:valid" result="pass"/><test-case name="16944NISTXML-SV-IV-list-ID-pattern-5-1 tokoe:valid" result="pass"/><test-case name="16945NISTXML-SV-IV-list-ID-pattern-5-2 tokoe:valid" result="pass"/><test-case name="16946NISTXML-SV-IV-list-ID-pattern-5-3 tokoe:valid" result="pass"/><test-case name="16947NISTXML-SV-IV-list-ID-pattern-5-4 tokoe:valid" result="pass"/><test-case name="16948NISTXML-SV-IV-list-ID-pattern-5-5 tokoe:valid" result="pass"/><test-case name="16949NISTSchema-SV-IV-list-ID-enumeration-1 tokoe:valid" result="pass"/><test-case name="16950NISTXML-SV-IV-list-ID-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="16951NISTXML-SV-IV-list-ID-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="16952NISTXML-SV-IV-list-ID-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="16953NISTXML-SV-IV-list-ID-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="16954NISTXML-SV-IV-list-ID-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="16955NISTSchema-SV-IV-list-ID-enumeration-2 tokoe:valid" result="pass"/><test-case name="16956NISTXML-SV-IV-list-ID-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="16957NISTXML-SV-IV-list-ID-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="16958NISTXML-SV-IV-list-ID-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="16959NISTXML-SV-IV-list-ID-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="16960NISTXML-SV-IV-list-ID-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="16961NISTSchema-SV-IV-list-ID-enumeration-3 tokoe:valid" result="pass"/><test-case name="16962NISTXML-SV-IV-list-ID-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="16963NISTXML-SV-IV-list-ID-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="16964NISTXML-SV-IV-list-ID-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="16965NISTXML-SV-IV-list-ID-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="16966NISTXML-SV-IV-list-ID-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="16967NISTSchema-SV-IV-list-ID-enumeration-4 tokoe:valid" result="pass"/><test-case name="16968NISTXML-SV-IV-list-ID-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="16969NISTXML-SV-IV-list-ID-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="16970NISTXML-SV-IV-list-ID-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="16971NISTXML-SV-IV-list-ID-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="16972NISTXML-SV-IV-list-ID-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="16973NISTSchema-SV-IV-list-ID-enumeration-5 tokoe:valid" result="pass"/><test-case name="16974NISTXML-SV-IV-list-ID-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="16975NISTXML-SV-IV-list-ID-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="16976NISTXML-SV-IV-list-ID-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="16977NISTXML-SV-IV-list-ID-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="16978NISTXML-SV-IV-list-ID-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="16979NISTSchema-SV-IV-list-ID-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="16980NISTXML-SV-IV-list-ID-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="16981NISTXML-SV-IV-list-ID-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="16982NISTXML-SV-IV-list-ID-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="16983NISTXML-SV-IV-list-ID-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="16984NISTXML-SV-IV-list-ID-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="16985NISTSchema-SV-IV-list-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="16986NISTXML-SV-IV-list-language-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="16987NISTXML-SV-IV-list-language-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="16988NISTXML-SV-IV-list-language-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="16989NISTXML-SV-IV-list-language-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="16990NISTXML-SV-IV-list-language-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="16991NISTSchema-SV-IV-list-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="16992NISTXML-SV-IV-list-language-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="16993NISTXML-SV-IV-list-language-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="16994NISTXML-SV-IV-list-language-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="16995NISTXML-SV-IV-list-language-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="16996NISTXML-SV-IV-list-language-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="16997NISTSchema-SV-IV-list-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="16998NISTXML-SV-IV-list-language-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="16999NISTXML-SV-IV-list-language-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17000NISTXML-SV-IV-list-language-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17001NISTXML-SV-IV-list-language-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17002NISTXML-SV-IV-list-language-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17003NISTSchema-SV-IV-list-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="17004NISTXML-SV-IV-list-language-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17005NISTXML-SV-IV-list-language-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17006NISTXML-SV-IV-list-language-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17007NISTXML-SV-IV-list-language-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17008NISTXML-SV-IV-list-language-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17009NISTSchema-SV-IV-list-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="17010NISTXML-SV-IV-list-language-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17011NISTXML-SV-IV-list-language-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17012NISTXML-SV-IV-list-language-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17013NISTXML-SV-IV-list-language-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17014NISTXML-SV-IV-list-language-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17015NISTSchema-SV-IV-list-language-minLength-1 tokoe:valid" result="pass"/><test-case name="17016NISTXML-SV-IV-list-language-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17017NISTXML-SV-IV-list-language-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17018NISTXML-SV-IV-list-language-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17019NISTXML-SV-IV-list-language-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17020NISTXML-SV-IV-list-language-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17021NISTSchema-SV-IV-list-language-minLength-2 tokoe:valid" result="pass"/><test-case name="17022NISTXML-SV-IV-list-language-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17023NISTXML-SV-IV-list-language-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17024NISTXML-SV-IV-list-language-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17025NISTXML-SV-IV-list-language-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17026NISTXML-SV-IV-list-language-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17027NISTSchema-SV-IV-list-language-minLength-3 tokoe:valid" result="pass"/><test-case name="17028NISTXML-SV-IV-list-language-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17029NISTXML-SV-IV-list-language-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17030NISTXML-SV-IV-list-language-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17031NISTXML-SV-IV-list-language-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17032NISTXML-SV-IV-list-language-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17033NISTSchema-SV-IV-list-language-minLength-4 tokoe:valid" result="pass"/><test-case name="17034NISTXML-SV-IV-list-language-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17035NISTXML-SV-IV-list-language-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17036NISTXML-SV-IV-list-language-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17037NISTXML-SV-IV-list-language-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17038NISTXML-SV-IV-list-language-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17039NISTSchema-SV-IV-list-language-minLength-5 tokoe:valid" result="pass"/><test-case name="17040NISTXML-SV-IV-list-language-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17041NISTXML-SV-IV-list-language-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17042NISTXML-SV-IV-list-language-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17043NISTXML-SV-IV-list-language-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17044NISTXML-SV-IV-list-language-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17045NISTSchema-SV-IV-list-language-length-1 tokoe:valid" result="pass"/><test-case name="17046NISTXML-SV-IV-list-language-length-1-1 tokoe:valid" result="pass"/><test-case name="17047NISTXML-SV-IV-list-language-length-1-2 tokoe:valid" result="pass"/><test-case name="17048NISTXML-SV-IV-list-language-length-1-3 tokoe:valid" result="pass"/><test-case name="17049NISTXML-SV-IV-list-language-length-1-4 tokoe:valid" result="pass"/><test-case name="17050NISTXML-SV-IV-list-language-length-1-5 tokoe:valid" result="pass"/><test-case name="17051NISTSchema-SV-IV-list-language-length-2 tokoe:valid" result="pass"/><test-case name="17052NISTXML-SV-IV-list-language-length-2-1 tokoe:valid" result="pass"/><test-case name="17053NISTXML-SV-IV-list-language-length-2-2 tokoe:valid" result="pass"/><test-case name="17054NISTXML-SV-IV-list-language-length-2-3 tokoe:valid" result="pass"/><test-case name="17055NISTXML-SV-IV-list-language-length-2-4 tokoe:valid" result="pass"/><test-case name="17056NISTXML-SV-IV-list-language-length-2-5 tokoe:valid" result="pass"/><test-case name="17057NISTSchema-SV-IV-list-language-length-3 tokoe:valid" result="pass"/><test-case name="17058NISTXML-SV-IV-list-language-length-3-1 tokoe:valid" result="pass"/><test-case name="17059NISTXML-SV-IV-list-language-length-3-2 tokoe:valid" result="pass"/><test-case name="17060NISTXML-SV-IV-list-language-length-3-3 tokoe:valid" result="pass"/><test-case name="17061NISTXML-SV-IV-list-language-length-3-4 tokoe:valid" result="pass"/><test-case name="17062NISTXML-SV-IV-list-language-length-3-5 tokoe:valid" result="pass"/><test-case name="17063NISTSchema-SV-IV-list-language-length-4 tokoe:valid" result="pass"/><test-case name="17064NISTXML-SV-IV-list-language-length-4-1 tokoe:valid" result="pass"/><test-case name="17065NISTXML-SV-IV-list-language-length-4-2 tokoe:valid" result="pass"/><test-case name="17066NISTXML-SV-IV-list-language-length-4-3 tokoe:valid" result="pass"/><test-case name="17067NISTXML-SV-IV-list-language-length-4-4 tokoe:valid" result="pass"/><test-case name="17068NISTXML-SV-IV-list-language-length-4-5 tokoe:valid" result="pass"/><test-case name="17069NISTSchema-SV-IV-list-language-length-5 tokoe:valid" result="pass"/><test-case name="17070NISTXML-SV-IV-list-language-length-5-1 tokoe:valid" result="pass"/><test-case name="17071NISTXML-SV-IV-list-language-length-5-2 tokoe:valid" result="pass"/><test-case name="17072NISTXML-SV-IV-list-language-length-5-3 tokoe:valid" result="pass"/><test-case name="17073NISTXML-SV-IV-list-language-length-5-4 tokoe:valid" result="pass"/><test-case name="17074NISTXML-SV-IV-list-language-length-5-5 tokoe:valid" result="pass"/><test-case name="17075NISTSchema-SV-IV-list-language-pattern-1 tokoe:valid" result="pass"/><test-case name="17076NISTXML-SV-IV-list-language-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17077NISTXML-SV-IV-list-language-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17078NISTXML-SV-IV-list-language-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17079NISTXML-SV-IV-list-language-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17080NISTXML-SV-IV-list-language-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17081NISTSchema-SV-IV-list-language-pattern-2 tokoe:valid" result="pass"/><test-case name="17082NISTXML-SV-IV-list-language-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17083NISTXML-SV-IV-list-language-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17084NISTXML-SV-IV-list-language-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17085NISTXML-SV-IV-list-language-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17086NISTXML-SV-IV-list-language-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17087NISTSchema-SV-IV-list-language-pattern-3 tokoe:valid" result="pass"/><test-case name="17088NISTXML-SV-IV-list-language-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17089NISTXML-SV-IV-list-language-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17090NISTXML-SV-IV-list-language-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17091NISTXML-SV-IV-list-language-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17092NISTXML-SV-IV-list-language-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17093NISTSchema-SV-IV-list-language-pattern-4 tokoe:valid" result="pass"/><test-case name="17094NISTXML-SV-IV-list-language-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17095NISTXML-SV-IV-list-language-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17096NISTXML-SV-IV-list-language-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17097NISTXML-SV-IV-list-language-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17098NISTXML-SV-IV-list-language-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17099NISTSchema-SV-IV-list-language-pattern-5 tokoe:valid" result="pass"/><test-case name="17100NISTXML-SV-IV-list-language-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17101NISTXML-SV-IV-list-language-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17102NISTXML-SV-IV-list-language-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17103NISTXML-SV-IV-list-language-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17104NISTXML-SV-IV-list-language-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17105NISTSchema-SV-IV-list-language-enumeration-1 tokoe:valid" result="pass"/><test-case name="17106NISTXML-SV-IV-list-language-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17107NISTXML-SV-IV-list-language-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17108NISTXML-SV-IV-list-language-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17109NISTXML-SV-IV-list-language-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17110NISTXML-SV-IV-list-language-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17111NISTSchema-SV-IV-list-language-enumeration-2 tokoe:valid" result="pass"/><test-case name="17112NISTXML-SV-IV-list-language-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17113NISTXML-SV-IV-list-language-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17114NISTXML-SV-IV-list-language-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17115NISTXML-SV-IV-list-language-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17116NISTXML-SV-IV-list-language-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17117NISTSchema-SV-IV-list-language-enumeration-3 tokoe:valid" result="pass"/><test-case name="17118NISTXML-SV-IV-list-language-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17119NISTXML-SV-IV-list-language-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17120NISTXML-SV-IV-list-language-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17121NISTXML-SV-IV-list-language-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17122NISTXML-SV-IV-list-language-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17123NISTSchema-SV-IV-list-language-enumeration-4 tokoe:valid" result="pass"/><test-case name="17124NISTXML-SV-IV-list-language-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17125NISTXML-SV-IV-list-language-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17126NISTXML-SV-IV-list-language-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17127NISTXML-SV-IV-list-language-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17128NISTXML-SV-IV-list-language-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17129NISTSchema-SV-IV-list-language-enumeration-5 tokoe:valid" result="pass"/><test-case name="17130NISTXML-SV-IV-list-language-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17131NISTXML-SV-IV-list-language-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17132NISTXML-SV-IV-list-language-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17133NISTXML-SV-IV-list-language-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17134NISTXML-SV-IV-list-language-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17135NISTSchema-SV-IV-list-language-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17136NISTXML-SV-IV-list-language-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17137NISTXML-SV-IV-list-language-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17138NISTXML-SV-IV-list-language-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17139NISTXML-SV-IV-list-language-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17140NISTXML-SV-IV-list-language-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17141NISTSchema-SV-IV-list-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="17142NISTXML-SV-IV-list-anyURI-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17143NISTXML-SV-IV-list-anyURI-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17144NISTXML-SV-IV-list-anyURI-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17145NISTXML-SV-IV-list-anyURI-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17146NISTXML-SV-IV-list-anyURI-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17147NISTSchema-SV-IV-list-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="17148NISTXML-SV-IV-list-anyURI-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17149NISTXML-SV-IV-list-anyURI-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17150NISTXML-SV-IV-list-anyURI-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17151NISTXML-SV-IV-list-anyURI-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17152NISTXML-SV-IV-list-anyURI-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17153NISTSchema-SV-IV-list-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="17154NISTXML-SV-IV-list-anyURI-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17155NISTXML-SV-IV-list-anyURI-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17156NISTXML-SV-IV-list-anyURI-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17157NISTXML-SV-IV-list-anyURI-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17158NISTXML-SV-IV-list-anyURI-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17159NISTSchema-SV-IV-list-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="17160NISTXML-SV-IV-list-anyURI-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17161NISTXML-SV-IV-list-anyURI-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17162NISTXML-SV-IV-list-anyURI-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17163NISTXML-SV-IV-list-anyURI-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17164NISTXML-SV-IV-list-anyURI-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17165NISTSchema-SV-IV-list-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="17166NISTXML-SV-IV-list-anyURI-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17167NISTXML-SV-IV-list-anyURI-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17168NISTXML-SV-IV-list-anyURI-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17169NISTXML-SV-IV-list-anyURI-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17170NISTXML-SV-IV-list-anyURI-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17171NISTSchema-SV-IV-list-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="17172NISTXML-SV-IV-list-anyURI-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17173NISTXML-SV-IV-list-anyURI-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17174NISTXML-SV-IV-list-anyURI-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17175NISTXML-SV-IV-list-anyURI-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17176NISTXML-SV-IV-list-anyURI-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17177NISTSchema-SV-IV-list-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="17178NISTXML-SV-IV-list-anyURI-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17179NISTXML-SV-IV-list-anyURI-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17180NISTXML-SV-IV-list-anyURI-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17181NISTXML-SV-IV-list-anyURI-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17182NISTXML-SV-IV-list-anyURI-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17183NISTSchema-SV-IV-list-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="17184NISTXML-SV-IV-list-anyURI-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17185NISTXML-SV-IV-list-anyURI-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17186NISTXML-SV-IV-list-anyURI-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17187NISTXML-SV-IV-list-anyURI-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17188NISTXML-SV-IV-list-anyURI-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17189NISTSchema-SV-IV-list-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="17190NISTXML-SV-IV-list-anyURI-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17191NISTXML-SV-IV-list-anyURI-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17192NISTXML-SV-IV-list-anyURI-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17193NISTXML-SV-IV-list-anyURI-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17194NISTXML-SV-IV-list-anyURI-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17195NISTSchema-SV-IV-list-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="17196NISTXML-SV-IV-list-anyURI-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17197NISTXML-SV-IV-list-anyURI-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17198NISTXML-SV-IV-list-anyURI-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17199NISTXML-SV-IV-list-anyURI-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17200NISTXML-SV-IV-list-anyURI-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17201NISTSchema-SV-IV-list-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="17202NISTXML-SV-IV-list-anyURI-length-1-1 tokoe:valid" result="pass"/><test-case name="17203NISTXML-SV-IV-list-anyURI-length-1-2 tokoe:valid" result="pass"/><test-case name="17204NISTXML-SV-IV-list-anyURI-length-1-3 tokoe:valid" result="pass"/><test-case name="17205NISTXML-SV-IV-list-anyURI-length-1-4 tokoe:valid" result="pass"/><test-case name="17206NISTXML-SV-IV-list-anyURI-length-1-5 tokoe:valid" result="pass"/><test-case name="17207NISTSchema-SV-IV-list-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="17208NISTXML-SV-IV-list-anyURI-length-2-1 tokoe:valid" result="pass"/><test-case name="17209NISTXML-SV-IV-list-anyURI-length-2-2 tokoe:valid" result="pass"/><test-case name="17210NISTXML-SV-IV-list-anyURI-length-2-3 tokoe:valid" result="pass"/><test-case name="17211NISTXML-SV-IV-list-anyURI-length-2-4 tokoe:valid" result="pass"/><test-case name="17212NISTXML-SV-IV-list-anyURI-length-2-5 tokoe:valid" result="pass"/><test-case name="17213NISTSchema-SV-IV-list-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="17214NISTXML-SV-IV-list-anyURI-length-3-1 tokoe:valid" result="pass"/><test-case name="17215NISTXML-SV-IV-list-anyURI-length-3-2 tokoe:valid" result="pass"/><test-case name="17216NISTXML-SV-IV-list-anyURI-length-3-3 tokoe:valid" result="pass"/><test-case name="17217NISTXML-SV-IV-list-anyURI-length-3-4 tokoe:valid" result="pass"/><test-case name="17218NISTXML-SV-IV-list-anyURI-length-3-5 tokoe:valid" result="pass"/><test-case name="17219NISTSchema-SV-IV-list-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="17220NISTXML-SV-IV-list-anyURI-length-4-1 tokoe:valid" result="pass"/><test-case name="17221NISTXML-SV-IV-list-anyURI-length-4-2 tokoe:valid" result="pass"/><test-case name="17222NISTXML-SV-IV-list-anyURI-length-4-3 tokoe:valid" result="pass"/><test-case name="17223NISTXML-SV-IV-list-anyURI-length-4-4 tokoe:valid" result="pass"/><test-case name="17224NISTXML-SV-IV-list-anyURI-length-4-5 tokoe:valid" result="pass"/><test-case name="17225NISTSchema-SV-IV-list-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="17226NISTXML-SV-IV-list-anyURI-length-5-1 tokoe:valid" result="pass"/><test-case name="17227NISTXML-SV-IV-list-anyURI-length-5-2 tokoe:valid" result="pass"/><test-case name="17228NISTXML-SV-IV-list-anyURI-length-5-3 tokoe:valid" result="pass"/><test-case name="17229NISTXML-SV-IV-list-anyURI-length-5-4 tokoe:valid" result="pass"/><test-case name="17230NISTXML-SV-IV-list-anyURI-length-5-5 tokoe:valid" result="pass"/><test-case name="17231NISTSchema-SV-IV-list-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="17232NISTXML-SV-IV-list-anyURI-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17233NISTXML-SV-IV-list-anyURI-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17234NISTXML-SV-IV-list-anyURI-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17235NISTXML-SV-IV-list-anyURI-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17236NISTXML-SV-IV-list-anyURI-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17237NISTSchema-SV-IV-list-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="17238NISTXML-SV-IV-list-anyURI-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17239NISTXML-SV-IV-list-anyURI-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17240NISTXML-SV-IV-list-anyURI-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17241NISTXML-SV-IV-list-anyURI-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17242NISTXML-SV-IV-list-anyURI-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17243NISTSchema-SV-IV-list-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="17244NISTXML-SV-IV-list-anyURI-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17245NISTXML-SV-IV-list-anyURI-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17246NISTXML-SV-IV-list-anyURI-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17247NISTXML-SV-IV-list-anyURI-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17248NISTXML-SV-IV-list-anyURI-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17249NISTSchema-SV-IV-list-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="17250NISTXML-SV-IV-list-anyURI-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17251NISTXML-SV-IV-list-anyURI-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17252NISTXML-SV-IV-list-anyURI-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17253NISTXML-SV-IV-list-anyURI-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17254NISTXML-SV-IV-list-anyURI-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17255NISTSchema-SV-IV-list-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="17256NISTXML-SV-IV-list-anyURI-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17257NISTXML-SV-IV-list-anyURI-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17258NISTXML-SV-IV-list-anyURI-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17259NISTXML-SV-IV-list-anyURI-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17260NISTXML-SV-IV-list-anyURI-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17261NISTSchema-SV-IV-list-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="17262NISTXML-SV-IV-list-anyURI-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17263NISTXML-SV-IV-list-anyURI-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17264NISTXML-SV-IV-list-anyURI-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17265NISTXML-SV-IV-list-anyURI-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17266NISTXML-SV-IV-list-anyURI-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17267NISTSchema-SV-IV-list-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="17268NISTXML-SV-IV-list-anyURI-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17269NISTXML-SV-IV-list-anyURI-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17270NISTXML-SV-IV-list-anyURI-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17271NISTXML-SV-IV-list-anyURI-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17272NISTXML-SV-IV-list-anyURI-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17273NISTSchema-SV-IV-list-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="17274NISTXML-SV-IV-list-anyURI-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17275NISTXML-SV-IV-list-anyURI-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17276NISTXML-SV-IV-list-anyURI-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17277NISTXML-SV-IV-list-anyURI-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17278NISTXML-SV-IV-list-anyURI-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17279NISTSchema-SV-IV-list-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="17280NISTXML-SV-IV-list-anyURI-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17281NISTXML-SV-IV-list-anyURI-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17282NISTXML-SV-IV-list-anyURI-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17283NISTXML-SV-IV-list-anyURI-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17284NISTXML-SV-IV-list-anyURI-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17285NISTSchema-SV-IV-list-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="17286NISTXML-SV-IV-list-anyURI-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17287NISTXML-SV-IV-list-anyURI-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17288NISTXML-SV-IV-list-anyURI-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17289NISTXML-SV-IV-list-anyURI-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17290NISTXML-SV-IV-list-anyURI-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17291NISTSchema-SV-IV-list-anyURI-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17292NISTXML-SV-IV-list-anyURI-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17293NISTXML-SV-IV-list-anyURI-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17294NISTXML-SV-IV-list-anyURI-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17295NISTXML-SV-IV-list-anyURI-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17296NISTXML-SV-IV-list-anyURI-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17297NISTSchema-SV-IV-list-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="17298NISTXML-SV-IV-list-QName-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17299NISTXML-SV-IV-list-QName-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17300NISTXML-SV-IV-list-QName-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17301NISTXML-SV-IV-list-QName-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17302NISTXML-SV-IV-list-QName-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17303NISTSchema-SV-IV-list-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="17304NISTXML-SV-IV-list-QName-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17305NISTXML-SV-IV-list-QName-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17306NISTXML-SV-IV-list-QName-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17307NISTXML-SV-IV-list-QName-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17308NISTXML-SV-IV-list-QName-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17309NISTSchema-SV-IV-list-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="17310NISTXML-SV-IV-list-QName-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17311NISTXML-SV-IV-list-QName-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17312NISTXML-SV-IV-list-QName-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17313NISTXML-SV-IV-list-QName-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17314NISTXML-SV-IV-list-QName-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17315NISTSchema-SV-IV-list-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="17316NISTXML-SV-IV-list-QName-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17317NISTXML-SV-IV-list-QName-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17318NISTXML-SV-IV-list-QName-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17319NISTXML-SV-IV-list-QName-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17320NISTXML-SV-IV-list-QName-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17321NISTSchema-SV-IV-list-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="17322NISTXML-SV-IV-list-QName-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17323NISTXML-SV-IV-list-QName-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17324NISTXML-SV-IV-list-QName-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17325NISTXML-SV-IV-list-QName-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17326NISTXML-SV-IV-list-QName-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17327NISTSchema-SV-IV-list-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="17328NISTXML-SV-IV-list-QName-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17329NISTXML-SV-IV-list-QName-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17330NISTXML-SV-IV-list-QName-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17331NISTXML-SV-IV-list-QName-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17332NISTXML-SV-IV-list-QName-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17333NISTSchema-SV-IV-list-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="17334NISTXML-SV-IV-list-QName-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17335NISTXML-SV-IV-list-QName-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17336NISTXML-SV-IV-list-QName-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17337NISTXML-SV-IV-list-QName-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17338NISTXML-SV-IV-list-QName-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17339NISTSchema-SV-IV-list-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="17340NISTXML-SV-IV-list-QName-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17341NISTXML-SV-IV-list-QName-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17342NISTXML-SV-IV-list-QName-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17343NISTXML-SV-IV-list-QName-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17344NISTXML-SV-IV-list-QName-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17345NISTSchema-SV-IV-list-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="17346NISTXML-SV-IV-list-QName-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17347NISTXML-SV-IV-list-QName-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17348NISTXML-SV-IV-list-QName-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17349NISTXML-SV-IV-list-QName-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17350NISTXML-SV-IV-list-QName-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17351NISTSchema-SV-IV-list-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="17352NISTXML-SV-IV-list-QName-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17353NISTXML-SV-IV-list-QName-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17354NISTXML-SV-IV-list-QName-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17355NISTXML-SV-IV-list-QName-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17356NISTXML-SV-IV-list-QName-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17357NISTSchema-SV-IV-list-QName-length-1 tokoe:valid" result="pass"/><test-case name="17358NISTXML-SV-IV-list-QName-length-1-1 tokoe:valid" result="pass"/><test-case name="17359NISTXML-SV-IV-list-QName-length-1-2 tokoe:valid" result="pass"/><test-case name="17360NISTXML-SV-IV-list-QName-length-1-3 tokoe:valid" result="pass"/><test-case name="17361NISTXML-SV-IV-list-QName-length-1-4 tokoe:valid" result="pass"/><test-case name="17362NISTXML-SV-IV-list-QName-length-1-5 tokoe:valid" result="pass"/><test-case name="17363NISTSchema-SV-IV-list-QName-length-2 tokoe:valid" result="pass"/><test-case name="17364NISTXML-SV-IV-list-QName-length-2-1 tokoe:valid" result="pass"/><test-case name="17365NISTXML-SV-IV-list-QName-length-2-2 tokoe:valid" result="pass"/><test-case name="17366NISTXML-SV-IV-list-QName-length-2-3 tokoe:valid" result="pass"/><test-case name="17367NISTXML-SV-IV-list-QName-length-2-4 tokoe:valid" result="pass"/><test-case name="17368NISTXML-SV-IV-list-QName-length-2-5 tokoe:valid" result="pass"/><test-case name="17369NISTSchema-SV-IV-list-QName-length-3 tokoe:valid" result="pass"/><test-case name="17370NISTXML-SV-IV-list-QName-length-3-1 tokoe:valid" result="pass"/><test-case name="17371NISTXML-SV-IV-list-QName-length-3-2 tokoe:valid" result="pass"/><test-case name="17372NISTXML-SV-IV-list-QName-length-3-3 tokoe:valid" result="pass"/><test-case name="17373NISTXML-SV-IV-list-QName-length-3-4 tokoe:valid" result="pass"/><test-case name="17374NISTXML-SV-IV-list-QName-length-3-5 tokoe:valid" result="pass"/><test-case name="17375NISTSchema-SV-IV-list-QName-length-4 tokoe:valid" result="pass"/><test-case name="17376NISTXML-SV-IV-list-QName-length-4-1 tokoe:valid" result="pass"/><test-case name="17377NISTXML-SV-IV-list-QName-length-4-2 tokoe:valid" result="pass"/><test-case name="17378NISTXML-SV-IV-list-QName-length-4-3 tokoe:valid" result="pass"/><test-case name="17379NISTXML-SV-IV-list-QName-length-4-4 tokoe:valid" result="pass"/><test-case name="17380NISTXML-SV-IV-list-QName-length-4-5 tokoe:valid" result="pass"/><test-case name="17381NISTSchema-SV-IV-list-QName-length-5 tokoe:valid" result="pass"/><test-case name="17382NISTXML-SV-IV-list-QName-length-5-1 tokoe:valid" result="pass"/><test-case name="17383NISTXML-SV-IV-list-QName-length-5-2 tokoe:valid" result="pass"/><test-case name="17384NISTXML-SV-IV-list-QName-length-5-3 tokoe:valid" result="pass"/><test-case name="17385NISTXML-SV-IV-list-QName-length-5-4 tokoe:valid" result="pass"/><test-case name="17386NISTXML-SV-IV-list-QName-length-5-5 tokoe:valid" result="pass"/><test-case name="17387NISTSchema-SV-IV-list-QName-pattern-1 tokoe:valid" result="pass"/><test-case name="17388NISTXML-SV-IV-list-QName-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17389NISTXML-SV-IV-list-QName-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17390NISTXML-SV-IV-list-QName-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17391NISTXML-SV-IV-list-QName-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17392NISTXML-SV-IV-list-QName-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17393NISTSchema-SV-IV-list-QName-pattern-2 tokoe:valid" result="pass"/><test-case name="17394NISTXML-SV-IV-list-QName-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17395NISTXML-SV-IV-list-QName-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17396NISTXML-SV-IV-list-QName-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17397NISTXML-SV-IV-list-QName-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17398NISTXML-SV-IV-list-QName-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17399NISTSchema-SV-IV-list-QName-pattern-3 tokoe:valid" result="pass"/><test-case name="17400NISTXML-SV-IV-list-QName-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17401NISTXML-SV-IV-list-QName-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17402NISTXML-SV-IV-list-QName-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17403NISTXML-SV-IV-list-QName-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17404NISTXML-SV-IV-list-QName-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17405NISTSchema-SV-IV-list-QName-pattern-4 tokoe:valid" result="pass"/><test-case name="17406NISTXML-SV-IV-list-QName-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17407NISTXML-SV-IV-list-QName-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17408NISTXML-SV-IV-list-QName-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17409NISTXML-SV-IV-list-QName-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17410NISTXML-SV-IV-list-QName-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17411NISTSchema-SV-IV-list-QName-pattern-5 tokoe:valid" result="pass"/><test-case name="17412NISTXML-SV-IV-list-QName-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17413NISTXML-SV-IV-list-QName-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17414NISTXML-SV-IV-list-QName-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17415NISTXML-SV-IV-list-QName-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17416NISTXML-SV-IV-list-QName-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17417NISTSchema-SV-IV-list-QName-enumeration-1 tokoe:valid" result="pass"/><test-case name="17418NISTXML-SV-IV-list-QName-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17419NISTXML-SV-IV-list-QName-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17420NISTXML-SV-IV-list-QName-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17421NISTXML-SV-IV-list-QName-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17422NISTXML-SV-IV-list-QName-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17423NISTSchema-SV-IV-list-QName-enumeration-2 tokoe:valid" result="pass"/><test-case name="17424NISTXML-SV-IV-list-QName-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17425NISTXML-SV-IV-list-QName-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17426NISTXML-SV-IV-list-QName-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17427NISTXML-SV-IV-list-QName-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17428NISTXML-SV-IV-list-QName-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17429NISTSchema-SV-IV-list-QName-enumeration-3 tokoe:valid" result="pass"/><test-case name="17430NISTXML-SV-IV-list-QName-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17431NISTXML-SV-IV-list-QName-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17432NISTXML-SV-IV-list-QName-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17433NISTXML-SV-IV-list-QName-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17434NISTXML-SV-IV-list-QName-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17435NISTSchema-SV-IV-list-QName-enumeration-4 tokoe:valid" result="pass"/><test-case name="17436NISTXML-SV-IV-list-QName-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17437NISTXML-SV-IV-list-QName-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17438NISTXML-SV-IV-list-QName-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17439NISTXML-SV-IV-list-QName-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17440NISTXML-SV-IV-list-QName-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17441NISTSchema-SV-IV-list-QName-enumeration-5 tokoe:valid" result="pass"/><test-case name="17442NISTXML-SV-IV-list-QName-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17443NISTXML-SV-IV-list-QName-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17444NISTXML-SV-IV-list-QName-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17445NISTXML-SV-IV-list-QName-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17446NISTXML-SV-IV-list-QName-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17447NISTSchema-SV-IV-list-QName-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17448NISTXML-SV-IV-list-QName-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17449NISTXML-SV-IV-list-QName-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17450NISTXML-SV-IV-list-QName-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17451NISTXML-SV-IV-list-QName-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17452NISTXML-SV-IV-list-QName-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17453NISTSchema-SV-IV-list-boolean-maxLength-1 tokoe:valid" result="pass"/><test-case name="17454NISTXML-SV-IV-list-boolean-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17455NISTXML-SV-IV-list-boolean-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17456NISTXML-SV-IV-list-boolean-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17457NISTXML-SV-IV-list-boolean-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17458NISTXML-SV-IV-list-boolean-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17459NISTSchema-SV-IV-list-boolean-maxLength-2 tokoe:valid" result="pass"/><test-case name="17460NISTXML-SV-IV-list-boolean-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17461NISTXML-SV-IV-list-boolean-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17462NISTXML-SV-IV-list-boolean-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17463NISTXML-SV-IV-list-boolean-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17464NISTXML-SV-IV-list-boolean-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17465NISTSchema-SV-IV-list-boolean-maxLength-3 tokoe:valid" result="pass"/><test-case name="17466NISTXML-SV-IV-list-boolean-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17467NISTXML-SV-IV-list-boolean-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17468NISTXML-SV-IV-list-boolean-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17469NISTXML-SV-IV-list-boolean-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17470NISTXML-SV-IV-list-boolean-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17471NISTSchema-SV-IV-list-boolean-maxLength-4 tokoe:valid" result="pass"/><test-case name="17472NISTXML-SV-IV-list-boolean-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17473NISTXML-SV-IV-list-boolean-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17474NISTXML-SV-IV-list-boolean-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17475NISTXML-SV-IV-list-boolean-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17476NISTXML-SV-IV-list-boolean-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17477NISTSchema-SV-IV-list-boolean-maxLength-5 tokoe:valid" result="pass"/><test-case name="17478NISTXML-SV-IV-list-boolean-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17479NISTXML-SV-IV-list-boolean-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17480NISTXML-SV-IV-list-boolean-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17481NISTXML-SV-IV-list-boolean-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17482NISTXML-SV-IV-list-boolean-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17483NISTSchema-SV-IV-list-boolean-minLength-1 tokoe:valid" result="pass"/><test-case name="17484NISTXML-SV-IV-list-boolean-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17485NISTXML-SV-IV-list-boolean-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17486NISTXML-SV-IV-list-boolean-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17487NISTXML-SV-IV-list-boolean-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17488NISTXML-SV-IV-list-boolean-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17489NISTSchema-SV-IV-list-boolean-minLength-2 tokoe:valid" result="pass"/><test-case name="17490NISTXML-SV-IV-list-boolean-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17491NISTXML-SV-IV-list-boolean-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17492NISTXML-SV-IV-list-boolean-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17493NISTXML-SV-IV-list-boolean-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17494NISTXML-SV-IV-list-boolean-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17495NISTSchema-SV-IV-list-boolean-minLength-3 tokoe:valid" result="pass"/><test-case name="17496NISTXML-SV-IV-list-boolean-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17497NISTXML-SV-IV-list-boolean-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17498NISTXML-SV-IV-list-boolean-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17499NISTXML-SV-IV-list-boolean-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17500NISTXML-SV-IV-list-boolean-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17501NISTSchema-SV-IV-list-boolean-minLength-4 tokoe:valid" result="pass"/><test-case name="17502NISTXML-SV-IV-list-boolean-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17503NISTXML-SV-IV-list-boolean-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17504NISTXML-SV-IV-list-boolean-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17505NISTXML-SV-IV-list-boolean-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17506NISTXML-SV-IV-list-boolean-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17507NISTSchema-SV-IV-list-boolean-minLength-5 tokoe:valid" result="pass"/><test-case name="17508NISTXML-SV-IV-list-boolean-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17509NISTXML-SV-IV-list-boolean-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17510NISTXML-SV-IV-list-boolean-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17511NISTXML-SV-IV-list-boolean-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17512NISTXML-SV-IV-list-boolean-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17513NISTSchema-SV-IV-list-boolean-length-1 tokoe:valid" result="pass"/><test-case name="17514NISTXML-SV-IV-list-boolean-length-1-1 tokoe:valid" result="pass"/><test-case name="17515NISTXML-SV-IV-list-boolean-length-1-2 tokoe:valid" result="pass"/><test-case name="17516NISTXML-SV-IV-list-boolean-length-1-3 tokoe:valid" result="pass"/><test-case name="17517NISTXML-SV-IV-list-boolean-length-1-4 tokoe:valid" result="pass"/><test-case name="17518NISTXML-SV-IV-list-boolean-length-1-5 tokoe:valid" result="pass"/><test-case name="17519NISTSchema-SV-IV-list-boolean-length-2 tokoe:valid" result="pass"/><test-case name="17520NISTXML-SV-IV-list-boolean-length-2-1 tokoe:valid" result="pass"/><test-case name="17521NISTXML-SV-IV-list-boolean-length-2-2 tokoe:valid" result="pass"/><test-case name="17522NISTXML-SV-IV-list-boolean-length-2-3 tokoe:valid" result="pass"/><test-case name="17523NISTXML-SV-IV-list-boolean-length-2-4 tokoe:valid" result="pass"/><test-case name="17524NISTXML-SV-IV-list-boolean-length-2-5 tokoe:valid" result="pass"/><test-case name="17525NISTSchema-SV-IV-list-boolean-length-3 tokoe:valid" result="pass"/><test-case name="17526NISTXML-SV-IV-list-boolean-length-3-1 tokoe:valid" result="pass"/><test-case name="17527NISTXML-SV-IV-list-boolean-length-3-2 tokoe:valid" result="pass"/><test-case name="17528NISTXML-SV-IV-list-boolean-length-3-3 tokoe:valid" result="pass"/><test-case name="17529NISTXML-SV-IV-list-boolean-length-3-4 tokoe:valid" result="pass"/><test-case name="17530NISTXML-SV-IV-list-boolean-length-3-5 tokoe:valid" result="pass"/><test-case name="17531NISTSchema-SV-IV-list-boolean-length-4 tokoe:valid" result="pass"/><test-case name="17532NISTXML-SV-IV-list-boolean-length-4-1 tokoe:valid" result="pass"/><test-case name="17533NISTXML-SV-IV-list-boolean-length-4-2 tokoe:valid" result="pass"/><test-case name="17534NISTXML-SV-IV-list-boolean-length-4-3 tokoe:valid" result="pass"/><test-case name="17535NISTXML-SV-IV-list-boolean-length-4-4 tokoe:valid" result="pass"/><test-case name="17536NISTXML-SV-IV-list-boolean-length-4-5 tokoe:valid" result="pass"/><test-case name="17537NISTSchema-SV-IV-list-boolean-length-5 tokoe:valid" result="pass"/><test-case name="17538NISTXML-SV-IV-list-boolean-length-5-1 tokoe:valid" result="pass"/><test-case name="17539NISTXML-SV-IV-list-boolean-length-5-2 tokoe:valid" result="pass"/><test-case name="17540NISTXML-SV-IV-list-boolean-length-5-3 tokoe:valid" result="pass"/><test-case name="17541NISTXML-SV-IV-list-boolean-length-5-4 tokoe:valid" result="pass"/><test-case name="17542NISTXML-SV-IV-list-boolean-length-5-5 tokoe:valid" result="pass"/><test-case name="17543NISTSchema-SV-IV-list-boolean-pattern-1 tokoe:valid" result="pass"/><test-case name="17544NISTXML-SV-IV-list-boolean-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17545NISTXML-SV-IV-list-boolean-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17546NISTXML-SV-IV-list-boolean-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17547NISTXML-SV-IV-list-boolean-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17548NISTXML-SV-IV-list-boolean-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17549NISTSchema-SV-IV-list-boolean-pattern-2 tokoe:valid" result="pass"/><test-case name="17550NISTXML-SV-IV-list-boolean-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17551NISTXML-SV-IV-list-boolean-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17552NISTXML-SV-IV-list-boolean-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17553NISTXML-SV-IV-list-boolean-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17554NISTXML-SV-IV-list-boolean-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17555NISTSchema-SV-IV-list-boolean-pattern-3 tokoe:valid" result="pass"/><test-case name="17556NISTXML-SV-IV-list-boolean-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17557NISTXML-SV-IV-list-boolean-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17558NISTXML-SV-IV-list-boolean-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17559NISTXML-SV-IV-list-boolean-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17560NISTXML-SV-IV-list-boolean-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17561NISTSchema-SV-IV-list-boolean-pattern-4 tokoe:valid" result="pass"/><test-case name="17562NISTXML-SV-IV-list-boolean-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17563NISTXML-SV-IV-list-boolean-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17564NISTXML-SV-IV-list-boolean-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17565NISTXML-SV-IV-list-boolean-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17566NISTXML-SV-IV-list-boolean-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17567NISTSchema-SV-IV-list-boolean-pattern-5 tokoe:valid" result="pass"/><test-case name="17568NISTXML-SV-IV-list-boolean-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17569NISTXML-SV-IV-list-boolean-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17570NISTXML-SV-IV-list-boolean-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17571NISTXML-SV-IV-list-boolean-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17572NISTXML-SV-IV-list-boolean-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17573NISTSchema-SV-IV-list-boolean-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17574NISTXML-SV-IV-list-boolean-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17575NISTXML-SV-IV-list-boolean-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17576NISTXML-SV-IV-list-boolean-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17577NISTXML-SV-IV-list-boolean-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17578NISTXML-SV-IV-list-boolean-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17579NISTSchema-SV-IV-list-base64Binary-maxLength-1 tokoe:valid" result="pass"/><test-case name="17580NISTXML-SV-IV-list-base64Binary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17581NISTXML-SV-IV-list-base64Binary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17582NISTXML-SV-IV-list-base64Binary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17583NISTXML-SV-IV-list-base64Binary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17584NISTXML-SV-IV-list-base64Binary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17585NISTSchema-SV-IV-list-base64Binary-maxLength-2 tokoe:valid" result="pass"/><test-case name="17586NISTXML-SV-IV-list-base64Binary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17587NISTXML-SV-IV-list-base64Binary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17588NISTXML-SV-IV-list-base64Binary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17589NISTXML-SV-IV-list-base64Binary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17590NISTXML-SV-IV-list-base64Binary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17591NISTSchema-SV-IV-list-base64Binary-maxLength-3 tokoe:valid" result="pass"/><test-case name="17592NISTXML-SV-IV-list-base64Binary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17593NISTXML-SV-IV-list-base64Binary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17594NISTXML-SV-IV-list-base64Binary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17595NISTXML-SV-IV-list-base64Binary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17596NISTXML-SV-IV-list-base64Binary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17597NISTSchema-SV-IV-list-base64Binary-maxLength-4 tokoe:valid" result="pass"/><test-case name="17598NISTXML-SV-IV-list-base64Binary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17599NISTXML-SV-IV-list-base64Binary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17600NISTXML-SV-IV-list-base64Binary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17601NISTXML-SV-IV-list-base64Binary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17602NISTXML-SV-IV-list-base64Binary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17603NISTSchema-SV-IV-list-base64Binary-maxLength-5 tokoe:valid" result="pass"/><test-case name="17604NISTXML-SV-IV-list-base64Binary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17605NISTXML-SV-IV-list-base64Binary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17606NISTXML-SV-IV-list-base64Binary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17607NISTXML-SV-IV-list-base64Binary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17608NISTXML-SV-IV-list-base64Binary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17609NISTSchema-SV-IV-list-base64Binary-minLength-1 tokoe:valid" result="pass"/><test-case name="17610NISTXML-SV-IV-list-base64Binary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17611NISTXML-SV-IV-list-base64Binary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17612NISTXML-SV-IV-list-base64Binary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17613NISTXML-SV-IV-list-base64Binary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17614NISTXML-SV-IV-list-base64Binary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17615NISTSchema-SV-IV-list-base64Binary-minLength-2 tokoe:valid" result="pass"/><test-case name="17616NISTXML-SV-IV-list-base64Binary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17617NISTXML-SV-IV-list-base64Binary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17618NISTXML-SV-IV-list-base64Binary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17619NISTXML-SV-IV-list-base64Binary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17620NISTXML-SV-IV-list-base64Binary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17621NISTSchema-SV-IV-list-base64Binary-minLength-3 tokoe:valid" result="pass"/><test-case name="17622NISTXML-SV-IV-list-base64Binary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17623NISTXML-SV-IV-list-base64Binary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17624NISTXML-SV-IV-list-base64Binary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17625NISTXML-SV-IV-list-base64Binary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17626NISTXML-SV-IV-list-base64Binary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17627NISTSchema-SV-IV-list-base64Binary-minLength-4 tokoe:valid" result="pass"/><test-case name="17628NISTXML-SV-IV-list-base64Binary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17629NISTXML-SV-IV-list-base64Binary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17630NISTXML-SV-IV-list-base64Binary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17631NISTXML-SV-IV-list-base64Binary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17632NISTXML-SV-IV-list-base64Binary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17633NISTSchema-SV-IV-list-base64Binary-minLength-5 tokoe:valid" result="pass"/><test-case name="17634NISTXML-SV-IV-list-base64Binary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17635NISTXML-SV-IV-list-base64Binary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17636NISTXML-SV-IV-list-base64Binary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17637NISTXML-SV-IV-list-base64Binary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17638NISTXML-SV-IV-list-base64Binary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17639NISTSchema-SV-IV-list-base64Binary-length-1 tokoe:valid" result="pass"/><test-case name="17640NISTXML-SV-IV-list-base64Binary-length-1-1 tokoe:valid" result="pass"/><test-case name="17641NISTXML-SV-IV-list-base64Binary-length-1-2 tokoe:valid" result="pass"/><test-case name="17642NISTXML-SV-IV-list-base64Binary-length-1-3 tokoe:valid" result="pass"/><test-case name="17643NISTXML-SV-IV-list-base64Binary-length-1-4 tokoe:valid" result="pass"/><test-case name="17644NISTXML-SV-IV-list-base64Binary-length-1-5 tokoe:valid" result="pass"/><test-case name="17645NISTSchema-SV-IV-list-base64Binary-length-2 tokoe:valid" result="pass"/><test-case name="17646NISTXML-SV-IV-list-base64Binary-length-2-1 tokoe:valid" result="pass"/><test-case name="17647NISTXML-SV-IV-list-base64Binary-length-2-2 tokoe:valid" result="pass"/><test-case name="17648NISTXML-SV-IV-list-base64Binary-length-2-3 tokoe:valid" result="pass"/><test-case name="17649NISTXML-SV-IV-list-base64Binary-length-2-4 tokoe:valid" result="pass"/><test-case name="17650NISTXML-SV-IV-list-base64Binary-length-2-5 tokoe:valid" result="pass"/><test-case name="17651NISTSchema-SV-IV-list-base64Binary-length-3 tokoe:valid" result="pass"/><test-case name="17652NISTXML-SV-IV-list-base64Binary-length-3-1 tokoe:valid" result="pass"/><test-case name="17653NISTXML-SV-IV-list-base64Binary-length-3-2 tokoe:valid" result="pass"/><test-case name="17654NISTXML-SV-IV-list-base64Binary-length-3-3 tokoe:valid" result="pass"/><test-case name="17655NISTXML-SV-IV-list-base64Binary-length-3-4 tokoe:valid" result="pass"/><test-case name="17656NISTXML-SV-IV-list-base64Binary-length-3-5 tokoe:valid" result="pass"/><test-case name="17657NISTSchema-SV-IV-list-base64Binary-length-4 tokoe:valid" result="pass"/><test-case name="17658NISTXML-SV-IV-list-base64Binary-length-4-1 tokoe:valid" result="pass"/><test-case name="17659NISTXML-SV-IV-list-base64Binary-length-4-2 tokoe:valid" result="pass"/><test-case name="17660NISTXML-SV-IV-list-base64Binary-length-4-3 tokoe:valid" result="pass"/><test-case name="17661NISTXML-SV-IV-list-base64Binary-length-4-4 tokoe:valid" result="pass"/><test-case name="17662NISTXML-SV-IV-list-base64Binary-length-4-5 tokoe:valid" result="pass"/><test-case name="17663NISTSchema-SV-IV-list-base64Binary-length-5 tokoe:valid" result="pass"/><test-case name="17664NISTXML-SV-IV-list-base64Binary-length-5-1 tokoe:valid" result="pass"/><test-case name="17665NISTXML-SV-IV-list-base64Binary-length-5-2 tokoe:valid" result="pass"/><test-case name="17666NISTXML-SV-IV-list-base64Binary-length-5-3 tokoe:valid" result="pass"/><test-case name="17667NISTXML-SV-IV-list-base64Binary-length-5-4 tokoe:valid" result="pass"/><test-case name="17668NISTXML-SV-IV-list-base64Binary-length-5-5 tokoe:valid" result="pass"/><test-case name="17669NISTSchema-SV-IV-list-base64Binary-pattern-1 tokoe:valid" result="pass"/><test-case name="17670NISTXML-SV-IV-list-base64Binary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17671NISTXML-SV-IV-list-base64Binary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17672NISTXML-SV-IV-list-base64Binary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17673NISTXML-SV-IV-list-base64Binary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17674NISTXML-SV-IV-list-base64Binary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17675NISTSchema-SV-IV-list-base64Binary-pattern-2 tokoe:valid" result="pass"/><test-case name="17676NISTXML-SV-IV-list-base64Binary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17677NISTXML-SV-IV-list-base64Binary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17678NISTXML-SV-IV-list-base64Binary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17679NISTXML-SV-IV-list-base64Binary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17680NISTXML-SV-IV-list-base64Binary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17681NISTSchema-SV-IV-list-base64Binary-pattern-3 tokoe:valid" result="pass"/><test-case name="17682NISTXML-SV-IV-list-base64Binary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17683NISTXML-SV-IV-list-base64Binary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17684NISTXML-SV-IV-list-base64Binary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17685NISTXML-SV-IV-list-base64Binary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17686NISTXML-SV-IV-list-base64Binary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17687NISTSchema-SV-IV-list-base64Binary-pattern-4 tokoe:valid" result="pass"/><test-case name="17688NISTXML-SV-IV-list-base64Binary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17689NISTXML-SV-IV-list-base64Binary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17690NISTXML-SV-IV-list-base64Binary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17691NISTXML-SV-IV-list-base64Binary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17692NISTXML-SV-IV-list-base64Binary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17693NISTSchema-SV-IV-list-base64Binary-pattern-5 tokoe:valid" result="pass"/><test-case name="17694NISTXML-SV-IV-list-base64Binary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17695NISTXML-SV-IV-list-base64Binary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17696NISTXML-SV-IV-list-base64Binary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17697NISTXML-SV-IV-list-base64Binary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17698NISTXML-SV-IV-list-base64Binary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17699NISTSchema-SV-IV-list-base64Binary-enumeration-1 tokoe:valid" result="pass"/><test-case name="17700NISTXML-SV-IV-list-base64Binary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17701NISTXML-SV-IV-list-base64Binary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17702NISTXML-SV-IV-list-base64Binary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17703NISTXML-SV-IV-list-base64Binary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17704NISTXML-SV-IV-list-base64Binary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17705NISTSchema-SV-IV-list-base64Binary-enumeration-2 tokoe:valid" result="pass"/><test-case name="17706NISTXML-SV-IV-list-base64Binary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17707NISTXML-SV-IV-list-base64Binary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17708NISTXML-SV-IV-list-base64Binary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17709NISTXML-SV-IV-list-base64Binary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17710NISTXML-SV-IV-list-base64Binary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17711NISTSchema-SV-IV-list-base64Binary-enumeration-3 tokoe:valid" result="pass"/><test-case name="17712NISTXML-SV-IV-list-base64Binary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17713NISTXML-SV-IV-list-base64Binary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17714NISTXML-SV-IV-list-base64Binary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17715NISTXML-SV-IV-list-base64Binary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17716NISTXML-SV-IV-list-base64Binary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17717NISTSchema-SV-IV-list-base64Binary-enumeration-4 tokoe:valid" result="pass"/><test-case name="17718NISTXML-SV-IV-list-base64Binary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17719NISTXML-SV-IV-list-base64Binary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17720NISTXML-SV-IV-list-base64Binary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17721NISTXML-SV-IV-list-base64Binary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17722NISTXML-SV-IV-list-base64Binary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17723NISTSchema-SV-IV-list-base64Binary-enumeration-5 tokoe:valid" result="pass"/><test-case name="17724NISTXML-SV-IV-list-base64Binary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17725NISTXML-SV-IV-list-base64Binary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17726NISTXML-SV-IV-list-base64Binary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17727NISTXML-SV-IV-list-base64Binary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17728NISTXML-SV-IV-list-base64Binary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17729NISTSchema-SV-IV-list-base64Binary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17730NISTXML-SV-IV-list-base64Binary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17731NISTXML-SV-IV-list-base64Binary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17732NISTXML-SV-IV-list-base64Binary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17733NISTXML-SV-IV-list-base64Binary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17734NISTXML-SV-IV-list-base64Binary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17735NISTSchema-SV-IV-list-hexBinary-maxLength-1 tokoe:valid" result="pass"/><test-case name="17736NISTXML-SV-IV-list-hexBinary-maxLength-1-1 tokoe:valid" result="pass"/><test-case name="17737NISTXML-SV-IV-list-hexBinary-maxLength-1-2 tokoe:valid" result="pass"/><test-case name="17738NISTXML-SV-IV-list-hexBinary-maxLength-1-3 tokoe:valid" result="pass"/><test-case name="17739NISTXML-SV-IV-list-hexBinary-maxLength-1-4 tokoe:valid" result="pass"/><test-case name="17740NISTXML-SV-IV-list-hexBinary-maxLength-1-5 tokoe:valid" result="pass"/><test-case name="17741NISTSchema-SV-IV-list-hexBinary-maxLength-2 tokoe:valid" result="pass"/><test-case name="17742NISTXML-SV-IV-list-hexBinary-maxLength-2-1 tokoe:valid" result="pass"/><test-case name="17743NISTXML-SV-IV-list-hexBinary-maxLength-2-2 tokoe:valid" result="pass"/><test-case name="17744NISTXML-SV-IV-list-hexBinary-maxLength-2-3 tokoe:valid" result="pass"/><test-case name="17745NISTXML-SV-IV-list-hexBinary-maxLength-2-4 tokoe:valid" result="pass"/><test-case name="17746NISTXML-SV-IV-list-hexBinary-maxLength-2-5 tokoe:valid" result="pass"/><test-case name="17747NISTSchema-SV-IV-list-hexBinary-maxLength-3 tokoe:valid" result="pass"/><test-case name="17748NISTXML-SV-IV-list-hexBinary-maxLength-3-1 tokoe:valid" result="pass"/><test-case name="17749NISTXML-SV-IV-list-hexBinary-maxLength-3-2 tokoe:valid" result="pass"/><test-case name="17750NISTXML-SV-IV-list-hexBinary-maxLength-3-3 tokoe:valid" result="pass"/><test-case name="17751NISTXML-SV-IV-list-hexBinary-maxLength-3-4 tokoe:valid" result="pass"/><test-case name="17752NISTXML-SV-IV-list-hexBinary-maxLength-3-5 tokoe:valid" result="pass"/><test-case name="17753NISTSchema-SV-IV-list-hexBinary-maxLength-4 tokoe:valid" result="pass"/><test-case name="17754NISTXML-SV-IV-list-hexBinary-maxLength-4-1 tokoe:valid" result="pass"/><test-case name="17755NISTXML-SV-IV-list-hexBinary-maxLength-4-2 tokoe:valid" result="pass"/><test-case name="17756NISTXML-SV-IV-list-hexBinary-maxLength-4-3 tokoe:valid" result="pass"/><test-case name="17757NISTXML-SV-IV-list-hexBinary-maxLength-4-4 tokoe:valid" result="pass"/><test-case name="17758NISTXML-SV-IV-list-hexBinary-maxLength-4-5 tokoe:valid" result="pass"/><test-case name="17759NISTSchema-SV-IV-list-hexBinary-maxLength-5 tokoe:valid" result="pass"/><test-case name="17760NISTXML-SV-IV-list-hexBinary-maxLength-5-1 tokoe:valid" result="pass"/><test-case name="17761NISTXML-SV-IV-list-hexBinary-maxLength-5-2 tokoe:valid" result="pass"/><test-case name="17762NISTXML-SV-IV-list-hexBinary-maxLength-5-3 tokoe:valid" result="pass"/><test-case name="17763NISTXML-SV-IV-list-hexBinary-maxLength-5-4 tokoe:valid" result="pass"/><test-case name="17764NISTXML-SV-IV-list-hexBinary-maxLength-5-5 tokoe:valid" result="pass"/><test-case name="17765NISTSchema-SV-IV-list-hexBinary-minLength-1 tokoe:valid" result="pass"/><test-case name="17766NISTXML-SV-IV-list-hexBinary-minLength-1-1 tokoe:valid" result="pass"/><test-case name="17767NISTXML-SV-IV-list-hexBinary-minLength-1-2 tokoe:valid" result="pass"/><test-case name="17768NISTXML-SV-IV-list-hexBinary-minLength-1-3 tokoe:valid" result="pass"/><test-case name="17769NISTXML-SV-IV-list-hexBinary-minLength-1-4 tokoe:valid" result="pass"/><test-case name="17770NISTXML-SV-IV-list-hexBinary-minLength-1-5 tokoe:valid" result="pass"/><test-case name="17771NISTSchema-SV-IV-list-hexBinary-minLength-2 tokoe:valid" result="pass"/><test-case name="17772NISTXML-SV-IV-list-hexBinary-minLength-2-1 tokoe:valid" result="pass"/><test-case name="17773NISTXML-SV-IV-list-hexBinary-minLength-2-2 tokoe:valid" result="pass"/><test-case name="17774NISTXML-SV-IV-list-hexBinary-minLength-2-3 tokoe:valid" result="pass"/><test-case name="17775NISTXML-SV-IV-list-hexBinary-minLength-2-4 tokoe:valid" result="pass"/><test-case name="17776NISTXML-SV-IV-list-hexBinary-minLength-2-5 tokoe:valid" result="pass"/><test-case name="17777NISTSchema-SV-IV-list-hexBinary-minLength-3 tokoe:valid" result="pass"/><test-case name="17778NISTXML-SV-IV-list-hexBinary-minLength-3-1 tokoe:valid" result="pass"/><test-case name="17779NISTXML-SV-IV-list-hexBinary-minLength-3-2 tokoe:valid" result="pass"/><test-case name="17780NISTXML-SV-IV-list-hexBinary-minLength-3-3 tokoe:valid" result="pass"/><test-case name="17781NISTXML-SV-IV-list-hexBinary-minLength-3-4 tokoe:valid" result="pass"/><test-case name="17782NISTXML-SV-IV-list-hexBinary-minLength-3-5 tokoe:valid" result="pass"/><test-case name="17783NISTSchema-SV-IV-list-hexBinary-minLength-4 tokoe:valid" result="pass"/><test-case name="17784NISTXML-SV-IV-list-hexBinary-minLength-4-1 tokoe:valid" result="pass"/><test-case name="17785NISTXML-SV-IV-list-hexBinary-minLength-4-2 tokoe:valid" result="pass"/><test-case name="17786NISTXML-SV-IV-list-hexBinary-minLength-4-3 tokoe:valid" result="pass"/><test-case name="17787NISTXML-SV-IV-list-hexBinary-minLength-4-4 tokoe:valid" result="pass"/><test-case name="17788NISTXML-SV-IV-list-hexBinary-minLength-4-5 tokoe:valid" result="pass"/><test-case name="17789NISTSchema-SV-IV-list-hexBinary-minLength-5 tokoe:valid" result="pass"/><test-case name="17790NISTXML-SV-IV-list-hexBinary-minLength-5-1 tokoe:valid" result="pass"/><test-case name="17791NISTXML-SV-IV-list-hexBinary-minLength-5-2 tokoe:valid" result="pass"/><test-case name="17792NISTXML-SV-IV-list-hexBinary-minLength-5-3 tokoe:valid" result="pass"/><test-case name="17793NISTXML-SV-IV-list-hexBinary-minLength-5-4 tokoe:valid" result="pass"/><test-case name="17794NISTXML-SV-IV-list-hexBinary-minLength-5-5 tokoe:valid" result="pass"/><test-case name="17795NISTSchema-SV-IV-list-hexBinary-length-1 tokoe:valid" result="pass"/><test-case name="17796NISTXML-SV-IV-list-hexBinary-length-1-1 tokoe:valid" result="pass"/><test-case name="17797NISTXML-SV-IV-list-hexBinary-length-1-2 tokoe:valid" result="pass"/><test-case name="17798NISTXML-SV-IV-list-hexBinary-length-1-3 tokoe:valid" result="pass"/><test-case name="17799NISTXML-SV-IV-list-hexBinary-length-1-4 tokoe:valid" result="pass"/><test-case name="17800NISTXML-SV-IV-list-hexBinary-length-1-5 tokoe:valid" result="pass"/><test-case name="17801NISTSchema-SV-IV-list-hexBinary-length-2 tokoe:valid" result="pass"/><test-case name="17802NISTXML-SV-IV-list-hexBinary-length-2-1 tokoe:valid" result="pass"/><test-case name="17803NISTXML-SV-IV-list-hexBinary-length-2-2 tokoe:valid" result="pass"/><test-case name="17804NISTXML-SV-IV-list-hexBinary-length-2-3 tokoe:valid" result="pass"/><test-case name="17805NISTXML-SV-IV-list-hexBinary-length-2-4 tokoe:valid" result="pass"/><test-case name="17806NISTXML-SV-IV-list-hexBinary-length-2-5 tokoe:valid" result="pass"/><test-case name="17807NISTSchema-SV-IV-list-hexBinary-length-3 tokoe:valid" result="pass"/><test-case name="17808NISTXML-SV-IV-list-hexBinary-length-3-1 tokoe:valid" result="pass"/><test-case name="17809NISTXML-SV-IV-list-hexBinary-length-3-2 tokoe:valid" result="pass"/><test-case name="17810NISTXML-SV-IV-list-hexBinary-length-3-3 tokoe:valid" result="pass"/><test-case name="17811NISTXML-SV-IV-list-hexBinary-length-3-4 tokoe:valid" result="pass"/><test-case name="17812NISTXML-SV-IV-list-hexBinary-length-3-5 tokoe:valid" result="pass"/><test-case name="17813NISTSchema-SV-IV-list-hexBinary-length-4 tokoe:valid" result="pass"/><test-case name="17814NISTXML-SV-IV-list-hexBinary-length-4-1 tokoe:valid" result="pass"/><test-case name="17815NISTXML-SV-IV-list-hexBinary-length-4-2 tokoe:valid" result="pass"/><test-case name="17816NISTXML-SV-IV-list-hexBinary-length-4-3 tokoe:valid" result="pass"/><test-case name="17817NISTXML-SV-IV-list-hexBinary-length-4-4 tokoe:valid" result="pass"/><test-case name="17818NISTXML-SV-IV-list-hexBinary-length-4-5 tokoe:valid" result="pass"/><test-case name="17819NISTSchema-SV-IV-list-hexBinary-length-5 tokoe:valid" result="pass"/><test-case name="17820NISTXML-SV-IV-list-hexBinary-length-5-1 tokoe:valid" result="pass"/><test-case name="17821NISTXML-SV-IV-list-hexBinary-length-5-2 tokoe:valid" result="pass"/><test-case name="17822NISTXML-SV-IV-list-hexBinary-length-5-3 tokoe:valid" result="pass"/><test-case name="17823NISTXML-SV-IV-list-hexBinary-length-5-4 tokoe:valid" result="pass"/><test-case name="17824NISTXML-SV-IV-list-hexBinary-length-5-5 tokoe:valid" result="pass"/><test-case name="17825NISTSchema-SV-IV-list-hexBinary-pattern-1 tokoe:valid" result="pass"/><test-case name="17826NISTXML-SV-IV-list-hexBinary-pattern-1-1 tokoe:valid" result="pass"/><test-case name="17827NISTXML-SV-IV-list-hexBinary-pattern-1-2 tokoe:valid" result="pass"/><test-case name="17828NISTXML-SV-IV-list-hexBinary-pattern-1-3 tokoe:valid" result="pass"/><test-case name="17829NISTXML-SV-IV-list-hexBinary-pattern-1-4 tokoe:valid" result="pass"/><test-case name="17830NISTXML-SV-IV-list-hexBinary-pattern-1-5 tokoe:valid" result="pass"/><test-case name="17831NISTSchema-SV-IV-list-hexBinary-pattern-2 tokoe:valid" result="pass"/><test-case name="17832NISTXML-SV-IV-list-hexBinary-pattern-2-1 tokoe:valid" result="pass"/><test-case name="17833NISTXML-SV-IV-list-hexBinary-pattern-2-2 tokoe:valid" result="pass"/><test-case name="17834NISTXML-SV-IV-list-hexBinary-pattern-2-3 tokoe:valid" result="pass"/><test-case name="17835NISTXML-SV-IV-list-hexBinary-pattern-2-4 tokoe:valid" result="pass"/><test-case name="17836NISTXML-SV-IV-list-hexBinary-pattern-2-5 tokoe:valid" result="pass"/><test-case name="17837NISTSchema-SV-IV-list-hexBinary-pattern-3 tokoe:valid" result="pass"/><test-case name="17838NISTXML-SV-IV-list-hexBinary-pattern-3-1 tokoe:valid" result="pass"/><test-case name="17839NISTXML-SV-IV-list-hexBinary-pattern-3-2 tokoe:valid" result="pass"/><test-case name="17840NISTXML-SV-IV-list-hexBinary-pattern-3-3 tokoe:valid" result="pass"/><test-case name="17841NISTXML-SV-IV-list-hexBinary-pattern-3-4 tokoe:valid" result="pass"/><test-case name="17842NISTXML-SV-IV-list-hexBinary-pattern-3-5 tokoe:valid" result="pass"/><test-case name="17843NISTSchema-SV-IV-list-hexBinary-pattern-4 tokoe:valid" result="pass"/><test-case name="17844NISTXML-SV-IV-list-hexBinary-pattern-4-1 tokoe:valid" result="pass"/><test-case name="17845NISTXML-SV-IV-list-hexBinary-pattern-4-2 tokoe:valid" result="pass"/><test-case name="17846NISTXML-SV-IV-list-hexBinary-pattern-4-3 tokoe:valid" result="pass"/><test-case name="17847NISTXML-SV-IV-list-hexBinary-pattern-4-4 tokoe:valid" result="pass"/><test-case name="17848NISTXML-SV-IV-list-hexBinary-pattern-4-5 tokoe:valid" result="pass"/><test-case name="17849NISTSchema-SV-IV-list-hexBinary-pattern-5 tokoe:valid" result="pass"/><test-case name="17850NISTXML-SV-IV-list-hexBinary-pattern-5-1 tokoe:valid" result="pass"/><test-case name="17851NISTXML-SV-IV-list-hexBinary-pattern-5-2 tokoe:valid" result="pass"/><test-case name="17852NISTXML-SV-IV-list-hexBinary-pattern-5-3 tokoe:valid" result="pass"/><test-case name="17853NISTXML-SV-IV-list-hexBinary-pattern-5-4 tokoe:valid" result="pass"/><test-case name="17854NISTXML-SV-IV-list-hexBinary-pattern-5-5 tokoe:valid" result="pass"/><test-case name="17855NISTSchema-SV-IV-list-hexBinary-enumeration-1 tokoe:valid" result="pass"/><test-case name="17856NISTXML-SV-IV-list-hexBinary-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="17857NISTXML-SV-IV-list-hexBinary-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="17858NISTXML-SV-IV-list-hexBinary-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="17859NISTXML-SV-IV-list-hexBinary-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="17860NISTXML-SV-IV-list-hexBinary-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="17861NISTSchema-SV-IV-list-hexBinary-enumeration-2 tokoe:valid" result="pass"/><test-case name="17862NISTXML-SV-IV-list-hexBinary-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="17863NISTXML-SV-IV-list-hexBinary-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="17864NISTXML-SV-IV-list-hexBinary-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="17865NISTXML-SV-IV-list-hexBinary-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="17866NISTXML-SV-IV-list-hexBinary-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="17867NISTSchema-SV-IV-list-hexBinary-enumeration-3 tokoe:valid" result="pass"/><test-case name="17868NISTXML-SV-IV-list-hexBinary-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="17869NISTXML-SV-IV-list-hexBinary-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="17870NISTXML-SV-IV-list-hexBinary-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="17871NISTXML-SV-IV-list-hexBinary-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="17872NISTXML-SV-IV-list-hexBinary-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="17873NISTSchema-SV-IV-list-hexBinary-enumeration-4 tokoe:valid" result="pass"/><test-case name="17874NISTXML-SV-IV-list-hexBinary-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="17875NISTXML-SV-IV-list-hexBinary-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="17876NISTXML-SV-IV-list-hexBinary-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="17877NISTXML-SV-IV-list-hexBinary-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="17878NISTXML-SV-IV-list-hexBinary-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="17879NISTSchema-SV-IV-list-hexBinary-enumeration-5 tokoe:valid" result="pass"/><test-case name="17880NISTXML-SV-IV-list-hexBinary-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="17881NISTXML-SV-IV-list-hexBinary-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="17882NISTXML-SV-IV-list-hexBinary-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="17883NISTXML-SV-IV-list-hexBinary-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="17884NISTXML-SV-IV-list-hexBinary-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="17885NISTSchema-SV-IV-list-hexBinary-whiteSpace-1 tokoe:valid" result="pass"/><test-case name="17886NISTXML-SV-IV-list-hexBinary-whiteSpace-1-1 tokoe:valid" result="pass"/><test-case name="17887NISTXML-SV-IV-list-hexBinary-whiteSpace-1-2 tokoe:valid" result="pass"/><test-case name="17888NISTXML-SV-IV-list-hexBinary-whiteSpace-1-3 tokoe:valid" result="pass"/><test-case name="17889NISTXML-SV-IV-list-hexBinary-whiteSpace-1-4 tokoe:valid" result="pass"/><test-case name="17890NISTXML-SV-IV-list-hexBinary-whiteSpace-1-5 tokoe:valid" result="pass"/><test-case name="17891NISTSchema-SV-II-list-decimal-maxLength-1 tokoe:valid" result="pass"/><test-case name="17892NISTXML-SV-II-list-decimal-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="17893NISTXML-SV-II-list-decimal-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="17894NISTXML-SV-II-list-decimal-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="17895NISTXML-SV-II-list-decimal-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="17896NISTXML-SV-II-list-decimal-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="17897NISTSchema-SV-II-list-decimal-maxLength-2 tokoe:valid" result="pass"/><test-case name="17898NISTXML-SV-II-list-decimal-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="17899NISTXML-SV-II-list-decimal-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="17900NISTXML-SV-II-list-decimal-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="17901NISTXML-SV-II-list-decimal-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="17902NISTXML-SV-II-list-decimal-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="17903NISTSchema-SV-II-list-decimal-maxLength-3 tokoe:valid" result="pass"/><test-case name="17904NISTXML-SV-II-list-decimal-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="17905NISTXML-SV-II-list-decimal-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="17906NISTXML-SV-II-list-decimal-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="17907NISTXML-SV-II-list-decimal-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="17908NISTXML-SV-II-list-decimal-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="17909NISTSchema-SV-II-list-decimal-maxLength-4 tokoe:valid" result="pass"/><test-case name="17910NISTXML-SV-II-list-decimal-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="17911NISTXML-SV-II-list-decimal-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="17912NISTXML-SV-II-list-decimal-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="17913NISTXML-SV-II-list-decimal-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="17914NISTXML-SV-II-list-decimal-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="17915NISTSchema-SV-II-list-decimal-maxLength-5 tokoe:valid" result="pass"/><test-case name="17916NISTXML-SV-II-list-decimal-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="17917NISTXML-SV-II-list-decimal-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="17918NISTXML-SV-II-list-decimal-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="17919NISTXML-SV-II-list-decimal-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="17920NISTXML-SV-II-list-decimal-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="17921NISTSchema-SV-II-list-decimal-minLength-1 tokoe:valid" result="pass"/><test-case name="17922NISTXML-SV-II-list-decimal-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="17923NISTXML-SV-II-list-decimal-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="17924NISTXML-SV-II-list-decimal-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="17925NISTXML-SV-II-list-decimal-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="17926NISTXML-SV-II-list-decimal-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="17927NISTSchema-SV-II-list-decimal-minLength-2 tokoe:valid" result="pass"/><test-case name="17928NISTXML-SV-II-list-decimal-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="17929NISTXML-SV-II-list-decimal-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="17930NISTXML-SV-II-list-decimal-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="17931NISTXML-SV-II-list-decimal-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="17932NISTXML-SV-II-list-decimal-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="17933NISTSchema-SV-II-list-decimal-minLength-3 tokoe:valid" result="pass"/><test-case name="17934NISTXML-SV-II-list-decimal-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="17935NISTXML-SV-II-list-decimal-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="17936NISTXML-SV-II-list-decimal-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="17937NISTXML-SV-II-list-decimal-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="17938NISTXML-SV-II-list-decimal-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="17939NISTSchema-SV-II-list-decimal-minLength-4 tokoe:valid" result="pass"/><test-case name="17940NISTXML-SV-II-list-decimal-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="17941NISTXML-SV-II-list-decimal-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="17942NISTXML-SV-II-list-decimal-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="17943NISTXML-SV-II-list-decimal-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="17944NISTXML-SV-II-list-decimal-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="17945NISTSchema-SV-II-list-decimal-minLength-5 tokoe:valid" result="pass"/><test-case name="17946NISTXML-SV-II-list-decimal-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="17947NISTXML-SV-II-list-decimal-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="17948NISTXML-SV-II-list-decimal-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="17949NISTXML-SV-II-list-decimal-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="17950NISTXML-SV-II-list-decimal-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="17951NISTSchema-SV-II-list-decimal-length-1 tokoe:valid" result="pass"/><test-case name="17952NISTXML-SV-II-list-decimal-length-1-1 tokoe:invalid" result="pass"/><test-case name="17953NISTXML-SV-II-list-decimal-length-1-2 tokoe:invalid" result="pass"/><test-case name="17954NISTXML-SV-II-list-decimal-length-1-3 tokoe:invalid" result="pass"/><test-case name="17955NISTXML-SV-II-list-decimal-length-1-4 tokoe:invalid" result="pass"/><test-case name="17956NISTXML-SV-II-list-decimal-length-1-5 tokoe:invalid" result="pass"/><test-case name="17957NISTSchema-SV-II-list-decimal-length-2 tokoe:valid" result="pass"/><test-case name="17958NISTXML-SV-II-list-decimal-length-2-1 tokoe:invalid" result="pass"/><test-case name="17959NISTXML-SV-II-list-decimal-length-2-2 tokoe:invalid" result="pass"/><test-case name="17960NISTXML-SV-II-list-decimal-length-2-3 tokoe:invalid" result="pass"/><test-case name="17961NISTXML-SV-II-list-decimal-length-2-4 tokoe:invalid" result="pass"/><test-case name="17962NISTXML-SV-II-list-decimal-length-2-5 tokoe:invalid" result="pass"/><test-case name="17963NISTSchema-SV-II-list-decimal-length-3 tokoe:valid" result="pass"/><test-case name="17964NISTXML-SV-II-list-decimal-length-3-1 tokoe:invalid" result="pass"/><test-case name="17965NISTXML-SV-II-list-decimal-length-3-2 tokoe:invalid" result="pass"/><test-case name="17966NISTXML-SV-II-list-decimal-length-3-3 tokoe:invalid" result="pass"/><test-case name="17967NISTXML-SV-II-list-decimal-length-3-4 tokoe:invalid" result="pass"/><test-case name="17968NISTXML-SV-II-list-decimal-length-3-5 tokoe:invalid" result="pass"/><test-case name="17969NISTSchema-SV-II-list-decimal-length-4 tokoe:valid" result="pass"/><test-case name="17970NISTXML-SV-II-list-decimal-length-4-1 tokoe:invalid" result="pass"/><test-case name="17971NISTXML-SV-II-list-decimal-length-4-2 tokoe:invalid" result="pass"/><test-case name="17972NISTXML-SV-II-list-decimal-length-4-3 tokoe:invalid" result="pass"/><test-case name="17973NISTXML-SV-II-list-decimal-length-4-4 tokoe:invalid" result="pass"/><test-case name="17974NISTXML-SV-II-list-decimal-length-4-5 tokoe:invalid" result="pass"/><test-case name="17975NISTSchema-SV-II-list-decimal-length-5 tokoe:valid" result="pass"/><test-case name="17976NISTXML-SV-II-list-decimal-length-5-1 tokoe:invalid" result="pass"/><test-case name="17977NISTXML-SV-II-list-decimal-length-5-2 tokoe:invalid" result="pass"/><test-case name="17978NISTXML-SV-II-list-decimal-length-5-3 tokoe:invalid" result="pass"/><test-case name="17979NISTXML-SV-II-list-decimal-length-5-4 tokoe:invalid" result="pass"/><test-case name="17980NISTXML-SV-II-list-decimal-length-5-5 tokoe:invalid" result="pass"/><test-case name="17981NISTSchema-SV-II-list-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="17982NISTXML-SV-II-list-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="17983NISTXML-SV-II-list-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="17984NISTXML-SV-II-list-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="17985NISTXML-SV-II-list-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="17986NISTXML-SV-II-list-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="17987NISTSchema-SV-II-list-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="17988NISTXML-SV-II-list-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="17989NISTXML-SV-II-list-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="17990NISTXML-SV-II-list-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="17991NISTXML-SV-II-list-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="17992NISTXML-SV-II-list-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="17993NISTSchema-SV-II-list-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="17994NISTXML-SV-II-list-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="17995NISTXML-SV-II-list-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="17996NISTXML-SV-II-list-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="17997NISTXML-SV-II-list-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="17998NISTXML-SV-II-list-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="17999NISTSchema-SV-II-list-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="18000NISTXML-SV-II-list-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18001NISTXML-SV-II-list-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18002NISTXML-SV-II-list-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18003NISTXML-SV-II-list-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18004NISTXML-SV-II-list-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18005NISTSchema-SV-II-list-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="18006NISTXML-SV-II-list-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18007NISTXML-SV-II-list-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18008NISTXML-SV-II-list-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18009NISTXML-SV-II-list-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18010NISTXML-SV-II-list-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18011NISTSchema-SV-II-list-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="18012NISTXML-SV-II-list-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18013NISTXML-SV-II-list-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18014NISTXML-SV-II-list-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18015NISTXML-SV-II-list-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18016NISTXML-SV-II-list-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18017NISTSchema-SV-II-list-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="18018NISTXML-SV-II-list-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18019NISTXML-SV-II-list-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18020NISTXML-SV-II-list-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18021NISTXML-SV-II-list-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18022NISTXML-SV-II-list-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18023NISTSchema-SV-II-list-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="18024NISTXML-SV-II-list-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18025NISTXML-SV-II-list-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18026NISTXML-SV-II-list-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18027NISTXML-SV-II-list-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18028NISTXML-SV-II-list-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18029NISTSchema-SV-II-list-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="18030NISTXML-SV-II-list-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18031NISTXML-SV-II-list-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18032NISTXML-SV-II-list-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18033NISTXML-SV-II-list-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18034NISTXML-SV-II-list-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18035NISTSchema-SV-II-list-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="18036NISTXML-SV-II-list-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18037NISTXML-SV-II-list-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18038NISTXML-SV-II-list-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18039NISTXML-SV-II-list-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18040NISTXML-SV-II-list-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18041NISTSchema-SV-II-list-integer-maxLength-1 tokoe:valid" result="pass"/><test-case name="18042NISTXML-SV-II-list-integer-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18043NISTXML-SV-II-list-integer-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18044NISTXML-SV-II-list-integer-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18045NISTXML-SV-II-list-integer-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18046NISTXML-SV-II-list-integer-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18047NISTSchema-SV-II-list-integer-maxLength-2 tokoe:valid" result="pass"/><test-case name="18048NISTXML-SV-II-list-integer-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18049NISTXML-SV-II-list-integer-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18050NISTXML-SV-II-list-integer-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18051NISTXML-SV-II-list-integer-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18052NISTXML-SV-II-list-integer-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18053NISTSchema-SV-II-list-integer-maxLength-3 tokoe:valid" result="pass"/><test-case name="18054NISTXML-SV-II-list-integer-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18055NISTXML-SV-II-list-integer-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18056NISTXML-SV-II-list-integer-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18057NISTXML-SV-II-list-integer-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18058NISTXML-SV-II-list-integer-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18059NISTSchema-SV-II-list-integer-maxLength-4 tokoe:valid" result="pass"/><test-case name="18060NISTXML-SV-II-list-integer-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18061NISTXML-SV-II-list-integer-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18062NISTXML-SV-II-list-integer-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18063NISTXML-SV-II-list-integer-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18064NISTXML-SV-II-list-integer-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18065NISTSchema-SV-II-list-integer-maxLength-5 tokoe:valid" result="pass"/><test-case name="18066NISTXML-SV-II-list-integer-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18067NISTXML-SV-II-list-integer-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18068NISTXML-SV-II-list-integer-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18069NISTXML-SV-II-list-integer-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18070NISTXML-SV-II-list-integer-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18071NISTSchema-SV-II-list-integer-minLength-1 tokoe:valid" result="pass"/><test-case name="18072NISTXML-SV-II-list-integer-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18073NISTXML-SV-II-list-integer-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18074NISTXML-SV-II-list-integer-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18075NISTXML-SV-II-list-integer-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18076NISTXML-SV-II-list-integer-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18077NISTSchema-SV-II-list-integer-minLength-2 tokoe:valid" result="pass"/><test-case name="18078NISTXML-SV-II-list-integer-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18079NISTXML-SV-II-list-integer-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18080NISTXML-SV-II-list-integer-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18081NISTXML-SV-II-list-integer-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18082NISTXML-SV-II-list-integer-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18083NISTSchema-SV-II-list-integer-minLength-3 tokoe:valid" result="pass"/><test-case name="18084NISTXML-SV-II-list-integer-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18085NISTXML-SV-II-list-integer-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18086NISTXML-SV-II-list-integer-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18087NISTXML-SV-II-list-integer-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18088NISTXML-SV-II-list-integer-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18089NISTSchema-SV-II-list-integer-minLength-4 tokoe:valid" result="pass"/><test-case name="18090NISTXML-SV-II-list-integer-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18091NISTXML-SV-II-list-integer-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18092NISTXML-SV-II-list-integer-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18093NISTXML-SV-II-list-integer-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18094NISTXML-SV-II-list-integer-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18095NISTSchema-SV-II-list-integer-minLength-5 tokoe:valid" result="pass"/><test-case name="18096NISTXML-SV-II-list-integer-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18097NISTXML-SV-II-list-integer-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18098NISTXML-SV-II-list-integer-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18099NISTXML-SV-II-list-integer-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18100NISTXML-SV-II-list-integer-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18101NISTSchema-SV-II-list-integer-length-1 tokoe:valid" result="pass"/><test-case name="18102NISTXML-SV-II-list-integer-length-1-1 tokoe:invalid" result="pass"/><test-case name="18103NISTXML-SV-II-list-integer-length-1-2 tokoe:invalid" result="pass"/><test-case name="18104NISTXML-SV-II-list-integer-length-1-3 tokoe:invalid" result="pass"/><test-case name="18105NISTXML-SV-II-list-integer-length-1-4 tokoe:invalid" result="pass"/><test-case name="18106NISTXML-SV-II-list-integer-length-1-5 tokoe:invalid" result="pass"/><test-case name="18107NISTSchema-SV-II-list-integer-length-2 tokoe:valid" result="pass"/><test-case name="18108NISTXML-SV-II-list-integer-length-2-1 tokoe:invalid" result="pass"/><test-case name="18109NISTXML-SV-II-list-integer-length-2-2 tokoe:invalid" result="pass"/><test-case name="18110NISTXML-SV-II-list-integer-length-2-3 tokoe:invalid" result="pass"/><test-case name="18111NISTXML-SV-II-list-integer-length-2-4 tokoe:invalid" result="pass"/><test-case name="18112NISTXML-SV-II-list-integer-length-2-5 tokoe:invalid" result="pass"/><test-case name="18113NISTSchema-SV-II-list-integer-length-3 tokoe:valid" result="pass"/><test-case name="18114NISTXML-SV-II-list-integer-length-3-1 tokoe:invalid" result="pass"/><test-case name="18115NISTXML-SV-II-list-integer-length-3-2 tokoe:invalid" result="pass"/><test-case name="18116NISTXML-SV-II-list-integer-length-3-3 tokoe:invalid" result="pass"/><test-case name="18117NISTXML-SV-II-list-integer-length-3-4 tokoe:invalid" result="pass"/><test-case name="18118NISTXML-SV-II-list-integer-length-3-5 tokoe:invalid" result="pass"/><test-case name="18119NISTSchema-SV-II-list-integer-length-4 tokoe:valid" result="pass"/><test-case name="18120NISTXML-SV-II-list-integer-length-4-1 tokoe:invalid" result="pass"/><test-case name="18121NISTXML-SV-II-list-integer-length-4-2 tokoe:invalid" result="pass"/><test-case name="18122NISTXML-SV-II-list-integer-length-4-3 tokoe:invalid" result="pass"/><test-case name="18123NISTXML-SV-II-list-integer-length-4-4 tokoe:invalid" result="pass"/><test-case name="18124NISTXML-SV-II-list-integer-length-4-5 tokoe:invalid" result="pass"/><test-case name="18125NISTSchema-SV-II-list-integer-length-5 tokoe:valid" result="pass"/><test-case name="18126NISTXML-SV-II-list-integer-length-5-1 tokoe:invalid" result="pass"/><test-case name="18127NISTXML-SV-II-list-integer-length-5-2 tokoe:invalid" result="pass"/><test-case name="18128NISTXML-SV-II-list-integer-length-5-3 tokoe:invalid" result="pass"/><test-case name="18129NISTXML-SV-II-list-integer-length-5-4 tokoe:invalid" result="pass"/><test-case name="18130NISTXML-SV-II-list-integer-length-5-5 tokoe:invalid" result="pass"/><test-case name="18131NISTSchema-SV-II-list-integer-pattern-1 tokoe:valid" result="pass"/><test-case name="18132NISTXML-SV-II-list-integer-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18133NISTXML-SV-II-list-integer-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18134NISTXML-SV-II-list-integer-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18135NISTXML-SV-II-list-integer-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18136NISTXML-SV-II-list-integer-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18137NISTSchema-SV-II-list-integer-pattern-2 tokoe:valid" result="pass"/><test-case name="18138NISTXML-SV-II-list-integer-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18139NISTXML-SV-II-list-integer-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18140NISTXML-SV-II-list-integer-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18141NISTXML-SV-II-list-integer-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18142NISTXML-SV-II-list-integer-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18143NISTSchema-SV-II-list-integer-pattern-3 tokoe:valid" result="pass"/><test-case name="18144NISTXML-SV-II-list-integer-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18145NISTXML-SV-II-list-integer-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18146NISTXML-SV-II-list-integer-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18147NISTXML-SV-II-list-integer-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18148NISTXML-SV-II-list-integer-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18149NISTSchema-SV-II-list-integer-pattern-4 tokoe:valid" result="pass"/><test-case name="18150NISTXML-SV-II-list-integer-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18151NISTXML-SV-II-list-integer-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18152NISTXML-SV-II-list-integer-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18153NISTXML-SV-II-list-integer-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18154NISTXML-SV-II-list-integer-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18155NISTSchema-SV-II-list-integer-pattern-5 tokoe:valid" result="pass"/><test-case name="18156NISTXML-SV-II-list-integer-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18157NISTXML-SV-II-list-integer-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18158NISTXML-SV-II-list-integer-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18159NISTXML-SV-II-list-integer-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18160NISTXML-SV-II-list-integer-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18161NISTSchema-SV-II-list-integer-enumeration-1 tokoe:valid" result="pass"/><test-case name="18162NISTXML-SV-II-list-integer-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18163NISTXML-SV-II-list-integer-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18164NISTXML-SV-II-list-integer-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18165NISTXML-SV-II-list-integer-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18166NISTXML-SV-II-list-integer-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18167NISTSchema-SV-II-list-integer-enumeration-2 tokoe:valid" result="pass"/><test-case name="18168NISTXML-SV-II-list-integer-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18169NISTXML-SV-II-list-integer-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18170NISTXML-SV-II-list-integer-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18171NISTXML-SV-II-list-integer-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18172NISTXML-SV-II-list-integer-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18173NISTSchema-SV-II-list-integer-enumeration-3 tokoe:valid" result="pass"/><test-case name="18174NISTXML-SV-II-list-integer-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18175NISTXML-SV-II-list-integer-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18176NISTXML-SV-II-list-integer-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18177NISTXML-SV-II-list-integer-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18178NISTXML-SV-II-list-integer-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18179NISTSchema-SV-II-list-integer-enumeration-4 tokoe:valid" result="pass"/><test-case name="18180NISTXML-SV-II-list-integer-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18181NISTXML-SV-II-list-integer-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18182NISTXML-SV-II-list-integer-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18183NISTXML-SV-II-list-integer-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18184NISTXML-SV-II-list-integer-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18185NISTSchema-SV-II-list-integer-enumeration-5 tokoe:valid" result="pass"/><test-case name="18186NISTXML-SV-II-list-integer-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18187NISTXML-SV-II-list-integer-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18188NISTXML-SV-II-list-integer-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18189NISTXML-SV-II-list-integer-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18190NISTXML-SV-II-list-integer-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18191NISTSchema-SV-II-list-nonPositiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="18192NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18193NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18194NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18195NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18196NISTXML-SV-II-list-nonPositiveInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18197NISTSchema-SV-II-list-nonPositiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="18198NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18199NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18200NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18201NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18202NISTXML-SV-II-list-nonPositiveInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18203NISTSchema-SV-II-list-nonPositiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="18204NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18205NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18206NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18207NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18208NISTXML-SV-II-list-nonPositiveInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18209NISTSchema-SV-II-list-nonPositiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="18210NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18211NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18212NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18213NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18214NISTXML-SV-II-list-nonPositiveInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18215NISTSchema-SV-II-list-nonPositiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="18216NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18217NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18218NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18219NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18220NISTXML-SV-II-list-nonPositiveInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18221NISTSchema-SV-II-list-nonPositiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="18222NISTXML-SV-II-list-nonPositiveInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18223NISTXML-SV-II-list-nonPositiveInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18224NISTXML-SV-II-list-nonPositiveInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18225NISTXML-SV-II-list-nonPositiveInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18226NISTXML-SV-II-list-nonPositiveInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18227NISTSchema-SV-II-list-nonPositiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="18228NISTXML-SV-II-list-nonPositiveInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18229NISTXML-SV-II-list-nonPositiveInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18230NISTXML-SV-II-list-nonPositiveInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18231NISTXML-SV-II-list-nonPositiveInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18232NISTXML-SV-II-list-nonPositiveInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18233NISTSchema-SV-II-list-nonPositiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="18234NISTXML-SV-II-list-nonPositiveInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18235NISTXML-SV-II-list-nonPositiveInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18236NISTXML-SV-II-list-nonPositiveInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18237NISTXML-SV-II-list-nonPositiveInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18238NISTXML-SV-II-list-nonPositiveInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18239NISTSchema-SV-II-list-nonPositiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="18240NISTXML-SV-II-list-nonPositiveInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18241NISTXML-SV-II-list-nonPositiveInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18242NISTXML-SV-II-list-nonPositiveInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18243NISTXML-SV-II-list-nonPositiveInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18244NISTXML-SV-II-list-nonPositiveInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18245NISTSchema-SV-II-list-nonPositiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="18246NISTXML-SV-II-list-nonPositiveInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18247NISTXML-SV-II-list-nonPositiveInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18248NISTXML-SV-II-list-nonPositiveInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18249NISTXML-SV-II-list-nonPositiveInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18250NISTXML-SV-II-list-nonPositiveInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18251NISTSchema-SV-II-list-nonPositiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="18252NISTXML-SV-II-list-nonPositiveInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="18253NISTXML-SV-II-list-nonPositiveInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="18254NISTXML-SV-II-list-nonPositiveInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="18255NISTXML-SV-II-list-nonPositiveInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="18256NISTXML-SV-II-list-nonPositiveInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="18257NISTSchema-SV-II-list-nonPositiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="18258NISTXML-SV-II-list-nonPositiveInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="18259NISTXML-SV-II-list-nonPositiveInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="18260NISTXML-SV-II-list-nonPositiveInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="18261NISTXML-SV-II-list-nonPositiveInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="18262NISTXML-SV-II-list-nonPositiveInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="18263NISTSchema-SV-II-list-nonPositiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="18264NISTXML-SV-II-list-nonPositiveInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="18265NISTXML-SV-II-list-nonPositiveInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="18266NISTXML-SV-II-list-nonPositiveInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="18267NISTXML-SV-II-list-nonPositiveInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="18268NISTXML-SV-II-list-nonPositiveInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="18269NISTSchema-SV-II-list-nonPositiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="18270NISTXML-SV-II-list-nonPositiveInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="18271NISTXML-SV-II-list-nonPositiveInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="18272NISTXML-SV-II-list-nonPositiveInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="18273NISTXML-SV-II-list-nonPositiveInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="18274NISTXML-SV-II-list-nonPositiveInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="18275NISTSchema-SV-II-list-nonPositiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="18276NISTXML-SV-II-list-nonPositiveInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="18277NISTXML-SV-II-list-nonPositiveInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="18278NISTXML-SV-II-list-nonPositiveInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="18279NISTXML-SV-II-list-nonPositiveInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="18280NISTXML-SV-II-list-nonPositiveInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="18281NISTSchema-SV-II-list-nonPositiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="18282NISTXML-SV-II-list-nonPositiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18283NISTXML-SV-II-list-nonPositiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18284NISTXML-SV-II-list-nonPositiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18285NISTXML-SV-II-list-nonPositiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18286NISTXML-SV-II-list-nonPositiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18287NISTSchema-SV-II-list-nonPositiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="18288NISTXML-SV-II-list-nonPositiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18289NISTXML-SV-II-list-nonPositiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18290NISTXML-SV-II-list-nonPositiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18291NISTXML-SV-II-list-nonPositiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18292NISTXML-SV-II-list-nonPositiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18293NISTSchema-SV-II-list-nonPositiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="18294NISTXML-SV-II-list-nonPositiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18295NISTXML-SV-II-list-nonPositiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18296NISTXML-SV-II-list-nonPositiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18297NISTXML-SV-II-list-nonPositiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18298NISTXML-SV-II-list-nonPositiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18299NISTSchema-SV-II-list-nonPositiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="18300NISTXML-SV-II-list-nonPositiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18301NISTXML-SV-II-list-nonPositiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18302NISTXML-SV-II-list-nonPositiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18303NISTXML-SV-II-list-nonPositiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18304NISTXML-SV-II-list-nonPositiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18305NISTSchema-SV-II-list-nonPositiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="18306NISTXML-SV-II-list-nonPositiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18307NISTXML-SV-II-list-nonPositiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18308NISTXML-SV-II-list-nonPositiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18309NISTXML-SV-II-list-nonPositiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18310NISTXML-SV-II-list-nonPositiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18311NISTSchema-SV-II-list-nonPositiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="18312NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18313NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18314NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18315NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18316NISTXML-SV-II-list-nonPositiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18317NISTSchema-SV-II-list-nonPositiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="18318NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18319NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18320NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18321NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18322NISTXML-SV-II-list-nonPositiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18323NISTSchema-SV-II-list-nonPositiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="18324NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18325NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18326NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18327NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18328NISTXML-SV-II-list-nonPositiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18329NISTSchema-SV-II-list-nonPositiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="18330NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18331NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18332NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18333NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18334NISTXML-SV-II-list-nonPositiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18335NISTSchema-SV-II-list-nonPositiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="18336NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18337NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18338NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18339NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18340NISTXML-SV-II-list-nonPositiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18341NISTSchema-SV-II-list-negativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="18342NISTXML-SV-II-list-negativeInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18343NISTXML-SV-II-list-negativeInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18344NISTXML-SV-II-list-negativeInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18345NISTXML-SV-II-list-negativeInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18346NISTXML-SV-II-list-negativeInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18347NISTSchema-SV-II-list-negativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="18348NISTXML-SV-II-list-negativeInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18349NISTXML-SV-II-list-negativeInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18350NISTXML-SV-II-list-negativeInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18351NISTXML-SV-II-list-negativeInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18352NISTXML-SV-II-list-negativeInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18353NISTSchema-SV-II-list-negativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="18354NISTXML-SV-II-list-negativeInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18355NISTXML-SV-II-list-negativeInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18356NISTXML-SV-II-list-negativeInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18357NISTXML-SV-II-list-negativeInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18358NISTXML-SV-II-list-negativeInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18359NISTSchema-SV-II-list-negativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="18360NISTXML-SV-II-list-negativeInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18361NISTXML-SV-II-list-negativeInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18362NISTXML-SV-II-list-negativeInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18363NISTXML-SV-II-list-negativeInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18364NISTXML-SV-II-list-negativeInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18365NISTSchema-SV-II-list-negativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="18366NISTXML-SV-II-list-negativeInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18367NISTXML-SV-II-list-negativeInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18368NISTXML-SV-II-list-negativeInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18369NISTXML-SV-II-list-negativeInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18370NISTXML-SV-II-list-negativeInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18371NISTSchema-SV-II-list-negativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="18372NISTXML-SV-II-list-negativeInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18373NISTXML-SV-II-list-negativeInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18374NISTXML-SV-II-list-negativeInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18375NISTXML-SV-II-list-negativeInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18376NISTXML-SV-II-list-negativeInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18377NISTSchema-SV-II-list-negativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="18378NISTXML-SV-II-list-negativeInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18379NISTXML-SV-II-list-negativeInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18380NISTXML-SV-II-list-negativeInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18381NISTXML-SV-II-list-negativeInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18382NISTXML-SV-II-list-negativeInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18383NISTSchema-SV-II-list-negativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="18384NISTXML-SV-II-list-negativeInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18385NISTXML-SV-II-list-negativeInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18386NISTXML-SV-II-list-negativeInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18387NISTXML-SV-II-list-negativeInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18388NISTXML-SV-II-list-negativeInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18389NISTSchema-SV-II-list-negativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="18390NISTXML-SV-II-list-negativeInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18391NISTXML-SV-II-list-negativeInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18392NISTXML-SV-II-list-negativeInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18393NISTXML-SV-II-list-negativeInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18394NISTXML-SV-II-list-negativeInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18395NISTSchema-SV-II-list-negativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="18396NISTXML-SV-II-list-negativeInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18397NISTXML-SV-II-list-negativeInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18398NISTXML-SV-II-list-negativeInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18399NISTXML-SV-II-list-negativeInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18400NISTXML-SV-II-list-negativeInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18401NISTSchema-SV-II-list-negativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="18402NISTXML-SV-II-list-negativeInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="18403NISTXML-SV-II-list-negativeInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="18404NISTXML-SV-II-list-negativeInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="18405NISTXML-SV-II-list-negativeInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="18406NISTXML-SV-II-list-negativeInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="18407NISTSchema-SV-II-list-negativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="18408NISTXML-SV-II-list-negativeInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="18409NISTXML-SV-II-list-negativeInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="18410NISTXML-SV-II-list-negativeInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="18411NISTXML-SV-II-list-negativeInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="18412NISTXML-SV-II-list-negativeInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="18413NISTSchema-SV-II-list-negativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="18414NISTXML-SV-II-list-negativeInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="18415NISTXML-SV-II-list-negativeInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="18416NISTXML-SV-II-list-negativeInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="18417NISTXML-SV-II-list-negativeInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="18418NISTXML-SV-II-list-negativeInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="18419NISTSchema-SV-II-list-negativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="18420NISTXML-SV-II-list-negativeInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="18421NISTXML-SV-II-list-negativeInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="18422NISTXML-SV-II-list-negativeInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="18423NISTXML-SV-II-list-negativeInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="18424NISTXML-SV-II-list-negativeInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="18425NISTSchema-SV-II-list-negativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="18426NISTXML-SV-II-list-negativeInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="18427NISTXML-SV-II-list-negativeInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="18428NISTXML-SV-II-list-negativeInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="18429NISTXML-SV-II-list-negativeInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="18430NISTXML-SV-II-list-negativeInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="18431NISTSchema-SV-II-list-negativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="18432NISTXML-SV-II-list-negativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18433NISTXML-SV-II-list-negativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18434NISTXML-SV-II-list-negativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18435NISTXML-SV-II-list-negativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18436NISTXML-SV-II-list-negativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18437NISTSchema-SV-II-list-negativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="18438NISTXML-SV-II-list-negativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18439NISTXML-SV-II-list-negativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18440NISTXML-SV-II-list-negativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18441NISTXML-SV-II-list-negativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18442NISTXML-SV-II-list-negativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18443NISTSchema-SV-II-list-negativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="18444NISTXML-SV-II-list-negativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18445NISTXML-SV-II-list-negativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18446NISTXML-SV-II-list-negativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18447NISTXML-SV-II-list-negativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18448NISTXML-SV-II-list-negativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18449NISTSchema-SV-II-list-negativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="18450NISTXML-SV-II-list-negativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18451NISTXML-SV-II-list-negativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18452NISTXML-SV-II-list-negativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18453NISTXML-SV-II-list-negativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18454NISTXML-SV-II-list-negativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18455NISTSchema-SV-II-list-negativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="18456NISTXML-SV-II-list-negativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18457NISTXML-SV-II-list-negativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18458NISTXML-SV-II-list-negativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18459NISTXML-SV-II-list-negativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18460NISTXML-SV-II-list-negativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18461NISTSchema-SV-II-list-negativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="18462NISTXML-SV-II-list-negativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18463NISTXML-SV-II-list-negativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18464NISTXML-SV-II-list-negativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18465NISTXML-SV-II-list-negativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18466NISTXML-SV-II-list-negativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18467NISTSchema-SV-II-list-negativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="18468NISTXML-SV-II-list-negativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18469NISTXML-SV-II-list-negativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18470NISTXML-SV-II-list-negativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18471NISTXML-SV-II-list-negativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18472NISTXML-SV-II-list-negativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18473NISTSchema-SV-II-list-negativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="18474NISTXML-SV-II-list-negativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18475NISTXML-SV-II-list-negativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18476NISTXML-SV-II-list-negativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18477NISTXML-SV-II-list-negativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18478NISTXML-SV-II-list-negativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18479NISTSchema-SV-II-list-negativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="18480NISTXML-SV-II-list-negativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18481NISTXML-SV-II-list-negativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18482NISTXML-SV-II-list-negativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18483NISTXML-SV-II-list-negativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18484NISTXML-SV-II-list-negativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18485NISTSchema-SV-II-list-negativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="18486NISTXML-SV-II-list-negativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18487NISTXML-SV-II-list-negativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18488NISTXML-SV-II-list-negativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18489NISTXML-SV-II-list-negativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18490NISTXML-SV-II-list-negativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18491NISTSchema-SV-II-list-long-maxLength-1 tokoe:valid" result="pass"/><test-case name="18492NISTXML-SV-II-list-long-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18493NISTXML-SV-II-list-long-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18494NISTXML-SV-II-list-long-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18495NISTXML-SV-II-list-long-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18496NISTXML-SV-II-list-long-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18497NISTSchema-SV-II-list-long-maxLength-2 tokoe:valid" result="pass"/><test-case name="18498NISTXML-SV-II-list-long-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18499NISTXML-SV-II-list-long-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18500NISTXML-SV-II-list-long-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18501NISTXML-SV-II-list-long-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18502NISTXML-SV-II-list-long-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18503NISTSchema-SV-II-list-long-maxLength-3 tokoe:valid" result="pass"/><test-case name="18504NISTXML-SV-II-list-long-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18505NISTXML-SV-II-list-long-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18506NISTXML-SV-II-list-long-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18507NISTXML-SV-II-list-long-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18508NISTXML-SV-II-list-long-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18509NISTSchema-SV-II-list-long-maxLength-4 tokoe:valid" result="pass"/><test-case name="18510NISTXML-SV-II-list-long-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18511NISTXML-SV-II-list-long-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18512NISTXML-SV-II-list-long-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18513NISTXML-SV-II-list-long-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18514NISTXML-SV-II-list-long-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18515NISTSchema-SV-II-list-long-maxLength-5 tokoe:valid" result="pass"/><test-case name="18516NISTXML-SV-II-list-long-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18517NISTXML-SV-II-list-long-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18518NISTXML-SV-II-list-long-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18519NISTXML-SV-II-list-long-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18520NISTXML-SV-II-list-long-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18521NISTSchema-SV-II-list-long-minLength-1 tokoe:valid" result="pass"/><test-case name="18522NISTXML-SV-II-list-long-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18523NISTXML-SV-II-list-long-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18524NISTXML-SV-II-list-long-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18525NISTXML-SV-II-list-long-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18526NISTXML-SV-II-list-long-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18527NISTSchema-SV-II-list-long-minLength-2 tokoe:valid" result="pass"/><test-case name="18528NISTXML-SV-II-list-long-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18529NISTXML-SV-II-list-long-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18530NISTXML-SV-II-list-long-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18531NISTXML-SV-II-list-long-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18532NISTXML-SV-II-list-long-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18533NISTSchema-SV-II-list-long-minLength-3 tokoe:valid" result="pass"/><test-case name="18534NISTXML-SV-II-list-long-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18535NISTXML-SV-II-list-long-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18536NISTXML-SV-II-list-long-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18537NISTXML-SV-II-list-long-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18538NISTXML-SV-II-list-long-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18539NISTSchema-SV-II-list-long-minLength-4 tokoe:valid" result="pass"/><test-case name="18540NISTXML-SV-II-list-long-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18541NISTXML-SV-II-list-long-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18542NISTXML-SV-II-list-long-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18543NISTXML-SV-II-list-long-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18544NISTXML-SV-II-list-long-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18545NISTSchema-SV-II-list-long-minLength-5 tokoe:valid" result="pass"/><test-case name="18546NISTXML-SV-II-list-long-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18547NISTXML-SV-II-list-long-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18548NISTXML-SV-II-list-long-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18549NISTXML-SV-II-list-long-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18550NISTXML-SV-II-list-long-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18551NISTSchema-SV-II-list-long-length-1 tokoe:valid" result="pass"/><test-case name="18552NISTXML-SV-II-list-long-length-1-1 tokoe:invalid" result="pass"/><test-case name="18553NISTXML-SV-II-list-long-length-1-2 tokoe:invalid" result="pass"/><test-case name="18554NISTXML-SV-II-list-long-length-1-3 tokoe:invalid" result="pass"/><test-case name="18555NISTXML-SV-II-list-long-length-1-4 tokoe:invalid" result="pass"/><test-case name="18556NISTXML-SV-II-list-long-length-1-5 tokoe:invalid" result="pass"/><test-case name="18557NISTSchema-SV-II-list-long-length-2 tokoe:valid" result="pass"/><test-case name="18558NISTXML-SV-II-list-long-length-2-1 tokoe:invalid" result="pass"/><test-case name="18559NISTXML-SV-II-list-long-length-2-2 tokoe:invalid" result="pass"/><test-case name="18560NISTXML-SV-II-list-long-length-2-3 tokoe:invalid" result="pass"/><test-case name="18561NISTXML-SV-II-list-long-length-2-4 tokoe:invalid" result="pass"/><test-case name="18562NISTXML-SV-II-list-long-length-2-5 tokoe:invalid" result="pass"/><test-case name="18563NISTSchema-SV-II-list-long-length-3 tokoe:valid" result="pass"/><test-case name="18564NISTXML-SV-II-list-long-length-3-1 tokoe:invalid" result="pass"/><test-case name="18565NISTXML-SV-II-list-long-length-3-2 tokoe:invalid" result="pass"/><test-case name="18566NISTXML-SV-II-list-long-length-3-3 tokoe:invalid" result="pass"/><test-case name="18567NISTXML-SV-II-list-long-length-3-4 tokoe:invalid" result="pass"/><test-case name="18568NISTXML-SV-II-list-long-length-3-5 tokoe:invalid" result="pass"/><test-case name="18569NISTSchema-SV-II-list-long-length-4 tokoe:valid" result="pass"/><test-case name="18570NISTXML-SV-II-list-long-length-4-1 tokoe:invalid" result="pass"/><test-case name="18571NISTXML-SV-II-list-long-length-4-2 tokoe:invalid" result="pass"/><test-case name="18572NISTXML-SV-II-list-long-length-4-3 tokoe:invalid" result="pass"/><test-case name="18573NISTXML-SV-II-list-long-length-4-4 tokoe:invalid" result="pass"/><test-case name="18574NISTXML-SV-II-list-long-length-4-5 tokoe:invalid" result="pass"/><test-case name="18575NISTSchema-SV-II-list-long-length-5 tokoe:valid" result="pass"/><test-case name="18576NISTXML-SV-II-list-long-length-5-1 tokoe:invalid" result="pass"/><test-case name="18577NISTXML-SV-II-list-long-length-5-2 tokoe:invalid" result="pass"/><test-case name="18578NISTXML-SV-II-list-long-length-5-3 tokoe:invalid" result="pass"/><test-case name="18579NISTXML-SV-II-list-long-length-5-4 tokoe:invalid" result="pass"/><test-case name="18580NISTXML-SV-II-list-long-length-5-5 tokoe:invalid" result="pass"/><test-case name="18581NISTSchema-SV-II-list-long-pattern-1 tokoe:valid" result="pass"/><test-case name="18582NISTXML-SV-II-list-long-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18583NISTXML-SV-II-list-long-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18584NISTXML-SV-II-list-long-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18585NISTXML-SV-II-list-long-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18586NISTXML-SV-II-list-long-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18587NISTSchema-SV-II-list-long-pattern-2 tokoe:valid" result="pass"/><test-case name="18588NISTXML-SV-II-list-long-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18589NISTXML-SV-II-list-long-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18590NISTXML-SV-II-list-long-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18591NISTXML-SV-II-list-long-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18592NISTXML-SV-II-list-long-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18593NISTSchema-SV-II-list-long-pattern-3 tokoe:valid" result="pass"/><test-case name="18594NISTXML-SV-II-list-long-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18595NISTXML-SV-II-list-long-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18596NISTXML-SV-II-list-long-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18597NISTXML-SV-II-list-long-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18598NISTXML-SV-II-list-long-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18599NISTSchema-SV-II-list-long-pattern-4 tokoe:valid" result="pass"/><test-case name="18600NISTXML-SV-II-list-long-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18601NISTXML-SV-II-list-long-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18602NISTXML-SV-II-list-long-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18603NISTXML-SV-II-list-long-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18604NISTXML-SV-II-list-long-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18605NISTSchema-SV-II-list-long-pattern-5 tokoe:valid" result="pass"/><test-case name="18606NISTXML-SV-II-list-long-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18607NISTXML-SV-II-list-long-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18608NISTXML-SV-II-list-long-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18609NISTXML-SV-II-list-long-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18610NISTXML-SV-II-list-long-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18611NISTSchema-SV-II-list-long-enumeration-1 tokoe:valid" result="pass"/><test-case name="18612NISTXML-SV-II-list-long-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18613NISTXML-SV-II-list-long-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18614NISTXML-SV-II-list-long-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18615NISTXML-SV-II-list-long-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18616NISTXML-SV-II-list-long-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18617NISTSchema-SV-II-list-long-enumeration-2 tokoe:valid" result="pass"/><test-case name="18618NISTXML-SV-II-list-long-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18619NISTXML-SV-II-list-long-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18620NISTXML-SV-II-list-long-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18621NISTXML-SV-II-list-long-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18622NISTXML-SV-II-list-long-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18623NISTSchema-SV-II-list-long-enumeration-3 tokoe:valid" result="pass"/><test-case name="18624NISTXML-SV-II-list-long-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18625NISTXML-SV-II-list-long-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18626NISTXML-SV-II-list-long-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18627NISTXML-SV-II-list-long-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18628NISTXML-SV-II-list-long-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18629NISTSchema-SV-II-list-long-enumeration-4 tokoe:valid" result="pass"/><test-case name="18630NISTXML-SV-II-list-long-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18631NISTXML-SV-II-list-long-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18632NISTXML-SV-II-list-long-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18633NISTXML-SV-II-list-long-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18634NISTXML-SV-II-list-long-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18635NISTSchema-SV-II-list-long-enumeration-5 tokoe:valid" result="pass"/><test-case name="18636NISTXML-SV-II-list-long-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18637NISTXML-SV-II-list-long-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18638NISTXML-SV-II-list-long-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18639NISTXML-SV-II-list-long-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18640NISTXML-SV-II-list-long-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18641NISTSchema-SV-II-list-int-maxLength-1 tokoe:valid" result="pass"/><test-case name="18642NISTXML-SV-II-list-int-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18643NISTXML-SV-II-list-int-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18644NISTXML-SV-II-list-int-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18645NISTXML-SV-II-list-int-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18646NISTXML-SV-II-list-int-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18647NISTSchema-SV-II-list-int-maxLength-2 tokoe:valid" result="pass"/><test-case name="18648NISTXML-SV-II-list-int-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18649NISTXML-SV-II-list-int-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18650NISTXML-SV-II-list-int-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18651NISTXML-SV-II-list-int-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18652NISTXML-SV-II-list-int-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18653NISTSchema-SV-II-list-int-maxLength-3 tokoe:valid" result="pass"/><test-case name="18654NISTXML-SV-II-list-int-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18655NISTXML-SV-II-list-int-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18656NISTXML-SV-II-list-int-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18657NISTXML-SV-II-list-int-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18658NISTXML-SV-II-list-int-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18659NISTSchema-SV-II-list-int-maxLength-4 tokoe:valid" result="pass"/><test-case name="18660NISTXML-SV-II-list-int-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18661NISTXML-SV-II-list-int-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18662NISTXML-SV-II-list-int-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18663NISTXML-SV-II-list-int-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18664NISTXML-SV-II-list-int-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18665NISTSchema-SV-II-list-int-maxLength-5 tokoe:valid" result="pass"/><test-case name="18666NISTXML-SV-II-list-int-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18667NISTXML-SV-II-list-int-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18668NISTXML-SV-II-list-int-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18669NISTXML-SV-II-list-int-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18670NISTXML-SV-II-list-int-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18671NISTSchema-SV-II-list-int-minLength-1 tokoe:valid" result="pass"/><test-case name="18672NISTXML-SV-II-list-int-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18673NISTXML-SV-II-list-int-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18674NISTXML-SV-II-list-int-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18675NISTXML-SV-II-list-int-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18676NISTXML-SV-II-list-int-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18677NISTSchema-SV-II-list-int-minLength-2 tokoe:valid" result="pass"/><test-case name="18678NISTXML-SV-II-list-int-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18679NISTXML-SV-II-list-int-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18680NISTXML-SV-II-list-int-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18681NISTXML-SV-II-list-int-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18682NISTXML-SV-II-list-int-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18683NISTSchema-SV-II-list-int-minLength-3 tokoe:valid" result="pass"/><test-case name="18684NISTXML-SV-II-list-int-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18685NISTXML-SV-II-list-int-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18686NISTXML-SV-II-list-int-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18687NISTXML-SV-II-list-int-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18688NISTXML-SV-II-list-int-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18689NISTSchema-SV-II-list-int-minLength-4 tokoe:valid" result="pass"/><test-case name="18690NISTXML-SV-II-list-int-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18691NISTXML-SV-II-list-int-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18692NISTXML-SV-II-list-int-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18693NISTXML-SV-II-list-int-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18694NISTXML-SV-II-list-int-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18695NISTSchema-SV-II-list-int-minLength-5 tokoe:valid" result="pass"/><test-case name="18696NISTXML-SV-II-list-int-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18697NISTXML-SV-II-list-int-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18698NISTXML-SV-II-list-int-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18699NISTXML-SV-II-list-int-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18700NISTXML-SV-II-list-int-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18701NISTSchema-SV-II-list-int-length-1 tokoe:valid" result="pass"/><test-case name="18702NISTXML-SV-II-list-int-length-1-1 tokoe:invalid" result="pass"/><test-case name="18703NISTXML-SV-II-list-int-length-1-2 tokoe:invalid" result="pass"/><test-case name="18704NISTXML-SV-II-list-int-length-1-3 tokoe:invalid" result="pass"/><test-case name="18705NISTXML-SV-II-list-int-length-1-4 tokoe:invalid" result="pass"/><test-case name="18706NISTXML-SV-II-list-int-length-1-5 tokoe:invalid" result="pass"/><test-case name="18707NISTSchema-SV-II-list-int-length-2 tokoe:valid" result="pass"/><test-case name="18708NISTXML-SV-II-list-int-length-2-1 tokoe:invalid" result="pass"/><test-case name="18709NISTXML-SV-II-list-int-length-2-2 tokoe:invalid" result="pass"/><test-case name="18710NISTXML-SV-II-list-int-length-2-3 tokoe:invalid" result="pass"/><test-case name="18711NISTXML-SV-II-list-int-length-2-4 tokoe:invalid" result="pass"/><test-case name="18712NISTXML-SV-II-list-int-length-2-5 tokoe:invalid" result="pass"/><test-case name="18713NISTSchema-SV-II-list-int-length-3 tokoe:valid" result="pass"/><test-case name="18714NISTXML-SV-II-list-int-length-3-1 tokoe:invalid" result="pass"/><test-case name="18715NISTXML-SV-II-list-int-length-3-2 tokoe:invalid" result="pass"/><test-case name="18716NISTXML-SV-II-list-int-length-3-3 tokoe:invalid" result="pass"/><test-case name="18717NISTXML-SV-II-list-int-length-3-4 tokoe:invalid" result="pass"/><test-case name="18718NISTXML-SV-II-list-int-length-3-5 tokoe:invalid" result="pass"/><test-case name="18719NISTSchema-SV-II-list-int-length-4 tokoe:valid" result="pass"/><test-case name="18720NISTXML-SV-II-list-int-length-4-1 tokoe:invalid" result="pass"/><test-case name="18721NISTXML-SV-II-list-int-length-4-2 tokoe:invalid" result="pass"/><test-case name="18722NISTXML-SV-II-list-int-length-4-3 tokoe:invalid" result="pass"/><test-case name="18723NISTXML-SV-II-list-int-length-4-4 tokoe:invalid" result="pass"/><test-case name="18724NISTXML-SV-II-list-int-length-4-5 tokoe:invalid" result="pass"/><test-case name="18725NISTSchema-SV-II-list-int-length-5 tokoe:valid" result="pass"/><test-case name="18726NISTXML-SV-II-list-int-length-5-1 tokoe:invalid" result="pass"/><test-case name="18727NISTXML-SV-II-list-int-length-5-2 tokoe:invalid" result="pass"/><test-case name="18728NISTXML-SV-II-list-int-length-5-3 tokoe:invalid" result="pass"/><test-case name="18729NISTXML-SV-II-list-int-length-5-4 tokoe:invalid" result="pass"/><test-case name="18730NISTXML-SV-II-list-int-length-5-5 tokoe:invalid" result="pass"/><test-case name="18731NISTSchema-SV-II-list-int-pattern-1 tokoe:valid" result="pass"/><test-case name="18732NISTXML-SV-II-list-int-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18733NISTXML-SV-II-list-int-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18734NISTXML-SV-II-list-int-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18735NISTXML-SV-II-list-int-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18736NISTXML-SV-II-list-int-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18737NISTSchema-SV-II-list-int-pattern-2 tokoe:valid" result="pass"/><test-case name="18738NISTXML-SV-II-list-int-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18739NISTXML-SV-II-list-int-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18740NISTXML-SV-II-list-int-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18741NISTXML-SV-II-list-int-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18742NISTXML-SV-II-list-int-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18743NISTSchema-SV-II-list-int-pattern-3 tokoe:valid" result="pass"/><test-case name="18744NISTXML-SV-II-list-int-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18745NISTXML-SV-II-list-int-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18746NISTXML-SV-II-list-int-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18747NISTXML-SV-II-list-int-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18748NISTXML-SV-II-list-int-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18749NISTSchema-SV-II-list-int-pattern-4 tokoe:valid" result="pass"/><test-case name="18750NISTXML-SV-II-list-int-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18751NISTXML-SV-II-list-int-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18752NISTXML-SV-II-list-int-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18753NISTXML-SV-II-list-int-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18754NISTXML-SV-II-list-int-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18755NISTSchema-SV-II-list-int-pattern-5 tokoe:valid" result="pass"/><test-case name="18756NISTXML-SV-II-list-int-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18757NISTXML-SV-II-list-int-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18758NISTXML-SV-II-list-int-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18759NISTXML-SV-II-list-int-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18760NISTXML-SV-II-list-int-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18761NISTSchema-SV-II-list-int-enumeration-1 tokoe:valid" result="pass"/><test-case name="18762NISTXML-SV-II-list-int-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18763NISTXML-SV-II-list-int-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18764NISTXML-SV-II-list-int-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18765NISTXML-SV-II-list-int-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18766NISTXML-SV-II-list-int-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18767NISTSchema-SV-II-list-int-enumeration-2 tokoe:valid" result="pass"/><test-case name="18768NISTXML-SV-II-list-int-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18769NISTXML-SV-II-list-int-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18770NISTXML-SV-II-list-int-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18771NISTXML-SV-II-list-int-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18772NISTXML-SV-II-list-int-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18773NISTSchema-SV-II-list-int-enumeration-3 tokoe:valid" result="pass"/><test-case name="18774NISTXML-SV-II-list-int-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18775NISTXML-SV-II-list-int-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18776NISTXML-SV-II-list-int-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18777NISTXML-SV-II-list-int-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18778NISTXML-SV-II-list-int-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18779NISTSchema-SV-II-list-int-enumeration-4 tokoe:valid" result="pass"/><test-case name="18780NISTXML-SV-II-list-int-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18781NISTXML-SV-II-list-int-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18782NISTXML-SV-II-list-int-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18783NISTXML-SV-II-list-int-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18784NISTXML-SV-II-list-int-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18785NISTSchema-SV-II-list-int-enumeration-5 tokoe:valid" result="pass"/><test-case name="18786NISTXML-SV-II-list-int-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18787NISTXML-SV-II-list-int-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18788NISTXML-SV-II-list-int-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18789NISTXML-SV-II-list-int-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18790NISTXML-SV-II-list-int-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18791NISTSchema-SV-II-list-short-maxLength-1 tokoe:valid" result="pass"/><test-case name="18792NISTXML-SV-II-list-short-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18793NISTXML-SV-II-list-short-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18794NISTXML-SV-II-list-short-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18795NISTXML-SV-II-list-short-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18796NISTXML-SV-II-list-short-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18797NISTSchema-SV-II-list-short-maxLength-2 tokoe:valid" result="pass"/><test-case name="18798NISTXML-SV-II-list-short-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18799NISTXML-SV-II-list-short-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18800NISTXML-SV-II-list-short-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18801NISTXML-SV-II-list-short-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18802NISTXML-SV-II-list-short-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18803NISTSchema-SV-II-list-short-maxLength-3 tokoe:valid" result="pass"/><test-case name="18804NISTXML-SV-II-list-short-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18805NISTXML-SV-II-list-short-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18806NISTXML-SV-II-list-short-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18807NISTXML-SV-II-list-short-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18808NISTXML-SV-II-list-short-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18809NISTSchema-SV-II-list-short-maxLength-4 tokoe:valid" result="pass"/><test-case name="18810NISTXML-SV-II-list-short-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18811NISTXML-SV-II-list-short-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18812NISTXML-SV-II-list-short-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18813NISTXML-SV-II-list-short-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18814NISTXML-SV-II-list-short-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18815NISTSchema-SV-II-list-short-maxLength-5 tokoe:valid" result="pass"/><test-case name="18816NISTXML-SV-II-list-short-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18817NISTXML-SV-II-list-short-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18818NISTXML-SV-II-list-short-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18819NISTXML-SV-II-list-short-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18820NISTXML-SV-II-list-short-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18821NISTSchema-SV-II-list-short-minLength-1 tokoe:valid" result="pass"/><test-case name="18822NISTXML-SV-II-list-short-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18823NISTXML-SV-II-list-short-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18824NISTXML-SV-II-list-short-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18825NISTXML-SV-II-list-short-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18826NISTXML-SV-II-list-short-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18827NISTSchema-SV-II-list-short-minLength-2 tokoe:valid" result="pass"/><test-case name="18828NISTXML-SV-II-list-short-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18829NISTXML-SV-II-list-short-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18830NISTXML-SV-II-list-short-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18831NISTXML-SV-II-list-short-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18832NISTXML-SV-II-list-short-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18833NISTSchema-SV-II-list-short-minLength-3 tokoe:valid" result="pass"/><test-case name="18834NISTXML-SV-II-list-short-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18835NISTXML-SV-II-list-short-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18836NISTXML-SV-II-list-short-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18837NISTXML-SV-II-list-short-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18838NISTXML-SV-II-list-short-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18839NISTSchema-SV-II-list-short-minLength-4 tokoe:valid" result="pass"/><test-case name="18840NISTXML-SV-II-list-short-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18841NISTXML-SV-II-list-short-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18842NISTXML-SV-II-list-short-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18843NISTXML-SV-II-list-short-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18844NISTXML-SV-II-list-short-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18845NISTSchema-SV-II-list-short-minLength-5 tokoe:valid" result="pass"/><test-case name="18846NISTXML-SV-II-list-short-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18847NISTXML-SV-II-list-short-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18848NISTXML-SV-II-list-short-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18849NISTXML-SV-II-list-short-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="18850NISTXML-SV-II-list-short-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="18851NISTSchema-SV-II-list-short-length-1 tokoe:valid" result="pass"/><test-case name="18852NISTXML-SV-II-list-short-length-1-1 tokoe:invalid" result="pass"/><test-case name="18853NISTXML-SV-II-list-short-length-1-2 tokoe:invalid" result="pass"/><test-case name="18854NISTXML-SV-II-list-short-length-1-3 tokoe:invalid" result="pass"/><test-case name="18855NISTXML-SV-II-list-short-length-1-4 tokoe:invalid" result="pass"/><test-case name="18856NISTXML-SV-II-list-short-length-1-5 tokoe:invalid" result="pass"/><test-case name="18857NISTSchema-SV-II-list-short-length-2 tokoe:valid" result="pass"/><test-case name="18858NISTXML-SV-II-list-short-length-2-1 tokoe:invalid" result="pass"/><test-case name="18859NISTXML-SV-II-list-short-length-2-2 tokoe:invalid" result="pass"/><test-case name="18860NISTXML-SV-II-list-short-length-2-3 tokoe:invalid" result="pass"/><test-case name="18861NISTXML-SV-II-list-short-length-2-4 tokoe:invalid" result="pass"/><test-case name="18862NISTXML-SV-II-list-short-length-2-5 tokoe:invalid" result="pass"/><test-case name="18863NISTSchema-SV-II-list-short-length-3 tokoe:valid" result="pass"/><test-case name="18864NISTXML-SV-II-list-short-length-3-1 tokoe:invalid" result="pass"/><test-case name="18865NISTXML-SV-II-list-short-length-3-2 tokoe:invalid" result="pass"/><test-case name="18866NISTXML-SV-II-list-short-length-3-3 tokoe:invalid" result="pass"/><test-case name="18867NISTXML-SV-II-list-short-length-3-4 tokoe:invalid" result="pass"/><test-case name="18868NISTXML-SV-II-list-short-length-3-5 tokoe:invalid" result="pass"/><test-case name="18869NISTSchema-SV-II-list-short-length-4 tokoe:valid" result="pass"/><test-case name="18870NISTXML-SV-II-list-short-length-4-1 tokoe:invalid" result="pass"/><test-case name="18871NISTXML-SV-II-list-short-length-4-2 tokoe:invalid" result="pass"/><test-case name="18872NISTXML-SV-II-list-short-length-4-3 tokoe:invalid" result="pass"/><test-case name="18873NISTXML-SV-II-list-short-length-4-4 tokoe:invalid" result="pass"/><test-case name="18874NISTXML-SV-II-list-short-length-4-5 tokoe:invalid" result="pass"/><test-case name="18875NISTSchema-SV-II-list-short-length-5 tokoe:valid" result="pass"/><test-case name="18876NISTXML-SV-II-list-short-length-5-1 tokoe:invalid" result="pass"/><test-case name="18877NISTXML-SV-II-list-short-length-5-2 tokoe:invalid" result="pass"/><test-case name="18878NISTXML-SV-II-list-short-length-5-3 tokoe:invalid" result="pass"/><test-case name="18879NISTXML-SV-II-list-short-length-5-4 tokoe:invalid" result="pass"/><test-case name="18880NISTXML-SV-II-list-short-length-5-5 tokoe:invalid" result="pass"/><test-case name="18881NISTSchema-SV-II-list-short-pattern-1 tokoe:valid" result="pass"/><test-case name="18882NISTXML-SV-II-list-short-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="18883NISTXML-SV-II-list-short-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="18884NISTXML-SV-II-list-short-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="18885NISTXML-SV-II-list-short-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="18886NISTXML-SV-II-list-short-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="18887NISTSchema-SV-II-list-short-pattern-2 tokoe:valid" result="pass"/><test-case name="18888NISTXML-SV-II-list-short-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="18889NISTXML-SV-II-list-short-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="18890NISTXML-SV-II-list-short-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="18891NISTXML-SV-II-list-short-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="18892NISTXML-SV-II-list-short-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="18893NISTSchema-SV-II-list-short-pattern-3 tokoe:valid" result="pass"/><test-case name="18894NISTXML-SV-II-list-short-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="18895NISTXML-SV-II-list-short-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="18896NISTXML-SV-II-list-short-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="18897NISTXML-SV-II-list-short-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="18898NISTXML-SV-II-list-short-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="18899NISTSchema-SV-II-list-short-pattern-4 tokoe:valid" result="pass"/><test-case name="18900NISTXML-SV-II-list-short-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="18901NISTXML-SV-II-list-short-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="18902NISTXML-SV-II-list-short-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="18903NISTXML-SV-II-list-short-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="18904NISTXML-SV-II-list-short-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="18905NISTSchema-SV-II-list-short-pattern-5 tokoe:valid" result="pass"/><test-case name="18906NISTXML-SV-II-list-short-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="18907NISTXML-SV-II-list-short-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="18908NISTXML-SV-II-list-short-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="18909NISTXML-SV-II-list-short-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="18910NISTXML-SV-II-list-short-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="18911NISTSchema-SV-II-list-short-enumeration-1 tokoe:valid" result="pass"/><test-case name="18912NISTXML-SV-II-list-short-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="18913NISTXML-SV-II-list-short-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="18914NISTXML-SV-II-list-short-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="18915NISTXML-SV-II-list-short-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="18916NISTXML-SV-II-list-short-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="18917NISTSchema-SV-II-list-short-enumeration-2 tokoe:valid" result="pass"/><test-case name="18918NISTXML-SV-II-list-short-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="18919NISTXML-SV-II-list-short-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="18920NISTXML-SV-II-list-short-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="18921NISTXML-SV-II-list-short-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="18922NISTXML-SV-II-list-short-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="18923NISTSchema-SV-II-list-short-enumeration-3 tokoe:valid" result="pass"/><test-case name="18924NISTXML-SV-II-list-short-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="18925NISTXML-SV-II-list-short-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="18926NISTXML-SV-II-list-short-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="18927NISTXML-SV-II-list-short-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="18928NISTXML-SV-II-list-short-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="18929NISTSchema-SV-II-list-short-enumeration-4 tokoe:valid" result="pass"/><test-case name="18930NISTXML-SV-II-list-short-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="18931NISTXML-SV-II-list-short-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="18932NISTXML-SV-II-list-short-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="18933NISTXML-SV-II-list-short-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="18934NISTXML-SV-II-list-short-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="18935NISTSchema-SV-II-list-short-enumeration-5 tokoe:valid" result="pass"/><test-case name="18936NISTXML-SV-II-list-short-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="18937NISTXML-SV-II-list-short-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="18938NISTXML-SV-II-list-short-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="18939NISTXML-SV-II-list-short-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="18940NISTXML-SV-II-list-short-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="18941NISTSchema-SV-II-list-byte-maxLength-1 tokoe:valid" result="pass"/><test-case name="18942NISTXML-SV-II-list-byte-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="18943NISTXML-SV-II-list-byte-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="18944NISTXML-SV-II-list-byte-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="18945NISTXML-SV-II-list-byte-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="18946NISTXML-SV-II-list-byte-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="18947NISTSchema-SV-II-list-byte-maxLength-2 tokoe:valid" result="pass"/><test-case name="18948NISTXML-SV-II-list-byte-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="18949NISTXML-SV-II-list-byte-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="18950NISTXML-SV-II-list-byte-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="18951NISTXML-SV-II-list-byte-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="18952NISTXML-SV-II-list-byte-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="18953NISTSchema-SV-II-list-byte-maxLength-3 tokoe:valid" result="pass"/><test-case name="18954NISTXML-SV-II-list-byte-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="18955NISTXML-SV-II-list-byte-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="18956NISTXML-SV-II-list-byte-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="18957NISTXML-SV-II-list-byte-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="18958NISTXML-SV-II-list-byte-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="18959NISTSchema-SV-II-list-byte-maxLength-4 tokoe:valid" result="pass"/><test-case name="18960NISTXML-SV-II-list-byte-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="18961NISTXML-SV-II-list-byte-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="18962NISTXML-SV-II-list-byte-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="18963NISTXML-SV-II-list-byte-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="18964NISTXML-SV-II-list-byte-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="18965NISTSchema-SV-II-list-byte-maxLength-5 tokoe:valid" result="pass"/><test-case name="18966NISTXML-SV-II-list-byte-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="18967NISTXML-SV-II-list-byte-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="18968NISTXML-SV-II-list-byte-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="18969NISTXML-SV-II-list-byte-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="18970NISTXML-SV-II-list-byte-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="18971NISTSchema-SV-II-list-byte-minLength-1 tokoe:valid" result="pass"/><test-case name="18972NISTXML-SV-II-list-byte-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="18973NISTXML-SV-II-list-byte-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="18974NISTXML-SV-II-list-byte-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="18975NISTXML-SV-II-list-byte-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="18976NISTXML-SV-II-list-byte-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="18977NISTSchema-SV-II-list-byte-minLength-2 tokoe:valid" result="pass"/><test-case name="18978NISTXML-SV-II-list-byte-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="18979NISTXML-SV-II-list-byte-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="18980NISTXML-SV-II-list-byte-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="18981NISTXML-SV-II-list-byte-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="18982NISTXML-SV-II-list-byte-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="18983NISTSchema-SV-II-list-byte-minLength-3 tokoe:valid" result="pass"/><test-case name="18984NISTXML-SV-II-list-byte-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="18985NISTXML-SV-II-list-byte-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="18986NISTXML-SV-II-list-byte-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="18987NISTXML-SV-II-list-byte-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="18988NISTXML-SV-II-list-byte-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="18989NISTSchema-SV-II-list-byte-minLength-4 tokoe:valid" result="pass"/><test-case name="18990NISTXML-SV-II-list-byte-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="18991NISTXML-SV-II-list-byte-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="18992NISTXML-SV-II-list-byte-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="18993NISTXML-SV-II-list-byte-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="18994NISTXML-SV-II-list-byte-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="18995NISTSchema-SV-II-list-byte-minLength-5 tokoe:valid" result="pass"/><test-case name="18996NISTXML-SV-II-list-byte-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="18997NISTXML-SV-II-list-byte-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="18998NISTXML-SV-II-list-byte-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="18999NISTXML-SV-II-list-byte-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19000NISTXML-SV-II-list-byte-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19001NISTSchema-SV-II-list-byte-length-1 tokoe:valid" result="pass"/><test-case name="19002NISTXML-SV-II-list-byte-length-1-1 tokoe:invalid" result="pass"/><test-case name="19003NISTXML-SV-II-list-byte-length-1-2 tokoe:invalid" result="pass"/><test-case name="19004NISTXML-SV-II-list-byte-length-1-3 tokoe:invalid" result="pass"/><test-case name="19005NISTXML-SV-II-list-byte-length-1-4 tokoe:invalid" result="pass"/><test-case name="19006NISTXML-SV-II-list-byte-length-1-5 tokoe:invalid" result="pass"/><test-case name="19007NISTSchema-SV-II-list-byte-length-2 tokoe:valid" result="pass"/><test-case name="19008NISTXML-SV-II-list-byte-length-2-1 tokoe:invalid" result="pass"/><test-case name="19009NISTXML-SV-II-list-byte-length-2-2 tokoe:invalid" result="pass"/><test-case name="19010NISTXML-SV-II-list-byte-length-2-3 tokoe:invalid" result="pass"/><test-case name="19011NISTXML-SV-II-list-byte-length-2-4 tokoe:invalid" result="pass"/><test-case name="19012NISTXML-SV-II-list-byte-length-2-5 tokoe:invalid" result="pass"/><test-case name="19013NISTSchema-SV-II-list-byte-length-3 tokoe:valid" result="pass"/><test-case name="19014NISTXML-SV-II-list-byte-length-3-1 tokoe:invalid" result="pass"/><test-case name="19015NISTXML-SV-II-list-byte-length-3-2 tokoe:invalid" result="pass"/><test-case name="19016NISTXML-SV-II-list-byte-length-3-3 tokoe:invalid" result="pass"/><test-case name="19017NISTXML-SV-II-list-byte-length-3-4 tokoe:invalid" result="pass"/><test-case name="19018NISTXML-SV-II-list-byte-length-3-5 tokoe:invalid" result="pass"/><test-case name="19019NISTSchema-SV-II-list-byte-length-4 tokoe:valid" result="pass"/><test-case name="19020NISTXML-SV-II-list-byte-length-4-1 tokoe:invalid" result="pass"/><test-case name="19021NISTXML-SV-II-list-byte-length-4-2 tokoe:invalid" result="pass"/><test-case name="19022NISTXML-SV-II-list-byte-length-4-3 tokoe:invalid" result="pass"/><test-case name="19023NISTXML-SV-II-list-byte-length-4-4 tokoe:invalid" result="pass"/><test-case name="19024NISTXML-SV-II-list-byte-length-4-5 tokoe:invalid" result="pass"/><test-case name="19025NISTSchema-SV-II-list-byte-length-5 tokoe:valid" result="pass"/><test-case name="19026NISTXML-SV-II-list-byte-length-5-1 tokoe:invalid" result="pass"/><test-case name="19027NISTXML-SV-II-list-byte-length-5-2 tokoe:invalid" result="pass"/><test-case name="19028NISTXML-SV-II-list-byte-length-5-3 tokoe:invalid" result="pass"/><test-case name="19029NISTXML-SV-II-list-byte-length-5-4 tokoe:invalid" result="pass"/><test-case name="19030NISTXML-SV-II-list-byte-length-5-5 tokoe:invalid" result="pass"/><test-case name="19031NISTSchema-SV-II-list-byte-pattern-1 tokoe:valid" result="pass"/><test-case name="19032NISTXML-SV-II-list-byte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19033NISTXML-SV-II-list-byte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19034NISTXML-SV-II-list-byte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19035NISTXML-SV-II-list-byte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19036NISTXML-SV-II-list-byte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19037NISTSchema-SV-II-list-byte-pattern-2 tokoe:valid" result="pass"/><test-case name="19038NISTXML-SV-II-list-byte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19039NISTXML-SV-II-list-byte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19040NISTXML-SV-II-list-byte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19041NISTXML-SV-II-list-byte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19042NISTXML-SV-II-list-byte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19043NISTSchema-SV-II-list-byte-pattern-3 tokoe:valid" result="pass"/><test-case name="19044NISTXML-SV-II-list-byte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19045NISTXML-SV-II-list-byte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19046NISTXML-SV-II-list-byte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19047NISTXML-SV-II-list-byte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19048NISTXML-SV-II-list-byte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19049NISTSchema-SV-II-list-byte-pattern-4 tokoe:valid" result="pass"/><test-case name="19050NISTXML-SV-II-list-byte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19051NISTXML-SV-II-list-byte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19052NISTXML-SV-II-list-byte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19053NISTXML-SV-II-list-byte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19054NISTXML-SV-II-list-byte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19055NISTSchema-SV-II-list-byte-pattern-5 tokoe:valid" result="pass"/><test-case name="19056NISTXML-SV-II-list-byte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19057NISTXML-SV-II-list-byte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19058NISTXML-SV-II-list-byte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19059NISTXML-SV-II-list-byte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19060NISTXML-SV-II-list-byte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19061NISTSchema-SV-II-list-byte-enumeration-1 tokoe:valid" result="pass"/><test-case name="19062NISTXML-SV-II-list-byte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19063NISTXML-SV-II-list-byte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19064NISTXML-SV-II-list-byte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19065NISTXML-SV-II-list-byte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19066NISTXML-SV-II-list-byte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19067NISTSchema-SV-II-list-byte-enumeration-2 tokoe:valid" result="pass"/><test-case name="19068NISTXML-SV-II-list-byte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19069NISTXML-SV-II-list-byte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19070NISTXML-SV-II-list-byte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19071NISTXML-SV-II-list-byte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19072NISTXML-SV-II-list-byte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19073NISTSchema-SV-II-list-byte-enumeration-3 tokoe:valid" result="pass"/><test-case name="19074NISTXML-SV-II-list-byte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19075NISTXML-SV-II-list-byte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19076NISTXML-SV-II-list-byte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19077NISTXML-SV-II-list-byte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19078NISTXML-SV-II-list-byte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19079NISTSchema-SV-II-list-byte-enumeration-4 tokoe:valid" result="pass"/><test-case name="19080NISTXML-SV-II-list-byte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19081NISTXML-SV-II-list-byte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19082NISTXML-SV-II-list-byte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19083NISTXML-SV-II-list-byte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19084NISTXML-SV-II-list-byte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19085NISTSchema-SV-II-list-byte-enumeration-5 tokoe:valid" result="pass"/><test-case name="19086NISTXML-SV-II-list-byte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19087NISTXML-SV-II-list-byte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19088NISTXML-SV-II-list-byte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19089NISTXML-SV-II-list-byte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19090NISTXML-SV-II-list-byte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19091NISTSchema-SV-II-list-nonNegativeInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="19092NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19093NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19094NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19095NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19096NISTXML-SV-II-list-nonNegativeInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19097NISTSchema-SV-II-list-nonNegativeInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="19098NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19099NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19100NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19101NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19102NISTXML-SV-II-list-nonNegativeInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19103NISTSchema-SV-II-list-nonNegativeInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="19104NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19105NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19106NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19107NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19108NISTXML-SV-II-list-nonNegativeInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19109NISTSchema-SV-II-list-nonNegativeInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="19110NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19111NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19112NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19113NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19114NISTXML-SV-II-list-nonNegativeInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19115NISTSchema-SV-II-list-nonNegativeInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="19116NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19117NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19118NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19119NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19120NISTXML-SV-II-list-nonNegativeInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19121NISTSchema-SV-II-list-nonNegativeInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="19122NISTXML-SV-II-list-nonNegativeInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19123NISTXML-SV-II-list-nonNegativeInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19124NISTXML-SV-II-list-nonNegativeInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19125NISTXML-SV-II-list-nonNegativeInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19126NISTXML-SV-II-list-nonNegativeInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19127NISTSchema-SV-II-list-nonNegativeInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="19128NISTXML-SV-II-list-nonNegativeInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19129NISTXML-SV-II-list-nonNegativeInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19130NISTXML-SV-II-list-nonNegativeInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19131NISTXML-SV-II-list-nonNegativeInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19132NISTXML-SV-II-list-nonNegativeInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19133NISTSchema-SV-II-list-nonNegativeInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="19134NISTXML-SV-II-list-nonNegativeInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19135NISTXML-SV-II-list-nonNegativeInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19136NISTXML-SV-II-list-nonNegativeInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19137NISTXML-SV-II-list-nonNegativeInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19138NISTXML-SV-II-list-nonNegativeInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19139NISTSchema-SV-II-list-nonNegativeInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="19140NISTXML-SV-II-list-nonNegativeInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19141NISTXML-SV-II-list-nonNegativeInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19142NISTXML-SV-II-list-nonNegativeInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19143NISTXML-SV-II-list-nonNegativeInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19144NISTXML-SV-II-list-nonNegativeInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19145NISTSchema-SV-II-list-nonNegativeInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="19146NISTXML-SV-II-list-nonNegativeInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19147NISTXML-SV-II-list-nonNegativeInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19148NISTXML-SV-II-list-nonNegativeInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19149NISTXML-SV-II-list-nonNegativeInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19150NISTXML-SV-II-list-nonNegativeInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19151NISTSchema-SV-II-list-nonNegativeInteger-length-1 tokoe:valid" result="pass"/><test-case name="19152NISTXML-SV-II-list-nonNegativeInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="19153NISTXML-SV-II-list-nonNegativeInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="19154NISTXML-SV-II-list-nonNegativeInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="19155NISTXML-SV-II-list-nonNegativeInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="19156NISTXML-SV-II-list-nonNegativeInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="19157NISTSchema-SV-II-list-nonNegativeInteger-length-2 tokoe:valid" result="pass"/><test-case name="19158NISTXML-SV-II-list-nonNegativeInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="19159NISTXML-SV-II-list-nonNegativeInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="19160NISTXML-SV-II-list-nonNegativeInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="19161NISTXML-SV-II-list-nonNegativeInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="19162NISTXML-SV-II-list-nonNegativeInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="19163NISTSchema-SV-II-list-nonNegativeInteger-length-3 tokoe:valid" result="pass"/><test-case name="19164NISTXML-SV-II-list-nonNegativeInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="19165NISTXML-SV-II-list-nonNegativeInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="19166NISTXML-SV-II-list-nonNegativeInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="19167NISTXML-SV-II-list-nonNegativeInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="19168NISTXML-SV-II-list-nonNegativeInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="19169NISTSchema-SV-II-list-nonNegativeInteger-length-4 tokoe:valid" result="pass"/><test-case name="19170NISTXML-SV-II-list-nonNegativeInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="19171NISTXML-SV-II-list-nonNegativeInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="19172NISTXML-SV-II-list-nonNegativeInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="19173NISTXML-SV-II-list-nonNegativeInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="19174NISTXML-SV-II-list-nonNegativeInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="19175NISTSchema-SV-II-list-nonNegativeInteger-length-5 tokoe:valid" result="pass"/><test-case name="19176NISTXML-SV-II-list-nonNegativeInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="19177NISTXML-SV-II-list-nonNegativeInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="19178NISTXML-SV-II-list-nonNegativeInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="19179NISTXML-SV-II-list-nonNegativeInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="19180NISTXML-SV-II-list-nonNegativeInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="19181NISTSchema-SV-II-list-nonNegativeInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="19182NISTXML-SV-II-list-nonNegativeInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19183NISTXML-SV-II-list-nonNegativeInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19184NISTXML-SV-II-list-nonNegativeInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19185NISTXML-SV-II-list-nonNegativeInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19186NISTXML-SV-II-list-nonNegativeInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19187NISTSchema-SV-II-list-nonNegativeInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="19188NISTXML-SV-II-list-nonNegativeInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19189NISTXML-SV-II-list-nonNegativeInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19190NISTXML-SV-II-list-nonNegativeInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19191NISTXML-SV-II-list-nonNegativeInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19192NISTXML-SV-II-list-nonNegativeInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19193NISTSchema-SV-II-list-nonNegativeInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="19194NISTXML-SV-II-list-nonNegativeInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19195NISTXML-SV-II-list-nonNegativeInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19196NISTXML-SV-II-list-nonNegativeInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19197NISTXML-SV-II-list-nonNegativeInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19198NISTXML-SV-II-list-nonNegativeInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19199NISTSchema-SV-II-list-nonNegativeInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="19200NISTXML-SV-II-list-nonNegativeInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19201NISTXML-SV-II-list-nonNegativeInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19202NISTXML-SV-II-list-nonNegativeInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19203NISTXML-SV-II-list-nonNegativeInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19204NISTXML-SV-II-list-nonNegativeInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19205NISTSchema-SV-II-list-nonNegativeInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="19206NISTXML-SV-II-list-nonNegativeInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19207NISTXML-SV-II-list-nonNegativeInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19208NISTXML-SV-II-list-nonNegativeInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19209NISTXML-SV-II-list-nonNegativeInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19210NISTXML-SV-II-list-nonNegativeInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19211NISTSchema-SV-II-list-nonNegativeInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="19212NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19213NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19214NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19215NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19216NISTXML-SV-II-list-nonNegativeInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19217NISTSchema-SV-II-list-nonNegativeInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="19218NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19219NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19220NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19221NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19222NISTXML-SV-II-list-nonNegativeInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19223NISTSchema-SV-II-list-nonNegativeInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="19224NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19225NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19226NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19227NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19228NISTXML-SV-II-list-nonNegativeInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19229NISTSchema-SV-II-list-nonNegativeInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="19230NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19231NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19232NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19233NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19234NISTXML-SV-II-list-nonNegativeInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19235NISTSchema-SV-II-list-nonNegativeInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="19236NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19237NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19238NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19239NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19240NISTXML-SV-II-list-nonNegativeInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19241NISTSchema-SV-II-list-unsignedLong-maxLength-1 tokoe:valid" result="pass"/><test-case name="19242NISTXML-SV-II-list-unsignedLong-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19243NISTXML-SV-II-list-unsignedLong-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19244NISTXML-SV-II-list-unsignedLong-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19245NISTXML-SV-II-list-unsignedLong-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19246NISTXML-SV-II-list-unsignedLong-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19247NISTSchema-SV-II-list-unsignedLong-maxLength-2 tokoe:valid" result="pass"/><test-case name="19248NISTXML-SV-II-list-unsignedLong-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19249NISTXML-SV-II-list-unsignedLong-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19250NISTXML-SV-II-list-unsignedLong-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19251NISTXML-SV-II-list-unsignedLong-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19252NISTXML-SV-II-list-unsignedLong-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19253NISTSchema-SV-II-list-unsignedLong-maxLength-3 tokoe:valid" result="pass"/><test-case name="19254NISTXML-SV-II-list-unsignedLong-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19255NISTXML-SV-II-list-unsignedLong-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19256NISTXML-SV-II-list-unsignedLong-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19257NISTXML-SV-II-list-unsignedLong-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19258NISTXML-SV-II-list-unsignedLong-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19259NISTSchema-SV-II-list-unsignedLong-maxLength-4 tokoe:valid" result="pass"/><test-case name="19260NISTXML-SV-II-list-unsignedLong-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19261NISTXML-SV-II-list-unsignedLong-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19262NISTXML-SV-II-list-unsignedLong-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19263NISTXML-SV-II-list-unsignedLong-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19264NISTXML-SV-II-list-unsignedLong-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19265NISTSchema-SV-II-list-unsignedLong-maxLength-5 tokoe:valid" result="pass"/><test-case name="19266NISTXML-SV-II-list-unsignedLong-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19267NISTXML-SV-II-list-unsignedLong-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19268NISTXML-SV-II-list-unsignedLong-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19269NISTXML-SV-II-list-unsignedLong-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19270NISTXML-SV-II-list-unsignedLong-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19271NISTSchema-SV-II-list-unsignedLong-minLength-1 tokoe:valid" result="pass"/><test-case name="19272NISTXML-SV-II-list-unsignedLong-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19273NISTXML-SV-II-list-unsignedLong-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19274NISTXML-SV-II-list-unsignedLong-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19275NISTXML-SV-II-list-unsignedLong-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19276NISTXML-SV-II-list-unsignedLong-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19277NISTSchema-SV-II-list-unsignedLong-minLength-2 tokoe:valid" result="pass"/><test-case name="19278NISTXML-SV-II-list-unsignedLong-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19279NISTXML-SV-II-list-unsignedLong-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19280NISTXML-SV-II-list-unsignedLong-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19281NISTXML-SV-II-list-unsignedLong-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19282NISTXML-SV-II-list-unsignedLong-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19283NISTSchema-SV-II-list-unsignedLong-minLength-3 tokoe:valid" result="pass"/><test-case name="19284NISTXML-SV-II-list-unsignedLong-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19285NISTXML-SV-II-list-unsignedLong-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19286NISTXML-SV-II-list-unsignedLong-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19287NISTXML-SV-II-list-unsignedLong-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19288NISTXML-SV-II-list-unsignedLong-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19289NISTSchema-SV-II-list-unsignedLong-minLength-4 tokoe:valid" result="pass"/><test-case name="19290NISTXML-SV-II-list-unsignedLong-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19291NISTXML-SV-II-list-unsignedLong-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19292NISTXML-SV-II-list-unsignedLong-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19293NISTXML-SV-II-list-unsignedLong-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19294NISTXML-SV-II-list-unsignedLong-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19295NISTSchema-SV-II-list-unsignedLong-minLength-5 tokoe:valid" result="pass"/><test-case name="19296NISTXML-SV-II-list-unsignedLong-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19297NISTXML-SV-II-list-unsignedLong-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19298NISTXML-SV-II-list-unsignedLong-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19299NISTXML-SV-II-list-unsignedLong-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19300NISTXML-SV-II-list-unsignedLong-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19301NISTSchema-SV-II-list-unsignedLong-length-1 tokoe:valid" result="pass"/><test-case name="19302NISTXML-SV-II-list-unsignedLong-length-1-1 tokoe:invalid" result="pass"/><test-case name="19303NISTXML-SV-II-list-unsignedLong-length-1-2 tokoe:invalid" result="pass"/><test-case name="19304NISTXML-SV-II-list-unsignedLong-length-1-3 tokoe:invalid" result="pass"/><test-case name="19305NISTXML-SV-II-list-unsignedLong-length-1-4 tokoe:invalid" result="pass"/><test-case name="19306NISTXML-SV-II-list-unsignedLong-length-1-5 tokoe:invalid" result="pass"/><test-case name="19307NISTSchema-SV-II-list-unsignedLong-length-2 tokoe:valid" result="pass"/><test-case name="19308NISTXML-SV-II-list-unsignedLong-length-2-1 tokoe:invalid" result="pass"/><test-case name="19309NISTXML-SV-II-list-unsignedLong-length-2-2 tokoe:invalid" result="pass"/><test-case name="19310NISTXML-SV-II-list-unsignedLong-length-2-3 tokoe:invalid" result="pass"/><test-case name="19311NISTXML-SV-II-list-unsignedLong-length-2-4 tokoe:invalid" result="pass"/><test-case name="19312NISTXML-SV-II-list-unsignedLong-length-2-5 tokoe:invalid" result="pass"/><test-case name="19313NISTSchema-SV-II-list-unsignedLong-length-3 tokoe:valid" result="pass"/><test-case name="19314NISTXML-SV-II-list-unsignedLong-length-3-1 tokoe:invalid" result="pass"/><test-case name="19315NISTXML-SV-II-list-unsignedLong-length-3-2 tokoe:invalid" result="pass"/><test-case name="19316NISTXML-SV-II-list-unsignedLong-length-3-3 tokoe:invalid" result="pass"/><test-case name="19317NISTXML-SV-II-list-unsignedLong-length-3-4 tokoe:invalid" result="pass"/><test-case name="19318NISTXML-SV-II-list-unsignedLong-length-3-5 tokoe:invalid" result="pass"/><test-case name="19319NISTSchema-SV-II-list-unsignedLong-length-4 tokoe:valid" result="pass"/><test-case name="19320NISTXML-SV-II-list-unsignedLong-length-4-1 tokoe:invalid" result="pass"/><test-case name="19321NISTXML-SV-II-list-unsignedLong-length-4-2 tokoe:invalid" result="pass"/><test-case name="19322NISTXML-SV-II-list-unsignedLong-length-4-3 tokoe:invalid" result="pass"/><test-case name="19323NISTXML-SV-II-list-unsignedLong-length-4-4 tokoe:invalid" result="pass"/><test-case name="19324NISTXML-SV-II-list-unsignedLong-length-4-5 tokoe:invalid" result="pass"/><test-case name="19325NISTSchema-SV-II-list-unsignedLong-length-5 tokoe:valid" result="pass"/><test-case name="19326NISTXML-SV-II-list-unsignedLong-length-5-1 tokoe:invalid" result="pass"/><test-case name="19327NISTXML-SV-II-list-unsignedLong-length-5-2 tokoe:invalid" result="pass"/><test-case name="19328NISTXML-SV-II-list-unsignedLong-length-5-3 tokoe:invalid" result="pass"/><test-case name="19329NISTXML-SV-II-list-unsignedLong-length-5-4 tokoe:invalid" result="pass"/><test-case name="19330NISTXML-SV-II-list-unsignedLong-length-5-5 tokoe:invalid" result="pass"/><test-case name="19331NISTSchema-SV-II-list-unsignedLong-pattern-1 tokoe:valid" result="pass"/><test-case name="19332NISTXML-SV-II-list-unsignedLong-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19333NISTXML-SV-II-list-unsignedLong-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19334NISTXML-SV-II-list-unsignedLong-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19335NISTXML-SV-II-list-unsignedLong-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19336NISTXML-SV-II-list-unsignedLong-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19337NISTSchema-SV-II-list-unsignedLong-pattern-2 tokoe:valid" result="pass"/><test-case name="19338NISTXML-SV-II-list-unsignedLong-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19339NISTXML-SV-II-list-unsignedLong-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19340NISTXML-SV-II-list-unsignedLong-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19341NISTXML-SV-II-list-unsignedLong-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19342NISTXML-SV-II-list-unsignedLong-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19343NISTSchema-SV-II-list-unsignedLong-pattern-3 tokoe:valid" result="pass"/><test-case name="19344NISTXML-SV-II-list-unsignedLong-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19345NISTXML-SV-II-list-unsignedLong-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19346NISTXML-SV-II-list-unsignedLong-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19347NISTXML-SV-II-list-unsignedLong-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19348NISTXML-SV-II-list-unsignedLong-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19349NISTSchema-SV-II-list-unsignedLong-pattern-4 tokoe:valid" result="pass"/><test-case name="19350NISTXML-SV-II-list-unsignedLong-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19351NISTXML-SV-II-list-unsignedLong-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19352NISTXML-SV-II-list-unsignedLong-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19353NISTXML-SV-II-list-unsignedLong-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19354NISTXML-SV-II-list-unsignedLong-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19355NISTSchema-SV-II-list-unsignedLong-pattern-5 tokoe:valid" result="pass"/><test-case name="19356NISTXML-SV-II-list-unsignedLong-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19357NISTXML-SV-II-list-unsignedLong-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19358NISTXML-SV-II-list-unsignedLong-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19359NISTXML-SV-II-list-unsignedLong-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19360NISTXML-SV-II-list-unsignedLong-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19361NISTSchema-SV-II-list-unsignedLong-enumeration-1 tokoe:valid" result="pass"/><test-case name="19362NISTXML-SV-II-list-unsignedLong-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19363NISTXML-SV-II-list-unsignedLong-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19364NISTXML-SV-II-list-unsignedLong-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19365NISTXML-SV-II-list-unsignedLong-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19366NISTXML-SV-II-list-unsignedLong-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19367NISTSchema-SV-II-list-unsignedLong-enumeration-2 tokoe:valid" result="pass"/><test-case name="19368NISTXML-SV-II-list-unsignedLong-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19369NISTXML-SV-II-list-unsignedLong-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19370NISTXML-SV-II-list-unsignedLong-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19371NISTXML-SV-II-list-unsignedLong-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19372NISTXML-SV-II-list-unsignedLong-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19373NISTSchema-SV-II-list-unsignedLong-enumeration-3 tokoe:valid" result="pass"/><test-case name="19374NISTXML-SV-II-list-unsignedLong-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19375NISTXML-SV-II-list-unsignedLong-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19376NISTXML-SV-II-list-unsignedLong-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19377NISTXML-SV-II-list-unsignedLong-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19378NISTXML-SV-II-list-unsignedLong-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19379NISTSchema-SV-II-list-unsignedLong-enumeration-4 tokoe:valid" result="pass"/><test-case name="19380NISTXML-SV-II-list-unsignedLong-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19381NISTXML-SV-II-list-unsignedLong-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19382NISTXML-SV-II-list-unsignedLong-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19383NISTXML-SV-II-list-unsignedLong-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19384NISTXML-SV-II-list-unsignedLong-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19385NISTSchema-SV-II-list-unsignedLong-enumeration-5 tokoe:valid" result="pass"/><test-case name="19386NISTXML-SV-II-list-unsignedLong-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19387NISTXML-SV-II-list-unsignedLong-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19388NISTXML-SV-II-list-unsignedLong-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19389NISTXML-SV-II-list-unsignedLong-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19390NISTXML-SV-II-list-unsignedLong-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19391NISTSchema-SV-II-list-unsignedInt-maxLength-1 tokoe:valid" result="pass"/><test-case name="19392NISTXML-SV-II-list-unsignedInt-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19393NISTXML-SV-II-list-unsignedInt-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19394NISTXML-SV-II-list-unsignedInt-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19395NISTXML-SV-II-list-unsignedInt-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19396NISTXML-SV-II-list-unsignedInt-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19397NISTSchema-SV-II-list-unsignedInt-maxLength-2 tokoe:valid" result="pass"/><test-case name="19398NISTXML-SV-II-list-unsignedInt-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19399NISTXML-SV-II-list-unsignedInt-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19400NISTXML-SV-II-list-unsignedInt-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19401NISTXML-SV-II-list-unsignedInt-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19402NISTXML-SV-II-list-unsignedInt-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19403NISTSchema-SV-II-list-unsignedInt-maxLength-3 tokoe:valid" result="pass"/><test-case name="19404NISTXML-SV-II-list-unsignedInt-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19405NISTXML-SV-II-list-unsignedInt-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19406NISTXML-SV-II-list-unsignedInt-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19407NISTXML-SV-II-list-unsignedInt-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19408NISTXML-SV-II-list-unsignedInt-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19409NISTSchema-SV-II-list-unsignedInt-maxLength-4 tokoe:valid" result="pass"/><test-case name="19410NISTXML-SV-II-list-unsignedInt-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19411NISTXML-SV-II-list-unsignedInt-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19412NISTXML-SV-II-list-unsignedInt-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19413NISTXML-SV-II-list-unsignedInt-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19414NISTXML-SV-II-list-unsignedInt-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19415NISTSchema-SV-II-list-unsignedInt-maxLength-5 tokoe:valid" result="pass"/><test-case name="19416NISTXML-SV-II-list-unsignedInt-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19417NISTXML-SV-II-list-unsignedInt-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19418NISTXML-SV-II-list-unsignedInt-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19419NISTXML-SV-II-list-unsignedInt-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19420NISTXML-SV-II-list-unsignedInt-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19421NISTSchema-SV-II-list-unsignedInt-minLength-1 tokoe:valid" result="pass"/><test-case name="19422NISTXML-SV-II-list-unsignedInt-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19423NISTXML-SV-II-list-unsignedInt-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19424NISTXML-SV-II-list-unsignedInt-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19425NISTXML-SV-II-list-unsignedInt-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19426NISTXML-SV-II-list-unsignedInt-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19427NISTSchema-SV-II-list-unsignedInt-minLength-2 tokoe:valid" result="pass"/><test-case name="19428NISTXML-SV-II-list-unsignedInt-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19429NISTXML-SV-II-list-unsignedInt-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19430NISTXML-SV-II-list-unsignedInt-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19431NISTXML-SV-II-list-unsignedInt-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19432NISTXML-SV-II-list-unsignedInt-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19433NISTSchema-SV-II-list-unsignedInt-minLength-3 tokoe:valid" result="pass"/><test-case name="19434NISTXML-SV-II-list-unsignedInt-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19435NISTXML-SV-II-list-unsignedInt-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19436NISTXML-SV-II-list-unsignedInt-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19437NISTXML-SV-II-list-unsignedInt-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19438NISTXML-SV-II-list-unsignedInt-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19439NISTSchema-SV-II-list-unsignedInt-minLength-4 tokoe:valid" result="pass"/><test-case name="19440NISTXML-SV-II-list-unsignedInt-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19441NISTXML-SV-II-list-unsignedInt-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19442NISTXML-SV-II-list-unsignedInt-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19443NISTXML-SV-II-list-unsignedInt-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19444NISTXML-SV-II-list-unsignedInt-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19445NISTSchema-SV-II-list-unsignedInt-minLength-5 tokoe:valid" result="pass"/><test-case name="19446NISTXML-SV-II-list-unsignedInt-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19447NISTXML-SV-II-list-unsignedInt-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19448NISTXML-SV-II-list-unsignedInt-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19449NISTXML-SV-II-list-unsignedInt-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19450NISTXML-SV-II-list-unsignedInt-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19451NISTSchema-SV-II-list-unsignedInt-length-1 tokoe:valid" result="pass"/><test-case name="19452NISTXML-SV-II-list-unsignedInt-length-1-1 tokoe:invalid" result="pass"/><test-case name="19453NISTXML-SV-II-list-unsignedInt-length-1-2 tokoe:invalid" result="pass"/><test-case name="19454NISTXML-SV-II-list-unsignedInt-length-1-3 tokoe:invalid" result="pass"/><test-case name="19455NISTXML-SV-II-list-unsignedInt-length-1-4 tokoe:invalid" result="pass"/><test-case name="19456NISTXML-SV-II-list-unsignedInt-length-1-5 tokoe:invalid" result="pass"/><test-case name="19457NISTSchema-SV-II-list-unsignedInt-length-2 tokoe:valid" result="pass"/><test-case name="19458NISTXML-SV-II-list-unsignedInt-length-2-1 tokoe:invalid" result="pass"/><test-case name="19459NISTXML-SV-II-list-unsignedInt-length-2-2 tokoe:invalid" result="pass"/><test-case name="19460NISTXML-SV-II-list-unsignedInt-length-2-3 tokoe:invalid" result="pass"/><test-case name="19461NISTXML-SV-II-list-unsignedInt-length-2-4 tokoe:invalid" result="pass"/><test-case name="19462NISTXML-SV-II-list-unsignedInt-length-2-5 tokoe:invalid" result="pass"/><test-case name="19463NISTSchema-SV-II-list-unsignedInt-length-3 tokoe:valid" result="pass"/><test-case name="19464NISTXML-SV-II-list-unsignedInt-length-3-1 tokoe:invalid" result="pass"/><test-case name="19465NISTXML-SV-II-list-unsignedInt-length-3-2 tokoe:invalid" result="pass"/><test-case name="19466NISTXML-SV-II-list-unsignedInt-length-3-3 tokoe:invalid" result="pass"/><test-case name="19467NISTXML-SV-II-list-unsignedInt-length-3-4 tokoe:invalid" result="pass"/><test-case name="19468NISTXML-SV-II-list-unsignedInt-length-3-5 tokoe:invalid" result="pass"/><test-case name="19469NISTSchema-SV-II-list-unsignedInt-length-4 tokoe:valid" result="pass"/><test-case name="19470NISTXML-SV-II-list-unsignedInt-length-4-1 tokoe:invalid" result="pass"/><test-case name="19471NISTXML-SV-II-list-unsignedInt-length-4-2 tokoe:invalid" result="pass"/><test-case name="19472NISTXML-SV-II-list-unsignedInt-length-4-3 tokoe:invalid" result="pass"/><test-case name="19473NISTXML-SV-II-list-unsignedInt-length-4-4 tokoe:invalid" result="pass"/><test-case name="19474NISTXML-SV-II-list-unsignedInt-length-4-5 tokoe:invalid" result="pass"/><test-case name="19475NISTSchema-SV-II-list-unsignedInt-length-5 tokoe:valid" result="pass"/><test-case name="19476NISTXML-SV-II-list-unsignedInt-length-5-1 tokoe:invalid" result="pass"/><test-case name="19477NISTXML-SV-II-list-unsignedInt-length-5-2 tokoe:invalid" result="pass"/><test-case name="19478NISTXML-SV-II-list-unsignedInt-length-5-3 tokoe:invalid" result="pass"/><test-case name="19479NISTXML-SV-II-list-unsignedInt-length-5-4 tokoe:invalid" result="pass"/><test-case name="19480NISTXML-SV-II-list-unsignedInt-length-5-5 tokoe:invalid" result="pass"/><test-case name="19481NISTSchema-SV-II-list-unsignedInt-pattern-1 tokoe:valid" result="pass"/><test-case name="19482NISTXML-SV-II-list-unsignedInt-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19483NISTXML-SV-II-list-unsignedInt-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19484NISTXML-SV-II-list-unsignedInt-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19485NISTXML-SV-II-list-unsignedInt-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19486NISTXML-SV-II-list-unsignedInt-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19487NISTSchema-SV-II-list-unsignedInt-pattern-2 tokoe:valid" result="pass"/><test-case name="19488NISTXML-SV-II-list-unsignedInt-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19489NISTXML-SV-II-list-unsignedInt-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19490NISTXML-SV-II-list-unsignedInt-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19491NISTXML-SV-II-list-unsignedInt-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19492NISTXML-SV-II-list-unsignedInt-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19493NISTSchema-SV-II-list-unsignedInt-pattern-3 tokoe:valid" result="pass"/><test-case name="19494NISTXML-SV-II-list-unsignedInt-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19495NISTXML-SV-II-list-unsignedInt-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19496NISTXML-SV-II-list-unsignedInt-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19497NISTXML-SV-II-list-unsignedInt-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19498NISTXML-SV-II-list-unsignedInt-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19499NISTSchema-SV-II-list-unsignedInt-pattern-4 tokoe:valid" result="pass"/><test-case name="19500NISTXML-SV-II-list-unsignedInt-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19501NISTXML-SV-II-list-unsignedInt-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19502NISTXML-SV-II-list-unsignedInt-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19503NISTXML-SV-II-list-unsignedInt-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19504NISTXML-SV-II-list-unsignedInt-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19505NISTSchema-SV-II-list-unsignedInt-pattern-5 tokoe:valid" result="pass"/><test-case name="19506NISTXML-SV-II-list-unsignedInt-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19507NISTXML-SV-II-list-unsignedInt-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19508NISTXML-SV-II-list-unsignedInt-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19509NISTXML-SV-II-list-unsignedInt-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19510NISTXML-SV-II-list-unsignedInt-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19511NISTSchema-SV-II-list-unsignedInt-enumeration-1 tokoe:valid" result="pass"/><test-case name="19512NISTXML-SV-II-list-unsignedInt-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19513NISTXML-SV-II-list-unsignedInt-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19514NISTXML-SV-II-list-unsignedInt-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19515NISTXML-SV-II-list-unsignedInt-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19516NISTXML-SV-II-list-unsignedInt-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19517NISTSchema-SV-II-list-unsignedInt-enumeration-2 tokoe:valid" result="pass"/><test-case name="19518NISTXML-SV-II-list-unsignedInt-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19519NISTXML-SV-II-list-unsignedInt-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19520NISTXML-SV-II-list-unsignedInt-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19521NISTXML-SV-II-list-unsignedInt-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19522NISTXML-SV-II-list-unsignedInt-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19523NISTSchema-SV-II-list-unsignedInt-enumeration-3 tokoe:valid" result="pass"/><test-case name="19524NISTXML-SV-II-list-unsignedInt-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19525NISTXML-SV-II-list-unsignedInt-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19526NISTXML-SV-II-list-unsignedInt-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19527NISTXML-SV-II-list-unsignedInt-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19528NISTXML-SV-II-list-unsignedInt-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19529NISTSchema-SV-II-list-unsignedInt-enumeration-4 tokoe:valid" result="pass"/><test-case name="19530NISTXML-SV-II-list-unsignedInt-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19531NISTXML-SV-II-list-unsignedInt-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19532NISTXML-SV-II-list-unsignedInt-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19533NISTXML-SV-II-list-unsignedInt-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19534NISTXML-SV-II-list-unsignedInt-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19535NISTSchema-SV-II-list-unsignedInt-enumeration-5 tokoe:valid" result="pass"/><test-case name="19536NISTXML-SV-II-list-unsignedInt-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19537NISTXML-SV-II-list-unsignedInt-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19538NISTXML-SV-II-list-unsignedInt-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19539NISTXML-SV-II-list-unsignedInt-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19540NISTXML-SV-II-list-unsignedInt-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19541NISTSchema-SV-II-list-unsignedShort-maxLength-1 tokoe:valid" result="pass"/><test-case name="19542NISTXML-SV-II-list-unsignedShort-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19543NISTXML-SV-II-list-unsignedShort-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19544NISTXML-SV-II-list-unsignedShort-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19545NISTXML-SV-II-list-unsignedShort-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19546NISTXML-SV-II-list-unsignedShort-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19547NISTSchema-SV-II-list-unsignedShort-maxLength-2 tokoe:valid" result="pass"/><test-case name="19548NISTXML-SV-II-list-unsignedShort-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19549NISTXML-SV-II-list-unsignedShort-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19550NISTXML-SV-II-list-unsignedShort-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19551NISTXML-SV-II-list-unsignedShort-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19552NISTXML-SV-II-list-unsignedShort-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19553NISTSchema-SV-II-list-unsignedShort-maxLength-3 tokoe:valid" result="pass"/><test-case name="19554NISTXML-SV-II-list-unsignedShort-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19555NISTXML-SV-II-list-unsignedShort-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19556NISTXML-SV-II-list-unsignedShort-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19557NISTXML-SV-II-list-unsignedShort-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19558NISTXML-SV-II-list-unsignedShort-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19559NISTSchema-SV-II-list-unsignedShort-maxLength-4 tokoe:valid" result="pass"/><test-case name="19560NISTXML-SV-II-list-unsignedShort-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19561NISTXML-SV-II-list-unsignedShort-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19562NISTXML-SV-II-list-unsignedShort-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19563NISTXML-SV-II-list-unsignedShort-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19564NISTXML-SV-II-list-unsignedShort-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19565NISTSchema-SV-II-list-unsignedShort-maxLength-5 tokoe:valid" result="pass"/><test-case name="19566NISTXML-SV-II-list-unsignedShort-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19567NISTXML-SV-II-list-unsignedShort-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19568NISTXML-SV-II-list-unsignedShort-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19569NISTXML-SV-II-list-unsignedShort-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19570NISTXML-SV-II-list-unsignedShort-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19571NISTSchema-SV-II-list-unsignedShort-minLength-1 tokoe:valid" result="pass"/><test-case name="19572NISTXML-SV-II-list-unsignedShort-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19573NISTXML-SV-II-list-unsignedShort-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19574NISTXML-SV-II-list-unsignedShort-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19575NISTXML-SV-II-list-unsignedShort-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19576NISTXML-SV-II-list-unsignedShort-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19577NISTSchema-SV-II-list-unsignedShort-minLength-2 tokoe:valid" result="pass"/><test-case name="19578NISTXML-SV-II-list-unsignedShort-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19579NISTXML-SV-II-list-unsignedShort-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19580NISTXML-SV-II-list-unsignedShort-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19581NISTXML-SV-II-list-unsignedShort-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19582NISTXML-SV-II-list-unsignedShort-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19583NISTSchema-SV-II-list-unsignedShort-minLength-3 tokoe:valid" result="pass"/><test-case name="19584NISTXML-SV-II-list-unsignedShort-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19585NISTXML-SV-II-list-unsignedShort-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19586NISTXML-SV-II-list-unsignedShort-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19587NISTXML-SV-II-list-unsignedShort-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19588NISTXML-SV-II-list-unsignedShort-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19589NISTSchema-SV-II-list-unsignedShort-minLength-4 tokoe:valid" result="pass"/><test-case name="19590NISTXML-SV-II-list-unsignedShort-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19591NISTXML-SV-II-list-unsignedShort-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19592NISTXML-SV-II-list-unsignedShort-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19593NISTXML-SV-II-list-unsignedShort-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19594NISTXML-SV-II-list-unsignedShort-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19595NISTSchema-SV-II-list-unsignedShort-minLength-5 tokoe:valid" result="pass"/><test-case name="19596NISTXML-SV-II-list-unsignedShort-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19597NISTXML-SV-II-list-unsignedShort-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19598NISTXML-SV-II-list-unsignedShort-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19599NISTXML-SV-II-list-unsignedShort-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19600NISTXML-SV-II-list-unsignedShort-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19601NISTSchema-SV-II-list-unsignedShort-length-1 tokoe:valid" result="pass"/><test-case name="19602NISTXML-SV-II-list-unsignedShort-length-1-1 tokoe:invalid" result="pass"/><test-case name="19603NISTXML-SV-II-list-unsignedShort-length-1-2 tokoe:invalid" result="pass"/><test-case name="19604NISTXML-SV-II-list-unsignedShort-length-1-3 tokoe:invalid" result="pass"/><test-case name="19605NISTXML-SV-II-list-unsignedShort-length-1-4 tokoe:invalid" result="pass"/><test-case name="19606NISTXML-SV-II-list-unsignedShort-length-1-5 tokoe:invalid" result="pass"/><test-case name="19607NISTSchema-SV-II-list-unsignedShort-length-2 tokoe:valid" result="pass"/><test-case name="19608NISTXML-SV-II-list-unsignedShort-length-2-1 tokoe:invalid" result="pass"/><test-case name="19609NISTXML-SV-II-list-unsignedShort-length-2-2 tokoe:invalid" result="pass"/><test-case name="19610NISTXML-SV-II-list-unsignedShort-length-2-3 tokoe:invalid" result="pass"/><test-case name="19611NISTXML-SV-II-list-unsignedShort-length-2-4 tokoe:invalid" result="pass"/><test-case name="19612NISTXML-SV-II-list-unsignedShort-length-2-5 tokoe:invalid" result="pass"/><test-case name="19613NISTSchema-SV-II-list-unsignedShort-length-3 tokoe:valid" result="pass"/><test-case name="19614NISTXML-SV-II-list-unsignedShort-length-3-1 tokoe:invalid" result="pass"/><test-case name="19615NISTXML-SV-II-list-unsignedShort-length-3-2 tokoe:invalid" result="pass"/><test-case name="19616NISTXML-SV-II-list-unsignedShort-length-3-3 tokoe:invalid" result="pass"/><test-case name="19617NISTXML-SV-II-list-unsignedShort-length-3-4 tokoe:invalid" result="pass"/><test-case name="19618NISTXML-SV-II-list-unsignedShort-length-3-5 tokoe:invalid" result="pass"/><test-case name="19619NISTSchema-SV-II-list-unsignedShort-length-4 tokoe:valid" result="pass"/><test-case name="19620NISTXML-SV-II-list-unsignedShort-length-4-1 tokoe:invalid" result="pass"/><test-case name="19621NISTXML-SV-II-list-unsignedShort-length-4-2 tokoe:invalid" result="pass"/><test-case name="19622NISTXML-SV-II-list-unsignedShort-length-4-3 tokoe:invalid" result="pass"/><test-case name="19623NISTXML-SV-II-list-unsignedShort-length-4-4 tokoe:invalid" result="pass"/><test-case name="19624NISTXML-SV-II-list-unsignedShort-length-4-5 tokoe:invalid" result="pass"/><test-case name="19625NISTSchema-SV-II-list-unsignedShort-length-5 tokoe:valid" result="pass"/><test-case name="19626NISTXML-SV-II-list-unsignedShort-length-5-1 tokoe:invalid" result="pass"/><test-case name="19627NISTXML-SV-II-list-unsignedShort-length-5-2 tokoe:invalid" result="pass"/><test-case name="19628NISTXML-SV-II-list-unsignedShort-length-5-3 tokoe:invalid" result="pass"/><test-case name="19629NISTXML-SV-II-list-unsignedShort-length-5-4 tokoe:invalid" result="pass"/><test-case name="19630NISTXML-SV-II-list-unsignedShort-length-5-5 tokoe:invalid" result="pass"/><test-case name="19631NISTSchema-SV-II-list-unsignedShort-pattern-1 tokoe:valid" result="pass"/><test-case name="19632NISTXML-SV-II-list-unsignedShort-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19633NISTXML-SV-II-list-unsignedShort-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19634NISTXML-SV-II-list-unsignedShort-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19635NISTXML-SV-II-list-unsignedShort-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19636NISTXML-SV-II-list-unsignedShort-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19637NISTSchema-SV-II-list-unsignedShort-pattern-2 tokoe:valid" result="pass"/><test-case name="19638NISTXML-SV-II-list-unsignedShort-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19639NISTXML-SV-II-list-unsignedShort-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19640NISTXML-SV-II-list-unsignedShort-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19641NISTXML-SV-II-list-unsignedShort-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19642NISTXML-SV-II-list-unsignedShort-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19643NISTSchema-SV-II-list-unsignedShort-pattern-3 tokoe:valid" result="pass"/><test-case name="19644NISTXML-SV-II-list-unsignedShort-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19645NISTXML-SV-II-list-unsignedShort-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19646NISTXML-SV-II-list-unsignedShort-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19647NISTXML-SV-II-list-unsignedShort-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19648NISTXML-SV-II-list-unsignedShort-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19649NISTSchema-SV-II-list-unsignedShort-pattern-4 tokoe:valid" result="pass"/><test-case name="19650NISTXML-SV-II-list-unsignedShort-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19651NISTXML-SV-II-list-unsignedShort-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19652NISTXML-SV-II-list-unsignedShort-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19653NISTXML-SV-II-list-unsignedShort-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19654NISTXML-SV-II-list-unsignedShort-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19655NISTSchema-SV-II-list-unsignedShort-pattern-5 tokoe:valid" result="pass"/><test-case name="19656NISTXML-SV-II-list-unsignedShort-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19657NISTXML-SV-II-list-unsignedShort-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19658NISTXML-SV-II-list-unsignedShort-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19659NISTXML-SV-II-list-unsignedShort-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19660NISTXML-SV-II-list-unsignedShort-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19661NISTSchema-SV-II-list-unsignedShort-enumeration-1 tokoe:valid" result="pass"/><test-case name="19662NISTXML-SV-II-list-unsignedShort-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19663NISTXML-SV-II-list-unsignedShort-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19664NISTXML-SV-II-list-unsignedShort-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19665NISTXML-SV-II-list-unsignedShort-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19666NISTXML-SV-II-list-unsignedShort-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19667NISTSchema-SV-II-list-unsignedShort-enumeration-2 tokoe:valid" result="pass"/><test-case name="19668NISTXML-SV-II-list-unsignedShort-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19669NISTXML-SV-II-list-unsignedShort-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19670NISTXML-SV-II-list-unsignedShort-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19671NISTXML-SV-II-list-unsignedShort-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19672NISTXML-SV-II-list-unsignedShort-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19673NISTSchema-SV-II-list-unsignedShort-enumeration-3 tokoe:valid" result="pass"/><test-case name="19674NISTXML-SV-II-list-unsignedShort-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19675NISTXML-SV-II-list-unsignedShort-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19676NISTXML-SV-II-list-unsignedShort-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19677NISTXML-SV-II-list-unsignedShort-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19678NISTXML-SV-II-list-unsignedShort-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19679NISTSchema-SV-II-list-unsignedShort-enumeration-4 tokoe:valid" result="pass"/><test-case name="19680NISTXML-SV-II-list-unsignedShort-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19681NISTXML-SV-II-list-unsignedShort-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19682NISTXML-SV-II-list-unsignedShort-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19683NISTXML-SV-II-list-unsignedShort-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19684NISTXML-SV-II-list-unsignedShort-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19685NISTSchema-SV-II-list-unsignedShort-enumeration-5 tokoe:valid" result="pass"/><test-case name="19686NISTXML-SV-II-list-unsignedShort-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19687NISTXML-SV-II-list-unsignedShort-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19688NISTXML-SV-II-list-unsignedShort-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19689NISTXML-SV-II-list-unsignedShort-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19690NISTXML-SV-II-list-unsignedShort-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19691NISTSchema-SV-II-list-unsignedByte-maxLength-1 tokoe:valid" result="pass"/><test-case name="19692NISTXML-SV-II-list-unsignedByte-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19693NISTXML-SV-II-list-unsignedByte-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19694NISTXML-SV-II-list-unsignedByte-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19695NISTXML-SV-II-list-unsignedByte-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19696NISTXML-SV-II-list-unsignedByte-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19697NISTSchema-SV-II-list-unsignedByte-maxLength-2 tokoe:valid" result="pass"/><test-case name="19698NISTXML-SV-II-list-unsignedByte-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19699NISTXML-SV-II-list-unsignedByte-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19700NISTXML-SV-II-list-unsignedByte-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19701NISTXML-SV-II-list-unsignedByte-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19702NISTXML-SV-II-list-unsignedByte-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19703NISTSchema-SV-II-list-unsignedByte-maxLength-3 tokoe:valid" result="pass"/><test-case name="19704NISTXML-SV-II-list-unsignedByte-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19705NISTXML-SV-II-list-unsignedByte-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19706NISTXML-SV-II-list-unsignedByte-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19707NISTXML-SV-II-list-unsignedByte-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19708NISTXML-SV-II-list-unsignedByte-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19709NISTSchema-SV-II-list-unsignedByte-maxLength-4 tokoe:valid" result="pass"/><test-case name="19710NISTXML-SV-II-list-unsignedByte-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19711NISTXML-SV-II-list-unsignedByte-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19712NISTXML-SV-II-list-unsignedByte-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19713NISTXML-SV-II-list-unsignedByte-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19714NISTXML-SV-II-list-unsignedByte-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19715NISTSchema-SV-II-list-unsignedByte-maxLength-5 tokoe:valid" result="pass"/><test-case name="19716NISTXML-SV-II-list-unsignedByte-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19717NISTXML-SV-II-list-unsignedByte-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19718NISTXML-SV-II-list-unsignedByte-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19719NISTXML-SV-II-list-unsignedByte-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19720NISTXML-SV-II-list-unsignedByte-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19721NISTSchema-SV-II-list-unsignedByte-minLength-1 tokoe:valid" result="pass"/><test-case name="19722NISTXML-SV-II-list-unsignedByte-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19723NISTXML-SV-II-list-unsignedByte-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19724NISTXML-SV-II-list-unsignedByte-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19725NISTXML-SV-II-list-unsignedByte-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19726NISTXML-SV-II-list-unsignedByte-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19727NISTSchema-SV-II-list-unsignedByte-minLength-2 tokoe:valid" result="pass"/><test-case name="19728NISTXML-SV-II-list-unsignedByte-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19729NISTXML-SV-II-list-unsignedByte-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19730NISTXML-SV-II-list-unsignedByte-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19731NISTXML-SV-II-list-unsignedByte-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19732NISTXML-SV-II-list-unsignedByte-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19733NISTSchema-SV-II-list-unsignedByte-minLength-3 tokoe:valid" result="pass"/><test-case name="19734NISTXML-SV-II-list-unsignedByte-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19735NISTXML-SV-II-list-unsignedByte-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19736NISTXML-SV-II-list-unsignedByte-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19737NISTXML-SV-II-list-unsignedByte-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19738NISTXML-SV-II-list-unsignedByte-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19739NISTSchema-SV-II-list-unsignedByte-minLength-4 tokoe:valid" result="pass"/><test-case name="19740NISTXML-SV-II-list-unsignedByte-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19741NISTXML-SV-II-list-unsignedByte-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19742NISTXML-SV-II-list-unsignedByte-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19743NISTXML-SV-II-list-unsignedByte-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19744NISTXML-SV-II-list-unsignedByte-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19745NISTSchema-SV-II-list-unsignedByte-minLength-5 tokoe:valid" result="pass"/><test-case name="19746NISTXML-SV-II-list-unsignedByte-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19747NISTXML-SV-II-list-unsignedByte-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19748NISTXML-SV-II-list-unsignedByte-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19749NISTXML-SV-II-list-unsignedByte-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19750NISTXML-SV-II-list-unsignedByte-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19751NISTSchema-SV-II-list-unsignedByte-length-1 tokoe:valid" result="pass"/><test-case name="19752NISTXML-SV-II-list-unsignedByte-length-1-1 tokoe:invalid" result="pass"/><test-case name="19753NISTXML-SV-II-list-unsignedByte-length-1-2 tokoe:invalid" result="pass"/><test-case name="19754NISTXML-SV-II-list-unsignedByte-length-1-3 tokoe:invalid" result="pass"/><test-case name="19755NISTXML-SV-II-list-unsignedByte-length-1-4 tokoe:invalid" result="pass"/><test-case name="19756NISTXML-SV-II-list-unsignedByte-length-1-5 tokoe:invalid" result="pass"/><test-case name="19757NISTSchema-SV-II-list-unsignedByte-length-2 tokoe:valid" result="pass"/><test-case name="19758NISTXML-SV-II-list-unsignedByte-length-2-1 tokoe:invalid" result="pass"/><test-case name="19759NISTXML-SV-II-list-unsignedByte-length-2-2 tokoe:invalid" result="pass"/><test-case name="19760NISTXML-SV-II-list-unsignedByte-length-2-3 tokoe:invalid" result="pass"/><test-case name="19761NISTXML-SV-II-list-unsignedByte-length-2-4 tokoe:invalid" result="pass"/><test-case name="19762NISTXML-SV-II-list-unsignedByte-length-2-5 tokoe:invalid" result="pass"/><test-case name="19763NISTSchema-SV-II-list-unsignedByte-length-3 tokoe:valid" result="pass"/><test-case name="19764NISTXML-SV-II-list-unsignedByte-length-3-1 tokoe:invalid" result="pass"/><test-case name="19765NISTXML-SV-II-list-unsignedByte-length-3-2 tokoe:invalid" result="pass"/><test-case name="19766NISTXML-SV-II-list-unsignedByte-length-3-3 tokoe:invalid" result="pass"/><test-case name="19767NISTXML-SV-II-list-unsignedByte-length-3-4 tokoe:invalid" result="pass"/><test-case name="19768NISTXML-SV-II-list-unsignedByte-length-3-5 tokoe:invalid" result="pass"/><test-case name="19769NISTSchema-SV-II-list-unsignedByte-length-4 tokoe:valid" result="pass"/><test-case name="19770NISTXML-SV-II-list-unsignedByte-length-4-1 tokoe:invalid" result="pass"/><test-case name="19771NISTXML-SV-II-list-unsignedByte-length-4-2 tokoe:invalid" result="pass"/><test-case name="19772NISTXML-SV-II-list-unsignedByte-length-4-3 tokoe:invalid" result="pass"/><test-case name="19773NISTXML-SV-II-list-unsignedByte-length-4-4 tokoe:invalid" result="pass"/><test-case name="19774NISTXML-SV-II-list-unsignedByte-length-4-5 tokoe:invalid" result="pass"/><test-case name="19775NISTSchema-SV-II-list-unsignedByte-length-5 tokoe:valid" result="pass"/><test-case name="19776NISTXML-SV-II-list-unsignedByte-length-5-1 tokoe:invalid" result="pass"/><test-case name="19777NISTXML-SV-II-list-unsignedByte-length-5-2 tokoe:invalid" result="pass"/><test-case name="19778NISTXML-SV-II-list-unsignedByte-length-5-3 tokoe:invalid" result="pass"/><test-case name="19779NISTXML-SV-II-list-unsignedByte-length-5-4 tokoe:invalid" result="pass"/><test-case name="19780NISTXML-SV-II-list-unsignedByte-length-5-5 tokoe:invalid" result="pass"/><test-case name="19781NISTSchema-SV-II-list-unsignedByte-pattern-1 tokoe:valid" result="pass"/><test-case name="19782NISTXML-SV-II-list-unsignedByte-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19783NISTXML-SV-II-list-unsignedByte-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19784NISTXML-SV-II-list-unsignedByte-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19785NISTXML-SV-II-list-unsignedByte-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19786NISTXML-SV-II-list-unsignedByte-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19787NISTSchema-SV-II-list-unsignedByte-pattern-2 tokoe:valid" result="pass"/><test-case name="19788NISTXML-SV-II-list-unsignedByte-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19789NISTXML-SV-II-list-unsignedByte-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19790NISTXML-SV-II-list-unsignedByte-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19791NISTXML-SV-II-list-unsignedByte-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19792NISTXML-SV-II-list-unsignedByte-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19793NISTSchema-SV-II-list-unsignedByte-pattern-3 tokoe:valid" result="pass"/><test-case name="19794NISTXML-SV-II-list-unsignedByte-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19795NISTXML-SV-II-list-unsignedByte-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19796NISTXML-SV-II-list-unsignedByte-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19797NISTXML-SV-II-list-unsignedByte-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19798NISTXML-SV-II-list-unsignedByte-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19799NISTSchema-SV-II-list-unsignedByte-pattern-4 tokoe:valid" result="pass"/><test-case name="19800NISTXML-SV-II-list-unsignedByte-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19801NISTXML-SV-II-list-unsignedByte-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19802NISTXML-SV-II-list-unsignedByte-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19803NISTXML-SV-II-list-unsignedByte-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19804NISTXML-SV-II-list-unsignedByte-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19805NISTSchema-SV-II-list-unsignedByte-pattern-5 tokoe:valid" result="pass"/><test-case name="19806NISTXML-SV-II-list-unsignedByte-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19807NISTXML-SV-II-list-unsignedByte-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19808NISTXML-SV-II-list-unsignedByte-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19809NISTXML-SV-II-list-unsignedByte-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19810NISTXML-SV-II-list-unsignedByte-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19811NISTSchema-SV-II-list-unsignedByte-enumeration-1 tokoe:valid" result="pass"/><test-case name="19812NISTXML-SV-II-list-unsignedByte-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19813NISTXML-SV-II-list-unsignedByte-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19814NISTXML-SV-II-list-unsignedByte-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19815NISTXML-SV-II-list-unsignedByte-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19816NISTXML-SV-II-list-unsignedByte-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19817NISTSchema-SV-II-list-unsignedByte-enumeration-2 tokoe:valid" result="pass"/><test-case name="19818NISTXML-SV-II-list-unsignedByte-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19819NISTXML-SV-II-list-unsignedByte-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19820NISTXML-SV-II-list-unsignedByte-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19821NISTXML-SV-II-list-unsignedByte-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19822NISTXML-SV-II-list-unsignedByte-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19823NISTSchema-SV-II-list-unsignedByte-enumeration-3 tokoe:valid" result="pass"/><test-case name="19824NISTXML-SV-II-list-unsignedByte-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19825NISTXML-SV-II-list-unsignedByte-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19826NISTXML-SV-II-list-unsignedByte-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19827NISTXML-SV-II-list-unsignedByte-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19828NISTXML-SV-II-list-unsignedByte-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19829NISTSchema-SV-II-list-unsignedByte-enumeration-4 tokoe:valid" result="pass"/><test-case name="19830NISTXML-SV-II-list-unsignedByte-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19831NISTXML-SV-II-list-unsignedByte-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19832NISTXML-SV-II-list-unsignedByte-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19833NISTXML-SV-II-list-unsignedByte-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19834NISTXML-SV-II-list-unsignedByte-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19835NISTSchema-SV-II-list-unsignedByte-enumeration-5 tokoe:valid" result="pass"/><test-case name="19836NISTXML-SV-II-list-unsignedByte-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19837NISTXML-SV-II-list-unsignedByte-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19838NISTXML-SV-II-list-unsignedByte-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19839NISTXML-SV-II-list-unsignedByte-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19840NISTXML-SV-II-list-unsignedByte-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19841NISTSchema-SV-II-list-positiveInteger-maxLength-1 tokoe:valid" result="pass"/><test-case name="19842NISTXML-SV-II-list-positiveInteger-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19843NISTXML-SV-II-list-positiveInteger-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19844NISTXML-SV-II-list-positiveInteger-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19845NISTXML-SV-II-list-positiveInteger-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19846NISTXML-SV-II-list-positiveInteger-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19847NISTSchema-SV-II-list-positiveInteger-maxLength-2 tokoe:valid" result="pass"/><test-case name="19848NISTXML-SV-II-list-positiveInteger-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19849NISTXML-SV-II-list-positiveInteger-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="19850NISTXML-SV-II-list-positiveInteger-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="19851NISTXML-SV-II-list-positiveInteger-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="19852NISTXML-SV-II-list-positiveInteger-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="19853NISTSchema-SV-II-list-positiveInteger-maxLength-3 tokoe:valid" result="pass"/><test-case name="19854NISTXML-SV-II-list-positiveInteger-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="19855NISTXML-SV-II-list-positiveInteger-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="19856NISTXML-SV-II-list-positiveInteger-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="19857NISTXML-SV-II-list-positiveInteger-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="19858NISTXML-SV-II-list-positiveInteger-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="19859NISTSchema-SV-II-list-positiveInteger-maxLength-4 tokoe:valid" result="pass"/><test-case name="19860NISTXML-SV-II-list-positiveInteger-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="19861NISTXML-SV-II-list-positiveInteger-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="19862NISTXML-SV-II-list-positiveInteger-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="19863NISTXML-SV-II-list-positiveInteger-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="19864NISTXML-SV-II-list-positiveInteger-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="19865NISTSchema-SV-II-list-positiveInteger-maxLength-5 tokoe:valid" result="pass"/><test-case name="19866NISTXML-SV-II-list-positiveInteger-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="19867NISTXML-SV-II-list-positiveInteger-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="19868NISTXML-SV-II-list-positiveInteger-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="19869NISTXML-SV-II-list-positiveInteger-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="19870NISTXML-SV-II-list-positiveInteger-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="19871NISTSchema-SV-II-list-positiveInteger-minLength-1 tokoe:valid" result="pass"/><test-case name="19872NISTXML-SV-II-list-positiveInteger-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="19873NISTXML-SV-II-list-positiveInteger-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="19874NISTXML-SV-II-list-positiveInteger-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="19875NISTXML-SV-II-list-positiveInteger-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="19876NISTXML-SV-II-list-positiveInteger-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="19877NISTSchema-SV-II-list-positiveInteger-minLength-2 tokoe:valid" result="pass"/><test-case name="19878NISTXML-SV-II-list-positiveInteger-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="19879NISTXML-SV-II-list-positiveInteger-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="19880NISTXML-SV-II-list-positiveInteger-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="19881NISTXML-SV-II-list-positiveInteger-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="19882NISTXML-SV-II-list-positiveInteger-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="19883NISTSchema-SV-II-list-positiveInteger-minLength-3 tokoe:valid" result="pass"/><test-case name="19884NISTXML-SV-II-list-positiveInteger-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="19885NISTXML-SV-II-list-positiveInteger-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="19886NISTXML-SV-II-list-positiveInteger-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="19887NISTXML-SV-II-list-positiveInteger-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="19888NISTXML-SV-II-list-positiveInteger-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="19889NISTSchema-SV-II-list-positiveInteger-minLength-4 tokoe:valid" result="pass"/><test-case name="19890NISTXML-SV-II-list-positiveInteger-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="19891NISTXML-SV-II-list-positiveInteger-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="19892NISTXML-SV-II-list-positiveInteger-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="19893NISTXML-SV-II-list-positiveInteger-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="19894NISTXML-SV-II-list-positiveInteger-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="19895NISTSchema-SV-II-list-positiveInteger-minLength-5 tokoe:valid" result="pass"/><test-case name="19896NISTXML-SV-II-list-positiveInteger-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="19897NISTXML-SV-II-list-positiveInteger-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="19898NISTXML-SV-II-list-positiveInteger-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="19899NISTXML-SV-II-list-positiveInteger-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="19900NISTXML-SV-II-list-positiveInteger-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="19901NISTSchema-SV-II-list-positiveInteger-length-1 tokoe:valid" result="pass"/><test-case name="19902NISTXML-SV-II-list-positiveInteger-length-1-1 tokoe:invalid" result="pass"/><test-case name="19903NISTXML-SV-II-list-positiveInteger-length-1-2 tokoe:invalid" result="pass"/><test-case name="19904NISTXML-SV-II-list-positiveInteger-length-1-3 tokoe:invalid" result="pass"/><test-case name="19905NISTXML-SV-II-list-positiveInteger-length-1-4 tokoe:invalid" result="pass"/><test-case name="19906NISTXML-SV-II-list-positiveInteger-length-1-5 tokoe:invalid" result="pass"/><test-case name="19907NISTSchema-SV-II-list-positiveInteger-length-2 tokoe:valid" result="pass"/><test-case name="19908NISTXML-SV-II-list-positiveInteger-length-2-1 tokoe:invalid" result="pass"/><test-case name="19909NISTXML-SV-II-list-positiveInteger-length-2-2 tokoe:invalid" result="pass"/><test-case name="19910NISTXML-SV-II-list-positiveInteger-length-2-3 tokoe:invalid" result="pass"/><test-case name="19911NISTXML-SV-II-list-positiveInteger-length-2-4 tokoe:invalid" result="pass"/><test-case name="19912NISTXML-SV-II-list-positiveInteger-length-2-5 tokoe:invalid" result="pass"/><test-case name="19913NISTSchema-SV-II-list-positiveInteger-length-3 tokoe:valid" result="pass"/><test-case name="19914NISTXML-SV-II-list-positiveInteger-length-3-1 tokoe:invalid" result="pass"/><test-case name="19915NISTXML-SV-II-list-positiveInteger-length-3-2 tokoe:invalid" result="pass"/><test-case name="19916NISTXML-SV-II-list-positiveInteger-length-3-3 tokoe:invalid" result="pass"/><test-case name="19917NISTXML-SV-II-list-positiveInteger-length-3-4 tokoe:invalid" result="pass"/><test-case name="19918NISTXML-SV-II-list-positiveInteger-length-3-5 tokoe:invalid" result="pass"/><test-case name="19919NISTSchema-SV-II-list-positiveInteger-length-4 tokoe:valid" result="pass"/><test-case name="19920NISTXML-SV-II-list-positiveInteger-length-4-1 tokoe:invalid" result="pass"/><test-case name="19921NISTXML-SV-II-list-positiveInteger-length-4-2 tokoe:invalid" result="pass"/><test-case name="19922NISTXML-SV-II-list-positiveInteger-length-4-3 tokoe:invalid" result="pass"/><test-case name="19923NISTXML-SV-II-list-positiveInteger-length-4-4 tokoe:invalid" result="pass"/><test-case name="19924NISTXML-SV-II-list-positiveInteger-length-4-5 tokoe:invalid" result="pass"/><test-case name="19925NISTSchema-SV-II-list-positiveInteger-length-5 tokoe:valid" result="pass"/><test-case name="19926NISTXML-SV-II-list-positiveInteger-length-5-1 tokoe:invalid" result="pass"/><test-case name="19927NISTXML-SV-II-list-positiveInteger-length-5-2 tokoe:invalid" result="pass"/><test-case name="19928NISTXML-SV-II-list-positiveInteger-length-5-3 tokoe:invalid" result="pass"/><test-case name="19929NISTXML-SV-II-list-positiveInteger-length-5-4 tokoe:invalid" result="pass"/><test-case name="19930NISTXML-SV-II-list-positiveInteger-length-5-5 tokoe:invalid" result="pass"/><test-case name="19931NISTSchema-SV-II-list-positiveInteger-pattern-1 tokoe:valid" result="pass"/><test-case name="19932NISTXML-SV-II-list-positiveInteger-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="19933NISTXML-SV-II-list-positiveInteger-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="19934NISTXML-SV-II-list-positiveInteger-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="19935NISTXML-SV-II-list-positiveInteger-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="19936NISTXML-SV-II-list-positiveInteger-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="19937NISTSchema-SV-II-list-positiveInteger-pattern-2 tokoe:valid" result="pass"/><test-case name="19938NISTXML-SV-II-list-positiveInteger-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="19939NISTXML-SV-II-list-positiveInteger-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="19940NISTXML-SV-II-list-positiveInteger-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="19941NISTXML-SV-II-list-positiveInteger-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="19942NISTXML-SV-II-list-positiveInteger-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="19943NISTSchema-SV-II-list-positiveInteger-pattern-3 tokoe:valid" result="pass"/><test-case name="19944NISTXML-SV-II-list-positiveInteger-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="19945NISTXML-SV-II-list-positiveInteger-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="19946NISTXML-SV-II-list-positiveInteger-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="19947NISTXML-SV-II-list-positiveInteger-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="19948NISTXML-SV-II-list-positiveInteger-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="19949NISTSchema-SV-II-list-positiveInteger-pattern-4 tokoe:valid" result="pass"/><test-case name="19950NISTXML-SV-II-list-positiveInteger-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="19951NISTXML-SV-II-list-positiveInteger-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="19952NISTXML-SV-II-list-positiveInteger-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="19953NISTXML-SV-II-list-positiveInteger-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="19954NISTXML-SV-II-list-positiveInteger-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="19955NISTSchema-SV-II-list-positiveInteger-pattern-5 tokoe:valid" result="pass"/><test-case name="19956NISTXML-SV-II-list-positiveInteger-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="19957NISTXML-SV-II-list-positiveInteger-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="19958NISTXML-SV-II-list-positiveInteger-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="19959NISTXML-SV-II-list-positiveInteger-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="19960NISTXML-SV-II-list-positiveInteger-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="19961NISTSchema-SV-II-list-positiveInteger-enumeration-1 tokoe:valid" result="pass"/><test-case name="19962NISTXML-SV-II-list-positiveInteger-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="19963NISTXML-SV-II-list-positiveInteger-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="19964NISTXML-SV-II-list-positiveInteger-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="19965NISTXML-SV-II-list-positiveInteger-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="19966NISTXML-SV-II-list-positiveInteger-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="19967NISTSchema-SV-II-list-positiveInteger-enumeration-2 tokoe:valid" result="pass"/><test-case name="19968NISTXML-SV-II-list-positiveInteger-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="19969NISTXML-SV-II-list-positiveInteger-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="19970NISTXML-SV-II-list-positiveInteger-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="19971NISTXML-SV-II-list-positiveInteger-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="19972NISTXML-SV-II-list-positiveInteger-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="19973NISTSchema-SV-II-list-positiveInteger-enumeration-3 tokoe:valid" result="pass"/><test-case name="19974NISTXML-SV-II-list-positiveInteger-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="19975NISTXML-SV-II-list-positiveInteger-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="19976NISTXML-SV-II-list-positiveInteger-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="19977NISTXML-SV-II-list-positiveInteger-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="19978NISTXML-SV-II-list-positiveInteger-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="19979NISTSchema-SV-II-list-positiveInteger-enumeration-4 tokoe:valid" result="pass"/><test-case name="19980NISTXML-SV-II-list-positiveInteger-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="19981NISTXML-SV-II-list-positiveInteger-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="19982NISTXML-SV-II-list-positiveInteger-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="19983NISTXML-SV-II-list-positiveInteger-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="19984NISTXML-SV-II-list-positiveInteger-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="19985NISTSchema-SV-II-list-positiveInteger-enumeration-5 tokoe:valid" result="pass"/><test-case name="19986NISTXML-SV-II-list-positiveInteger-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="19987NISTXML-SV-II-list-positiveInteger-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="19988NISTXML-SV-II-list-positiveInteger-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="19989NISTXML-SV-II-list-positiveInteger-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="19990NISTXML-SV-II-list-positiveInteger-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="19991NISTSchema-SV-II-list-double-maxLength-1 tokoe:valid" result="pass"/><test-case name="19992NISTXML-SV-II-list-double-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="19993NISTXML-SV-II-list-double-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="19994NISTXML-SV-II-list-double-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="19995NISTXML-SV-II-list-double-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="19996NISTXML-SV-II-list-double-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="19997NISTSchema-SV-II-list-double-maxLength-2 tokoe:valid" result="pass"/><test-case name="19998NISTXML-SV-II-list-double-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="19999NISTXML-SV-II-list-double-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20000NISTXML-SV-II-list-double-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20001NISTXML-SV-II-list-double-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20002NISTXML-SV-II-list-double-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20003NISTSchema-SV-II-list-double-maxLength-3 tokoe:valid" result="pass"/><test-case name="20004NISTXML-SV-II-list-double-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20005NISTXML-SV-II-list-double-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20006NISTXML-SV-II-list-double-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20007NISTXML-SV-II-list-double-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20008NISTXML-SV-II-list-double-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20009NISTSchema-SV-II-list-double-maxLength-4 tokoe:valid" result="pass"/><test-case name="20010NISTXML-SV-II-list-double-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20011NISTXML-SV-II-list-double-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20012NISTXML-SV-II-list-double-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20013NISTXML-SV-II-list-double-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20014NISTXML-SV-II-list-double-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20015NISTSchema-SV-II-list-double-maxLength-5 tokoe:valid" result="pass"/><test-case name="20016NISTXML-SV-II-list-double-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20017NISTXML-SV-II-list-double-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20018NISTXML-SV-II-list-double-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20019NISTXML-SV-II-list-double-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20020NISTXML-SV-II-list-double-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20021NISTSchema-SV-II-list-double-minLength-1 tokoe:valid" result="pass"/><test-case name="20022NISTXML-SV-II-list-double-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20023NISTXML-SV-II-list-double-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20024NISTXML-SV-II-list-double-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20025NISTXML-SV-II-list-double-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20026NISTXML-SV-II-list-double-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20027NISTSchema-SV-II-list-double-minLength-2 tokoe:valid" result="pass"/><test-case name="20028NISTXML-SV-II-list-double-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20029NISTXML-SV-II-list-double-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20030NISTXML-SV-II-list-double-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20031NISTXML-SV-II-list-double-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20032NISTXML-SV-II-list-double-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20033NISTSchema-SV-II-list-double-minLength-3 tokoe:valid" result="pass"/><test-case name="20034NISTXML-SV-II-list-double-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20035NISTXML-SV-II-list-double-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20036NISTXML-SV-II-list-double-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20037NISTXML-SV-II-list-double-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20038NISTXML-SV-II-list-double-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20039NISTSchema-SV-II-list-double-minLength-4 tokoe:valid" result="pass"/><test-case name="20040NISTXML-SV-II-list-double-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20041NISTXML-SV-II-list-double-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20042NISTXML-SV-II-list-double-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20043NISTXML-SV-II-list-double-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20044NISTXML-SV-II-list-double-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20045NISTSchema-SV-II-list-double-minLength-5 tokoe:valid" result="pass"/><test-case name="20046NISTXML-SV-II-list-double-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20047NISTXML-SV-II-list-double-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20048NISTXML-SV-II-list-double-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20049NISTXML-SV-II-list-double-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20050NISTXML-SV-II-list-double-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20051NISTSchema-SV-II-list-double-length-1 tokoe:valid" result="pass"/><test-case name="20052NISTXML-SV-II-list-double-length-1-1 tokoe:invalid" result="pass"/><test-case name="20053NISTXML-SV-II-list-double-length-1-2 tokoe:invalid" result="pass"/><test-case name="20054NISTXML-SV-II-list-double-length-1-3 tokoe:invalid" result="pass"/><test-case name="20055NISTXML-SV-II-list-double-length-1-4 tokoe:invalid" result="pass"/><test-case name="20056NISTXML-SV-II-list-double-length-1-5 tokoe:invalid" result="pass"/><test-case name="20057NISTSchema-SV-II-list-double-length-2 tokoe:valid" result="pass"/><test-case name="20058NISTXML-SV-II-list-double-length-2-1 tokoe:invalid" result="pass"/><test-case name="20059NISTXML-SV-II-list-double-length-2-2 tokoe:invalid" result="pass"/><test-case name="20060NISTXML-SV-II-list-double-length-2-3 tokoe:invalid" result="pass"/><test-case name="20061NISTXML-SV-II-list-double-length-2-4 tokoe:invalid" result="pass"/><test-case name="20062NISTXML-SV-II-list-double-length-2-5 tokoe:invalid" result="pass"/><test-case name="20063NISTSchema-SV-II-list-double-length-3 tokoe:valid" result="pass"/><test-case name="20064NISTXML-SV-II-list-double-length-3-1 tokoe:invalid" result="pass"/><test-case name="20065NISTXML-SV-II-list-double-length-3-2 tokoe:invalid" result="pass"/><test-case name="20066NISTXML-SV-II-list-double-length-3-3 tokoe:invalid" result="pass"/><test-case name="20067NISTXML-SV-II-list-double-length-3-4 tokoe:invalid" result="pass"/><test-case name="20068NISTXML-SV-II-list-double-length-3-5 tokoe:invalid" result="pass"/><test-case name="20069NISTSchema-SV-II-list-double-length-4 tokoe:valid" result="pass"/><test-case name="20070NISTXML-SV-II-list-double-length-4-1 tokoe:invalid" result="pass"/><test-case name="20071NISTXML-SV-II-list-double-length-4-2 tokoe:invalid" result="pass"/><test-case name="20072NISTXML-SV-II-list-double-length-4-3 tokoe:invalid" result="pass"/><test-case name="20073NISTXML-SV-II-list-double-length-4-4 tokoe:invalid" result="pass"/><test-case name="20074NISTXML-SV-II-list-double-length-4-5 tokoe:invalid" result="pass"/><test-case name="20075NISTSchema-SV-II-list-double-length-5 tokoe:valid" result="pass"/><test-case name="20076NISTXML-SV-II-list-double-length-5-1 tokoe:invalid" result="pass"/><test-case name="20077NISTXML-SV-II-list-double-length-5-2 tokoe:invalid" result="pass"/><test-case name="20078NISTXML-SV-II-list-double-length-5-3 tokoe:invalid" result="pass"/><test-case name="20079NISTXML-SV-II-list-double-length-5-4 tokoe:invalid" result="pass"/><test-case name="20080NISTXML-SV-II-list-double-length-5-5 tokoe:invalid" result="pass"/><test-case name="20081NISTSchema-SV-II-list-double-pattern-1 tokoe:valid" result="pass"/><test-case name="20082NISTXML-SV-II-list-double-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20083NISTXML-SV-II-list-double-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20084NISTXML-SV-II-list-double-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20085NISTXML-SV-II-list-double-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20086NISTXML-SV-II-list-double-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20087NISTSchema-SV-II-list-double-pattern-2 tokoe:valid" result="pass"/><test-case name="20088NISTXML-SV-II-list-double-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20089NISTXML-SV-II-list-double-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20090NISTXML-SV-II-list-double-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20091NISTXML-SV-II-list-double-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20092NISTXML-SV-II-list-double-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20093NISTSchema-SV-II-list-double-pattern-3 tokoe:valid" result="pass"/><test-case name="20094NISTXML-SV-II-list-double-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20095NISTXML-SV-II-list-double-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20096NISTXML-SV-II-list-double-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20097NISTXML-SV-II-list-double-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20098NISTXML-SV-II-list-double-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20099NISTSchema-SV-II-list-double-pattern-4 tokoe:valid" result="pass"/><test-case name="20100NISTXML-SV-II-list-double-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20101NISTXML-SV-II-list-double-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20102NISTXML-SV-II-list-double-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20103NISTXML-SV-II-list-double-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20104NISTXML-SV-II-list-double-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20105NISTSchema-SV-II-list-double-pattern-5 tokoe:valid" result="pass"/><test-case name="20106NISTXML-SV-II-list-double-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20107NISTXML-SV-II-list-double-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20108NISTXML-SV-II-list-double-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20109NISTXML-SV-II-list-double-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20110NISTXML-SV-II-list-double-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20111NISTSchema-SV-II-list-double-enumeration-1 tokoe:valid" result="pass"/><test-case name="20112NISTXML-SV-II-list-double-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20113NISTXML-SV-II-list-double-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20114NISTXML-SV-II-list-double-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20115NISTXML-SV-II-list-double-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20116NISTXML-SV-II-list-double-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20117NISTSchema-SV-II-list-double-enumeration-2 tokoe:valid" result="pass"/><test-case name="20118NISTXML-SV-II-list-double-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20119NISTXML-SV-II-list-double-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20120NISTXML-SV-II-list-double-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20121NISTXML-SV-II-list-double-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20122NISTXML-SV-II-list-double-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20123NISTSchema-SV-II-list-double-enumeration-3 tokoe:valid" result="pass"/><test-case name="20124NISTXML-SV-II-list-double-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20125NISTXML-SV-II-list-double-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20126NISTXML-SV-II-list-double-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20127NISTXML-SV-II-list-double-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20128NISTXML-SV-II-list-double-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20129NISTSchema-SV-II-list-double-enumeration-4 tokoe:valid" result="pass"/><test-case name="20130NISTXML-SV-II-list-double-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20131NISTXML-SV-II-list-double-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20132NISTXML-SV-II-list-double-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20133NISTXML-SV-II-list-double-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20134NISTXML-SV-II-list-double-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20135NISTSchema-SV-II-list-double-enumeration-5 tokoe:valid" result="pass"/><test-case name="20136NISTXML-SV-II-list-double-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20137NISTXML-SV-II-list-double-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20138NISTXML-SV-II-list-double-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20139NISTXML-SV-II-list-double-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20140NISTXML-SV-II-list-double-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20141NISTSchema-SV-II-list-float-maxLength-1 tokoe:valid" result="pass"/><test-case name="20142NISTXML-SV-II-list-float-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20143NISTXML-SV-II-list-float-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20144NISTXML-SV-II-list-float-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20145NISTXML-SV-II-list-float-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20146NISTXML-SV-II-list-float-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20147NISTSchema-SV-II-list-float-maxLength-2 tokoe:valid" result="pass"/><test-case name="20148NISTXML-SV-II-list-float-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20149NISTXML-SV-II-list-float-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20150NISTXML-SV-II-list-float-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20151NISTXML-SV-II-list-float-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20152NISTXML-SV-II-list-float-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20153NISTSchema-SV-II-list-float-maxLength-3 tokoe:valid" result="pass"/><test-case name="20154NISTXML-SV-II-list-float-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20155NISTXML-SV-II-list-float-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20156NISTXML-SV-II-list-float-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20157NISTXML-SV-II-list-float-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20158NISTXML-SV-II-list-float-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20159NISTSchema-SV-II-list-float-maxLength-4 tokoe:valid" result="pass"/><test-case name="20160NISTXML-SV-II-list-float-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20161NISTXML-SV-II-list-float-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20162NISTXML-SV-II-list-float-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20163NISTXML-SV-II-list-float-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20164NISTXML-SV-II-list-float-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20165NISTSchema-SV-II-list-float-maxLength-5 tokoe:valid" result="pass"/><test-case name="20166NISTXML-SV-II-list-float-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20167NISTXML-SV-II-list-float-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20168NISTXML-SV-II-list-float-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20169NISTXML-SV-II-list-float-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20170NISTXML-SV-II-list-float-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20171NISTSchema-SV-II-list-float-minLength-1 tokoe:valid" result="pass"/><test-case name="20172NISTXML-SV-II-list-float-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20173NISTXML-SV-II-list-float-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20174NISTXML-SV-II-list-float-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20175NISTXML-SV-II-list-float-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20176NISTXML-SV-II-list-float-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20177NISTSchema-SV-II-list-float-minLength-2 tokoe:valid" result="pass"/><test-case name="20178NISTXML-SV-II-list-float-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20179NISTXML-SV-II-list-float-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20180NISTXML-SV-II-list-float-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20181NISTXML-SV-II-list-float-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20182NISTXML-SV-II-list-float-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20183NISTSchema-SV-II-list-float-minLength-3 tokoe:valid" result="pass"/><test-case name="20184NISTXML-SV-II-list-float-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20185NISTXML-SV-II-list-float-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20186NISTXML-SV-II-list-float-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20187NISTXML-SV-II-list-float-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20188NISTXML-SV-II-list-float-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20189NISTSchema-SV-II-list-float-minLength-4 tokoe:valid" result="pass"/><test-case name="20190NISTXML-SV-II-list-float-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20191NISTXML-SV-II-list-float-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20192NISTXML-SV-II-list-float-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20193NISTXML-SV-II-list-float-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20194NISTXML-SV-II-list-float-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20195NISTSchema-SV-II-list-float-minLength-5 tokoe:valid" result="pass"/><test-case name="20196NISTXML-SV-II-list-float-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20197NISTXML-SV-II-list-float-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20198NISTXML-SV-II-list-float-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20199NISTXML-SV-II-list-float-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20200NISTXML-SV-II-list-float-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20201NISTSchema-SV-II-list-float-length-1 tokoe:valid" result="pass"/><test-case name="20202NISTXML-SV-II-list-float-length-1-1 tokoe:invalid" result="pass"/><test-case name="20203NISTXML-SV-II-list-float-length-1-2 tokoe:invalid" result="pass"/><test-case name="20204NISTXML-SV-II-list-float-length-1-3 tokoe:invalid" result="pass"/><test-case name="20205NISTXML-SV-II-list-float-length-1-4 tokoe:invalid" result="pass"/><test-case name="20206NISTXML-SV-II-list-float-length-1-5 tokoe:invalid" result="pass"/><test-case name="20207NISTSchema-SV-II-list-float-length-2 tokoe:valid" result="pass"/><test-case name="20208NISTXML-SV-II-list-float-length-2-1 tokoe:invalid" result="pass"/><test-case name="20209NISTXML-SV-II-list-float-length-2-2 tokoe:invalid" result="pass"/><test-case name="20210NISTXML-SV-II-list-float-length-2-3 tokoe:invalid" result="pass"/><test-case name="20211NISTXML-SV-II-list-float-length-2-4 tokoe:invalid" result="pass"/><test-case name="20212NISTXML-SV-II-list-float-length-2-5 tokoe:invalid" result="pass"/><test-case name="20213NISTSchema-SV-II-list-float-length-3 tokoe:valid" result="pass"/><test-case name="20214NISTXML-SV-II-list-float-length-3-1 tokoe:invalid" result="pass"/><test-case name="20215NISTXML-SV-II-list-float-length-3-2 tokoe:invalid" result="pass"/><test-case name="20216NISTXML-SV-II-list-float-length-3-3 tokoe:invalid" result="pass"/><test-case name="20217NISTXML-SV-II-list-float-length-3-4 tokoe:invalid" result="pass"/><test-case name="20218NISTXML-SV-II-list-float-length-3-5 tokoe:invalid" result="pass"/><test-case name="20219NISTSchema-SV-II-list-float-length-4 tokoe:valid" result="pass"/><test-case name="20220NISTXML-SV-II-list-float-length-4-1 tokoe:invalid" result="pass"/><test-case name="20221NISTXML-SV-II-list-float-length-4-2 tokoe:invalid" result="pass"/><test-case name="20222NISTXML-SV-II-list-float-length-4-3 tokoe:invalid" result="pass"/><test-case name="20223NISTXML-SV-II-list-float-length-4-4 tokoe:invalid" result="pass"/><test-case name="20224NISTXML-SV-II-list-float-length-4-5 tokoe:invalid" result="pass"/><test-case name="20225NISTSchema-SV-II-list-float-length-5 tokoe:valid" result="pass"/><test-case name="20226NISTXML-SV-II-list-float-length-5-1 tokoe:invalid" result="pass"/><test-case name="20227NISTXML-SV-II-list-float-length-5-2 tokoe:invalid" result="pass"/><test-case name="20228NISTXML-SV-II-list-float-length-5-3 tokoe:invalid" result="pass"/><test-case name="20229NISTXML-SV-II-list-float-length-5-4 tokoe:invalid" result="pass"/><test-case name="20230NISTXML-SV-II-list-float-length-5-5 tokoe:invalid" result="pass"/><test-case name="20231NISTSchema-SV-II-list-float-pattern-1 tokoe:valid" result="pass"/><test-case name="20232NISTXML-SV-II-list-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20233NISTXML-SV-II-list-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20234NISTXML-SV-II-list-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20235NISTXML-SV-II-list-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20236NISTXML-SV-II-list-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20237NISTSchema-SV-II-list-float-pattern-2 tokoe:valid" result="pass"/><test-case name="20238NISTXML-SV-II-list-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20239NISTXML-SV-II-list-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20240NISTXML-SV-II-list-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20241NISTXML-SV-II-list-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20242NISTXML-SV-II-list-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20243NISTSchema-SV-II-list-float-pattern-3 tokoe:valid" result="pass"/><test-case name="20244NISTXML-SV-II-list-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20245NISTXML-SV-II-list-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20246NISTXML-SV-II-list-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20247NISTXML-SV-II-list-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20248NISTXML-SV-II-list-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20249NISTSchema-SV-II-list-float-pattern-4 tokoe:valid" result="pass"/><test-case name="20250NISTXML-SV-II-list-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20251NISTXML-SV-II-list-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20252NISTXML-SV-II-list-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20253NISTXML-SV-II-list-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20254NISTXML-SV-II-list-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20255NISTSchema-SV-II-list-float-pattern-5 tokoe:valid" result="pass"/><test-case name="20256NISTXML-SV-II-list-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20257NISTXML-SV-II-list-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20258NISTXML-SV-II-list-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20259NISTXML-SV-II-list-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20260NISTXML-SV-II-list-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20261NISTSchema-SV-II-list-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="20262NISTXML-SV-II-list-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20263NISTXML-SV-II-list-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20264NISTXML-SV-II-list-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20265NISTXML-SV-II-list-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20266NISTXML-SV-II-list-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20267NISTSchema-SV-II-list-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="20268NISTXML-SV-II-list-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20269NISTXML-SV-II-list-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20270NISTXML-SV-II-list-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20271NISTXML-SV-II-list-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20272NISTXML-SV-II-list-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20273NISTSchema-SV-II-list-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="20274NISTXML-SV-II-list-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20275NISTXML-SV-II-list-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20276NISTXML-SV-II-list-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20277NISTXML-SV-II-list-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20278NISTXML-SV-II-list-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20279NISTSchema-SV-II-list-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="20280NISTXML-SV-II-list-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20281NISTXML-SV-II-list-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20282NISTXML-SV-II-list-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20283NISTXML-SV-II-list-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20284NISTXML-SV-II-list-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20285NISTSchema-SV-II-list-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="20286NISTXML-SV-II-list-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20287NISTXML-SV-II-list-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20288NISTXML-SV-II-list-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20289NISTXML-SV-II-list-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20290NISTXML-SV-II-list-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20291NISTSchema-SV-II-list-duration-maxLength-1 tokoe:valid" result="pass"/><test-case name="20292NISTXML-SV-II-list-duration-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20293NISTXML-SV-II-list-duration-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20294NISTXML-SV-II-list-duration-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20295NISTXML-SV-II-list-duration-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20296NISTXML-SV-II-list-duration-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20297NISTSchema-SV-II-list-duration-maxLength-2 tokoe:valid" result="pass"/><test-case name="20298NISTXML-SV-II-list-duration-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20299NISTXML-SV-II-list-duration-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20300NISTXML-SV-II-list-duration-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20301NISTXML-SV-II-list-duration-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20302NISTXML-SV-II-list-duration-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20303NISTSchema-SV-II-list-duration-maxLength-3 tokoe:valid" result="pass"/><test-case name="20304NISTXML-SV-II-list-duration-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20305NISTXML-SV-II-list-duration-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20306NISTXML-SV-II-list-duration-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20307NISTXML-SV-II-list-duration-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20308NISTXML-SV-II-list-duration-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20309NISTSchema-SV-II-list-duration-maxLength-4 tokoe:valid" result="pass"/><test-case name="20310NISTXML-SV-II-list-duration-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20311NISTXML-SV-II-list-duration-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20312NISTXML-SV-II-list-duration-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20313NISTXML-SV-II-list-duration-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20314NISTXML-SV-II-list-duration-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20315NISTSchema-SV-II-list-duration-maxLength-5 tokoe:valid" result="pass"/><test-case name="20316NISTXML-SV-II-list-duration-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20317NISTXML-SV-II-list-duration-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20318NISTXML-SV-II-list-duration-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20319NISTXML-SV-II-list-duration-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20320NISTXML-SV-II-list-duration-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20321NISTSchema-SV-II-list-duration-minLength-1 tokoe:valid" result="pass"/><test-case name="20322NISTXML-SV-II-list-duration-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20323NISTXML-SV-II-list-duration-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20324NISTXML-SV-II-list-duration-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20325NISTXML-SV-II-list-duration-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20326NISTXML-SV-II-list-duration-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20327NISTSchema-SV-II-list-duration-minLength-2 tokoe:valid" result="pass"/><test-case name="20328NISTXML-SV-II-list-duration-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20329NISTXML-SV-II-list-duration-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20330NISTXML-SV-II-list-duration-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20331NISTXML-SV-II-list-duration-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20332NISTXML-SV-II-list-duration-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20333NISTSchema-SV-II-list-duration-minLength-3 tokoe:valid" result="pass"/><test-case name="20334NISTXML-SV-II-list-duration-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20335NISTXML-SV-II-list-duration-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20336NISTXML-SV-II-list-duration-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20337NISTXML-SV-II-list-duration-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20338NISTXML-SV-II-list-duration-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20339NISTSchema-SV-II-list-duration-minLength-4 tokoe:valid" result="pass"/><test-case name="20340NISTXML-SV-II-list-duration-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20341NISTXML-SV-II-list-duration-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20342NISTXML-SV-II-list-duration-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20343NISTXML-SV-II-list-duration-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20344NISTXML-SV-II-list-duration-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20345NISTSchema-SV-II-list-duration-minLength-5 tokoe:valid" result="pass"/><test-case name="20346NISTXML-SV-II-list-duration-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20347NISTXML-SV-II-list-duration-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20348NISTXML-SV-II-list-duration-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20349NISTXML-SV-II-list-duration-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20350NISTXML-SV-II-list-duration-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20351NISTSchema-SV-II-list-duration-length-1 tokoe:valid" result="pass"/><test-case name="20352NISTXML-SV-II-list-duration-length-1-1 tokoe:invalid" result="pass"/><test-case name="20353NISTXML-SV-II-list-duration-length-1-2 tokoe:invalid" result="pass"/><test-case name="20354NISTXML-SV-II-list-duration-length-1-3 tokoe:invalid" result="pass"/><test-case name="20355NISTXML-SV-II-list-duration-length-1-4 tokoe:invalid" result="pass"/><test-case name="20356NISTXML-SV-II-list-duration-length-1-5 tokoe:invalid" result="pass"/><test-case name="20357NISTSchema-SV-II-list-duration-length-2 tokoe:valid" result="pass"/><test-case name="20358NISTXML-SV-II-list-duration-length-2-1 tokoe:invalid" result="pass"/><test-case name="20359NISTXML-SV-II-list-duration-length-2-2 tokoe:invalid" result="pass"/><test-case name="20360NISTXML-SV-II-list-duration-length-2-3 tokoe:invalid" result="pass"/><test-case name="20361NISTXML-SV-II-list-duration-length-2-4 tokoe:invalid" result="pass"/><test-case name="20362NISTXML-SV-II-list-duration-length-2-5 tokoe:invalid" result="pass"/><test-case name="20363NISTSchema-SV-II-list-duration-length-3 tokoe:valid" result="pass"/><test-case name="20364NISTXML-SV-II-list-duration-length-3-1 tokoe:invalid" result="pass"/><test-case name="20365NISTXML-SV-II-list-duration-length-3-2 tokoe:invalid" result="pass"/><test-case name="20366NISTXML-SV-II-list-duration-length-3-3 tokoe:invalid" result="pass"/><test-case name="20367NISTXML-SV-II-list-duration-length-3-4 tokoe:invalid" result="pass"/><test-case name="20368NISTXML-SV-II-list-duration-length-3-5 tokoe:invalid" result="pass"/><test-case name="20369NISTSchema-SV-II-list-duration-length-4 tokoe:valid" result="pass"/><test-case name="20370NISTXML-SV-II-list-duration-length-4-1 tokoe:invalid" result="pass"/><test-case name="20371NISTXML-SV-II-list-duration-length-4-2 tokoe:invalid" result="pass"/><test-case name="20372NISTXML-SV-II-list-duration-length-4-3 tokoe:invalid" result="pass"/><test-case name="20373NISTXML-SV-II-list-duration-length-4-4 tokoe:invalid" result="pass"/><test-case name="20374NISTXML-SV-II-list-duration-length-4-5 tokoe:invalid" result="pass"/><test-case name="20375NISTSchema-SV-II-list-duration-length-5 tokoe:valid" result="pass"/><test-case name="20376NISTXML-SV-II-list-duration-length-5-1 tokoe:invalid" result="pass"/><test-case name="20377NISTXML-SV-II-list-duration-length-5-2 tokoe:invalid" result="pass"/><test-case name="20378NISTXML-SV-II-list-duration-length-5-3 tokoe:invalid" result="pass"/><test-case name="20379NISTXML-SV-II-list-duration-length-5-4 tokoe:invalid" result="pass"/><test-case name="20380NISTXML-SV-II-list-duration-length-5-5 tokoe:invalid" result="pass"/><test-case name="20381NISTSchema-SV-II-list-duration-pattern-1 tokoe:valid" result="pass"/><test-case name="20382NISTXML-SV-II-list-duration-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20383NISTXML-SV-II-list-duration-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20384NISTXML-SV-II-list-duration-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20385NISTXML-SV-II-list-duration-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20386NISTXML-SV-II-list-duration-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20387NISTSchema-SV-II-list-duration-pattern-2 tokoe:valid" result="pass"/><test-case name="20388NISTXML-SV-II-list-duration-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20389NISTXML-SV-II-list-duration-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20390NISTXML-SV-II-list-duration-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20391NISTXML-SV-II-list-duration-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20392NISTXML-SV-II-list-duration-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20393NISTSchema-SV-II-list-duration-pattern-3 tokoe:valid" result="pass"/><test-case name="20394NISTXML-SV-II-list-duration-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20395NISTXML-SV-II-list-duration-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20396NISTXML-SV-II-list-duration-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20397NISTXML-SV-II-list-duration-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20398NISTXML-SV-II-list-duration-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20399NISTSchema-SV-II-list-duration-pattern-4 tokoe:valid" result="pass"/><test-case name="20400NISTXML-SV-II-list-duration-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20401NISTXML-SV-II-list-duration-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20402NISTXML-SV-II-list-duration-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20403NISTXML-SV-II-list-duration-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20404NISTXML-SV-II-list-duration-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20405NISTSchema-SV-II-list-duration-pattern-5 tokoe:valid" result="pass"/><test-case name="20406NISTXML-SV-II-list-duration-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20407NISTXML-SV-II-list-duration-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20408NISTXML-SV-II-list-duration-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20409NISTXML-SV-II-list-duration-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20410NISTXML-SV-II-list-duration-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20411NISTSchema-SV-II-list-duration-enumeration-1 tokoe:valid" result="pass"/><test-case name="20412NISTXML-SV-II-list-duration-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20413NISTXML-SV-II-list-duration-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20414NISTXML-SV-II-list-duration-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20415NISTXML-SV-II-list-duration-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20416NISTXML-SV-II-list-duration-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20417NISTSchema-SV-II-list-duration-enumeration-2 tokoe:valid" result="pass"/><test-case name="20418NISTXML-SV-II-list-duration-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20419NISTXML-SV-II-list-duration-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20420NISTXML-SV-II-list-duration-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20421NISTXML-SV-II-list-duration-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20422NISTXML-SV-II-list-duration-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20423NISTSchema-SV-II-list-duration-enumeration-3 tokoe:valid" result="pass"/><test-case name="20424NISTXML-SV-II-list-duration-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20425NISTXML-SV-II-list-duration-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20426NISTXML-SV-II-list-duration-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20427NISTXML-SV-II-list-duration-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20428NISTXML-SV-II-list-duration-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20429NISTSchema-SV-II-list-duration-enumeration-4 tokoe:valid" result="pass"/><test-case name="20430NISTXML-SV-II-list-duration-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20431NISTXML-SV-II-list-duration-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20432NISTXML-SV-II-list-duration-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20433NISTXML-SV-II-list-duration-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20434NISTXML-SV-II-list-duration-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20435NISTSchema-SV-II-list-duration-enumeration-5 tokoe:valid" result="pass"/><test-case name="20436NISTXML-SV-II-list-duration-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20437NISTXML-SV-II-list-duration-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20438NISTXML-SV-II-list-duration-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20439NISTXML-SV-II-list-duration-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20440NISTXML-SV-II-list-duration-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20441NISTSchema-SV-II-list-dateTime-maxLength-1 tokoe:valid" result="pass"/><test-case name="20442NISTXML-SV-II-list-dateTime-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20443NISTXML-SV-II-list-dateTime-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20444NISTXML-SV-II-list-dateTime-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20445NISTXML-SV-II-list-dateTime-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20446NISTXML-SV-II-list-dateTime-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20447NISTSchema-SV-II-list-dateTime-maxLength-2 tokoe:valid" result="pass"/><test-case name="20448NISTXML-SV-II-list-dateTime-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20449NISTXML-SV-II-list-dateTime-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20450NISTXML-SV-II-list-dateTime-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20451NISTXML-SV-II-list-dateTime-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20452NISTXML-SV-II-list-dateTime-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20453NISTSchema-SV-II-list-dateTime-maxLength-3 tokoe:valid" result="pass"/><test-case name="20454NISTXML-SV-II-list-dateTime-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20455NISTXML-SV-II-list-dateTime-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20456NISTXML-SV-II-list-dateTime-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20457NISTXML-SV-II-list-dateTime-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20458NISTXML-SV-II-list-dateTime-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20459NISTSchema-SV-II-list-dateTime-maxLength-4 tokoe:valid" result="pass"/><test-case name="20460NISTXML-SV-II-list-dateTime-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20461NISTXML-SV-II-list-dateTime-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20462NISTXML-SV-II-list-dateTime-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20463NISTXML-SV-II-list-dateTime-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20464NISTXML-SV-II-list-dateTime-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20465NISTSchema-SV-II-list-dateTime-maxLength-5 tokoe:valid" result="pass"/><test-case name="20466NISTXML-SV-II-list-dateTime-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20467NISTXML-SV-II-list-dateTime-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20468NISTXML-SV-II-list-dateTime-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20469NISTXML-SV-II-list-dateTime-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20470NISTXML-SV-II-list-dateTime-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20471NISTSchema-SV-II-list-dateTime-minLength-1 tokoe:valid" result="pass"/><test-case name="20472NISTXML-SV-II-list-dateTime-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20473NISTXML-SV-II-list-dateTime-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20474NISTXML-SV-II-list-dateTime-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20475NISTXML-SV-II-list-dateTime-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20476NISTXML-SV-II-list-dateTime-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20477NISTSchema-SV-II-list-dateTime-minLength-2 tokoe:valid" result="pass"/><test-case name="20478NISTXML-SV-II-list-dateTime-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20479NISTXML-SV-II-list-dateTime-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20480NISTXML-SV-II-list-dateTime-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20481NISTXML-SV-II-list-dateTime-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20482NISTXML-SV-II-list-dateTime-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20483NISTSchema-SV-II-list-dateTime-minLength-3 tokoe:valid" result="pass"/><test-case name="20484NISTXML-SV-II-list-dateTime-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20485NISTXML-SV-II-list-dateTime-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20486NISTXML-SV-II-list-dateTime-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20487NISTXML-SV-II-list-dateTime-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20488NISTXML-SV-II-list-dateTime-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20489NISTSchema-SV-II-list-dateTime-minLength-4 tokoe:valid" result="pass"/><test-case name="20490NISTXML-SV-II-list-dateTime-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20491NISTXML-SV-II-list-dateTime-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20492NISTXML-SV-II-list-dateTime-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20493NISTXML-SV-II-list-dateTime-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20494NISTXML-SV-II-list-dateTime-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20495NISTSchema-SV-II-list-dateTime-minLength-5 tokoe:valid" result="pass"/><test-case name="20496NISTXML-SV-II-list-dateTime-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20497NISTXML-SV-II-list-dateTime-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20498NISTXML-SV-II-list-dateTime-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20499NISTXML-SV-II-list-dateTime-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20500NISTXML-SV-II-list-dateTime-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20501NISTSchema-SV-II-list-dateTime-length-1 tokoe:valid" result="pass"/><test-case name="20502NISTXML-SV-II-list-dateTime-length-1-1 tokoe:invalid" result="pass"/><test-case name="20503NISTXML-SV-II-list-dateTime-length-1-2 tokoe:invalid" result="pass"/><test-case name="20504NISTXML-SV-II-list-dateTime-length-1-3 tokoe:invalid" result="pass"/><test-case name="20505NISTXML-SV-II-list-dateTime-length-1-4 tokoe:invalid" result="pass"/><test-case name="20506NISTXML-SV-II-list-dateTime-length-1-5 tokoe:invalid" result="pass"/><test-case name="20507NISTSchema-SV-II-list-dateTime-length-2 tokoe:valid" result="pass"/><test-case name="20508NISTXML-SV-II-list-dateTime-length-2-1 tokoe:invalid" result="pass"/><test-case name="20509NISTXML-SV-II-list-dateTime-length-2-2 tokoe:invalid" result="pass"/><test-case name="20510NISTXML-SV-II-list-dateTime-length-2-3 tokoe:invalid" result="pass"/><test-case name="20511NISTXML-SV-II-list-dateTime-length-2-4 tokoe:invalid" result="pass"/><test-case name="20512NISTXML-SV-II-list-dateTime-length-2-5 tokoe:invalid" result="pass"/><test-case name="20513NISTSchema-SV-II-list-dateTime-length-3 tokoe:valid" result="pass"/><test-case name="20514NISTXML-SV-II-list-dateTime-length-3-1 tokoe:invalid" result="pass"/><test-case name="20515NISTXML-SV-II-list-dateTime-length-3-2 tokoe:invalid" result="pass"/><test-case name="20516NISTXML-SV-II-list-dateTime-length-3-3 tokoe:invalid" result="pass"/><test-case name="20517NISTXML-SV-II-list-dateTime-length-3-4 tokoe:invalid" result="pass"/><test-case name="20518NISTXML-SV-II-list-dateTime-length-3-5 tokoe:invalid" result="pass"/><test-case name="20519NISTSchema-SV-II-list-dateTime-length-4 tokoe:valid" result="pass"/><test-case name="20520NISTXML-SV-II-list-dateTime-length-4-1 tokoe:invalid" result="pass"/><test-case name="20521NISTXML-SV-II-list-dateTime-length-4-2 tokoe:invalid" result="pass"/><test-case name="20522NISTXML-SV-II-list-dateTime-length-4-3 tokoe:invalid" result="pass"/><test-case name="20523NISTXML-SV-II-list-dateTime-length-4-4 tokoe:invalid" result="pass"/><test-case name="20524NISTXML-SV-II-list-dateTime-length-4-5 tokoe:invalid" result="pass"/><test-case name="20525NISTSchema-SV-II-list-dateTime-length-5 tokoe:valid" result="pass"/><test-case name="20526NISTXML-SV-II-list-dateTime-length-5-1 tokoe:invalid" result="pass"/><test-case name="20527NISTXML-SV-II-list-dateTime-length-5-2 tokoe:invalid" result="pass"/><test-case name="20528NISTXML-SV-II-list-dateTime-length-5-3 tokoe:invalid" result="pass"/><test-case name="20529NISTXML-SV-II-list-dateTime-length-5-4 tokoe:invalid" result="pass"/><test-case name="20530NISTXML-SV-II-list-dateTime-length-5-5 tokoe:invalid" result="pass"/><test-case name="20531NISTSchema-SV-II-list-dateTime-pattern-1 tokoe:valid" result="pass"/><test-case name="20532NISTXML-SV-II-list-dateTime-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20533NISTXML-SV-II-list-dateTime-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20534NISTXML-SV-II-list-dateTime-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20535NISTXML-SV-II-list-dateTime-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20536NISTXML-SV-II-list-dateTime-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20537NISTSchema-SV-II-list-dateTime-pattern-2 tokoe:valid" result="pass"/><test-case name="20538NISTXML-SV-II-list-dateTime-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20539NISTXML-SV-II-list-dateTime-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20540NISTXML-SV-II-list-dateTime-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20541NISTXML-SV-II-list-dateTime-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20542NISTXML-SV-II-list-dateTime-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20543NISTSchema-SV-II-list-dateTime-pattern-3 tokoe:valid" result="pass"/><test-case name="20544NISTXML-SV-II-list-dateTime-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20545NISTXML-SV-II-list-dateTime-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20546NISTXML-SV-II-list-dateTime-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20547NISTXML-SV-II-list-dateTime-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20548NISTXML-SV-II-list-dateTime-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20549NISTSchema-SV-II-list-dateTime-pattern-4 tokoe:valid" result="pass"/><test-case name="20550NISTXML-SV-II-list-dateTime-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20551NISTXML-SV-II-list-dateTime-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20552NISTXML-SV-II-list-dateTime-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20553NISTXML-SV-II-list-dateTime-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20554NISTXML-SV-II-list-dateTime-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20555NISTSchema-SV-II-list-dateTime-pattern-5 tokoe:valid" result="pass"/><test-case name="20556NISTXML-SV-II-list-dateTime-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20557NISTXML-SV-II-list-dateTime-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20558NISTXML-SV-II-list-dateTime-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20559NISTXML-SV-II-list-dateTime-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20560NISTXML-SV-II-list-dateTime-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20561NISTSchema-SV-II-list-dateTime-enumeration-1 tokoe:valid" result="pass"/><test-case name="20562NISTXML-SV-II-list-dateTime-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20563NISTXML-SV-II-list-dateTime-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20564NISTXML-SV-II-list-dateTime-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20565NISTXML-SV-II-list-dateTime-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20566NISTXML-SV-II-list-dateTime-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20567NISTSchema-SV-II-list-dateTime-enumeration-2 tokoe:valid" result="pass"/><test-case name="20568NISTXML-SV-II-list-dateTime-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20569NISTXML-SV-II-list-dateTime-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20570NISTXML-SV-II-list-dateTime-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20571NISTXML-SV-II-list-dateTime-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20572NISTXML-SV-II-list-dateTime-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20573NISTSchema-SV-II-list-dateTime-enumeration-3 tokoe:valid" result="pass"/><test-case name="20574NISTXML-SV-II-list-dateTime-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20575NISTXML-SV-II-list-dateTime-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20576NISTXML-SV-II-list-dateTime-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20577NISTXML-SV-II-list-dateTime-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20578NISTXML-SV-II-list-dateTime-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20579NISTSchema-SV-II-list-dateTime-enumeration-4 tokoe:valid" result="pass"/><test-case name="20580NISTXML-SV-II-list-dateTime-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20581NISTXML-SV-II-list-dateTime-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20582NISTXML-SV-II-list-dateTime-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20583NISTXML-SV-II-list-dateTime-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20584NISTXML-SV-II-list-dateTime-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20585NISTSchema-SV-II-list-dateTime-enumeration-5 tokoe:valid" result="pass"/><test-case name="20586NISTXML-SV-II-list-dateTime-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20587NISTXML-SV-II-list-dateTime-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20588NISTXML-SV-II-list-dateTime-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20589NISTXML-SV-II-list-dateTime-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20590NISTXML-SV-II-list-dateTime-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20591NISTSchema-SV-II-list-time-maxLength-1 tokoe:valid" result="pass"/><test-case name="20592NISTXML-SV-II-list-time-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20593NISTXML-SV-II-list-time-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20594NISTXML-SV-II-list-time-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20595NISTXML-SV-II-list-time-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20596NISTXML-SV-II-list-time-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20597NISTSchema-SV-II-list-time-maxLength-2 tokoe:valid" result="pass"/><test-case name="20598NISTXML-SV-II-list-time-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20599NISTXML-SV-II-list-time-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20600NISTXML-SV-II-list-time-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20601NISTXML-SV-II-list-time-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20602NISTXML-SV-II-list-time-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20603NISTSchema-SV-II-list-time-maxLength-3 tokoe:valid" result="pass"/><test-case name="20604NISTXML-SV-II-list-time-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20605NISTXML-SV-II-list-time-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20606NISTXML-SV-II-list-time-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20607NISTXML-SV-II-list-time-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20608NISTXML-SV-II-list-time-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20609NISTSchema-SV-II-list-time-maxLength-4 tokoe:valid" result="pass"/><test-case name="20610NISTXML-SV-II-list-time-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20611NISTXML-SV-II-list-time-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20612NISTXML-SV-II-list-time-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20613NISTXML-SV-II-list-time-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20614NISTXML-SV-II-list-time-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20615NISTSchema-SV-II-list-time-maxLength-5 tokoe:valid" result="pass"/><test-case name="20616NISTXML-SV-II-list-time-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20617NISTXML-SV-II-list-time-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20618NISTXML-SV-II-list-time-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20619NISTXML-SV-II-list-time-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20620NISTXML-SV-II-list-time-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20621NISTSchema-SV-II-list-time-minLength-1 tokoe:valid" result="pass"/><test-case name="20622NISTXML-SV-II-list-time-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20623NISTXML-SV-II-list-time-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20624NISTXML-SV-II-list-time-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20625NISTXML-SV-II-list-time-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20626NISTXML-SV-II-list-time-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20627NISTSchema-SV-II-list-time-minLength-2 tokoe:valid" result="pass"/><test-case name="20628NISTXML-SV-II-list-time-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20629NISTXML-SV-II-list-time-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20630NISTXML-SV-II-list-time-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20631NISTXML-SV-II-list-time-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20632NISTXML-SV-II-list-time-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20633NISTSchema-SV-II-list-time-minLength-3 tokoe:valid" result="pass"/><test-case name="20634NISTXML-SV-II-list-time-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20635NISTXML-SV-II-list-time-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20636NISTXML-SV-II-list-time-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20637NISTXML-SV-II-list-time-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20638NISTXML-SV-II-list-time-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20639NISTSchema-SV-II-list-time-minLength-4 tokoe:valid" result="pass"/><test-case name="20640NISTXML-SV-II-list-time-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20641NISTXML-SV-II-list-time-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20642NISTXML-SV-II-list-time-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20643NISTXML-SV-II-list-time-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20644NISTXML-SV-II-list-time-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20645NISTSchema-SV-II-list-time-minLength-5 tokoe:valid" result="pass"/><test-case name="20646NISTXML-SV-II-list-time-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20647NISTXML-SV-II-list-time-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20648NISTXML-SV-II-list-time-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20649NISTXML-SV-II-list-time-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20650NISTXML-SV-II-list-time-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20651NISTSchema-SV-II-list-time-length-1 tokoe:valid" result="pass"/><test-case name="20652NISTXML-SV-II-list-time-length-1-1 tokoe:invalid" result="pass"/><test-case name="20653NISTXML-SV-II-list-time-length-1-2 tokoe:invalid" result="pass"/><test-case name="20654NISTXML-SV-II-list-time-length-1-3 tokoe:invalid" result="pass"/><test-case name="20655NISTXML-SV-II-list-time-length-1-4 tokoe:invalid" result="pass"/><test-case name="20656NISTXML-SV-II-list-time-length-1-5 tokoe:invalid" result="pass"/><test-case name="20657NISTSchema-SV-II-list-time-length-2 tokoe:valid" result="pass"/><test-case name="20658NISTXML-SV-II-list-time-length-2-1 tokoe:invalid" result="pass"/><test-case name="20659NISTXML-SV-II-list-time-length-2-2 tokoe:invalid" result="pass"/><test-case name="20660NISTXML-SV-II-list-time-length-2-3 tokoe:invalid" result="pass"/><test-case name="20661NISTXML-SV-II-list-time-length-2-4 tokoe:invalid" result="pass"/><test-case name="20662NISTXML-SV-II-list-time-length-2-5 tokoe:invalid" result="pass"/><test-case name="20663NISTSchema-SV-II-list-time-length-3 tokoe:valid" result="pass"/><test-case name="20664NISTXML-SV-II-list-time-length-3-1 tokoe:invalid" result="pass"/><test-case name="20665NISTXML-SV-II-list-time-length-3-2 tokoe:invalid" result="pass"/><test-case name="20666NISTXML-SV-II-list-time-length-3-3 tokoe:invalid" result="pass"/><test-case name="20667NISTXML-SV-II-list-time-length-3-4 tokoe:invalid" result="pass"/><test-case name="20668NISTXML-SV-II-list-time-length-3-5 tokoe:invalid" result="pass"/><test-case name="20669NISTSchema-SV-II-list-time-length-4 tokoe:valid" result="pass"/><test-case name="20670NISTXML-SV-II-list-time-length-4-1 tokoe:invalid" result="pass"/><test-case name="20671NISTXML-SV-II-list-time-length-4-2 tokoe:invalid" result="pass"/><test-case name="20672NISTXML-SV-II-list-time-length-4-3 tokoe:invalid" result="pass"/><test-case name="20673NISTXML-SV-II-list-time-length-4-4 tokoe:invalid" result="pass"/><test-case name="20674NISTXML-SV-II-list-time-length-4-5 tokoe:invalid" result="pass"/><test-case name="20675NISTSchema-SV-II-list-time-length-5 tokoe:valid" result="pass"/><test-case name="20676NISTXML-SV-II-list-time-length-5-1 tokoe:invalid" result="pass"/><test-case name="20677NISTXML-SV-II-list-time-length-5-2 tokoe:invalid" result="pass"/><test-case name="20678NISTXML-SV-II-list-time-length-5-3 tokoe:invalid" result="pass"/><test-case name="20679NISTXML-SV-II-list-time-length-5-4 tokoe:invalid" result="pass"/><test-case name="20680NISTXML-SV-II-list-time-length-5-5 tokoe:invalid" result="pass"/><test-case name="20681NISTSchema-SV-II-list-time-pattern-1 tokoe:valid" result="pass"/><test-case name="20682NISTXML-SV-II-list-time-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20683NISTXML-SV-II-list-time-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20684NISTXML-SV-II-list-time-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20685NISTXML-SV-II-list-time-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20686NISTXML-SV-II-list-time-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20687NISTSchema-SV-II-list-time-pattern-2 tokoe:valid" result="pass"/><test-case name="20688NISTXML-SV-II-list-time-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20689NISTXML-SV-II-list-time-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20690NISTXML-SV-II-list-time-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20691NISTXML-SV-II-list-time-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20692NISTXML-SV-II-list-time-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20693NISTSchema-SV-II-list-time-pattern-3 tokoe:valid" result="pass"/><test-case name="20694NISTXML-SV-II-list-time-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20695NISTXML-SV-II-list-time-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20696NISTXML-SV-II-list-time-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20697NISTXML-SV-II-list-time-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20698NISTXML-SV-II-list-time-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20699NISTSchema-SV-II-list-time-pattern-4 tokoe:valid" result="pass"/><test-case name="20700NISTXML-SV-II-list-time-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20701NISTXML-SV-II-list-time-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20702NISTXML-SV-II-list-time-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20703NISTXML-SV-II-list-time-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20704NISTXML-SV-II-list-time-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20705NISTSchema-SV-II-list-time-pattern-5 tokoe:valid" result="pass"/><test-case name="20706NISTXML-SV-II-list-time-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20707NISTXML-SV-II-list-time-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20708NISTXML-SV-II-list-time-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20709NISTXML-SV-II-list-time-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20710NISTXML-SV-II-list-time-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20711NISTSchema-SV-II-list-time-enumeration-1 tokoe:valid" result="pass"/><test-case name="20712NISTXML-SV-II-list-time-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20713NISTXML-SV-II-list-time-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20714NISTXML-SV-II-list-time-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20715NISTXML-SV-II-list-time-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20716NISTXML-SV-II-list-time-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20717NISTSchema-SV-II-list-time-enumeration-2 tokoe:valid" result="pass"/><test-case name="20718NISTXML-SV-II-list-time-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20719NISTXML-SV-II-list-time-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20720NISTXML-SV-II-list-time-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20721NISTXML-SV-II-list-time-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20722NISTXML-SV-II-list-time-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20723NISTSchema-SV-II-list-time-enumeration-3 tokoe:valid" result="pass"/><test-case name="20724NISTXML-SV-II-list-time-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20725NISTXML-SV-II-list-time-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20726NISTXML-SV-II-list-time-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20727NISTXML-SV-II-list-time-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20728NISTXML-SV-II-list-time-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20729NISTSchema-SV-II-list-time-enumeration-4 tokoe:valid" result="pass"/><test-case name="20730NISTXML-SV-II-list-time-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20731NISTXML-SV-II-list-time-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20732NISTXML-SV-II-list-time-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20733NISTXML-SV-II-list-time-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20734NISTXML-SV-II-list-time-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20735NISTSchema-SV-II-list-time-enumeration-5 tokoe:valid" result="pass"/><test-case name="20736NISTXML-SV-II-list-time-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20737NISTXML-SV-II-list-time-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20738NISTXML-SV-II-list-time-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20739NISTXML-SV-II-list-time-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20740NISTXML-SV-II-list-time-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20741NISTSchema-SV-II-list-date-maxLength-1 tokoe:valid" result="pass"/><test-case name="20742NISTXML-SV-II-list-date-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20743NISTXML-SV-II-list-date-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20744NISTXML-SV-II-list-date-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20745NISTXML-SV-II-list-date-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20746NISTXML-SV-II-list-date-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20747NISTSchema-SV-II-list-date-maxLength-2 tokoe:valid" result="pass"/><test-case name="20748NISTXML-SV-II-list-date-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20749NISTXML-SV-II-list-date-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20750NISTXML-SV-II-list-date-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20751NISTXML-SV-II-list-date-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20752NISTXML-SV-II-list-date-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20753NISTSchema-SV-II-list-date-maxLength-3 tokoe:valid" result="pass"/><test-case name="20754NISTXML-SV-II-list-date-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20755NISTXML-SV-II-list-date-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20756NISTXML-SV-II-list-date-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20757NISTXML-SV-II-list-date-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20758NISTXML-SV-II-list-date-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20759NISTSchema-SV-II-list-date-maxLength-4 tokoe:valid" result="pass"/><test-case name="20760NISTXML-SV-II-list-date-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20761NISTXML-SV-II-list-date-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20762NISTXML-SV-II-list-date-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20763NISTXML-SV-II-list-date-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20764NISTXML-SV-II-list-date-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20765NISTSchema-SV-II-list-date-maxLength-5 tokoe:valid" result="pass"/><test-case name="20766NISTXML-SV-II-list-date-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20767NISTXML-SV-II-list-date-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20768NISTXML-SV-II-list-date-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20769NISTXML-SV-II-list-date-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20770NISTXML-SV-II-list-date-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20771NISTSchema-SV-II-list-date-minLength-1 tokoe:valid" result="pass"/><test-case name="20772NISTXML-SV-II-list-date-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20773NISTXML-SV-II-list-date-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20774NISTXML-SV-II-list-date-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20775NISTXML-SV-II-list-date-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20776NISTXML-SV-II-list-date-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20777NISTSchema-SV-II-list-date-minLength-2 tokoe:valid" result="pass"/><test-case name="20778NISTXML-SV-II-list-date-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20779NISTXML-SV-II-list-date-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20780NISTXML-SV-II-list-date-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20781NISTXML-SV-II-list-date-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20782NISTXML-SV-II-list-date-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20783NISTSchema-SV-II-list-date-minLength-3 tokoe:valid" result="pass"/><test-case name="20784NISTXML-SV-II-list-date-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20785NISTXML-SV-II-list-date-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20786NISTXML-SV-II-list-date-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20787NISTXML-SV-II-list-date-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20788NISTXML-SV-II-list-date-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20789NISTSchema-SV-II-list-date-minLength-4 tokoe:valid" result="pass"/><test-case name="20790NISTXML-SV-II-list-date-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20791NISTXML-SV-II-list-date-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20792NISTXML-SV-II-list-date-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20793NISTXML-SV-II-list-date-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20794NISTXML-SV-II-list-date-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20795NISTSchema-SV-II-list-date-minLength-5 tokoe:valid" result="pass"/><test-case name="20796NISTXML-SV-II-list-date-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20797NISTXML-SV-II-list-date-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20798NISTXML-SV-II-list-date-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20799NISTXML-SV-II-list-date-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20800NISTXML-SV-II-list-date-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20801NISTSchema-SV-II-list-date-length-1 tokoe:valid" result="pass"/><test-case name="20802NISTXML-SV-II-list-date-length-1-1 tokoe:invalid" result="pass"/><test-case name="20803NISTXML-SV-II-list-date-length-1-2 tokoe:invalid" result="pass"/><test-case name="20804NISTXML-SV-II-list-date-length-1-3 tokoe:invalid" result="pass"/><test-case name="20805NISTXML-SV-II-list-date-length-1-4 tokoe:invalid" result="pass"/><test-case name="20806NISTXML-SV-II-list-date-length-1-5 tokoe:invalid" result="pass"/><test-case name="20807NISTSchema-SV-II-list-date-length-2 tokoe:valid" result="pass"/><test-case name="20808NISTXML-SV-II-list-date-length-2-1 tokoe:invalid" result="pass"/><test-case name="20809NISTXML-SV-II-list-date-length-2-2 tokoe:invalid" result="pass"/><test-case name="20810NISTXML-SV-II-list-date-length-2-3 tokoe:invalid" result="pass"/><test-case name="20811NISTXML-SV-II-list-date-length-2-4 tokoe:invalid" result="pass"/><test-case name="20812NISTXML-SV-II-list-date-length-2-5 tokoe:invalid" result="pass"/><test-case name="20813NISTSchema-SV-II-list-date-length-3 tokoe:valid" result="pass"/><test-case name="20814NISTXML-SV-II-list-date-length-3-1 tokoe:invalid" result="pass"/><test-case name="20815NISTXML-SV-II-list-date-length-3-2 tokoe:invalid" result="pass"/><test-case name="20816NISTXML-SV-II-list-date-length-3-3 tokoe:invalid" result="pass"/><test-case name="20817NISTXML-SV-II-list-date-length-3-4 tokoe:invalid" result="pass"/><test-case name="20818NISTXML-SV-II-list-date-length-3-5 tokoe:invalid" result="pass"/><test-case name="20819NISTSchema-SV-II-list-date-length-4 tokoe:valid" result="pass"/><test-case name="20820NISTXML-SV-II-list-date-length-4-1 tokoe:invalid" result="pass"/><test-case name="20821NISTXML-SV-II-list-date-length-4-2 tokoe:invalid" result="pass"/><test-case name="20822NISTXML-SV-II-list-date-length-4-3 tokoe:invalid" result="pass"/><test-case name="20823NISTXML-SV-II-list-date-length-4-4 tokoe:invalid" result="pass"/><test-case name="20824NISTXML-SV-II-list-date-length-4-5 tokoe:invalid" result="pass"/><test-case name="20825NISTSchema-SV-II-list-date-length-5 tokoe:valid" result="pass"/><test-case name="20826NISTXML-SV-II-list-date-length-5-1 tokoe:invalid" result="pass"/><test-case name="20827NISTXML-SV-II-list-date-length-5-2 tokoe:invalid" result="pass"/><test-case name="20828NISTXML-SV-II-list-date-length-5-3 tokoe:invalid" result="pass"/><test-case name="20829NISTXML-SV-II-list-date-length-5-4 tokoe:invalid" result="pass"/><test-case name="20830NISTXML-SV-II-list-date-length-5-5 tokoe:invalid" result="pass"/><test-case name="20831NISTSchema-SV-II-list-date-pattern-1 tokoe:valid" result="pass"/><test-case name="20832NISTXML-SV-II-list-date-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20833NISTXML-SV-II-list-date-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20834NISTXML-SV-II-list-date-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20835NISTXML-SV-II-list-date-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20836NISTXML-SV-II-list-date-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20837NISTSchema-SV-II-list-date-pattern-2 tokoe:valid" result="pass"/><test-case name="20838NISTXML-SV-II-list-date-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20839NISTXML-SV-II-list-date-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20840NISTXML-SV-II-list-date-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20841NISTXML-SV-II-list-date-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20842NISTXML-SV-II-list-date-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20843NISTSchema-SV-II-list-date-pattern-3 tokoe:valid" result="pass"/><test-case name="20844NISTXML-SV-II-list-date-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20845NISTXML-SV-II-list-date-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20846NISTXML-SV-II-list-date-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20847NISTXML-SV-II-list-date-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20848NISTXML-SV-II-list-date-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20849NISTSchema-SV-II-list-date-pattern-4 tokoe:valid" result="pass"/><test-case name="20850NISTXML-SV-II-list-date-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="20851NISTXML-SV-II-list-date-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="20852NISTXML-SV-II-list-date-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="20853NISTXML-SV-II-list-date-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="20854NISTXML-SV-II-list-date-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="20855NISTSchema-SV-II-list-date-pattern-5 tokoe:valid" result="pass"/><test-case name="20856NISTXML-SV-II-list-date-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="20857NISTXML-SV-II-list-date-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="20858NISTXML-SV-II-list-date-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="20859NISTXML-SV-II-list-date-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="20860NISTXML-SV-II-list-date-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="20861NISTSchema-SV-II-list-date-enumeration-1 tokoe:valid" result="pass"/><test-case name="20862NISTXML-SV-II-list-date-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="20863NISTXML-SV-II-list-date-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="20864NISTXML-SV-II-list-date-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="20865NISTXML-SV-II-list-date-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="20866NISTXML-SV-II-list-date-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="20867NISTSchema-SV-II-list-date-enumeration-2 tokoe:valid" result="pass"/><test-case name="20868NISTXML-SV-II-list-date-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="20869NISTXML-SV-II-list-date-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="20870NISTXML-SV-II-list-date-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="20871NISTXML-SV-II-list-date-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="20872NISTXML-SV-II-list-date-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="20873NISTSchema-SV-II-list-date-enumeration-3 tokoe:valid" result="pass"/><test-case name="20874NISTXML-SV-II-list-date-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="20875NISTXML-SV-II-list-date-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="20876NISTXML-SV-II-list-date-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="20877NISTXML-SV-II-list-date-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="20878NISTXML-SV-II-list-date-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="20879NISTSchema-SV-II-list-date-enumeration-4 tokoe:valid" result="pass"/><test-case name="20880NISTXML-SV-II-list-date-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="20881NISTXML-SV-II-list-date-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="20882NISTXML-SV-II-list-date-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="20883NISTXML-SV-II-list-date-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="20884NISTXML-SV-II-list-date-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="20885NISTSchema-SV-II-list-date-enumeration-5 tokoe:valid" result="pass"/><test-case name="20886NISTXML-SV-II-list-date-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="20887NISTXML-SV-II-list-date-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="20888NISTXML-SV-II-list-date-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="20889NISTXML-SV-II-list-date-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="20890NISTXML-SV-II-list-date-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="20891NISTSchema-SV-II-list-gYearMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="20892NISTXML-SV-II-list-gYearMonth-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="20893NISTXML-SV-II-list-gYearMonth-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="20894NISTXML-SV-II-list-gYearMonth-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="20895NISTXML-SV-II-list-gYearMonth-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="20896NISTXML-SV-II-list-gYearMonth-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="20897NISTSchema-SV-II-list-gYearMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="20898NISTXML-SV-II-list-gYearMonth-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="20899NISTXML-SV-II-list-gYearMonth-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="20900NISTXML-SV-II-list-gYearMonth-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="20901NISTXML-SV-II-list-gYearMonth-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="20902NISTXML-SV-II-list-gYearMonth-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="20903NISTSchema-SV-II-list-gYearMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="20904NISTXML-SV-II-list-gYearMonth-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="20905NISTXML-SV-II-list-gYearMonth-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="20906NISTXML-SV-II-list-gYearMonth-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="20907NISTXML-SV-II-list-gYearMonth-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="20908NISTXML-SV-II-list-gYearMonth-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="20909NISTSchema-SV-II-list-gYearMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="20910NISTXML-SV-II-list-gYearMonth-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="20911NISTXML-SV-II-list-gYearMonth-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="20912NISTXML-SV-II-list-gYearMonth-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="20913NISTXML-SV-II-list-gYearMonth-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="20914NISTXML-SV-II-list-gYearMonth-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="20915NISTSchema-SV-II-list-gYearMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="20916NISTXML-SV-II-list-gYearMonth-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="20917NISTXML-SV-II-list-gYearMonth-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="20918NISTXML-SV-II-list-gYearMonth-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="20919NISTXML-SV-II-list-gYearMonth-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="20920NISTXML-SV-II-list-gYearMonth-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="20921NISTSchema-SV-II-list-gYearMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="20922NISTXML-SV-II-list-gYearMonth-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="20923NISTXML-SV-II-list-gYearMonth-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="20924NISTXML-SV-II-list-gYearMonth-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="20925NISTXML-SV-II-list-gYearMonth-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="20926NISTXML-SV-II-list-gYearMonth-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="20927NISTSchema-SV-II-list-gYearMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="20928NISTXML-SV-II-list-gYearMonth-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="20929NISTXML-SV-II-list-gYearMonth-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="20930NISTXML-SV-II-list-gYearMonth-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="20931NISTXML-SV-II-list-gYearMonth-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="20932NISTXML-SV-II-list-gYearMonth-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="20933NISTSchema-SV-II-list-gYearMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="20934NISTXML-SV-II-list-gYearMonth-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="20935NISTXML-SV-II-list-gYearMonth-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="20936NISTXML-SV-II-list-gYearMonth-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="20937NISTXML-SV-II-list-gYearMonth-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="20938NISTXML-SV-II-list-gYearMonth-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="20939NISTSchema-SV-II-list-gYearMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="20940NISTXML-SV-II-list-gYearMonth-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="20941NISTXML-SV-II-list-gYearMonth-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="20942NISTXML-SV-II-list-gYearMonth-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="20943NISTXML-SV-II-list-gYearMonth-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="20944NISTXML-SV-II-list-gYearMonth-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="20945NISTSchema-SV-II-list-gYearMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="20946NISTXML-SV-II-list-gYearMonth-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="20947NISTXML-SV-II-list-gYearMonth-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="20948NISTXML-SV-II-list-gYearMonth-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="20949NISTXML-SV-II-list-gYearMonth-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="20950NISTXML-SV-II-list-gYearMonth-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="20951NISTSchema-SV-II-list-gYearMonth-length-1 tokoe:valid" result="pass"/><test-case name="20952NISTXML-SV-II-list-gYearMonth-length-1-1 tokoe:invalid" result="pass"/><test-case name="20953NISTXML-SV-II-list-gYearMonth-length-1-2 tokoe:invalid" result="pass"/><test-case name="20954NISTXML-SV-II-list-gYearMonth-length-1-3 tokoe:invalid" result="pass"/><test-case name="20955NISTXML-SV-II-list-gYearMonth-length-1-4 tokoe:invalid" result="pass"/><test-case name="20956NISTXML-SV-II-list-gYearMonth-length-1-5 tokoe:invalid" result="pass"/><test-case name="20957NISTSchema-SV-II-list-gYearMonth-length-2 tokoe:valid" result="pass"/><test-case name="20958NISTXML-SV-II-list-gYearMonth-length-2-1 tokoe:invalid" result="pass"/><test-case name="20959NISTXML-SV-II-list-gYearMonth-length-2-2 tokoe:invalid" result="pass"/><test-case name="20960NISTXML-SV-II-list-gYearMonth-length-2-3 tokoe:invalid" result="pass"/><test-case name="20961NISTXML-SV-II-list-gYearMonth-length-2-4 tokoe:invalid" result="pass"/><test-case name="20962NISTXML-SV-II-list-gYearMonth-length-2-5 tokoe:invalid" result="pass"/><test-case name="20963NISTSchema-SV-II-list-gYearMonth-length-3 tokoe:valid" result="pass"/><test-case name="20964NISTXML-SV-II-list-gYearMonth-length-3-1 tokoe:invalid" result="pass"/><test-case name="20965NISTXML-SV-II-list-gYearMonth-length-3-2 tokoe:invalid" result="pass"/><test-case name="20966NISTXML-SV-II-list-gYearMonth-length-3-3 tokoe:invalid" result="pass"/><test-case name="20967NISTXML-SV-II-list-gYearMonth-length-3-4 tokoe:invalid" result="pass"/><test-case name="20968NISTXML-SV-II-list-gYearMonth-length-3-5 tokoe:invalid" result="pass"/><test-case name="20969NISTSchema-SV-II-list-gYearMonth-length-4 tokoe:valid" result="pass"/><test-case name="20970NISTXML-SV-II-list-gYearMonth-length-4-1 tokoe:invalid" result="pass"/><test-case name="20971NISTXML-SV-II-list-gYearMonth-length-4-2 tokoe:invalid" result="pass"/><test-case name="20972NISTXML-SV-II-list-gYearMonth-length-4-3 tokoe:invalid" result="pass"/><test-case name="20973NISTXML-SV-II-list-gYearMonth-length-4-4 tokoe:invalid" result="pass"/><test-case name="20974NISTXML-SV-II-list-gYearMonth-length-4-5 tokoe:invalid" result="pass"/><test-case name="20975NISTSchema-SV-II-list-gYearMonth-length-5 tokoe:valid" result="pass"/><test-case name="20976NISTXML-SV-II-list-gYearMonth-length-5-1 tokoe:invalid" result="pass"/><test-case name="20977NISTXML-SV-II-list-gYearMonth-length-5-2 tokoe:invalid" result="pass"/><test-case name="20978NISTXML-SV-II-list-gYearMonth-length-5-3 tokoe:invalid" result="pass"/><test-case name="20979NISTXML-SV-II-list-gYearMonth-length-5-4 tokoe:invalid" result="pass"/><test-case name="20980NISTXML-SV-II-list-gYearMonth-length-5-5 tokoe:invalid" result="pass"/><test-case name="20981NISTSchema-SV-II-list-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="20982NISTXML-SV-II-list-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="20983NISTXML-SV-II-list-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="20984NISTXML-SV-II-list-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="20985NISTXML-SV-II-list-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="20986NISTXML-SV-II-list-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="20987NISTSchema-SV-II-list-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="20988NISTXML-SV-II-list-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="20989NISTXML-SV-II-list-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="20990NISTXML-SV-II-list-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="20991NISTXML-SV-II-list-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="20992NISTXML-SV-II-list-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="20993NISTSchema-SV-II-list-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="20994NISTXML-SV-II-list-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="20995NISTXML-SV-II-list-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="20996NISTXML-SV-II-list-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="20997NISTXML-SV-II-list-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="20998NISTXML-SV-II-list-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="20999NISTSchema-SV-II-list-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="21000NISTXML-SV-II-list-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21001NISTXML-SV-II-list-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21002NISTXML-SV-II-list-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21003NISTXML-SV-II-list-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21004NISTXML-SV-II-list-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21005NISTSchema-SV-II-list-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="21006NISTXML-SV-II-list-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21007NISTXML-SV-II-list-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21008NISTXML-SV-II-list-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21009NISTXML-SV-II-list-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21010NISTXML-SV-II-list-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21011NISTSchema-SV-II-list-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="21012NISTXML-SV-II-list-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21013NISTXML-SV-II-list-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21014NISTXML-SV-II-list-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21015NISTXML-SV-II-list-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21016NISTXML-SV-II-list-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21017NISTSchema-SV-II-list-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="21018NISTXML-SV-II-list-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21019NISTXML-SV-II-list-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21020NISTXML-SV-II-list-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21021NISTXML-SV-II-list-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21022NISTXML-SV-II-list-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21023NISTSchema-SV-II-list-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="21024NISTXML-SV-II-list-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21025NISTXML-SV-II-list-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21026NISTXML-SV-II-list-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21027NISTXML-SV-II-list-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21028NISTXML-SV-II-list-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21029NISTSchema-SV-II-list-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="21030NISTXML-SV-II-list-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21031NISTXML-SV-II-list-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21032NISTXML-SV-II-list-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21033NISTXML-SV-II-list-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21034NISTXML-SV-II-list-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21035NISTSchema-SV-II-list-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="21036NISTXML-SV-II-list-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21037NISTXML-SV-II-list-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21038NISTXML-SV-II-list-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21039NISTXML-SV-II-list-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21040NISTXML-SV-II-list-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21041NISTSchema-SV-II-list-gYear-maxLength-1 tokoe:valid" result="pass"/><test-case name="21042NISTXML-SV-II-list-gYear-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21043NISTXML-SV-II-list-gYear-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21044NISTXML-SV-II-list-gYear-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21045NISTXML-SV-II-list-gYear-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21046NISTXML-SV-II-list-gYear-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21047NISTSchema-SV-II-list-gYear-maxLength-2 tokoe:valid" result="pass"/><test-case name="21048NISTXML-SV-II-list-gYear-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21049NISTXML-SV-II-list-gYear-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21050NISTXML-SV-II-list-gYear-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21051NISTXML-SV-II-list-gYear-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21052NISTXML-SV-II-list-gYear-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21053NISTSchema-SV-II-list-gYear-maxLength-3 tokoe:valid" result="pass"/><test-case name="21054NISTXML-SV-II-list-gYear-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21055NISTXML-SV-II-list-gYear-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21056NISTXML-SV-II-list-gYear-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21057NISTXML-SV-II-list-gYear-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21058NISTXML-SV-II-list-gYear-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21059NISTSchema-SV-II-list-gYear-maxLength-4 tokoe:valid" result="pass"/><test-case name="21060NISTXML-SV-II-list-gYear-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21061NISTXML-SV-II-list-gYear-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21062NISTXML-SV-II-list-gYear-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21063NISTXML-SV-II-list-gYear-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21064NISTXML-SV-II-list-gYear-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21065NISTSchema-SV-II-list-gYear-maxLength-5 tokoe:valid" result="pass"/><test-case name="21066NISTXML-SV-II-list-gYear-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21067NISTXML-SV-II-list-gYear-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21068NISTXML-SV-II-list-gYear-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21069NISTXML-SV-II-list-gYear-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21070NISTXML-SV-II-list-gYear-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21071NISTSchema-SV-II-list-gYear-minLength-1 tokoe:valid" result="pass"/><test-case name="21072NISTXML-SV-II-list-gYear-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21073NISTXML-SV-II-list-gYear-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21074NISTXML-SV-II-list-gYear-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21075NISTXML-SV-II-list-gYear-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21076NISTXML-SV-II-list-gYear-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21077NISTSchema-SV-II-list-gYear-minLength-2 tokoe:valid" result="pass"/><test-case name="21078NISTXML-SV-II-list-gYear-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21079NISTXML-SV-II-list-gYear-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21080NISTXML-SV-II-list-gYear-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21081NISTXML-SV-II-list-gYear-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21082NISTXML-SV-II-list-gYear-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21083NISTSchema-SV-II-list-gYear-minLength-3 tokoe:valid" result="pass"/><test-case name="21084NISTXML-SV-II-list-gYear-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21085NISTXML-SV-II-list-gYear-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21086NISTXML-SV-II-list-gYear-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21087NISTXML-SV-II-list-gYear-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21088NISTXML-SV-II-list-gYear-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21089NISTSchema-SV-II-list-gYear-minLength-4 tokoe:valid" result="pass"/><test-case name="21090NISTXML-SV-II-list-gYear-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21091NISTXML-SV-II-list-gYear-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21092NISTXML-SV-II-list-gYear-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21093NISTXML-SV-II-list-gYear-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21094NISTXML-SV-II-list-gYear-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21095NISTSchema-SV-II-list-gYear-minLength-5 tokoe:valid" result="pass"/><test-case name="21096NISTXML-SV-II-list-gYear-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21097NISTXML-SV-II-list-gYear-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21098NISTXML-SV-II-list-gYear-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21099NISTXML-SV-II-list-gYear-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21100NISTXML-SV-II-list-gYear-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21101NISTSchema-SV-II-list-gYear-length-1 tokoe:valid" result="pass"/><test-case name="21102NISTXML-SV-II-list-gYear-length-1-1 tokoe:invalid" result="pass"/><test-case name="21103NISTXML-SV-II-list-gYear-length-1-2 tokoe:invalid" result="pass"/><test-case name="21104NISTXML-SV-II-list-gYear-length-1-3 tokoe:invalid" result="pass"/><test-case name="21105NISTXML-SV-II-list-gYear-length-1-4 tokoe:invalid" result="pass"/><test-case name="21106NISTXML-SV-II-list-gYear-length-1-5 tokoe:invalid" result="pass"/><test-case name="21107NISTSchema-SV-II-list-gYear-length-2 tokoe:valid" result="pass"/><test-case name="21108NISTXML-SV-II-list-gYear-length-2-1 tokoe:invalid" result="pass"/><test-case name="21109NISTXML-SV-II-list-gYear-length-2-2 tokoe:invalid" result="pass"/><test-case name="21110NISTXML-SV-II-list-gYear-length-2-3 tokoe:invalid" result="pass"/><test-case name="21111NISTXML-SV-II-list-gYear-length-2-4 tokoe:invalid" result="pass"/><test-case name="21112NISTXML-SV-II-list-gYear-length-2-5 tokoe:invalid" result="pass"/><test-case name="21113NISTSchema-SV-II-list-gYear-length-3 tokoe:valid" result="pass"/><test-case name="21114NISTXML-SV-II-list-gYear-length-3-1 tokoe:invalid" result="pass"/><test-case name="21115NISTXML-SV-II-list-gYear-length-3-2 tokoe:invalid" result="pass"/><test-case name="21116NISTXML-SV-II-list-gYear-length-3-3 tokoe:invalid" result="pass"/><test-case name="21117NISTXML-SV-II-list-gYear-length-3-4 tokoe:invalid" result="pass"/><test-case name="21118NISTXML-SV-II-list-gYear-length-3-5 tokoe:invalid" result="pass"/><test-case name="21119NISTSchema-SV-II-list-gYear-length-4 tokoe:valid" result="pass"/><test-case name="21120NISTXML-SV-II-list-gYear-length-4-1 tokoe:invalid" result="pass"/><test-case name="21121NISTXML-SV-II-list-gYear-length-4-2 tokoe:invalid" result="pass"/><test-case name="21122NISTXML-SV-II-list-gYear-length-4-3 tokoe:invalid" result="pass"/><test-case name="21123NISTXML-SV-II-list-gYear-length-4-4 tokoe:invalid" result="pass"/><test-case name="21124NISTXML-SV-II-list-gYear-length-4-5 tokoe:invalid" result="pass"/><test-case name="21125NISTSchema-SV-II-list-gYear-length-5 tokoe:valid" result="pass"/><test-case name="21126NISTXML-SV-II-list-gYear-length-5-1 tokoe:invalid" result="pass"/><test-case name="21127NISTXML-SV-II-list-gYear-length-5-2 tokoe:invalid" result="pass"/><test-case name="21128NISTXML-SV-II-list-gYear-length-5-3 tokoe:invalid" result="pass"/><test-case name="21129NISTXML-SV-II-list-gYear-length-5-4 tokoe:invalid" result="pass"/><test-case name="21130NISTXML-SV-II-list-gYear-length-5-5 tokoe:invalid" result="pass"/><test-case name="21131NISTSchema-SV-II-list-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="21132NISTXML-SV-II-list-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21133NISTXML-SV-II-list-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21134NISTXML-SV-II-list-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21135NISTXML-SV-II-list-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21136NISTXML-SV-II-list-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21137NISTSchema-SV-II-list-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="21138NISTXML-SV-II-list-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21139NISTXML-SV-II-list-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21140NISTXML-SV-II-list-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21141NISTXML-SV-II-list-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21142NISTXML-SV-II-list-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21143NISTSchema-SV-II-list-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="21144NISTXML-SV-II-list-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21145NISTXML-SV-II-list-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21146NISTXML-SV-II-list-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21147NISTXML-SV-II-list-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21148NISTXML-SV-II-list-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21149NISTSchema-SV-II-list-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="21150NISTXML-SV-II-list-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21151NISTXML-SV-II-list-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21152NISTXML-SV-II-list-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21153NISTXML-SV-II-list-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21154NISTXML-SV-II-list-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21155NISTSchema-SV-II-list-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="21156NISTXML-SV-II-list-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21157NISTXML-SV-II-list-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21158NISTXML-SV-II-list-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21159NISTXML-SV-II-list-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21160NISTXML-SV-II-list-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21161NISTSchema-SV-II-list-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="21162NISTXML-SV-II-list-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21163NISTXML-SV-II-list-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21164NISTXML-SV-II-list-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21165NISTXML-SV-II-list-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21166NISTXML-SV-II-list-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21167NISTSchema-SV-II-list-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="21168NISTXML-SV-II-list-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21169NISTXML-SV-II-list-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21170NISTXML-SV-II-list-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21171NISTXML-SV-II-list-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21172NISTXML-SV-II-list-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21173NISTSchema-SV-II-list-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="21174NISTXML-SV-II-list-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21175NISTXML-SV-II-list-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21176NISTXML-SV-II-list-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21177NISTXML-SV-II-list-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21178NISTXML-SV-II-list-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21179NISTSchema-SV-II-list-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="21180NISTXML-SV-II-list-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21181NISTXML-SV-II-list-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21182NISTXML-SV-II-list-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21183NISTXML-SV-II-list-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21184NISTXML-SV-II-list-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21185NISTSchema-SV-II-list-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="21186NISTXML-SV-II-list-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21187NISTXML-SV-II-list-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21188NISTXML-SV-II-list-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21189NISTXML-SV-II-list-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21190NISTXML-SV-II-list-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21191NISTSchema-SV-II-list-gMonthDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="21192NISTXML-SV-II-list-gMonthDay-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21193NISTXML-SV-II-list-gMonthDay-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21194NISTXML-SV-II-list-gMonthDay-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21195NISTXML-SV-II-list-gMonthDay-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21196NISTXML-SV-II-list-gMonthDay-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21197NISTSchema-SV-II-list-gMonthDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="21198NISTXML-SV-II-list-gMonthDay-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21199NISTXML-SV-II-list-gMonthDay-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21200NISTXML-SV-II-list-gMonthDay-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21201NISTXML-SV-II-list-gMonthDay-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21202NISTXML-SV-II-list-gMonthDay-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21203NISTSchema-SV-II-list-gMonthDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="21204NISTXML-SV-II-list-gMonthDay-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21205NISTXML-SV-II-list-gMonthDay-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21206NISTXML-SV-II-list-gMonthDay-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21207NISTXML-SV-II-list-gMonthDay-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21208NISTXML-SV-II-list-gMonthDay-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21209NISTSchema-SV-II-list-gMonthDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="21210NISTXML-SV-II-list-gMonthDay-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21211NISTXML-SV-II-list-gMonthDay-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21212NISTXML-SV-II-list-gMonthDay-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21213NISTXML-SV-II-list-gMonthDay-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21214NISTXML-SV-II-list-gMonthDay-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21215NISTSchema-SV-II-list-gMonthDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="21216NISTXML-SV-II-list-gMonthDay-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21217NISTXML-SV-II-list-gMonthDay-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21218NISTXML-SV-II-list-gMonthDay-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21219NISTXML-SV-II-list-gMonthDay-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21220NISTXML-SV-II-list-gMonthDay-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21221NISTSchema-SV-II-list-gMonthDay-minLength-1 tokoe:valid" result="pass"/><test-case name="21222NISTXML-SV-II-list-gMonthDay-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21223NISTXML-SV-II-list-gMonthDay-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21224NISTXML-SV-II-list-gMonthDay-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21225NISTXML-SV-II-list-gMonthDay-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21226NISTXML-SV-II-list-gMonthDay-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21227NISTSchema-SV-II-list-gMonthDay-minLength-2 tokoe:valid" result="pass"/><test-case name="21228NISTXML-SV-II-list-gMonthDay-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21229NISTXML-SV-II-list-gMonthDay-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21230NISTXML-SV-II-list-gMonthDay-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21231NISTXML-SV-II-list-gMonthDay-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21232NISTXML-SV-II-list-gMonthDay-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21233NISTSchema-SV-II-list-gMonthDay-minLength-3 tokoe:valid" result="pass"/><test-case name="21234NISTXML-SV-II-list-gMonthDay-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21235NISTXML-SV-II-list-gMonthDay-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21236NISTXML-SV-II-list-gMonthDay-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21237NISTXML-SV-II-list-gMonthDay-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21238NISTXML-SV-II-list-gMonthDay-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21239NISTSchema-SV-II-list-gMonthDay-minLength-4 tokoe:valid" result="pass"/><test-case name="21240NISTXML-SV-II-list-gMonthDay-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21241NISTXML-SV-II-list-gMonthDay-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21242NISTXML-SV-II-list-gMonthDay-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21243NISTXML-SV-II-list-gMonthDay-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21244NISTXML-SV-II-list-gMonthDay-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21245NISTSchema-SV-II-list-gMonthDay-minLength-5 tokoe:valid" result="pass"/><test-case name="21246NISTXML-SV-II-list-gMonthDay-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21247NISTXML-SV-II-list-gMonthDay-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21248NISTXML-SV-II-list-gMonthDay-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21249NISTXML-SV-II-list-gMonthDay-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21250NISTXML-SV-II-list-gMonthDay-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21251NISTSchema-SV-II-list-gMonthDay-length-1 tokoe:valid" result="pass"/><test-case name="21252NISTXML-SV-II-list-gMonthDay-length-1-1 tokoe:invalid" result="pass"/><test-case name="21253NISTXML-SV-II-list-gMonthDay-length-1-2 tokoe:invalid" result="pass"/><test-case name="21254NISTXML-SV-II-list-gMonthDay-length-1-3 tokoe:invalid" result="pass"/><test-case name="21255NISTXML-SV-II-list-gMonthDay-length-1-4 tokoe:invalid" result="pass"/><test-case name="21256NISTXML-SV-II-list-gMonthDay-length-1-5 tokoe:invalid" result="pass"/><test-case name="21257NISTSchema-SV-II-list-gMonthDay-length-2 tokoe:valid" result="pass"/><test-case name="21258NISTXML-SV-II-list-gMonthDay-length-2-1 tokoe:invalid" result="pass"/><test-case name="21259NISTXML-SV-II-list-gMonthDay-length-2-2 tokoe:invalid" result="pass"/><test-case name="21260NISTXML-SV-II-list-gMonthDay-length-2-3 tokoe:invalid" result="pass"/><test-case name="21261NISTXML-SV-II-list-gMonthDay-length-2-4 tokoe:invalid" result="pass"/><test-case name="21262NISTXML-SV-II-list-gMonthDay-length-2-5 tokoe:invalid" result="pass"/><test-case name="21263NISTSchema-SV-II-list-gMonthDay-length-3 tokoe:valid" result="pass"/><test-case name="21264NISTXML-SV-II-list-gMonthDay-length-3-1 tokoe:invalid" result="pass"/><test-case name="21265NISTXML-SV-II-list-gMonthDay-length-3-2 tokoe:invalid" result="pass"/><test-case name="21266NISTXML-SV-II-list-gMonthDay-length-3-3 tokoe:invalid" result="pass"/><test-case name="21267NISTXML-SV-II-list-gMonthDay-length-3-4 tokoe:invalid" result="pass"/><test-case name="21268NISTXML-SV-II-list-gMonthDay-length-3-5 tokoe:invalid" result="pass"/><test-case name="21269NISTSchema-SV-II-list-gMonthDay-length-4 tokoe:valid" result="pass"/><test-case name="21270NISTXML-SV-II-list-gMonthDay-length-4-1 tokoe:invalid" result="pass"/><test-case name="21271NISTXML-SV-II-list-gMonthDay-length-4-2 tokoe:invalid" result="pass"/><test-case name="21272NISTXML-SV-II-list-gMonthDay-length-4-3 tokoe:invalid" result="pass"/><test-case name="21273NISTXML-SV-II-list-gMonthDay-length-4-4 tokoe:invalid" result="pass"/><test-case name="21274NISTXML-SV-II-list-gMonthDay-length-4-5 tokoe:invalid" result="pass"/><test-case name="21275NISTSchema-SV-II-list-gMonthDay-length-5 tokoe:valid" result="pass"/><test-case name="21276NISTXML-SV-II-list-gMonthDay-length-5-1 tokoe:invalid" result="pass"/><test-case name="21277NISTXML-SV-II-list-gMonthDay-length-5-2 tokoe:invalid" result="pass"/><test-case name="21278NISTXML-SV-II-list-gMonthDay-length-5-3 tokoe:invalid" result="pass"/><test-case name="21279NISTXML-SV-II-list-gMonthDay-length-5-4 tokoe:invalid" result="pass"/><test-case name="21280NISTXML-SV-II-list-gMonthDay-length-5-5 tokoe:invalid" result="pass"/><test-case name="21281NISTSchema-SV-II-list-gMonthDay-pattern-1 tokoe:valid" result="pass"/><test-case name="21282NISTXML-SV-II-list-gMonthDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21283NISTXML-SV-II-list-gMonthDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21284NISTXML-SV-II-list-gMonthDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21285NISTXML-SV-II-list-gMonthDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21286NISTXML-SV-II-list-gMonthDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21287NISTSchema-SV-II-list-gMonthDay-pattern-2 tokoe:valid" result="pass"/><test-case name="21288NISTXML-SV-II-list-gMonthDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21289NISTXML-SV-II-list-gMonthDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21290NISTXML-SV-II-list-gMonthDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21291NISTXML-SV-II-list-gMonthDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21292NISTXML-SV-II-list-gMonthDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21293NISTSchema-SV-II-list-gMonthDay-pattern-3 tokoe:valid" result="pass"/><test-case name="21294NISTXML-SV-II-list-gMonthDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21295NISTXML-SV-II-list-gMonthDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21296NISTXML-SV-II-list-gMonthDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21297NISTXML-SV-II-list-gMonthDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21298NISTXML-SV-II-list-gMonthDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21299NISTSchema-SV-II-list-gMonthDay-pattern-4 tokoe:valid" result="pass"/><test-case name="21300NISTXML-SV-II-list-gMonthDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21301NISTXML-SV-II-list-gMonthDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21302NISTXML-SV-II-list-gMonthDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21303NISTXML-SV-II-list-gMonthDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21304NISTXML-SV-II-list-gMonthDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21305NISTSchema-SV-II-list-gMonthDay-pattern-5 tokoe:valid" result="pass"/><test-case name="21306NISTXML-SV-II-list-gMonthDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21307NISTXML-SV-II-list-gMonthDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21308NISTXML-SV-II-list-gMonthDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21309NISTXML-SV-II-list-gMonthDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21310NISTXML-SV-II-list-gMonthDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21311NISTSchema-SV-II-list-gMonthDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="21312NISTXML-SV-II-list-gMonthDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21313NISTXML-SV-II-list-gMonthDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21314NISTXML-SV-II-list-gMonthDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21315NISTXML-SV-II-list-gMonthDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21316NISTXML-SV-II-list-gMonthDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21317NISTSchema-SV-II-list-gMonthDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="21318NISTXML-SV-II-list-gMonthDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21319NISTXML-SV-II-list-gMonthDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21320NISTXML-SV-II-list-gMonthDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21321NISTXML-SV-II-list-gMonthDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21322NISTXML-SV-II-list-gMonthDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21323NISTSchema-SV-II-list-gMonthDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="21324NISTXML-SV-II-list-gMonthDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21325NISTXML-SV-II-list-gMonthDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21326NISTXML-SV-II-list-gMonthDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21327NISTXML-SV-II-list-gMonthDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21328NISTXML-SV-II-list-gMonthDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21329NISTSchema-SV-II-list-gMonthDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="21330NISTXML-SV-II-list-gMonthDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21331NISTXML-SV-II-list-gMonthDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21332NISTXML-SV-II-list-gMonthDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21333NISTXML-SV-II-list-gMonthDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21334NISTXML-SV-II-list-gMonthDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21335NISTSchema-SV-II-list-gMonthDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="21336NISTXML-SV-II-list-gMonthDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21337NISTXML-SV-II-list-gMonthDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21338NISTXML-SV-II-list-gMonthDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21339NISTXML-SV-II-list-gMonthDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21340NISTXML-SV-II-list-gMonthDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21341NISTSchema-SV-II-list-gDay-maxLength-1 tokoe:valid" result="pass"/><test-case name="21342NISTXML-SV-II-list-gDay-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21343NISTXML-SV-II-list-gDay-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21344NISTXML-SV-II-list-gDay-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21345NISTXML-SV-II-list-gDay-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21346NISTXML-SV-II-list-gDay-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21347NISTSchema-SV-II-list-gDay-maxLength-2 tokoe:valid" result="pass"/><test-case name="21348NISTXML-SV-II-list-gDay-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21349NISTXML-SV-II-list-gDay-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21350NISTXML-SV-II-list-gDay-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21351NISTXML-SV-II-list-gDay-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21352NISTXML-SV-II-list-gDay-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21353NISTSchema-SV-II-list-gDay-maxLength-3 tokoe:valid" result="pass"/><test-case name="21354NISTXML-SV-II-list-gDay-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21355NISTXML-SV-II-list-gDay-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21356NISTXML-SV-II-list-gDay-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21357NISTXML-SV-II-list-gDay-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21358NISTXML-SV-II-list-gDay-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21359NISTSchema-SV-II-list-gDay-maxLength-4 tokoe:valid" result="pass"/><test-case name="21360NISTXML-SV-II-list-gDay-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21361NISTXML-SV-II-list-gDay-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21362NISTXML-SV-II-list-gDay-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21363NISTXML-SV-II-list-gDay-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21364NISTXML-SV-II-list-gDay-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21365NISTSchema-SV-II-list-gDay-maxLength-5 tokoe:valid" result="pass"/><test-case name="21366NISTXML-SV-II-list-gDay-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21367NISTXML-SV-II-list-gDay-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21368NISTXML-SV-II-list-gDay-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21369NISTXML-SV-II-list-gDay-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21370NISTXML-SV-II-list-gDay-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21371NISTSchema-SV-II-list-gDay-minLength-1 tokoe:valid" result="pass"/><test-case name="21372NISTXML-SV-II-list-gDay-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21373NISTXML-SV-II-list-gDay-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21374NISTXML-SV-II-list-gDay-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21375NISTXML-SV-II-list-gDay-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21376NISTXML-SV-II-list-gDay-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21377NISTSchema-SV-II-list-gDay-minLength-2 tokoe:valid" result="pass"/><test-case name="21378NISTXML-SV-II-list-gDay-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21379NISTXML-SV-II-list-gDay-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21380NISTXML-SV-II-list-gDay-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21381NISTXML-SV-II-list-gDay-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21382NISTXML-SV-II-list-gDay-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21383NISTSchema-SV-II-list-gDay-minLength-3 tokoe:valid" result="pass"/><test-case name="21384NISTXML-SV-II-list-gDay-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21385NISTXML-SV-II-list-gDay-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21386NISTXML-SV-II-list-gDay-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21387NISTXML-SV-II-list-gDay-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21388NISTXML-SV-II-list-gDay-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21389NISTSchema-SV-II-list-gDay-minLength-4 tokoe:valid" result="pass"/><test-case name="21390NISTXML-SV-II-list-gDay-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21391NISTXML-SV-II-list-gDay-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21392NISTXML-SV-II-list-gDay-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21393NISTXML-SV-II-list-gDay-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21394NISTXML-SV-II-list-gDay-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21395NISTSchema-SV-II-list-gDay-minLength-5 tokoe:valid" result="pass"/><test-case name="21396NISTXML-SV-II-list-gDay-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21397NISTXML-SV-II-list-gDay-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21398NISTXML-SV-II-list-gDay-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21399NISTXML-SV-II-list-gDay-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21400NISTXML-SV-II-list-gDay-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21401NISTSchema-SV-II-list-gDay-length-1 tokoe:valid" result="pass"/><test-case name="21402NISTXML-SV-II-list-gDay-length-1-1 tokoe:invalid" result="pass"/><test-case name="21403NISTXML-SV-II-list-gDay-length-1-2 tokoe:invalid" result="pass"/><test-case name="21404NISTXML-SV-II-list-gDay-length-1-3 tokoe:invalid" result="pass"/><test-case name="21405NISTXML-SV-II-list-gDay-length-1-4 tokoe:invalid" result="pass"/><test-case name="21406NISTXML-SV-II-list-gDay-length-1-5 tokoe:invalid" result="pass"/><test-case name="21407NISTSchema-SV-II-list-gDay-length-2 tokoe:valid" result="pass"/><test-case name="21408NISTXML-SV-II-list-gDay-length-2-1 tokoe:invalid" result="pass"/><test-case name="21409NISTXML-SV-II-list-gDay-length-2-2 tokoe:invalid" result="pass"/><test-case name="21410NISTXML-SV-II-list-gDay-length-2-3 tokoe:invalid" result="pass"/><test-case name="21411NISTXML-SV-II-list-gDay-length-2-4 tokoe:invalid" result="pass"/><test-case name="21412NISTXML-SV-II-list-gDay-length-2-5 tokoe:invalid" result="pass"/><test-case name="21413NISTSchema-SV-II-list-gDay-length-3 tokoe:valid" result="pass"/><test-case name="21414NISTXML-SV-II-list-gDay-length-3-1 tokoe:invalid" result="pass"/><test-case name="21415NISTXML-SV-II-list-gDay-length-3-2 tokoe:invalid" result="pass"/><test-case name="21416NISTXML-SV-II-list-gDay-length-3-3 tokoe:invalid" result="pass"/><test-case name="21417NISTXML-SV-II-list-gDay-length-3-4 tokoe:invalid" result="pass"/><test-case name="21418NISTXML-SV-II-list-gDay-length-3-5 tokoe:invalid" result="pass"/><test-case name="21419NISTSchema-SV-II-list-gDay-length-4 tokoe:valid" result="pass"/><test-case name="21420NISTXML-SV-II-list-gDay-length-4-1 tokoe:invalid" result="pass"/><test-case name="21421NISTXML-SV-II-list-gDay-length-4-2 tokoe:invalid" result="pass"/><test-case name="21422NISTXML-SV-II-list-gDay-length-4-3 tokoe:invalid" result="pass"/><test-case name="21423NISTXML-SV-II-list-gDay-length-4-4 tokoe:invalid" result="pass"/><test-case name="21424NISTXML-SV-II-list-gDay-length-4-5 tokoe:invalid" result="pass"/><test-case name="21425NISTSchema-SV-II-list-gDay-length-5 tokoe:valid" result="pass"/><test-case name="21426NISTXML-SV-II-list-gDay-length-5-1 tokoe:invalid" result="pass"/><test-case name="21427NISTXML-SV-II-list-gDay-length-5-2 tokoe:invalid" result="pass"/><test-case name="21428NISTXML-SV-II-list-gDay-length-5-3 tokoe:invalid" result="pass"/><test-case name="21429NISTXML-SV-II-list-gDay-length-5-4 tokoe:invalid" result="pass"/><test-case name="21430NISTXML-SV-II-list-gDay-length-5-5 tokoe:invalid" result="pass"/><test-case name="21431NISTSchema-SV-II-list-gDay-pattern-1 tokoe:valid" result="pass"/><test-case name="21432NISTXML-SV-II-list-gDay-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21433NISTXML-SV-II-list-gDay-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21434NISTXML-SV-II-list-gDay-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21435NISTXML-SV-II-list-gDay-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21436NISTXML-SV-II-list-gDay-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21437NISTSchema-SV-II-list-gDay-pattern-2 tokoe:valid" result="pass"/><test-case name="21438NISTXML-SV-II-list-gDay-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21439NISTXML-SV-II-list-gDay-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21440NISTXML-SV-II-list-gDay-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21441NISTXML-SV-II-list-gDay-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21442NISTXML-SV-II-list-gDay-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21443NISTSchema-SV-II-list-gDay-pattern-3 tokoe:valid" result="pass"/><test-case name="21444NISTXML-SV-II-list-gDay-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21445NISTXML-SV-II-list-gDay-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21446NISTXML-SV-II-list-gDay-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21447NISTXML-SV-II-list-gDay-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21448NISTXML-SV-II-list-gDay-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21449NISTSchema-SV-II-list-gDay-pattern-4 tokoe:valid" result="pass"/><test-case name="21450NISTXML-SV-II-list-gDay-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21451NISTXML-SV-II-list-gDay-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21452NISTXML-SV-II-list-gDay-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21453NISTXML-SV-II-list-gDay-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21454NISTXML-SV-II-list-gDay-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21455NISTSchema-SV-II-list-gDay-pattern-5 tokoe:valid" result="pass"/><test-case name="21456NISTXML-SV-II-list-gDay-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21457NISTXML-SV-II-list-gDay-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21458NISTXML-SV-II-list-gDay-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21459NISTXML-SV-II-list-gDay-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21460NISTXML-SV-II-list-gDay-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21461NISTSchema-SV-II-list-gDay-enumeration-1 tokoe:valid" result="pass"/><test-case name="21462NISTXML-SV-II-list-gDay-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21463NISTXML-SV-II-list-gDay-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21464NISTXML-SV-II-list-gDay-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21465NISTXML-SV-II-list-gDay-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21466NISTXML-SV-II-list-gDay-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21467NISTSchema-SV-II-list-gDay-enumeration-2 tokoe:valid" result="pass"/><test-case name="21468NISTXML-SV-II-list-gDay-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21469NISTXML-SV-II-list-gDay-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21470NISTXML-SV-II-list-gDay-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21471NISTXML-SV-II-list-gDay-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21472NISTXML-SV-II-list-gDay-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21473NISTSchema-SV-II-list-gDay-enumeration-3 tokoe:valid" result="pass"/><test-case name="21474NISTXML-SV-II-list-gDay-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21475NISTXML-SV-II-list-gDay-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21476NISTXML-SV-II-list-gDay-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21477NISTXML-SV-II-list-gDay-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21478NISTXML-SV-II-list-gDay-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21479NISTSchema-SV-II-list-gDay-enumeration-4 tokoe:valid" result="pass"/><test-case name="21480NISTXML-SV-II-list-gDay-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21481NISTXML-SV-II-list-gDay-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21482NISTXML-SV-II-list-gDay-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21483NISTXML-SV-II-list-gDay-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21484NISTXML-SV-II-list-gDay-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21485NISTSchema-SV-II-list-gDay-enumeration-5 tokoe:valid" result="pass"/><test-case name="21486NISTXML-SV-II-list-gDay-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21487NISTXML-SV-II-list-gDay-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21488NISTXML-SV-II-list-gDay-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21489NISTXML-SV-II-list-gDay-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21490NISTXML-SV-II-list-gDay-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21491NISTSchema-SV-II-list-gMonth-maxLength-1 tokoe:valid" result="pass"/><test-case name="21492NISTXML-SV-II-list-gMonth-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21493NISTXML-SV-II-list-gMonth-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21494NISTXML-SV-II-list-gMonth-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21495NISTXML-SV-II-list-gMonth-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21496NISTXML-SV-II-list-gMonth-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21497NISTSchema-SV-II-list-gMonth-maxLength-2 tokoe:valid" result="pass"/><test-case name="21498NISTXML-SV-II-list-gMonth-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21499NISTXML-SV-II-list-gMonth-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21500NISTXML-SV-II-list-gMonth-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21501NISTXML-SV-II-list-gMonth-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21502NISTXML-SV-II-list-gMonth-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21503NISTSchema-SV-II-list-gMonth-maxLength-3 tokoe:valid" result="pass"/><test-case name="21504NISTXML-SV-II-list-gMonth-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21505NISTXML-SV-II-list-gMonth-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21506NISTXML-SV-II-list-gMonth-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21507NISTXML-SV-II-list-gMonth-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21508NISTXML-SV-II-list-gMonth-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21509NISTSchema-SV-II-list-gMonth-maxLength-4 tokoe:valid" result="pass"/><test-case name="21510NISTXML-SV-II-list-gMonth-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21511NISTXML-SV-II-list-gMonth-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21512NISTXML-SV-II-list-gMonth-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21513NISTXML-SV-II-list-gMonth-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21514NISTXML-SV-II-list-gMonth-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21515NISTSchema-SV-II-list-gMonth-maxLength-5 tokoe:valid" result="pass"/><test-case name="21516NISTXML-SV-II-list-gMonth-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21517NISTXML-SV-II-list-gMonth-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21518NISTXML-SV-II-list-gMonth-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21519NISTXML-SV-II-list-gMonth-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21520NISTXML-SV-II-list-gMonth-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21521NISTSchema-SV-II-list-gMonth-minLength-1 tokoe:valid" result="pass"/><test-case name="21522NISTXML-SV-II-list-gMonth-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21523NISTXML-SV-II-list-gMonth-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21524NISTXML-SV-II-list-gMonth-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21525NISTXML-SV-II-list-gMonth-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21526NISTXML-SV-II-list-gMonth-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21527NISTSchema-SV-II-list-gMonth-minLength-2 tokoe:valid" result="pass"/><test-case name="21528NISTXML-SV-II-list-gMonth-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21529NISTXML-SV-II-list-gMonth-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21530NISTXML-SV-II-list-gMonth-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21531NISTXML-SV-II-list-gMonth-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21532NISTXML-SV-II-list-gMonth-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21533NISTSchema-SV-II-list-gMonth-minLength-3 tokoe:valid" result="pass"/><test-case name="21534NISTXML-SV-II-list-gMonth-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21535NISTXML-SV-II-list-gMonth-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21536NISTXML-SV-II-list-gMonth-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21537NISTXML-SV-II-list-gMonth-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21538NISTXML-SV-II-list-gMonth-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21539NISTSchema-SV-II-list-gMonth-minLength-4 tokoe:valid" result="pass"/><test-case name="21540NISTXML-SV-II-list-gMonth-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21541NISTXML-SV-II-list-gMonth-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21542NISTXML-SV-II-list-gMonth-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21543NISTXML-SV-II-list-gMonth-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21544NISTXML-SV-II-list-gMonth-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21545NISTSchema-SV-II-list-gMonth-minLength-5 tokoe:valid" result="pass"/><test-case name="21546NISTXML-SV-II-list-gMonth-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21547NISTXML-SV-II-list-gMonth-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21548NISTXML-SV-II-list-gMonth-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21549NISTXML-SV-II-list-gMonth-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21550NISTXML-SV-II-list-gMonth-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21551NISTSchema-SV-II-list-gMonth-length-1 tokoe:valid" result="pass"/><test-case name="21552NISTXML-SV-II-list-gMonth-length-1-1 tokoe:invalid" result="pass"/><test-case name="21553NISTXML-SV-II-list-gMonth-length-1-2 tokoe:invalid" result="pass"/><test-case name="21554NISTXML-SV-II-list-gMonth-length-1-3 tokoe:invalid" result="pass"/><test-case name="21555NISTXML-SV-II-list-gMonth-length-1-4 tokoe:invalid" result="pass"/><test-case name="21556NISTXML-SV-II-list-gMonth-length-1-5 tokoe:invalid" result="pass"/><test-case name="21557NISTSchema-SV-II-list-gMonth-length-2 tokoe:valid" result="pass"/><test-case name="21558NISTXML-SV-II-list-gMonth-length-2-1 tokoe:invalid" result="pass"/><test-case name="21559NISTXML-SV-II-list-gMonth-length-2-2 tokoe:invalid" result="pass"/><test-case name="21560NISTXML-SV-II-list-gMonth-length-2-3 tokoe:invalid" result="pass"/><test-case name="21561NISTXML-SV-II-list-gMonth-length-2-4 tokoe:invalid" result="pass"/><test-case name="21562NISTXML-SV-II-list-gMonth-length-2-5 tokoe:invalid" result="pass"/><test-case name="21563NISTSchema-SV-II-list-gMonth-length-3 tokoe:valid" result="pass"/><test-case name="21564NISTXML-SV-II-list-gMonth-length-3-1 tokoe:invalid" result="pass"/><test-case name="21565NISTXML-SV-II-list-gMonth-length-3-2 tokoe:invalid" result="pass"/><test-case name="21566NISTXML-SV-II-list-gMonth-length-3-3 tokoe:invalid" result="pass"/><test-case name="21567NISTXML-SV-II-list-gMonth-length-3-4 tokoe:invalid" result="pass"/><test-case name="21568NISTXML-SV-II-list-gMonth-length-3-5 tokoe:invalid" result="pass"/><test-case name="21569NISTSchema-SV-II-list-gMonth-length-4 tokoe:valid" result="pass"/><test-case name="21570NISTXML-SV-II-list-gMonth-length-4-1 tokoe:invalid" result="pass"/><test-case name="21571NISTXML-SV-II-list-gMonth-length-4-2 tokoe:invalid" result="pass"/><test-case name="21572NISTXML-SV-II-list-gMonth-length-4-3 tokoe:invalid" result="pass"/><test-case name="21573NISTXML-SV-II-list-gMonth-length-4-4 tokoe:invalid" result="pass"/><test-case name="21574NISTXML-SV-II-list-gMonth-length-4-5 tokoe:invalid" result="pass"/><test-case name="21575NISTSchema-SV-II-list-gMonth-length-5 tokoe:valid" result="pass"/><test-case name="21576NISTXML-SV-II-list-gMonth-length-5-1 tokoe:invalid" result="pass"/><test-case name="21577NISTXML-SV-II-list-gMonth-length-5-2 tokoe:invalid" result="pass"/><test-case name="21578NISTXML-SV-II-list-gMonth-length-5-3 tokoe:invalid" result="pass"/><test-case name="21579NISTXML-SV-II-list-gMonth-length-5-4 tokoe:invalid" result="pass"/><test-case name="21580NISTXML-SV-II-list-gMonth-length-5-5 tokoe:invalid" result="pass"/><test-case name="21581NISTSchema-SV-II-list-gMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="21582NISTXML-SV-II-list-gMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21583NISTXML-SV-II-list-gMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21584NISTXML-SV-II-list-gMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21585NISTXML-SV-II-list-gMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21586NISTXML-SV-II-list-gMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21587NISTSchema-SV-II-list-gMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="21588NISTXML-SV-II-list-gMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21589NISTXML-SV-II-list-gMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21590NISTXML-SV-II-list-gMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21591NISTXML-SV-II-list-gMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21592NISTXML-SV-II-list-gMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21593NISTSchema-SV-II-list-gMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="21594NISTXML-SV-II-list-gMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21595NISTXML-SV-II-list-gMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21596NISTXML-SV-II-list-gMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21597NISTXML-SV-II-list-gMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21598NISTXML-SV-II-list-gMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21599NISTSchema-SV-II-list-gMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="21600NISTXML-SV-II-list-gMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21601NISTXML-SV-II-list-gMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21602NISTXML-SV-II-list-gMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21603NISTXML-SV-II-list-gMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21604NISTXML-SV-II-list-gMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21605NISTSchema-SV-II-list-gMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="21606NISTXML-SV-II-list-gMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21607NISTXML-SV-II-list-gMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21608NISTXML-SV-II-list-gMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21609NISTXML-SV-II-list-gMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21610NISTXML-SV-II-list-gMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21611NISTSchema-SV-II-list-gMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="21612NISTXML-SV-II-list-gMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21613NISTXML-SV-II-list-gMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21614NISTXML-SV-II-list-gMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21615NISTXML-SV-II-list-gMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21616NISTXML-SV-II-list-gMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21617NISTSchema-SV-II-list-gMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="21618NISTXML-SV-II-list-gMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21619NISTXML-SV-II-list-gMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21620NISTXML-SV-II-list-gMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21621NISTXML-SV-II-list-gMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21622NISTXML-SV-II-list-gMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21623NISTSchema-SV-II-list-gMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="21624NISTXML-SV-II-list-gMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21625NISTXML-SV-II-list-gMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21626NISTXML-SV-II-list-gMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21627NISTXML-SV-II-list-gMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21628NISTXML-SV-II-list-gMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21629NISTSchema-SV-II-list-gMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="21630NISTXML-SV-II-list-gMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21631NISTXML-SV-II-list-gMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21632NISTXML-SV-II-list-gMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21633NISTXML-SV-II-list-gMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21634NISTXML-SV-II-list-gMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21635NISTSchema-SV-II-list-gMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="21636NISTXML-SV-II-list-gMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21637NISTXML-SV-II-list-gMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21638NISTXML-SV-II-list-gMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21639NISTXML-SV-II-list-gMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21640NISTXML-SV-II-list-gMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21641NISTSchema-SV-II-list-anyURI-maxLength-1 tokoe:valid" result="pass"/><test-case name="21642NISTXML-SV-II-list-anyURI-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21643NISTXML-SV-II-list-anyURI-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21644NISTXML-SV-II-list-anyURI-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21645NISTXML-SV-II-list-anyURI-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21646NISTXML-SV-II-list-anyURI-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21647NISTSchema-SV-II-list-anyURI-maxLength-2 tokoe:valid" result="pass"/><test-case name="21648NISTXML-SV-II-list-anyURI-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21649NISTXML-SV-II-list-anyURI-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21650NISTXML-SV-II-list-anyURI-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21651NISTXML-SV-II-list-anyURI-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21652NISTXML-SV-II-list-anyURI-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21653NISTSchema-SV-II-list-anyURI-maxLength-3 tokoe:valid" result="pass"/><test-case name="21654NISTXML-SV-II-list-anyURI-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21655NISTXML-SV-II-list-anyURI-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21656NISTXML-SV-II-list-anyURI-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21657NISTXML-SV-II-list-anyURI-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21658NISTXML-SV-II-list-anyURI-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21659NISTSchema-SV-II-list-anyURI-maxLength-4 tokoe:valid" result="pass"/><test-case name="21660NISTXML-SV-II-list-anyURI-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21661NISTXML-SV-II-list-anyURI-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21662NISTXML-SV-II-list-anyURI-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21663NISTXML-SV-II-list-anyURI-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21664NISTXML-SV-II-list-anyURI-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21665NISTSchema-SV-II-list-anyURI-maxLength-5 tokoe:valid" result="pass"/><test-case name="21666NISTXML-SV-II-list-anyURI-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21667NISTXML-SV-II-list-anyURI-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21668NISTXML-SV-II-list-anyURI-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21669NISTXML-SV-II-list-anyURI-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21670NISTXML-SV-II-list-anyURI-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21671NISTSchema-SV-II-list-anyURI-minLength-1 tokoe:valid" result="pass"/><test-case name="21672NISTXML-SV-II-list-anyURI-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21673NISTXML-SV-II-list-anyURI-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21674NISTXML-SV-II-list-anyURI-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21675NISTXML-SV-II-list-anyURI-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21676NISTXML-SV-II-list-anyURI-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21677NISTSchema-SV-II-list-anyURI-minLength-2 tokoe:valid" result="pass"/><test-case name="21678NISTXML-SV-II-list-anyURI-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21679NISTXML-SV-II-list-anyURI-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21680NISTXML-SV-II-list-anyURI-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21681NISTXML-SV-II-list-anyURI-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21682NISTXML-SV-II-list-anyURI-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21683NISTSchema-SV-II-list-anyURI-minLength-3 tokoe:valid" result="pass"/><test-case name="21684NISTXML-SV-II-list-anyURI-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21685NISTXML-SV-II-list-anyURI-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21686NISTXML-SV-II-list-anyURI-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21687NISTXML-SV-II-list-anyURI-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21688NISTXML-SV-II-list-anyURI-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21689NISTSchema-SV-II-list-anyURI-minLength-4 tokoe:valid" result="pass"/><test-case name="21690NISTXML-SV-II-list-anyURI-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21691NISTXML-SV-II-list-anyURI-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21692NISTXML-SV-II-list-anyURI-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21693NISTXML-SV-II-list-anyURI-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21694NISTXML-SV-II-list-anyURI-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21695NISTSchema-SV-II-list-anyURI-minLength-5 tokoe:valid" result="pass"/><test-case name="21696NISTXML-SV-II-list-anyURI-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21697NISTXML-SV-II-list-anyURI-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21698NISTXML-SV-II-list-anyURI-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21699NISTXML-SV-II-list-anyURI-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21700NISTXML-SV-II-list-anyURI-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21701NISTSchema-SV-II-list-anyURI-length-1 tokoe:valid" result="pass"/><test-case name="21702NISTXML-SV-II-list-anyURI-length-1-1 tokoe:invalid" result="pass"/><test-case name="21703NISTXML-SV-II-list-anyURI-length-1-2 tokoe:invalid" result="pass"/><test-case name="21704NISTXML-SV-II-list-anyURI-length-1-3 tokoe:invalid" result="pass"/><test-case name="21705NISTXML-SV-II-list-anyURI-length-1-4 tokoe:invalid" result="pass"/><test-case name="21706NISTXML-SV-II-list-anyURI-length-1-5 tokoe:invalid" result="pass"/><test-case name="21707NISTSchema-SV-II-list-anyURI-length-2 tokoe:valid" result="pass"/><test-case name="21708NISTXML-SV-II-list-anyURI-length-2-1 tokoe:invalid" result="pass"/><test-case name="21709NISTXML-SV-II-list-anyURI-length-2-2 tokoe:invalid" result="pass"/><test-case name="21710NISTXML-SV-II-list-anyURI-length-2-3 tokoe:invalid" result="pass"/><test-case name="21711NISTXML-SV-II-list-anyURI-length-2-4 tokoe:invalid" result="pass"/><test-case name="21712NISTXML-SV-II-list-anyURI-length-2-5 tokoe:invalid" result="pass"/><test-case name="21713NISTSchema-SV-II-list-anyURI-length-3 tokoe:valid" result="pass"/><test-case name="21714NISTXML-SV-II-list-anyURI-length-3-1 tokoe:invalid" result="pass"/><test-case name="21715NISTXML-SV-II-list-anyURI-length-3-2 tokoe:invalid" result="pass"/><test-case name="21716NISTXML-SV-II-list-anyURI-length-3-3 tokoe:invalid" result="pass"/><test-case name="21717NISTXML-SV-II-list-anyURI-length-3-4 tokoe:invalid" result="pass"/><test-case name="21718NISTXML-SV-II-list-anyURI-length-3-5 tokoe:invalid" result="pass"/><test-case name="21719NISTSchema-SV-II-list-anyURI-length-4 tokoe:valid" result="pass"/><test-case name="21720NISTXML-SV-II-list-anyURI-length-4-1 tokoe:invalid" result="pass"/><test-case name="21721NISTXML-SV-II-list-anyURI-length-4-2 tokoe:invalid" result="pass"/><test-case name="21722NISTXML-SV-II-list-anyURI-length-4-3 tokoe:invalid" result="pass"/><test-case name="21723NISTXML-SV-II-list-anyURI-length-4-4 tokoe:invalid" result="pass"/><test-case name="21724NISTXML-SV-II-list-anyURI-length-4-5 tokoe:invalid" result="pass"/><test-case name="21725NISTSchema-SV-II-list-anyURI-length-5 tokoe:valid" result="pass"/><test-case name="21726NISTXML-SV-II-list-anyURI-length-5-1 tokoe:invalid" result="pass"/><test-case name="21727NISTXML-SV-II-list-anyURI-length-5-2 tokoe:invalid" result="pass"/><test-case name="21728NISTXML-SV-II-list-anyURI-length-5-3 tokoe:invalid" result="pass"/><test-case name="21729NISTXML-SV-II-list-anyURI-length-5-4 tokoe:invalid" result="pass"/><test-case name="21730NISTXML-SV-II-list-anyURI-length-5-5 tokoe:invalid" result="pass"/><test-case name="21731NISTSchema-SV-II-list-anyURI-pattern-1 tokoe:valid" result="pass"/><test-case name="21732NISTXML-SV-II-list-anyURI-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="21733NISTXML-SV-II-list-anyURI-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="21734NISTXML-SV-II-list-anyURI-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="21735NISTXML-SV-II-list-anyURI-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="21736NISTXML-SV-II-list-anyURI-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="21737NISTSchema-SV-II-list-anyURI-pattern-2 tokoe:valid" result="pass"/><test-case name="21738NISTXML-SV-II-list-anyURI-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="21739NISTXML-SV-II-list-anyURI-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="21740NISTXML-SV-II-list-anyURI-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="21741NISTXML-SV-II-list-anyURI-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="21742NISTXML-SV-II-list-anyURI-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="21743NISTSchema-SV-II-list-anyURI-pattern-3 tokoe:valid" result="pass"/><test-case name="21744NISTXML-SV-II-list-anyURI-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="21745NISTXML-SV-II-list-anyURI-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="21746NISTXML-SV-II-list-anyURI-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="21747NISTXML-SV-II-list-anyURI-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="21748NISTXML-SV-II-list-anyURI-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="21749NISTSchema-SV-II-list-anyURI-pattern-4 tokoe:valid" result="pass"/><test-case name="21750NISTXML-SV-II-list-anyURI-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="21751NISTXML-SV-II-list-anyURI-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="21752NISTXML-SV-II-list-anyURI-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="21753NISTXML-SV-II-list-anyURI-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="21754NISTXML-SV-II-list-anyURI-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="21755NISTSchema-SV-II-list-anyURI-pattern-5 tokoe:valid" result="pass"/><test-case name="21756NISTXML-SV-II-list-anyURI-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="21757NISTXML-SV-II-list-anyURI-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="21758NISTXML-SV-II-list-anyURI-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="21759NISTXML-SV-II-list-anyURI-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="21760NISTXML-SV-II-list-anyURI-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="21761NISTSchema-SV-II-list-anyURI-enumeration-1 tokoe:valid" result="pass"/><test-case name="21762NISTXML-SV-II-list-anyURI-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="21763NISTXML-SV-II-list-anyURI-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="21764NISTXML-SV-II-list-anyURI-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="21765NISTXML-SV-II-list-anyURI-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="21766NISTXML-SV-II-list-anyURI-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="21767NISTSchema-SV-II-list-anyURI-enumeration-2 tokoe:valid" result="pass"/><test-case name="21768NISTXML-SV-II-list-anyURI-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="21769NISTXML-SV-II-list-anyURI-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="21770NISTXML-SV-II-list-anyURI-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="21771NISTXML-SV-II-list-anyURI-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="21772NISTXML-SV-II-list-anyURI-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="21773NISTSchema-SV-II-list-anyURI-enumeration-3 tokoe:valid" result="pass"/><test-case name="21774NISTXML-SV-II-list-anyURI-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="21775NISTXML-SV-II-list-anyURI-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="21776NISTXML-SV-II-list-anyURI-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="21777NISTXML-SV-II-list-anyURI-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="21778NISTXML-SV-II-list-anyURI-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="21779NISTSchema-SV-II-list-anyURI-enumeration-4 tokoe:valid" result="pass"/><test-case name="21780NISTXML-SV-II-list-anyURI-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="21781NISTXML-SV-II-list-anyURI-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="21782NISTXML-SV-II-list-anyURI-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="21783NISTXML-SV-II-list-anyURI-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="21784NISTXML-SV-II-list-anyURI-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="21785NISTSchema-SV-II-list-anyURI-enumeration-5 tokoe:valid" result="pass"/><test-case name="21786NISTXML-SV-II-list-anyURI-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="21787NISTXML-SV-II-list-anyURI-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="21788NISTXML-SV-II-list-anyURI-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="21789NISTXML-SV-II-list-anyURI-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="21790NISTXML-SV-II-list-anyURI-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="21791NISTSchema-SV-II-list-string-maxLength-1 tokoe:valid" result="pass"/><test-case name="21792NISTXML-SV-II-list-string-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21793NISTXML-SV-II-list-string-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21794NISTXML-SV-II-list-string-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21795NISTXML-SV-II-list-string-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21796NISTXML-SV-II-list-string-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21797NISTSchema-SV-II-list-string-maxLength-2 tokoe:valid" result="pass"/><test-case name="21798NISTXML-SV-II-list-string-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21799NISTXML-SV-II-list-string-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21800NISTXML-SV-II-list-string-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21801NISTXML-SV-II-list-string-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21802NISTXML-SV-II-list-string-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21803NISTSchema-SV-II-list-string-maxLength-3 tokoe:valid" result="pass"/><test-case name="21804NISTXML-SV-II-list-string-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21805NISTXML-SV-II-list-string-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21806NISTXML-SV-II-list-string-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21807NISTXML-SV-II-list-string-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21808NISTXML-SV-II-list-string-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21809NISTSchema-SV-II-list-string-maxLength-4 tokoe:valid" result="pass"/><test-case name="21810NISTXML-SV-II-list-string-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21811NISTXML-SV-II-list-string-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21812NISTXML-SV-II-list-string-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21813NISTXML-SV-II-list-string-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21814NISTXML-SV-II-list-string-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21815NISTSchema-SV-II-list-string-maxLength-5 tokoe:valid" result="pass"/><test-case name="21816NISTXML-SV-II-list-string-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21817NISTXML-SV-II-list-string-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21818NISTXML-SV-II-list-string-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21819NISTXML-SV-II-list-string-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21820NISTXML-SV-II-list-string-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21821NISTSchema-SV-II-list-string-minLength-1 tokoe:valid" result="pass"/><test-case name="21822NISTXML-SV-II-list-string-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21823NISTXML-SV-II-list-string-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21824NISTXML-SV-II-list-string-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21825NISTXML-SV-II-list-string-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21826NISTXML-SV-II-list-string-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21827NISTSchema-SV-II-list-string-minLength-2 tokoe:valid" result="pass"/><test-case name="21828NISTXML-SV-II-list-string-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21829NISTXML-SV-II-list-string-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21830NISTXML-SV-II-list-string-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21831NISTXML-SV-II-list-string-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21832NISTXML-SV-II-list-string-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21833NISTSchema-SV-II-list-string-minLength-3 tokoe:valid" result="pass"/><test-case name="21834NISTXML-SV-II-list-string-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21835NISTXML-SV-II-list-string-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21836NISTXML-SV-II-list-string-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21837NISTXML-SV-II-list-string-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21838NISTXML-SV-II-list-string-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21839NISTSchema-SV-II-list-string-minLength-4 tokoe:valid" result="pass"/><test-case name="21840NISTXML-SV-II-list-string-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21841NISTXML-SV-II-list-string-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21842NISTXML-SV-II-list-string-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21843NISTXML-SV-II-list-string-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21844NISTXML-SV-II-list-string-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21845NISTSchema-SV-II-list-string-minLength-5 tokoe:valid" result="pass"/><test-case name="21846NISTXML-SV-II-list-string-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21847NISTXML-SV-II-list-string-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21848NISTXML-SV-II-list-string-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21849NISTXML-SV-II-list-string-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21850NISTXML-SV-II-list-string-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21851NISTSchema-SV-II-list-string-length-1 tokoe:valid" result="pass"/><test-case name="21852NISTXML-SV-II-list-string-length-1-1 tokoe:invalid" result="pass"/><test-case name="21853NISTXML-SV-II-list-string-length-1-2 tokoe:invalid" result="pass"/><test-case name="21854NISTXML-SV-II-list-string-length-1-3 tokoe:invalid" result="pass"/><test-case name="21855NISTXML-SV-II-list-string-length-1-4 tokoe:invalid" result="pass"/><test-case name="21856NISTXML-SV-II-list-string-length-1-5 tokoe:invalid" result="pass"/><test-case name="21857NISTSchema-SV-II-list-string-length-2 tokoe:valid" result="pass"/><test-case name="21858NISTXML-SV-II-list-string-length-2-1 tokoe:invalid" result="pass"/><test-case name="21859NISTXML-SV-II-list-string-length-2-2 tokoe:invalid" result="pass"/><test-case name="21860NISTXML-SV-II-list-string-length-2-3 tokoe:invalid" result="pass"/><test-case name="21861NISTXML-SV-II-list-string-length-2-4 tokoe:invalid" result="pass"/><test-case name="21862NISTXML-SV-II-list-string-length-2-5 tokoe:invalid" result="pass"/><test-case name="21863NISTSchema-SV-II-list-string-length-3 tokoe:valid" result="pass"/><test-case name="21864NISTXML-SV-II-list-string-length-3-1 tokoe:invalid" result="pass"/><test-case name="21865NISTXML-SV-II-list-string-length-3-2 tokoe:invalid" result="pass"/><test-case name="21866NISTXML-SV-II-list-string-length-3-3 tokoe:invalid" result="pass"/><test-case name="21867NISTXML-SV-II-list-string-length-3-4 tokoe:invalid" result="pass"/><test-case name="21868NISTXML-SV-II-list-string-length-3-5 tokoe:invalid" result="pass"/><test-case name="21869NISTSchema-SV-II-list-string-length-4 tokoe:valid" result="pass"/><test-case name="21870NISTXML-SV-II-list-string-length-4-1 tokoe:invalid" result="pass"/><test-case name="21871NISTXML-SV-II-list-string-length-4-2 tokoe:invalid" result="pass"/><test-case name="21872NISTXML-SV-II-list-string-length-4-3 tokoe:invalid" result="pass"/><test-case name="21873NISTXML-SV-II-list-string-length-4-4 tokoe:invalid" result="pass"/><test-case name="21874NISTXML-SV-II-list-string-length-4-5 tokoe:invalid" result="pass"/><test-case name="21875NISTSchema-SV-II-list-string-length-5 tokoe:valid" result="pass"/><test-case name="21876NISTXML-SV-II-list-string-length-5-1 tokoe:invalid" result="pass"/><test-case name="21877NISTXML-SV-II-list-string-length-5-2 tokoe:invalid" result="pass"/><test-case name="21878NISTXML-SV-II-list-string-length-5-3 tokoe:invalid" result="pass"/><test-case name="21879NISTXML-SV-II-list-string-length-5-4 tokoe:invalid" result="pass"/><test-case name="21880NISTXML-SV-II-list-string-length-5-5 tokoe:invalid" result="pass"/><test-case name="21881NISTSchema-SV-II-list-normalizedString-maxLength-1 tokoe:valid" result="pass"/><test-case name="21882NISTXML-SV-II-list-normalizedString-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21883NISTXML-SV-II-list-normalizedString-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21884NISTXML-SV-II-list-normalizedString-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21885NISTXML-SV-II-list-normalizedString-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21886NISTXML-SV-II-list-normalizedString-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21887NISTSchema-SV-II-list-normalizedString-maxLength-2 tokoe:valid" result="pass"/><test-case name="21888NISTXML-SV-II-list-normalizedString-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21889NISTXML-SV-II-list-normalizedString-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21890NISTXML-SV-II-list-normalizedString-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21891NISTXML-SV-II-list-normalizedString-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21892NISTXML-SV-II-list-normalizedString-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21893NISTSchema-SV-II-list-normalizedString-maxLength-3 tokoe:valid" result="pass"/><test-case name="21894NISTXML-SV-II-list-normalizedString-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21895NISTXML-SV-II-list-normalizedString-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21896NISTXML-SV-II-list-normalizedString-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21897NISTXML-SV-II-list-normalizedString-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21898NISTXML-SV-II-list-normalizedString-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21899NISTSchema-SV-II-list-normalizedString-maxLength-4 tokoe:valid" result="pass"/><test-case name="21900NISTXML-SV-II-list-normalizedString-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21901NISTXML-SV-II-list-normalizedString-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21902NISTXML-SV-II-list-normalizedString-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21903NISTXML-SV-II-list-normalizedString-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21904NISTXML-SV-II-list-normalizedString-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21905NISTSchema-SV-II-list-normalizedString-maxLength-5 tokoe:valid" result="pass"/><test-case name="21906NISTXML-SV-II-list-normalizedString-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21907NISTXML-SV-II-list-normalizedString-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21908NISTXML-SV-II-list-normalizedString-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21909NISTXML-SV-II-list-normalizedString-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="21910NISTXML-SV-II-list-normalizedString-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="21911NISTSchema-SV-II-list-normalizedString-minLength-1 tokoe:valid" result="pass"/><test-case name="21912NISTXML-SV-II-list-normalizedString-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="21913NISTXML-SV-II-list-normalizedString-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="21914NISTXML-SV-II-list-normalizedString-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="21915NISTXML-SV-II-list-normalizedString-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="21916NISTXML-SV-II-list-normalizedString-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="21917NISTSchema-SV-II-list-normalizedString-minLength-2 tokoe:valid" result="pass"/><test-case name="21918NISTXML-SV-II-list-normalizedString-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="21919NISTXML-SV-II-list-normalizedString-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="21920NISTXML-SV-II-list-normalizedString-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="21921NISTXML-SV-II-list-normalizedString-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="21922NISTXML-SV-II-list-normalizedString-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="21923NISTSchema-SV-II-list-normalizedString-minLength-3 tokoe:valid" result="pass"/><test-case name="21924NISTXML-SV-II-list-normalizedString-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="21925NISTXML-SV-II-list-normalizedString-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="21926NISTXML-SV-II-list-normalizedString-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="21927NISTXML-SV-II-list-normalizedString-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="21928NISTXML-SV-II-list-normalizedString-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="21929NISTSchema-SV-II-list-normalizedString-minLength-4 tokoe:valid" result="pass"/><test-case name="21930NISTXML-SV-II-list-normalizedString-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="21931NISTXML-SV-II-list-normalizedString-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="21932NISTXML-SV-II-list-normalizedString-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="21933NISTXML-SV-II-list-normalizedString-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="21934NISTXML-SV-II-list-normalizedString-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="21935NISTSchema-SV-II-list-normalizedString-minLength-5 tokoe:valid" result="pass"/><test-case name="21936NISTXML-SV-II-list-normalizedString-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="21937NISTXML-SV-II-list-normalizedString-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="21938NISTXML-SV-II-list-normalizedString-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="21939NISTXML-SV-II-list-normalizedString-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="21940NISTXML-SV-II-list-normalizedString-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="21941NISTSchema-SV-II-list-normalizedString-length-1 tokoe:valid" result="pass"/><test-case name="21942NISTXML-SV-II-list-normalizedString-length-1-1 tokoe:invalid" result="pass"/><test-case name="21943NISTXML-SV-II-list-normalizedString-length-1-2 tokoe:invalid" result="pass"/><test-case name="21944NISTXML-SV-II-list-normalizedString-length-1-3 tokoe:invalid" result="pass"/><test-case name="21945NISTXML-SV-II-list-normalizedString-length-1-4 tokoe:invalid" result="pass"/><test-case name="21946NISTXML-SV-II-list-normalizedString-length-1-5 tokoe:invalid" result="pass"/><test-case name="21947NISTSchema-SV-II-list-normalizedString-length-2 tokoe:valid" result="pass"/><test-case name="21948NISTXML-SV-II-list-normalizedString-length-2-1 tokoe:invalid" result="pass"/><test-case name="21949NISTXML-SV-II-list-normalizedString-length-2-2 tokoe:invalid" result="pass"/><test-case name="21950NISTXML-SV-II-list-normalizedString-length-2-3 tokoe:invalid" result="pass"/><test-case name="21951NISTXML-SV-II-list-normalizedString-length-2-4 tokoe:invalid" result="pass"/><test-case name="21952NISTXML-SV-II-list-normalizedString-length-2-5 tokoe:invalid" result="pass"/><test-case name="21953NISTSchema-SV-II-list-normalizedString-length-3 tokoe:valid" result="pass"/><test-case name="21954NISTXML-SV-II-list-normalizedString-length-3-1 tokoe:invalid" result="pass"/><test-case name="21955NISTXML-SV-II-list-normalizedString-length-3-2 tokoe:invalid" result="pass"/><test-case name="21956NISTXML-SV-II-list-normalizedString-length-3-3 tokoe:invalid" result="pass"/><test-case name="21957NISTXML-SV-II-list-normalizedString-length-3-4 tokoe:invalid" result="pass"/><test-case name="21958NISTXML-SV-II-list-normalizedString-length-3-5 tokoe:invalid" result="pass"/><test-case name="21959NISTSchema-SV-II-list-normalizedString-length-4 tokoe:valid" result="pass"/><test-case name="21960NISTXML-SV-II-list-normalizedString-length-4-1 tokoe:invalid" result="pass"/><test-case name="21961NISTXML-SV-II-list-normalizedString-length-4-2 tokoe:invalid" result="pass"/><test-case name="21962NISTXML-SV-II-list-normalizedString-length-4-3 tokoe:invalid" result="pass"/><test-case name="21963NISTXML-SV-II-list-normalizedString-length-4-4 tokoe:invalid" result="pass"/><test-case name="21964NISTXML-SV-II-list-normalizedString-length-4-5 tokoe:invalid" result="pass"/><test-case name="21965NISTSchema-SV-II-list-normalizedString-length-5 tokoe:valid" result="pass"/><test-case name="21966NISTXML-SV-II-list-normalizedString-length-5-1 tokoe:invalid" result="pass"/><test-case name="21967NISTXML-SV-II-list-normalizedString-length-5-2 tokoe:invalid" result="pass"/><test-case name="21968NISTXML-SV-II-list-normalizedString-length-5-3 tokoe:invalid" result="pass"/><test-case name="21969NISTXML-SV-II-list-normalizedString-length-5-4 tokoe:invalid" result="pass"/><test-case name="21970NISTXML-SV-II-list-normalizedString-length-5-5 tokoe:invalid" result="pass"/><test-case name="21971NISTSchema-SV-II-list-token-maxLength-1 tokoe:valid" result="pass"/><test-case name="21972NISTXML-SV-II-list-token-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="21973NISTXML-SV-II-list-token-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="21974NISTXML-SV-II-list-token-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="21975NISTXML-SV-II-list-token-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="21976NISTXML-SV-II-list-token-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="21977NISTSchema-SV-II-list-token-maxLength-2 tokoe:valid" result="pass"/><test-case name="21978NISTXML-SV-II-list-token-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="21979NISTXML-SV-II-list-token-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="21980NISTXML-SV-II-list-token-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="21981NISTXML-SV-II-list-token-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="21982NISTXML-SV-II-list-token-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="21983NISTSchema-SV-II-list-token-maxLength-3 tokoe:valid" result="pass"/><test-case name="21984NISTXML-SV-II-list-token-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="21985NISTXML-SV-II-list-token-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="21986NISTXML-SV-II-list-token-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="21987NISTXML-SV-II-list-token-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="21988NISTXML-SV-II-list-token-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="21989NISTSchema-SV-II-list-token-maxLength-4 tokoe:valid" result="pass"/><test-case name="21990NISTXML-SV-II-list-token-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="21991NISTXML-SV-II-list-token-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="21992NISTXML-SV-II-list-token-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="21993NISTXML-SV-II-list-token-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="21994NISTXML-SV-II-list-token-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="21995NISTSchema-SV-II-list-token-maxLength-5 tokoe:valid" result="pass"/><test-case name="21996NISTXML-SV-II-list-token-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="21997NISTXML-SV-II-list-token-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="21998NISTXML-SV-II-list-token-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="21999NISTXML-SV-II-list-token-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22000NISTXML-SV-II-list-token-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22001NISTSchema-SV-II-list-token-minLength-1 tokoe:valid" result="pass"/><test-case name="22002NISTXML-SV-II-list-token-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22003NISTXML-SV-II-list-token-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22004NISTXML-SV-II-list-token-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22005NISTXML-SV-II-list-token-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22006NISTXML-SV-II-list-token-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22007NISTSchema-SV-II-list-token-minLength-2 tokoe:valid" result="pass"/><test-case name="22008NISTXML-SV-II-list-token-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22009NISTXML-SV-II-list-token-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22010NISTXML-SV-II-list-token-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22011NISTXML-SV-II-list-token-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22012NISTXML-SV-II-list-token-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22013NISTSchema-SV-II-list-token-minLength-3 tokoe:valid" result="pass"/><test-case name="22014NISTXML-SV-II-list-token-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22015NISTXML-SV-II-list-token-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22016NISTXML-SV-II-list-token-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22017NISTXML-SV-II-list-token-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22018NISTXML-SV-II-list-token-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22019NISTSchema-SV-II-list-token-minLength-4 tokoe:valid" result="pass"/><test-case name="22020NISTXML-SV-II-list-token-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22021NISTXML-SV-II-list-token-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22022NISTXML-SV-II-list-token-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22023NISTXML-SV-II-list-token-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22024NISTXML-SV-II-list-token-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22025NISTSchema-SV-II-list-token-minLength-5 tokoe:valid" result="pass"/><test-case name="22026NISTXML-SV-II-list-token-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22027NISTXML-SV-II-list-token-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22028NISTXML-SV-II-list-token-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22029NISTXML-SV-II-list-token-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22030NISTXML-SV-II-list-token-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22031NISTSchema-SV-II-list-token-length-1 tokoe:valid" result="pass"/><test-case name="22032NISTXML-SV-II-list-token-length-1-1 tokoe:invalid" result="pass"/><test-case name="22033NISTXML-SV-II-list-token-length-1-2 tokoe:invalid" result="pass"/><test-case name="22034NISTXML-SV-II-list-token-length-1-3 tokoe:invalid" result="pass"/><test-case name="22035NISTXML-SV-II-list-token-length-1-4 tokoe:invalid" result="pass"/><test-case name="22036NISTXML-SV-II-list-token-length-1-5 tokoe:invalid" result="pass"/><test-case name="22037NISTSchema-SV-II-list-token-length-2 tokoe:valid" result="pass"/><test-case name="22038NISTXML-SV-II-list-token-length-2-1 tokoe:invalid" result="pass"/><test-case name="22039NISTXML-SV-II-list-token-length-2-2 tokoe:invalid" result="pass"/><test-case name="22040NISTXML-SV-II-list-token-length-2-3 tokoe:invalid" result="pass"/><test-case name="22041NISTXML-SV-II-list-token-length-2-4 tokoe:invalid" result="pass"/><test-case name="22042NISTXML-SV-II-list-token-length-2-5 tokoe:invalid" result="pass"/><test-case name="22043NISTSchema-SV-II-list-token-length-3 tokoe:valid" result="pass"/><test-case name="22044NISTXML-SV-II-list-token-length-3-1 tokoe:invalid" result="pass"/><test-case name="22045NISTXML-SV-II-list-token-length-3-2 tokoe:invalid" result="pass"/><test-case name="22046NISTXML-SV-II-list-token-length-3-3 tokoe:invalid" result="pass"/><test-case name="22047NISTXML-SV-II-list-token-length-3-4 tokoe:invalid" result="pass"/><test-case name="22048NISTXML-SV-II-list-token-length-3-5 tokoe:invalid" result="pass"/><test-case name="22049NISTSchema-SV-II-list-token-length-4 tokoe:valid" result="pass"/><test-case name="22050NISTXML-SV-II-list-token-length-4-1 tokoe:invalid" result="pass"/><test-case name="22051NISTXML-SV-II-list-token-length-4-2 tokoe:invalid" result="pass"/><test-case name="22052NISTXML-SV-II-list-token-length-4-3 tokoe:invalid" result="pass"/><test-case name="22053NISTXML-SV-II-list-token-length-4-4 tokoe:invalid" result="pass"/><test-case name="22054NISTXML-SV-II-list-token-length-4-5 tokoe:invalid" result="pass"/><test-case name="22055NISTSchema-SV-II-list-token-length-5 tokoe:valid" result="pass"/><test-case name="22056NISTXML-SV-II-list-token-length-5-1 tokoe:invalid" result="pass"/><test-case name="22057NISTXML-SV-II-list-token-length-5-2 tokoe:invalid" result="pass"/><test-case name="22058NISTXML-SV-II-list-token-length-5-3 tokoe:invalid" result="pass"/><test-case name="22059NISTXML-SV-II-list-token-length-5-4 tokoe:invalid" result="pass"/><test-case name="22060NISTXML-SV-II-list-token-length-5-5 tokoe:invalid" result="pass"/><test-case name="22061NISTSchema-SV-II-list-Name-maxLength-1 tokoe:valid" result="pass"/><test-case name="22062NISTXML-SV-II-list-Name-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22063NISTXML-SV-II-list-Name-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22064NISTXML-SV-II-list-Name-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22065NISTXML-SV-II-list-Name-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22066NISTXML-SV-II-list-Name-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22067NISTSchema-SV-II-list-Name-maxLength-2 tokoe:valid" result="pass"/><test-case name="22068NISTXML-SV-II-list-Name-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22069NISTXML-SV-II-list-Name-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22070NISTXML-SV-II-list-Name-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22071NISTXML-SV-II-list-Name-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22072NISTXML-SV-II-list-Name-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22073NISTSchema-SV-II-list-Name-maxLength-3 tokoe:valid" result="pass"/><test-case name="22074NISTXML-SV-II-list-Name-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22075NISTXML-SV-II-list-Name-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22076NISTXML-SV-II-list-Name-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22077NISTXML-SV-II-list-Name-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22078NISTXML-SV-II-list-Name-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22079NISTSchema-SV-II-list-Name-maxLength-4 tokoe:valid" result="pass"/><test-case name="22080NISTXML-SV-II-list-Name-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22081NISTXML-SV-II-list-Name-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22082NISTXML-SV-II-list-Name-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22083NISTXML-SV-II-list-Name-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22084NISTXML-SV-II-list-Name-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22085NISTSchema-SV-II-list-Name-maxLength-5 tokoe:valid" result="pass"/><test-case name="22086NISTXML-SV-II-list-Name-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22087NISTXML-SV-II-list-Name-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22088NISTXML-SV-II-list-Name-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22089NISTXML-SV-II-list-Name-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22090NISTXML-SV-II-list-Name-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22091NISTSchema-SV-II-list-Name-minLength-1 tokoe:valid" result="pass"/><test-case name="22092NISTXML-SV-II-list-Name-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22093NISTXML-SV-II-list-Name-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22094NISTXML-SV-II-list-Name-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22095NISTXML-SV-II-list-Name-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22096NISTXML-SV-II-list-Name-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22097NISTSchema-SV-II-list-Name-minLength-2 tokoe:valid" result="pass"/><test-case name="22098NISTXML-SV-II-list-Name-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22099NISTXML-SV-II-list-Name-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22100NISTXML-SV-II-list-Name-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22101NISTXML-SV-II-list-Name-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22102NISTXML-SV-II-list-Name-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22103NISTSchema-SV-II-list-Name-minLength-3 tokoe:valid" result="pass"/><test-case name="22104NISTXML-SV-II-list-Name-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22105NISTXML-SV-II-list-Name-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22106NISTXML-SV-II-list-Name-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22107NISTXML-SV-II-list-Name-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22108NISTXML-SV-II-list-Name-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22109NISTSchema-SV-II-list-Name-minLength-4 tokoe:valid" result="pass"/><test-case name="22110NISTXML-SV-II-list-Name-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22111NISTXML-SV-II-list-Name-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22112NISTXML-SV-II-list-Name-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22113NISTXML-SV-II-list-Name-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22114NISTXML-SV-II-list-Name-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22115NISTSchema-SV-II-list-Name-minLength-5 tokoe:valid" result="pass"/><test-case name="22116NISTXML-SV-II-list-Name-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22117NISTXML-SV-II-list-Name-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22118NISTXML-SV-II-list-Name-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22119NISTXML-SV-II-list-Name-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22120NISTXML-SV-II-list-Name-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22121NISTSchema-SV-II-list-Name-length-1 tokoe:valid" result="pass"/><test-case name="22122NISTXML-SV-II-list-Name-length-1-1 tokoe:invalid" result="pass"/><test-case name="22123NISTXML-SV-II-list-Name-length-1-2 tokoe:invalid" result="pass"/><test-case name="22124NISTXML-SV-II-list-Name-length-1-3 tokoe:invalid" result="pass"/><test-case name="22125NISTXML-SV-II-list-Name-length-1-4 tokoe:invalid" result="pass"/><test-case name="22126NISTXML-SV-II-list-Name-length-1-5 tokoe:invalid" result="pass"/><test-case name="22127NISTSchema-SV-II-list-Name-length-2 tokoe:valid" result="pass"/><test-case name="22128NISTXML-SV-II-list-Name-length-2-1 tokoe:invalid" result="pass"/><test-case name="22129NISTXML-SV-II-list-Name-length-2-2 tokoe:invalid" result="pass"/><test-case name="22130NISTXML-SV-II-list-Name-length-2-3 tokoe:invalid" result="pass"/><test-case name="22131NISTXML-SV-II-list-Name-length-2-4 tokoe:invalid" result="pass"/><test-case name="22132NISTXML-SV-II-list-Name-length-2-5 tokoe:invalid" result="pass"/><test-case name="22133NISTSchema-SV-II-list-Name-length-3 tokoe:valid" result="pass"/><test-case name="22134NISTXML-SV-II-list-Name-length-3-1 tokoe:invalid" result="pass"/><test-case name="22135NISTXML-SV-II-list-Name-length-3-2 tokoe:invalid" result="pass"/><test-case name="22136NISTXML-SV-II-list-Name-length-3-3 tokoe:invalid" result="pass"/><test-case name="22137NISTXML-SV-II-list-Name-length-3-4 tokoe:invalid" result="pass"/><test-case name="22138NISTXML-SV-II-list-Name-length-3-5 tokoe:invalid" result="pass"/><test-case name="22139NISTSchema-SV-II-list-Name-length-4 tokoe:valid" result="pass"/><test-case name="22140NISTXML-SV-II-list-Name-length-4-1 tokoe:invalid" result="pass"/><test-case name="22141NISTXML-SV-II-list-Name-length-4-2 tokoe:invalid" result="pass"/><test-case name="22142NISTXML-SV-II-list-Name-length-4-3 tokoe:invalid" result="pass"/><test-case name="22143NISTXML-SV-II-list-Name-length-4-4 tokoe:invalid" result="pass"/><test-case name="22144NISTXML-SV-II-list-Name-length-4-5 tokoe:invalid" result="pass"/><test-case name="22145NISTSchema-SV-II-list-Name-length-5 tokoe:valid" result="pass"/><test-case name="22146NISTXML-SV-II-list-Name-length-5-1 tokoe:invalid" result="pass"/><test-case name="22147NISTXML-SV-II-list-Name-length-5-2 tokoe:invalid" result="pass"/><test-case name="22148NISTXML-SV-II-list-Name-length-5-3 tokoe:invalid" result="pass"/><test-case name="22149NISTXML-SV-II-list-Name-length-5-4 tokoe:invalid" result="pass"/><test-case name="22150NISTXML-SV-II-list-Name-length-5-5 tokoe:invalid" result="pass"/><test-case name="22151NISTSchema-SV-II-list-NMTOKEN-maxLength-1 tokoe:valid" result="pass"/><test-case name="22152NISTXML-SV-II-list-NMTOKEN-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22153NISTXML-SV-II-list-NMTOKEN-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22154NISTXML-SV-II-list-NMTOKEN-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22155NISTXML-SV-II-list-NMTOKEN-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22156NISTXML-SV-II-list-NMTOKEN-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22157NISTSchema-SV-II-list-NMTOKEN-maxLength-2 tokoe:valid" result="pass"/><test-case name="22158NISTXML-SV-II-list-NMTOKEN-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22159NISTXML-SV-II-list-NMTOKEN-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22160NISTXML-SV-II-list-NMTOKEN-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22161NISTXML-SV-II-list-NMTOKEN-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22162NISTXML-SV-II-list-NMTOKEN-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22163NISTSchema-SV-II-list-NMTOKEN-maxLength-3 tokoe:valid" result="pass"/><test-case name="22164NISTXML-SV-II-list-NMTOKEN-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22165NISTXML-SV-II-list-NMTOKEN-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22166NISTXML-SV-II-list-NMTOKEN-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22167NISTXML-SV-II-list-NMTOKEN-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22168NISTXML-SV-II-list-NMTOKEN-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22169NISTSchema-SV-II-list-NMTOKEN-maxLength-4 tokoe:valid" result="pass"/><test-case name="22170NISTXML-SV-II-list-NMTOKEN-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22171NISTXML-SV-II-list-NMTOKEN-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22172NISTXML-SV-II-list-NMTOKEN-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22173NISTXML-SV-II-list-NMTOKEN-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22174NISTXML-SV-II-list-NMTOKEN-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22175NISTSchema-SV-II-list-NMTOKEN-maxLength-5 tokoe:valid" result="pass"/><test-case name="22176NISTXML-SV-II-list-NMTOKEN-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22177NISTXML-SV-II-list-NMTOKEN-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22178NISTXML-SV-II-list-NMTOKEN-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22179NISTXML-SV-II-list-NMTOKEN-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22180NISTXML-SV-II-list-NMTOKEN-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22181NISTSchema-SV-II-list-NMTOKEN-minLength-1 tokoe:valid" result="pass"/><test-case name="22182NISTXML-SV-II-list-NMTOKEN-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22183NISTXML-SV-II-list-NMTOKEN-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22184NISTXML-SV-II-list-NMTOKEN-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22185NISTXML-SV-II-list-NMTOKEN-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22186NISTXML-SV-II-list-NMTOKEN-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22187NISTSchema-SV-II-list-NMTOKEN-minLength-2 tokoe:valid" result="pass"/><test-case name="22188NISTXML-SV-II-list-NMTOKEN-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22189NISTXML-SV-II-list-NMTOKEN-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22190NISTXML-SV-II-list-NMTOKEN-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22191NISTXML-SV-II-list-NMTOKEN-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22192NISTXML-SV-II-list-NMTOKEN-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22193NISTSchema-SV-II-list-NMTOKEN-minLength-3 tokoe:valid" result="pass"/><test-case name="22194NISTXML-SV-II-list-NMTOKEN-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22195NISTXML-SV-II-list-NMTOKEN-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22196NISTXML-SV-II-list-NMTOKEN-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22197NISTXML-SV-II-list-NMTOKEN-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22198NISTXML-SV-II-list-NMTOKEN-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22199NISTSchema-SV-II-list-NMTOKEN-minLength-4 tokoe:valid" result="pass"/><test-case name="22200NISTXML-SV-II-list-NMTOKEN-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22201NISTXML-SV-II-list-NMTOKEN-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22202NISTXML-SV-II-list-NMTOKEN-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22203NISTXML-SV-II-list-NMTOKEN-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22204NISTXML-SV-II-list-NMTOKEN-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22205NISTSchema-SV-II-list-NMTOKEN-minLength-5 tokoe:valid" result="pass"/><test-case name="22206NISTXML-SV-II-list-NMTOKEN-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22207NISTXML-SV-II-list-NMTOKEN-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22208NISTXML-SV-II-list-NMTOKEN-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22209NISTXML-SV-II-list-NMTOKEN-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22210NISTXML-SV-II-list-NMTOKEN-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22211NISTSchema-SV-II-list-NMTOKEN-length-1 tokoe:valid" result="pass"/><test-case name="22212NISTXML-SV-II-list-NMTOKEN-length-1-1 tokoe:invalid" result="pass"/><test-case name="22213NISTXML-SV-II-list-NMTOKEN-length-1-2 tokoe:invalid" result="pass"/><test-case name="22214NISTXML-SV-II-list-NMTOKEN-length-1-3 tokoe:invalid" result="pass"/><test-case name="22215NISTXML-SV-II-list-NMTOKEN-length-1-4 tokoe:invalid" result="pass"/><test-case name="22216NISTXML-SV-II-list-NMTOKEN-length-1-5 tokoe:invalid" result="pass"/><test-case name="22217NISTSchema-SV-II-list-NMTOKEN-length-2 tokoe:valid" result="pass"/><test-case name="22218NISTXML-SV-II-list-NMTOKEN-length-2-1 tokoe:invalid" result="pass"/><test-case name="22219NISTXML-SV-II-list-NMTOKEN-length-2-2 tokoe:invalid" result="pass"/><test-case name="22220NISTXML-SV-II-list-NMTOKEN-length-2-3 tokoe:invalid" result="pass"/><test-case name="22221NISTXML-SV-II-list-NMTOKEN-length-2-4 tokoe:invalid" result="pass"/><test-case name="22222NISTXML-SV-II-list-NMTOKEN-length-2-5 tokoe:invalid" result="pass"/><test-case name="22223NISTSchema-SV-II-list-NMTOKEN-length-3 tokoe:valid" result="pass"/><test-case name="22224NISTXML-SV-II-list-NMTOKEN-length-3-1 tokoe:invalid" result="pass"/><test-case name="22225NISTXML-SV-II-list-NMTOKEN-length-3-2 tokoe:invalid" result="pass"/><test-case name="22226NISTXML-SV-II-list-NMTOKEN-length-3-3 tokoe:invalid" result="pass"/><test-case name="22227NISTXML-SV-II-list-NMTOKEN-length-3-4 tokoe:invalid" result="pass"/><test-case name="22228NISTXML-SV-II-list-NMTOKEN-length-3-5 tokoe:invalid" result="pass"/><test-case name="22229NISTSchema-SV-II-list-NMTOKEN-length-4 tokoe:valid" result="pass"/><test-case name="22230NISTXML-SV-II-list-NMTOKEN-length-4-1 tokoe:invalid" result="pass"/><test-case name="22231NISTXML-SV-II-list-NMTOKEN-length-4-2 tokoe:invalid" result="pass"/><test-case name="22232NISTXML-SV-II-list-NMTOKEN-length-4-3 tokoe:invalid" result="pass"/><test-case name="22233NISTXML-SV-II-list-NMTOKEN-length-4-4 tokoe:invalid" result="pass"/><test-case name="22234NISTXML-SV-II-list-NMTOKEN-length-4-5 tokoe:invalid" result="pass"/><test-case name="22235NISTSchema-SV-II-list-NMTOKEN-length-5 tokoe:valid" result="pass"/><test-case name="22236NISTXML-SV-II-list-NMTOKEN-length-5-1 tokoe:invalid" result="pass"/><test-case name="22237NISTXML-SV-II-list-NMTOKEN-length-5-2 tokoe:invalid" result="pass"/><test-case name="22238NISTXML-SV-II-list-NMTOKEN-length-5-3 tokoe:invalid" result="pass"/><test-case name="22239NISTXML-SV-II-list-NMTOKEN-length-5-4 tokoe:invalid" result="pass"/><test-case name="22240NISTXML-SV-II-list-NMTOKEN-length-5-5 tokoe:invalid" result="pass"/><test-case name="22241NISTSchema-SV-II-list-NMTOKENS-maxLength-1 tokoe:valid" result="pass"/><test-case name="22242NISTXML-SV-II-list-NMTOKENS-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22243NISTXML-SV-II-list-NMTOKENS-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22244NISTXML-SV-II-list-NMTOKENS-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22245NISTXML-SV-II-list-NMTOKENS-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22246NISTXML-SV-II-list-NMTOKENS-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22247NISTSchema-SV-II-list-NMTOKENS-maxLength-2 tokoe:valid" result="pass"/><test-case name="22248NISTXML-SV-II-list-NMTOKENS-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22249NISTXML-SV-II-list-NMTOKENS-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22250NISTXML-SV-II-list-NMTOKENS-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22251NISTXML-SV-II-list-NMTOKENS-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22252NISTXML-SV-II-list-NMTOKENS-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22253NISTSchema-SV-II-list-NMTOKENS-maxLength-3 tokoe:valid" result="pass"/><test-case name="22254NISTXML-SV-II-list-NMTOKENS-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22255NISTXML-SV-II-list-NMTOKENS-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22256NISTXML-SV-II-list-NMTOKENS-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22257NISTXML-SV-II-list-NMTOKENS-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22258NISTXML-SV-II-list-NMTOKENS-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22259NISTSchema-SV-II-list-NMTOKENS-maxLength-4 tokoe:valid" result="pass"/><test-case name="22260NISTXML-SV-II-list-NMTOKENS-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22261NISTXML-SV-II-list-NMTOKENS-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22262NISTXML-SV-II-list-NMTOKENS-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22263NISTXML-SV-II-list-NMTOKENS-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22264NISTXML-SV-II-list-NMTOKENS-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22265NISTSchema-SV-II-list-NMTOKENS-maxLength-5 tokoe:valid" result="pass"/><test-case name="22266NISTXML-SV-II-list-NMTOKENS-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22267NISTXML-SV-II-list-NMTOKENS-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22268NISTXML-SV-II-list-NMTOKENS-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22269NISTXML-SV-II-list-NMTOKENS-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22270NISTXML-SV-II-list-NMTOKENS-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22271NISTSchema-SV-II-list-NMTOKENS-minLength-1 tokoe:valid" result="pass"/><test-case name="22272NISTXML-SV-II-list-NMTOKENS-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22273NISTXML-SV-II-list-NMTOKENS-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22274NISTXML-SV-II-list-NMTOKENS-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22275NISTXML-SV-II-list-NMTOKENS-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22276NISTXML-SV-II-list-NMTOKENS-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22277NISTSchema-SV-II-list-NMTOKENS-minLength-2 tokoe:valid" result="pass"/><test-case name="22278NISTXML-SV-II-list-NMTOKENS-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22279NISTXML-SV-II-list-NMTOKENS-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22280NISTXML-SV-II-list-NMTOKENS-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22281NISTXML-SV-II-list-NMTOKENS-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22282NISTXML-SV-II-list-NMTOKENS-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22283NISTSchema-SV-II-list-NMTOKENS-minLength-3 tokoe:valid" result="pass"/><test-case name="22284NISTXML-SV-II-list-NMTOKENS-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22285NISTXML-SV-II-list-NMTOKENS-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22286NISTXML-SV-II-list-NMTOKENS-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22287NISTXML-SV-II-list-NMTOKENS-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22288NISTXML-SV-II-list-NMTOKENS-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22289NISTSchema-SV-II-list-NMTOKENS-minLength-4 tokoe:valid" result="pass"/><test-case name="22290NISTXML-SV-II-list-NMTOKENS-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22291NISTXML-SV-II-list-NMTOKENS-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22292NISTXML-SV-II-list-NMTOKENS-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22293NISTXML-SV-II-list-NMTOKENS-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22294NISTXML-SV-II-list-NMTOKENS-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22295NISTSchema-SV-II-list-NMTOKENS-minLength-5 tokoe:valid" result="pass"/><test-case name="22296NISTXML-SV-II-list-NMTOKENS-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22297NISTXML-SV-II-list-NMTOKENS-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22298NISTXML-SV-II-list-NMTOKENS-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22299NISTXML-SV-II-list-NMTOKENS-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22300NISTXML-SV-II-list-NMTOKENS-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22301NISTSchema-SV-II-list-NMTOKENS-length-1 tokoe:valid" result="pass"/><test-case name="22302NISTXML-SV-II-list-NMTOKENS-length-1-1 tokoe:invalid" result="pass"/><test-case name="22303NISTXML-SV-II-list-NMTOKENS-length-1-2 tokoe:invalid" result="pass"/><test-case name="22304NISTXML-SV-II-list-NMTOKENS-length-1-3 tokoe:invalid" result="pass"/><test-case name="22305NISTXML-SV-II-list-NMTOKENS-length-1-4 tokoe:invalid" result="pass"/><test-case name="22306NISTXML-SV-II-list-NMTOKENS-length-1-5 tokoe:invalid" result="pass"/><test-case name="22307NISTSchema-SV-II-list-NMTOKENS-length-2 tokoe:valid" result="pass"/><test-case name="22308NISTXML-SV-II-list-NMTOKENS-length-2-1 tokoe:invalid" result="pass"/><test-case name="22309NISTXML-SV-II-list-NMTOKENS-length-2-2 tokoe:invalid" result="pass"/><test-case name="22310NISTXML-SV-II-list-NMTOKENS-length-2-3 tokoe:invalid" result="pass"/><test-case name="22311NISTXML-SV-II-list-NMTOKENS-length-2-4 tokoe:invalid" result="pass"/><test-case name="22312NISTXML-SV-II-list-NMTOKENS-length-2-5 tokoe:invalid" result="pass"/><test-case name="22313NISTSchema-SV-II-list-NMTOKENS-length-3 tokoe:valid" result="pass"/><test-case name="22314NISTXML-SV-II-list-NMTOKENS-length-3-1 tokoe:invalid" result="pass"/><test-case name="22315NISTXML-SV-II-list-NMTOKENS-length-3-2 tokoe:invalid" result="pass"/><test-case name="22316NISTXML-SV-II-list-NMTOKENS-length-3-3 tokoe:invalid" result="pass"/><test-case name="22317NISTXML-SV-II-list-NMTOKENS-length-3-4 tokoe:invalid" result="pass"/><test-case name="22318NISTXML-SV-II-list-NMTOKENS-length-3-5 tokoe:invalid" result="pass"/><test-case name="22319NISTSchema-SV-II-list-NMTOKENS-length-4 tokoe:valid" result="pass"/><test-case name="22320NISTXML-SV-II-list-NMTOKENS-length-4-1 tokoe:invalid" result="pass"/><test-case name="22321NISTXML-SV-II-list-NMTOKENS-length-4-2 tokoe:invalid" result="pass"/><test-case name="22322NISTXML-SV-II-list-NMTOKENS-length-4-3 tokoe:invalid" result="pass"/><test-case name="22323NISTXML-SV-II-list-NMTOKENS-length-4-4 tokoe:invalid" result="pass"/><test-case name="22324NISTXML-SV-II-list-NMTOKENS-length-4-5 tokoe:invalid" result="pass"/><test-case name="22325NISTSchema-SV-II-list-NMTOKENS-length-5 tokoe:valid" result="pass"/><test-case name="22326NISTXML-SV-II-list-NMTOKENS-length-5-1 tokoe:invalid" result="pass"/><test-case name="22327NISTXML-SV-II-list-NMTOKENS-length-5-2 tokoe:invalid" result="pass"/><test-case name="22328NISTXML-SV-II-list-NMTOKENS-length-5-3 tokoe:invalid" result="pass"/><test-case name="22329NISTXML-SV-II-list-NMTOKENS-length-5-4 tokoe:invalid" result="pass"/><test-case name="22330NISTXML-SV-II-list-NMTOKENS-length-5-5 tokoe:invalid" result="pass"/><test-case name="22331NISTSchema-SV-II-list-NCName-maxLength-1 tokoe:valid" result="pass"/><test-case name="22332NISTXML-SV-II-list-NCName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22333NISTXML-SV-II-list-NCName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22334NISTXML-SV-II-list-NCName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22335NISTXML-SV-II-list-NCName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22336NISTXML-SV-II-list-NCName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22337NISTSchema-SV-II-list-NCName-maxLength-2 tokoe:valid" result="pass"/><test-case name="22338NISTXML-SV-II-list-NCName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22339NISTXML-SV-II-list-NCName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22340NISTXML-SV-II-list-NCName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22341NISTXML-SV-II-list-NCName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22342NISTXML-SV-II-list-NCName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22343NISTSchema-SV-II-list-NCName-maxLength-3 tokoe:valid" result="pass"/><test-case name="22344NISTXML-SV-II-list-NCName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22345NISTXML-SV-II-list-NCName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22346NISTXML-SV-II-list-NCName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22347NISTXML-SV-II-list-NCName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22348NISTXML-SV-II-list-NCName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22349NISTSchema-SV-II-list-NCName-maxLength-4 tokoe:valid" result="pass"/><test-case name="22350NISTXML-SV-II-list-NCName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22351NISTXML-SV-II-list-NCName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22352NISTXML-SV-II-list-NCName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22353NISTXML-SV-II-list-NCName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22354NISTXML-SV-II-list-NCName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22355NISTSchema-SV-II-list-NCName-maxLength-5 tokoe:valid" result="pass"/><test-case name="22356NISTXML-SV-II-list-NCName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22357NISTXML-SV-II-list-NCName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22358NISTXML-SV-II-list-NCName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22359NISTXML-SV-II-list-NCName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22360NISTXML-SV-II-list-NCName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22361NISTSchema-SV-II-list-NCName-minLength-1 tokoe:valid" result="pass"/><test-case name="22362NISTXML-SV-II-list-NCName-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22363NISTXML-SV-II-list-NCName-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22364NISTXML-SV-II-list-NCName-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22365NISTXML-SV-II-list-NCName-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22366NISTXML-SV-II-list-NCName-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22367NISTSchema-SV-II-list-NCName-minLength-2 tokoe:valid" result="pass"/><test-case name="22368NISTXML-SV-II-list-NCName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22369NISTXML-SV-II-list-NCName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22370NISTXML-SV-II-list-NCName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22371NISTXML-SV-II-list-NCName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22372NISTXML-SV-II-list-NCName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22373NISTSchema-SV-II-list-NCName-minLength-3 tokoe:valid" result="pass"/><test-case name="22374NISTXML-SV-II-list-NCName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22375NISTXML-SV-II-list-NCName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22376NISTXML-SV-II-list-NCName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22377NISTXML-SV-II-list-NCName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22378NISTXML-SV-II-list-NCName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22379NISTSchema-SV-II-list-NCName-minLength-4 tokoe:valid" result="pass"/><test-case name="22380NISTXML-SV-II-list-NCName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22381NISTXML-SV-II-list-NCName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22382NISTXML-SV-II-list-NCName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22383NISTXML-SV-II-list-NCName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22384NISTXML-SV-II-list-NCName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22385NISTSchema-SV-II-list-NCName-minLength-5 tokoe:valid" result="pass"/><test-case name="22386NISTXML-SV-II-list-NCName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22387NISTXML-SV-II-list-NCName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22388NISTXML-SV-II-list-NCName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22389NISTXML-SV-II-list-NCName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22390NISTXML-SV-II-list-NCName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22391NISTSchema-SV-II-list-NCName-length-1 tokoe:valid" result="pass"/><test-case name="22392NISTXML-SV-II-list-NCName-length-1-1 tokoe:invalid" result="pass"/><test-case name="22393NISTXML-SV-II-list-NCName-length-1-2 tokoe:invalid" result="pass"/><test-case name="22394NISTXML-SV-II-list-NCName-length-1-3 tokoe:invalid" result="pass"/><test-case name="22395NISTXML-SV-II-list-NCName-length-1-4 tokoe:invalid" result="pass"/><test-case name="22396NISTXML-SV-II-list-NCName-length-1-5 tokoe:invalid" result="pass"/><test-case name="22397NISTSchema-SV-II-list-NCName-length-2 tokoe:valid" result="pass"/><test-case name="22398NISTXML-SV-II-list-NCName-length-2-1 tokoe:invalid" result="pass"/><test-case name="22399NISTXML-SV-II-list-NCName-length-2-2 tokoe:invalid" result="pass"/><test-case name="22400NISTXML-SV-II-list-NCName-length-2-3 tokoe:invalid" result="pass"/><test-case name="22401NISTXML-SV-II-list-NCName-length-2-4 tokoe:invalid" result="pass"/><test-case name="22402NISTXML-SV-II-list-NCName-length-2-5 tokoe:invalid" result="pass"/><test-case name="22403NISTSchema-SV-II-list-NCName-length-3 tokoe:valid" result="pass"/><test-case name="22404NISTXML-SV-II-list-NCName-length-3-1 tokoe:invalid" result="pass"/><test-case name="22405NISTXML-SV-II-list-NCName-length-3-2 tokoe:invalid" result="pass"/><test-case name="22406NISTXML-SV-II-list-NCName-length-3-3 tokoe:invalid" result="pass"/><test-case name="22407NISTXML-SV-II-list-NCName-length-3-4 tokoe:invalid" result="pass"/><test-case name="22408NISTXML-SV-II-list-NCName-length-3-5 tokoe:invalid" result="pass"/><test-case name="22409NISTSchema-SV-II-list-NCName-length-4 tokoe:valid" result="pass"/><test-case name="22410NISTXML-SV-II-list-NCName-length-4-1 tokoe:invalid" result="pass"/><test-case name="22411NISTXML-SV-II-list-NCName-length-4-2 tokoe:invalid" result="pass"/><test-case name="22412NISTXML-SV-II-list-NCName-length-4-3 tokoe:invalid" result="pass"/><test-case name="22413NISTXML-SV-II-list-NCName-length-4-4 tokoe:invalid" result="pass"/><test-case name="22414NISTXML-SV-II-list-NCName-length-4-5 tokoe:invalid" result="pass"/><test-case name="22415NISTSchema-SV-II-list-NCName-length-5 tokoe:valid" result="pass"/><test-case name="22416NISTXML-SV-II-list-NCName-length-5-1 tokoe:invalid" result="pass"/><test-case name="22417NISTXML-SV-II-list-NCName-length-5-2 tokoe:invalid" result="pass"/><test-case name="22418NISTXML-SV-II-list-NCName-length-5-3 tokoe:invalid" result="pass"/><test-case name="22419NISTXML-SV-II-list-NCName-length-5-4 tokoe:invalid" result="pass"/><test-case name="22420NISTXML-SV-II-list-NCName-length-5-5 tokoe:invalid" result="pass"/><test-case name="22421NISTSchema-SV-II-list-ID-maxLength-1 tokoe:valid" result="pass"/><test-case name="22422NISTXML-SV-II-list-ID-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22423NISTXML-SV-II-list-ID-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22424NISTXML-SV-II-list-ID-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22425NISTXML-SV-II-list-ID-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22426NISTXML-SV-II-list-ID-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22427NISTSchema-SV-II-list-ID-maxLength-2 tokoe:valid" result="pass"/><test-case name="22428NISTXML-SV-II-list-ID-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22429NISTXML-SV-II-list-ID-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22430NISTXML-SV-II-list-ID-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22431NISTXML-SV-II-list-ID-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22432NISTXML-SV-II-list-ID-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22433NISTSchema-SV-II-list-ID-maxLength-3 tokoe:valid" result="pass"/><test-case name="22434NISTXML-SV-II-list-ID-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22435NISTXML-SV-II-list-ID-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22436NISTXML-SV-II-list-ID-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22437NISTXML-SV-II-list-ID-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22438NISTXML-SV-II-list-ID-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22439NISTSchema-SV-II-list-ID-maxLength-4 tokoe:valid" result="pass"/><test-case name="22440NISTXML-SV-II-list-ID-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22441NISTXML-SV-II-list-ID-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22442NISTXML-SV-II-list-ID-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22443NISTXML-SV-II-list-ID-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22444NISTXML-SV-II-list-ID-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22445NISTSchema-SV-II-list-ID-maxLength-5 tokoe:valid" result="pass"/><test-case name="22446NISTXML-SV-II-list-ID-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22447NISTXML-SV-II-list-ID-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22448NISTXML-SV-II-list-ID-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22449NISTXML-SV-II-list-ID-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22450NISTXML-SV-II-list-ID-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22451NISTSchema-SV-II-list-ID-minLength-1 tokoe:valid" result="pass"/><test-case name="22452NISTXML-SV-II-list-ID-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22453NISTXML-SV-II-list-ID-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22454NISTXML-SV-II-list-ID-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22455NISTXML-SV-II-list-ID-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22456NISTXML-SV-II-list-ID-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22457NISTSchema-SV-II-list-ID-minLength-2 tokoe:valid" result="pass"/><test-case name="22458NISTXML-SV-II-list-ID-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22459NISTXML-SV-II-list-ID-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22460NISTXML-SV-II-list-ID-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22461NISTXML-SV-II-list-ID-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22462NISTXML-SV-II-list-ID-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22463NISTSchema-SV-II-list-ID-minLength-3 tokoe:valid" result="pass"/><test-case name="22464NISTXML-SV-II-list-ID-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22465NISTXML-SV-II-list-ID-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22466NISTXML-SV-II-list-ID-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22467NISTXML-SV-II-list-ID-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22468NISTXML-SV-II-list-ID-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22469NISTSchema-SV-II-list-ID-minLength-4 tokoe:valid" result="pass"/><test-case name="22470NISTXML-SV-II-list-ID-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22471NISTXML-SV-II-list-ID-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22472NISTXML-SV-II-list-ID-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22473NISTXML-SV-II-list-ID-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22474NISTXML-SV-II-list-ID-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22475NISTSchema-SV-II-list-ID-minLength-5 tokoe:valid" result="pass"/><test-case name="22476NISTXML-SV-II-list-ID-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22477NISTXML-SV-II-list-ID-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22478NISTXML-SV-II-list-ID-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22479NISTXML-SV-II-list-ID-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22480NISTXML-SV-II-list-ID-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22481NISTSchema-SV-II-list-ID-length-1 tokoe:valid" result="pass"/><test-case name="22482NISTXML-SV-II-list-ID-length-1-1 tokoe:invalid" result="pass"/><test-case name="22483NISTXML-SV-II-list-ID-length-1-2 tokoe:invalid" result="pass"/><test-case name="22484NISTXML-SV-II-list-ID-length-1-3 tokoe:invalid" result="pass"/><test-case name="22485NISTXML-SV-II-list-ID-length-1-4 tokoe:invalid" result="pass"/><test-case name="22486NISTXML-SV-II-list-ID-length-1-5 tokoe:invalid" result="pass"/><test-case name="22487NISTSchema-SV-II-list-ID-length-2 tokoe:valid" result="pass"/><test-case name="22488NISTXML-SV-II-list-ID-length-2-1 tokoe:invalid" result="pass"/><test-case name="22489NISTXML-SV-II-list-ID-length-2-2 tokoe:invalid" result="pass"/><test-case name="22490NISTXML-SV-II-list-ID-length-2-3 tokoe:invalid" result="pass"/><test-case name="22491NISTXML-SV-II-list-ID-length-2-4 tokoe:invalid" result="pass"/><test-case name="22492NISTXML-SV-II-list-ID-length-2-5 tokoe:invalid" result="pass"/><test-case name="22493NISTSchema-SV-II-list-ID-length-3 tokoe:valid" result="pass"/><test-case name="22494NISTXML-SV-II-list-ID-length-3-1 tokoe:invalid" result="pass"/><test-case name="22495NISTXML-SV-II-list-ID-length-3-2 tokoe:invalid" result="pass"/><test-case name="22496NISTXML-SV-II-list-ID-length-3-3 tokoe:invalid" result="pass"/><test-case name="22497NISTXML-SV-II-list-ID-length-3-4 tokoe:invalid" result="pass"/><test-case name="22498NISTXML-SV-II-list-ID-length-3-5 tokoe:invalid" result="pass"/><test-case name="22499NISTSchema-SV-II-list-ID-length-4 tokoe:valid" result="pass"/><test-case name="22500NISTXML-SV-II-list-ID-length-4-1 tokoe:invalid" result="pass"/><test-case name="22501NISTXML-SV-II-list-ID-length-4-2 tokoe:invalid" result="pass"/><test-case name="22502NISTXML-SV-II-list-ID-length-4-3 tokoe:invalid" result="pass"/><test-case name="22503NISTXML-SV-II-list-ID-length-4-4 tokoe:invalid" result="pass"/><test-case name="22504NISTXML-SV-II-list-ID-length-4-5 tokoe:invalid" result="pass"/><test-case name="22505NISTSchema-SV-II-list-ID-length-5 tokoe:valid" result="pass"/><test-case name="22506NISTXML-SV-II-list-ID-length-5-1 tokoe:invalid" result="pass"/><test-case name="22507NISTXML-SV-II-list-ID-length-5-2 tokoe:invalid" result="pass"/><test-case name="22508NISTXML-SV-II-list-ID-length-5-3 tokoe:invalid" result="pass"/><test-case name="22509NISTXML-SV-II-list-ID-length-5-4 tokoe:invalid" result="pass"/><test-case name="22510NISTXML-SV-II-list-ID-length-5-5 tokoe:invalid" result="pass"/><test-case name="22511NISTSchema-SV-II-list-language-maxLength-1 tokoe:valid" result="pass"/><test-case name="22512NISTXML-SV-II-list-language-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22513NISTXML-SV-II-list-language-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22514NISTXML-SV-II-list-language-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22515NISTXML-SV-II-list-language-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22516NISTXML-SV-II-list-language-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22517NISTSchema-SV-II-list-language-maxLength-2 tokoe:valid" result="pass"/><test-case name="22518NISTXML-SV-II-list-language-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22519NISTXML-SV-II-list-language-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22520NISTXML-SV-II-list-language-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22521NISTXML-SV-II-list-language-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22522NISTXML-SV-II-list-language-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22523NISTSchema-SV-II-list-language-maxLength-3 tokoe:valid" result="pass"/><test-case name="22524NISTXML-SV-II-list-language-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22525NISTXML-SV-II-list-language-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22526NISTXML-SV-II-list-language-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22527NISTXML-SV-II-list-language-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22528NISTXML-SV-II-list-language-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22529NISTSchema-SV-II-list-language-maxLength-4 tokoe:valid" result="pass"/><test-case name="22530NISTXML-SV-II-list-language-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22531NISTXML-SV-II-list-language-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22532NISTXML-SV-II-list-language-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22533NISTXML-SV-II-list-language-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22534NISTXML-SV-II-list-language-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22535NISTSchema-SV-II-list-language-maxLength-5 tokoe:valid" result="pass"/><test-case name="22536NISTXML-SV-II-list-language-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22537NISTXML-SV-II-list-language-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22538NISTXML-SV-II-list-language-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22539NISTXML-SV-II-list-language-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22540NISTXML-SV-II-list-language-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22541NISTSchema-SV-II-list-language-minLength-1 tokoe:valid" result="pass"/><test-case name="22542NISTXML-SV-II-list-language-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22543NISTXML-SV-II-list-language-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22544NISTXML-SV-II-list-language-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22545NISTXML-SV-II-list-language-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22546NISTXML-SV-II-list-language-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22547NISTSchema-SV-II-list-language-minLength-2 tokoe:valid" result="pass"/><test-case name="22548NISTXML-SV-II-list-language-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22549NISTXML-SV-II-list-language-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22550NISTXML-SV-II-list-language-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22551NISTXML-SV-II-list-language-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22552NISTXML-SV-II-list-language-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22553NISTSchema-SV-II-list-language-minLength-3 tokoe:valid" result="pass"/><test-case name="22554NISTXML-SV-II-list-language-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22555NISTXML-SV-II-list-language-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22556NISTXML-SV-II-list-language-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22557NISTXML-SV-II-list-language-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22558NISTXML-SV-II-list-language-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22559NISTSchema-SV-II-list-language-minLength-4 tokoe:valid" result="pass"/><test-case name="22560NISTXML-SV-II-list-language-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22561NISTXML-SV-II-list-language-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22562NISTXML-SV-II-list-language-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22563NISTXML-SV-II-list-language-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22564NISTXML-SV-II-list-language-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22565NISTSchema-SV-II-list-language-minLength-5 tokoe:valid" result="pass"/><test-case name="22566NISTXML-SV-II-list-language-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22567NISTXML-SV-II-list-language-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22568NISTXML-SV-II-list-language-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22569NISTXML-SV-II-list-language-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22570NISTXML-SV-II-list-language-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22571NISTSchema-SV-II-list-language-length-1 tokoe:valid" result="pass"/><test-case name="22572NISTXML-SV-II-list-language-length-1-1 tokoe:invalid" result="pass"/><test-case name="22573NISTXML-SV-II-list-language-length-1-2 tokoe:invalid" result="pass"/><test-case name="22574NISTXML-SV-II-list-language-length-1-3 tokoe:invalid" result="pass"/><test-case name="22575NISTXML-SV-II-list-language-length-1-4 tokoe:invalid" result="pass"/><test-case name="22576NISTXML-SV-II-list-language-length-1-5 tokoe:invalid" result="pass"/><test-case name="22577NISTSchema-SV-II-list-language-length-2 tokoe:valid" result="pass"/><test-case name="22578NISTXML-SV-II-list-language-length-2-1 tokoe:invalid" result="pass"/><test-case name="22579NISTXML-SV-II-list-language-length-2-2 tokoe:invalid" result="pass"/><test-case name="22580NISTXML-SV-II-list-language-length-2-3 tokoe:invalid" result="pass"/><test-case name="22581NISTXML-SV-II-list-language-length-2-4 tokoe:invalid" result="pass"/><test-case name="22582NISTXML-SV-II-list-language-length-2-5 tokoe:invalid" result="pass"/><test-case name="22583NISTSchema-SV-II-list-language-length-3 tokoe:valid" result="pass"/><test-case name="22584NISTXML-SV-II-list-language-length-3-1 tokoe:invalid" result="pass"/><test-case name="22585NISTXML-SV-II-list-language-length-3-2 tokoe:invalid" result="pass"/><test-case name="22586NISTXML-SV-II-list-language-length-3-3 tokoe:invalid" result="pass"/><test-case name="22587NISTXML-SV-II-list-language-length-3-4 tokoe:invalid" result="pass"/><test-case name="22588NISTXML-SV-II-list-language-length-3-5 tokoe:invalid" result="pass"/><test-case name="22589NISTSchema-SV-II-list-language-length-4 tokoe:valid" result="pass"/><test-case name="22590NISTXML-SV-II-list-language-length-4-1 tokoe:invalid" result="pass"/><test-case name="22591NISTXML-SV-II-list-language-length-4-2 tokoe:invalid" result="pass"/><test-case name="22592NISTXML-SV-II-list-language-length-4-3 tokoe:invalid" result="pass"/><test-case name="22593NISTXML-SV-II-list-language-length-4-4 tokoe:invalid" result="pass"/><test-case name="22594NISTXML-SV-II-list-language-length-4-5 tokoe:invalid" result="pass"/><test-case name="22595NISTSchema-SV-II-list-language-length-5 tokoe:valid" result="pass"/><test-case name="22596NISTXML-SV-II-list-language-length-5-1 tokoe:invalid" result="pass"/><test-case name="22597NISTXML-SV-II-list-language-length-5-2 tokoe:invalid" result="pass"/><test-case name="22598NISTXML-SV-II-list-language-length-5-3 tokoe:invalid" result="pass"/><test-case name="22599NISTXML-SV-II-list-language-length-5-4 tokoe:invalid" result="pass"/><test-case name="22600NISTXML-SV-II-list-language-length-5-5 tokoe:invalid" result="pass"/><test-case name="22601NISTSchema-SV-II-list-QName-maxLength-1 tokoe:valid" result="pass"/><test-case name="22602NISTXML-SV-II-list-QName-maxLength-1-1 tokoe:invalid" result="pass"/><test-case name="22603NISTXML-SV-II-list-QName-maxLength-1-2 tokoe:invalid" result="pass"/><test-case name="22604NISTXML-SV-II-list-QName-maxLength-1-3 tokoe:invalid" result="pass"/><test-case name="22605NISTXML-SV-II-list-QName-maxLength-1-4 tokoe:invalid" result="pass"/><test-case name="22606NISTXML-SV-II-list-QName-maxLength-1-5 tokoe:invalid" result="pass"/><test-case name="22607NISTSchema-SV-II-list-QName-maxLength-2 tokoe:valid" result="pass"/><test-case name="22608NISTXML-SV-II-list-QName-maxLength-2-1 tokoe:invalid" result="pass"/><test-case name="22609NISTXML-SV-II-list-QName-maxLength-2-2 tokoe:invalid" result="pass"/><test-case name="22610NISTXML-SV-II-list-QName-maxLength-2-3 tokoe:invalid" result="pass"/><test-case name="22611NISTXML-SV-II-list-QName-maxLength-2-4 tokoe:invalid" result="pass"/><test-case name="22612NISTXML-SV-II-list-QName-maxLength-2-5 tokoe:invalid" result="pass"/><test-case name="22613NISTSchema-SV-II-list-QName-maxLength-3 tokoe:valid" result="pass"/><test-case name="22614NISTXML-SV-II-list-QName-maxLength-3-1 tokoe:invalid" result="pass"/><test-case name="22615NISTXML-SV-II-list-QName-maxLength-3-2 tokoe:invalid" result="pass"/><test-case name="22616NISTXML-SV-II-list-QName-maxLength-3-3 tokoe:invalid" result="pass"/><test-case name="22617NISTXML-SV-II-list-QName-maxLength-3-4 tokoe:invalid" result="pass"/><test-case name="22618NISTXML-SV-II-list-QName-maxLength-3-5 tokoe:invalid" result="pass"/><test-case name="22619NISTSchema-SV-II-list-QName-maxLength-4 tokoe:valid" result="pass"/><test-case name="22620NISTXML-SV-II-list-QName-maxLength-4-1 tokoe:invalid" result="pass"/><test-case name="22621NISTXML-SV-II-list-QName-maxLength-4-2 tokoe:invalid" result="pass"/><test-case name="22622NISTXML-SV-II-list-QName-maxLength-4-3 tokoe:invalid" result="pass"/><test-case name="22623NISTXML-SV-II-list-QName-maxLength-4-4 tokoe:invalid" result="pass"/><test-case name="22624NISTXML-SV-II-list-QName-maxLength-4-5 tokoe:invalid" result="pass"/><test-case name="22625NISTSchema-SV-II-list-QName-maxLength-5 tokoe:valid" result="pass"/><test-case name="22626NISTXML-SV-II-list-QName-maxLength-5-1 tokoe:invalid" result="pass"/><test-case name="22627NISTXML-SV-II-list-QName-maxLength-5-2 tokoe:invalid" result="pass"/><test-case name="22628NISTXML-SV-II-list-QName-maxLength-5-3 tokoe:invalid" result="pass"/><test-case name="22629NISTXML-SV-II-list-QName-maxLength-5-4 tokoe:invalid" result="pass"/><test-case name="22630NISTXML-SV-II-list-QName-maxLength-5-5 tokoe:invalid" result="pass"/><test-case name="22631NISTSchema-SV-II-list-QName-minLength-1 tokoe:valid" result="pass"/><test-case name="22632NISTXML-SV-II-list-QName-minLength-1-1 tokoe:invalid" result="pass"/><test-case name="22633NISTXML-SV-II-list-QName-minLength-1-2 tokoe:invalid" result="pass"/><test-case name="22634NISTXML-SV-II-list-QName-minLength-1-3 tokoe:invalid" result="pass"/><test-case name="22635NISTXML-SV-II-list-QName-minLength-1-4 tokoe:invalid" result="pass"/><test-case name="22636NISTXML-SV-II-list-QName-minLength-1-5 tokoe:invalid" result="pass"/><test-case name="22637NISTSchema-SV-II-list-QName-minLength-2 tokoe:valid" result="pass"/><test-case name="22638NISTXML-SV-II-list-QName-minLength-2-1 tokoe:invalid" result="pass"/><test-case name="22639NISTXML-SV-II-list-QName-minLength-2-2 tokoe:invalid" result="pass"/><test-case name="22640NISTXML-SV-II-list-QName-minLength-2-3 tokoe:invalid" result="pass"/><test-case name="22641NISTXML-SV-II-list-QName-minLength-2-4 tokoe:invalid" result="pass"/><test-case name="22642NISTXML-SV-II-list-QName-minLength-2-5 tokoe:invalid" result="pass"/><test-case name="22643NISTSchema-SV-II-list-QName-minLength-3 tokoe:valid" result="pass"/><test-case name="22644NISTXML-SV-II-list-QName-minLength-3-1 tokoe:invalid" result="pass"/><test-case name="22645NISTXML-SV-II-list-QName-minLength-3-2 tokoe:invalid" result="pass"/><test-case name="22646NISTXML-SV-II-list-QName-minLength-3-3 tokoe:invalid" result="pass"/><test-case name="22647NISTXML-SV-II-list-QName-minLength-3-4 tokoe:invalid" result="pass"/><test-case name="22648NISTXML-SV-II-list-QName-minLength-3-5 tokoe:invalid" result="pass"/><test-case name="22649NISTSchema-SV-II-list-QName-minLength-4 tokoe:valid" result="pass"/><test-case name="22650NISTXML-SV-II-list-QName-minLength-4-1 tokoe:invalid" result="pass"/><test-case name="22651NISTXML-SV-II-list-QName-minLength-4-2 tokoe:invalid" result="pass"/><test-case name="22652NISTXML-SV-II-list-QName-minLength-4-3 tokoe:invalid" result="pass"/><test-case name="22653NISTXML-SV-II-list-QName-minLength-4-4 tokoe:invalid" result="pass"/><test-case name="22654NISTXML-SV-II-list-QName-minLength-4-5 tokoe:invalid" result="pass"/><test-case name="22655NISTSchema-SV-II-list-QName-minLength-5 tokoe:valid" result="pass"/><test-case name="22656NISTXML-SV-II-list-QName-minLength-5-1 tokoe:invalid" result="pass"/><test-case name="22657NISTXML-SV-II-list-QName-minLength-5-2 tokoe:invalid" result="pass"/><test-case name="22658NISTXML-SV-II-list-QName-minLength-5-3 tokoe:invalid" result="pass"/><test-case name="22659NISTXML-SV-II-list-QName-minLength-5-4 tokoe:invalid" result="pass"/><test-case name="22660NISTXML-SV-II-list-QName-minLength-5-5 tokoe:invalid" result="pass"/><test-case name="22661NISTSchema-SV-II-list-QName-length-1 tokoe:valid" result="pass"/><test-case name="22662NISTXML-SV-II-list-QName-length-1-1 tokoe:invalid" result="pass"/><test-case name="22663NISTXML-SV-II-list-QName-length-1-2 tokoe:invalid" result="pass"/><test-case name="22664NISTXML-SV-II-list-QName-length-1-3 tokoe:invalid" result="pass"/><test-case name="22665NISTXML-SV-II-list-QName-length-1-4 tokoe:invalid" result="pass"/><test-case name="22666NISTXML-SV-II-list-QName-length-1-5 tokoe:invalid" result="pass"/><test-case name="22667NISTSchema-SV-II-list-QName-length-2 tokoe:valid" result="pass"/><test-case name="22668NISTXML-SV-II-list-QName-length-2-1 tokoe:invalid" result="pass"/><test-case name="22669NISTXML-SV-II-list-QName-length-2-2 tokoe:invalid" result="pass"/><test-case name="22670NISTXML-SV-II-list-QName-length-2-3 tokoe:invalid" result="pass"/><test-case name="22671NISTXML-SV-II-list-QName-length-2-4 tokoe:invalid" result="pass"/><test-case name="22672NISTXML-SV-II-list-QName-length-2-5 tokoe:invalid" result="pass"/><test-case name="22673NISTSchema-SV-II-list-QName-length-3 tokoe:valid" result="pass"/><test-case name="22674NISTXML-SV-II-list-QName-length-3-1 tokoe:invalid" result="pass"/><test-case name="22675NISTXML-SV-II-list-QName-length-3-2 tokoe:invalid" result="pass"/><test-case name="22676NISTXML-SV-II-list-QName-length-3-3 tokoe:invalid" result="pass"/><test-case name="22677NISTXML-SV-II-list-QName-length-3-4 tokoe:invalid" result="pass"/><test-case name="22678NISTXML-SV-II-list-QName-length-3-5 tokoe:invalid" result="pass"/><test-case name="22679NISTSchema-SV-II-list-QName-length-4 tokoe:valid" result="pass"/><test-case name="22680NISTXML-SV-II-list-QName-length-4-1 tokoe:invalid" result="pass"/><test-case name="22681NISTXML-SV-II-list-QName-length-4-2 tokoe:invalid" result="pass"/><test-case name="22682NISTXML-SV-II-list-QName-length-4-3 tokoe:invalid" result="pass"/><test-case name="22683NISTXML-SV-II-list-QName-length-4-4 tokoe:invalid" result="pass"/><test-case name="22684NISTXML-SV-II-list-QName-length-4-5 tokoe:invalid" result="pass"/><test-case name="22685NISTSchema-SV-II-list-QName-length-5 tokoe:valid" result="pass"/><test-case name="22686NISTXML-SV-II-list-QName-length-5-1 tokoe:invalid" result="pass"/><test-case name="22687NISTXML-SV-II-list-QName-length-5-2 tokoe:invalid" result="pass"/><test-case name="22688NISTXML-SV-II-list-QName-length-5-3 tokoe:invalid" result="pass"/><test-case name="22689NISTXML-SV-II-list-QName-length-5-4 tokoe:invalid" result="pass"/><test-case name="22690NISTXML-SV-II-list-QName-length-5-5 tokoe:invalid" result="pass"/><test-case name="22691NISTSchema-SV-IV-union-duration-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="22692NISTXML-SV-IV-union-duration-decimal-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22693NISTXML-SV-IV-union-duration-decimal-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22694NISTXML-SV-IV-union-duration-decimal-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22695NISTXML-SV-IV-union-duration-decimal-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22696NISTXML-SV-IV-union-duration-decimal-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22697NISTSchema-SV-IV-union-duration-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="22698NISTXML-SV-IV-union-duration-decimal-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22699NISTXML-SV-IV-union-duration-decimal-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22700NISTXML-SV-IV-union-duration-decimal-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22701NISTXML-SV-IV-union-duration-decimal-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22702NISTXML-SV-IV-union-duration-decimal-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22703NISTSchema-SV-IV-union-duration-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="22704NISTXML-SV-IV-union-duration-decimal-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22705NISTXML-SV-IV-union-duration-decimal-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22706NISTXML-SV-IV-union-duration-decimal-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22707NISTXML-SV-IV-union-duration-decimal-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22708NISTXML-SV-IV-union-duration-decimal-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22709NISTSchema-SV-IV-union-duration-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="22710NISTXML-SV-IV-union-duration-decimal-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22711NISTXML-SV-IV-union-duration-decimal-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22712NISTXML-SV-IV-union-duration-decimal-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22713NISTXML-SV-IV-union-duration-decimal-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22714NISTXML-SV-IV-union-duration-decimal-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22715NISTSchema-SV-IV-union-duration-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="22716NISTXML-SV-IV-union-duration-decimal-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22717NISTXML-SV-IV-union-duration-decimal-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22718NISTXML-SV-IV-union-duration-decimal-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22719NISTXML-SV-IV-union-duration-decimal-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22720NISTXML-SV-IV-union-duration-decimal-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22721NISTSchema-SV-IV-union-duration-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="22722NISTXML-SV-IV-union-duration-decimal-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22723NISTXML-SV-IV-union-duration-decimal-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22724NISTXML-SV-IV-union-duration-decimal-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22725NISTXML-SV-IV-union-duration-decimal-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22726NISTXML-SV-IV-union-duration-decimal-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22727NISTSchema-SV-IV-union-duration-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="22728NISTXML-SV-IV-union-duration-decimal-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22729NISTXML-SV-IV-union-duration-decimal-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22730NISTXML-SV-IV-union-duration-decimal-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22731NISTXML-SV-IV-union-duration-decimal-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22732NISTXML-SV-IV-union-duration-decimal-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22733NISTSchema-SV-IV-union-duration-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="22734NISTXML-SV-IV-union-duration-decimal-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22735NISTXML-SV-IV-union-duration-decimal-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22736NISTXML-SV-IV-union-duration-decimal-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22737NISTXML-SV-IV-union-duration-decimal-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22738NISTXML-SV-IV-union-duration-decimal-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22739NISTSchema-SV-IV-union-duration-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="22740NISTXML-SV-IV-union-duration-decimal-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22741NISTXML-SV-IV-union-duration-decimal-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22742NISTXML-SV-IV-union-duration-decimal-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22743NISTXML-SV-IV-union-duration-decimal-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22744NISTXML-SV-IV-union-duration-decimal-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22745NISTSchema-SV-IV-union-duration-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="22746NISTXML-SV-IV-union-duration-decimal-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22747NISTXML-SV-IV-union-duration-decimal-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22748NISTXML-SV-IV-union-duration-decimal-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22749NISTXML-SV-IV-union-duration-decimal-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22750NISTXML-SV-IV-union-duration-decimal-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22751NISTSchema-SV-IV-union-anyURI-float-pattern-1 tokoe:valid" result="pass"/><test-case name="22752NISTXML-SV-IV-union-anyURI-float-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22753NISTXML-SV-IV-union-anyURI-float-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22754NISTXML-SV-IV-union-anyURI-float-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22755NISTXML-SV-IV-union-anyURI-float-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22756NISTXML-SV-IV-union-anyURI-float-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22757NISTSchema-SV-IV-union-anyURI-float-pattern-2 tokoe:valid" result="pass"/><test-case name="22758NISTXML-SV-IV-union-anyURI-float-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22759NISTXML-SV-IV-union-anyURI-float-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22760NISTXML-SV-IV-union-anyURI-float-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22761NISTXML-SV-IV-union-anyURI-float-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22762NISTXML-SV-IV-union-anyURI-float-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22763NISTSchema-SV-IV-union-anyURI-float-pattern-3 tokoe:valid" result="pass"/><test-case name="22764NISTXML-SV-IV-union-anyURI-float-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22765NISTXML-SV-IV-union-anyURI-float-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22766NISTXML-SV-IV-union-anyURI-float-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22767NISTXML-SV-IV-union-anyURI-float-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22768NISTXML-SV-IV-union-anyURI-float-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22769NISTSchema-SV-IV-union-anyURI-float-pattern-4 tokoe:valid" result="pass"/><test-case name="22770NISTXML-SV-IV-union-anyURI-float-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22771NISTXML-SV-IV-union-anyURI-float-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22772NISTXML-SV-IV-union-anyURI-float-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22773NISTXML-SV-IV-union-anyURI-float-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22774NISTXML-SV-IV-union-anyURI-float-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22775NISTSchema-SV-IV-union-anyURI-float-pattern-5 tokoe:valid" result="pass"/><test-case name="22776NISTXML-SV-IV-union-anyURI-float-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22777NISTXML-SV-IV-union-anyURI-float-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22778NISTXML-SV-IV-union-anyURI-float-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22779NISTXML-SV-IV-union-anyURI-float-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22780NISTXML-SV-IV-union-anyURI-float-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22781NISTSchema-SV-IV-union-anyURI-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="22782NISTXML-SV-IV-union-anyURI-float-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22783NISTXML-SV-IV-union-anyURI-float-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22784NISTXML-SV-IV-union-anyURI-float-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22785NISTXML-SV-IV-union-anyURI-float-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22786NISTXML-SV-IV-union-anyURI-float-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22787NISTSchema-SV-IV-union-anyURI-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="22788NISTXML-SV-IV-union-anyURI-float-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22789NISTXML-SV-IV-union-anyURI-float-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22790NISTXML-SV-IV-union-anyURI-float-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22791NISTXML-SV-IV-union-anyURI-float-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22792NISTXML-SV-IV-union-anyURI-float-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22793NISTSchema-SV-IV-union-anyURI-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="22794NISTXML-SV-IV-union-anyURI-float-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22795NISTXML-SV-IV-union-anyURI-float-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22796NISTXML-SV-IV-union-anyURI-float-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22797NISTXML-SV-IV-union-anyURI-float-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22798NISTXML-SV-IV-union-anyURI-float-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22799NISTSchema-SV-IV-union-anyURI-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="22800NISTXML-SV-IV-union-anyURI-float-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22801NISTXML-SV-IV-union-anyURI-float-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22802NISTXML-SV-IV-union-anyURI-float-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22803NISTXML-SV-IV-union-anyURI-float-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22804NISTXML-SV-IV-union-anyURI-float-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22805NISTSchema-SV-IV-union-anyURI-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="22806NISTXML-SV-IV-union-anyURI-float-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22807NISTXML-SV-IV-union-anyURI-float-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22808NISTXML-SV-IV-union-anyURI-float-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22809NISTXML-SV-IV-union-anyURI-float-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22810NISTXML-SV-IV-union-anyURI-float-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22811NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="22812NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22813NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22814NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22815NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22816NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22817NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="22818NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22819NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22820NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22821NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22822NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22823NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="22824NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22825NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22826NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22827NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22828NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22829NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="22830NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22831NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22832NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22833NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22834NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22835NISTSchema-SV-IV-union-gMonthDay-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="22836NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22837NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22838NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22839NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22840NISTXML-SV-IV-union-gMonthDay-gYearMonth-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22841NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="22842NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22843NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22844NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22845NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22846NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22847NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="22848NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22849NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22850NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22851NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22852NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22853NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="22854NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22855NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22856NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22857NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22858NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22859NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="22860NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22861NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22862NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22863NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22864NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22865NISTSchema-SV-IV-union-gMonthDay-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="22866NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22867NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22868NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22869NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22870NISTXML-SV-IV-union-gMonthDay-gYearMonth-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22871NISTSchema-SV-IV-union-short-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="22872NISTXML-SV-IV-union-short-gYear-pattern-1-1 tokoe:valid" result="pass"/><test-case name="22873NISTXML-SV-IV-union-short-gYear-pattern-1-2 tokoe:valid" result="pass"/><test-case name="22874NISTXML-SV-IV-union-short-gYear-pattern-1-3 tokoe:valid" result="pass"/><test-case name="22875NISTXML-SV-IV-union-short-gYear-pattern-1-4 tokoe:valid" result="pass"/><test-case name="22876NISTXML-SV-IV-union-short-gYear-pattern-1-5 tokoe:valid" result="pass"/><test-case name="22877NISTSchema-SV-IV-union-short-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="22878NISTXML-SV-IV-union-short-gYear-pattern-2-1 tokoe:valid" result="pass"/><test-case name="22879NISTXML-SV-IV-union-short-gYear-pattern-2-2 tokoe:valid" result="pass"/><test-case name="22880NISTXML-SV-IV-union-short-gYear-pattern-2-3 tokoe:valid" result="pass"/><test-case name="22881NISTXML-SV-IV-union-short-gYear-pattern-2-4 tokoe:valid" result="pass"/><test-case name="22882NISTXML-SV-IV-union-short-gYear-pattern-2-5 tokoe:valid" result="pass"/><test-case name="22883NISTSchema-SV-IV-union-short-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="22884NISTXML-SV-IV-union-short-gYear-pattern-3-1 tokoe:valid" result="pass"/><test-case name="22885NISTXML-SV-IV-union-short-gYear-pattern-3-2 tokoe:valid" result="pass"/><test-case name="22886NISTXML-SV-IV-union-short-gYear-pattern-3-3 tokoe:valid" result="pass"/><test-case name="22887NISTXML-SV-IV-union-short-gYear-pattern-3-4 tokoe:valid" result="pass"/><test-case name="22888NISTXML-SV-IV-union-short-gYear-pattern-3-5 tokoe:valid" result="pass"/><test-case name="22889NISTSchema-SV-IV-union-short-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="22890NISTXML-SV-IV-union-short-gYear-pattern-4-1 tokoe:valid" result="pass"/><test-case name="22891NISTXML-SV-IV-union-short-gYear-pattern-4-2 tokoe:valid" result="pass"/><test-case name="22892NISTXML-SV-IV-union-short-gYear-pattern-4-3 tokoe:valid" result="pass"/><test-case name="22893NISTXML-SV-IV-union-short-gYear-pattern-4-4 tokoe:valid" result="pass"/><test-case name="22894NISTXML-SV-IV-union-short-gYear-pattern-4-5 tokoe:valid" result="pass"/><test-case name="22895NISTSchema-SV-IV-union-short-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="22896NISTXML-SV-IV-union-short-gYear-pattern-5-1 tokoe:valid" result="pass"/><test-case name="22897NISTXML-SV-IV-union-short-gYear-pattern-5-2 tokoe:valid" result="pass"/><test-case name="22898NISTXML-SV-IV-union-short-gYear-pattern-5-3 tokoe:valid" result="pass"/><test-case name="22899NISTXML-SV-IV-union-short-gYear-pattern-5-4 tokoe:valid" result="pass"/><test-case name="22900NISTXML-SV-IV-union-short-gYear-pattern-5-5 tokoe:valid" result="pass"/><test-case name="22901NISTSchema-SV-IV-union-short-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="22902NISTXML-SV-IV-union-short-gYear-enumeration-1-1 tokoe:valid" result="pass"/><test-case name="22903NISTXML-SV-IV-union-short-gYear-enumeration-1-2 tokoe:valid" result="pass"/><test-case name="22904NISTXML-SV-IV-union-short-gYear-enumeration-1-3 tokoe:valid" result="pass"/><test-case name="22905NISTXML-SV-IV-union-short-gYear-enumeration-1-4 tokoe:valid" result="pass"/><test-case name="22906NISTXML-SV-IV-union-short-gYear-enumeration-1-5 tokoe:valid" result="pass"/><test-case name="22907NISTSchema-SV-IV-union-short-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="22908NISTXML-SV-IV-union-short-gYear-enumeration-2-1 tokoe:valid" result="pass"/><test-case name="22909NISTXML-SV-IV-union-short-gYear-enumeration-2-2 tokoe:valid" result="pass"/><test-case name="22910NISTXML-SV-IV-union-short-gYear-enumeration-2-3 tokoe:valid" result="pass"/><test-case name="22911NISTXML-SV-IV-union-short-gYear-enumeration-2-4 tokoe:valid" result="pass"/><test-case name="22912NISTXML-SV-IV-union-short-gYear-enumeration-2-5 tokoe:valid" result="pass"/><test-case name="22913NISTSchema-SV-IV-union-short-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="22914NISTXML-SV-IV-union-short-gYear-enumeration-3-1 tokoe:valid" result="pass"/><test-case name="22915NISTXML-SV-IV-union-short-gYear-enumeration-3-2 tokoe:valid" result="pass"/><test-case name="22916NISTXML-SV-IV-union-short-gYear-enumeration-3-3 tokoe:valid" result="pass"/><test-case name="22917NISTXML-SV-IV-union-short-gYear-enumeration-3-4 tokoe:valid" result="pass"/><test-case name="22918NISTXML-SV-IV-union-short-gYear-enumeration-3-5 tokoe:valid" result="pass"/><test-case name="22919NISTSchema-SV-IV-union-short-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="22920NISTXML-SV-IV-union-short-gYear-enumeration-4-1 tokoe:valid" result="pass"/><test-case name="22921NISTXML-SV-IV-union-short-gYear-enumeration-4-2 tokoe:valid" result="pass"/><test-case name="22922NISTXML-SV-IV-union-short-gYear-enumeration-4-3 tokoe:valid" result="pass"/><test-case name="22923NISTXML-SV-IV-union-short-gYear-enumeration-4-4 tokoe:valid" result="pass"/><test-case name="22924NISTXML-SV-IV-union-short-gYear-enumeration-4-5 tokoe:valid" result="pass"/><test-case name="22925NISTSchema-SV-IV-union-short-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="22926NISTXML-SV-IV-union-short-gYear-enumeration-5-1 tokoe:valid" result="pass"/><test-case name="22927NISTXML-SV-IV-union-short-gYear-enumeration-5-2 tokoe:valid" result="pass"/><test-case name="22928NISTXML-SV-IV-union-short-gYear-enumeration-5-3 tokoe:valid" result="pass"/><test-case name="22929NISTXML-SV-IV-union-short-gYear-enumeration-5-4 tokoe:valid" result="pass"/><test-case name="22930NISTXML-SV-IV-union-short-gYear-enumeration-5-5 tokoe:valid" result="pass"/><test-case name="22931NISTSchema-SV-II-union-duration-decimal-pattern-1 tokoe:valid" result="pass"/><test-case name="22932NISTXML-SV-II-union-duration-decimal-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="22933NISTXML-SV-II-union-duration-decimal-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="22934NISTXML-SV-II-union-duration-decimal-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="22935NISTXML-SV-II-union-duration-decimal-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="22936NISTXML-SV-II-union-duration-decimal-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="22937NISTSchema-SV-II-union-duration-decimal-pattern-2 tokoe:valid" result="pass"/><test-case name="22938NISTXML-SV-II-union-duration-decimal-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="22939NISTXML-SV-II-union-duration-decimal-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="22940NISTXML-SV-II-union-duration-decimal-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="22941NISTXML-SV-II-union-duration-decimal-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="22942NISTXML-SV-II-union-duration-decimal-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="22943NISTSchema-SV-II-union-duration-decimal-pattern-3 tokoe:valid" result="pass"/><test-case name="22944NISTXML-SV-II-union-duration-decimal-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="22945NISTXML-SV-II-union-duration-decimal-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="22946NISTXML-SV-II-union-duration-decimal-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="22947NISTXML-SV-II-union-duration-decimal-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="22948NISTXML-SV-II-union-duration-decimal-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="22949NISTSchema-SV-II-union-duration-decimal-pattern-4 tokoe:valid" result="pass"/><test-case name="22950NISTXML-SV-II-union-duration-decimal-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="22951NISTXML-SV-II-union-duration-decimal-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="22952NISTXML-SV-II-union-duration-decimal-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="22953NISTXML-SV-II-union-duration-decimal-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="22954NISTXML-SV-II-union-duration-decimal-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="22955NISTSchema-SV-II-union-duration-decimal-pattern-5 tokoe:valid" result="pass"/><test-case name="22956NISTXML-SV-II-union-duration-decimal-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="22957NISTXML-SV-II-union-duration-decimal-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="22958NISTXML-SV-II-union-duration-decimal-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="22959NISTXML-SV-II-union-duration-decimal-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="22960NISTXML-SV-II-union-duration-decimal-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="22961NISTSchema-SV-II-union-duration-decimal-enumeration-1 tokoe:valid" result="pass"/><test-case name="22962NISTXML-SV-II-union-duration-decimal-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="22963NISTXML-SV-II-union-duration-decimal-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="22964NISTXML-SV-II-union-duration-decimal-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="22965NISTXML-SV-II-union-duration-decimal-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="22966NISTXML-SV-II-union-duration-decimal-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="22967NISTSchema-SV-II-union-duration-decimal-enumeration-2 tokoe:valid" result="pass"/><test-case name="22968NISTXML-SV-II-union-duration-decimal-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="22969NISTXML-SV-II-union-duration-decimal-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="22970NISTXML-SV-II-union-duration-decimal-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="22971NISTXML-SV-II-union-duration-decimal-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="22972NISTXML-SV-II-union-duration-decimal-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="22973NISTSchema-SV-II-union-duration-decimal-enumeration-3 tokoe:valid" result="pass"/><test-case name="22974NISTXML-SV-II-union-duration-decimal-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="22975NISTXML-SV-II-union-duration-decimal-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="22976NISTXML-SV-II-union-duration-decimal-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="22977NISTXML-SV-II-union-duration-decimal-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="22978NISTXML-SV-II-union-duration-decimal-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="22979NISTSchema-SV-II-union-duration-decimal-enumeration-4 tokoe:valid" result="pass"/><test-case name="22980NISTXML-SV-II-union-duration-decimal-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="22981NISTXML-SV-II-union-duration-decimal-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="22982NISTXML-SV-II-union-duration-decimal-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="22983NISTXML-SV-II-union-duration-decimal-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="22984NISTXML-SV-II-union-duration-decimal-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="22985NISTSchema-SV-II-union-duration-decimal-enumeration-5 tokoe:valid" result="pass"/><test-case name="22986NISTXML-SV-II-union-duration-decimal-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="22987NISTXML-SV-II-union-duration-decimal-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="22988NISTXML-SV-II-union-duration-decimal-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="22989NISTXML-SV-II-union-duration-decimal-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="22990NISTXML-SV-II-union-duration-decimal-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="22991NISTSchema-SV-II-union-anyURI-float-pattern-1 tokoe:valid" result="pass"/><test-case name="22992NISTXML-SV-II-union-anyURI-float-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="22993NISTXML-SV-II-union-anyURI-float-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="22994NISTXML-SV-II-union-anyURI-float-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="22995NISTXML-SV-II-union-anyURI-float-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="22996NISTXML-SV-II-union-anyURI-float-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="22997NISTSchema-SV-II-union-anyURI-float-pattern-2 tokoe:valid" result="pass"/><test-case name="22998NISTXML-SV-II-union-anyURI-float-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="22999NISTXML-SV-II-union-anyURI-float-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23000NISTXML-SV-II-union-anyURI-float-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23001NISTXML-SV-II-union-anyURI-float-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23002NISTXML-SV-II-union-anyURI-float-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23003NISTSchema-SV-II-union-anyURI-float-pattern-3 tokoe:valid" result="pass"/><test-case name="23004NISTXML-SV-II-union-anyURI-float-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23005NISTXML-SV-II-union-anyURI-float-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23006NISTXML-SV-II-union-anyURI-float-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23007NISTXML-SV-II-union-anyURI-float-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23008NISTXML-SV-II-union-anyURI-float-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23009NISTSchema-SV-II-union-anyURI-float-pattern-4 tokoe:valid" result="pass"/><test-case name="23010NISTXML-SV-II-union-anyURI-float-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23011NISTXML-SV-II-union-anyURI-float-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23012NISTXML-SV-II-union-anyURI-float-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23013NISTXML-SV-II-union-anyURI-float-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23014NISTXML-SV-II-union-anyURI-float-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23015NISTSchema-SV-II-union-anyURI-float-pattern-5 tokoe:valid" result="pass"/><test-case name="23016NISTXML-SV-II-union-anyURI-float-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23017NISTXML-SV-II-union-anyURI-float-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23018NISTXML-SV-II-union-anyURI-float-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23019NISTXML-SV-II-union-anyURI-float-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23020NISTXML-SV-II-union-anyURI-float-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23021NISTSchema-SV-II-union-anyURI-float-enumeration-1 tokoe:valid" result="pass"/><test-case name="23022NISTXML-SV-II-union-anyURI-float-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23023NISTXML-SV-II-union-anyURI-float-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23024NISTXML-SV-II-union-anyURI-float-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23025NISTXML-SV-II-union-anyURI-float-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23026NISTXML-SV-II-union-anyURI-float-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23027NISTSchema-SV-II-union-anyURI-float-enumeration-2 tokoe:valid" result="pass"/><test-case name="23028NISTXML-SV-II-union-anyURI-float-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23029NISTXML-SV-II-union-anyURI-float-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23030NISTXML-SV-II-union-anyURI-float-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23031NISTXML-SV-II-union-anyURI-float-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23032NISTXML-SV-II-union-anyURI-float-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23033NISTSchema-SV-II-union-anyURI-float-enumeration-3 tokoe:valid" result="pass"/><test-case name="23034NISTXML-SV-II-union-anyURI-float-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23035NISTXML-SV-II-union-anyURI-float-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23036NISTXML-SV-II-union-anyURI-float-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23037NISTXML-SV-II-union-anyURI-float-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23038NISTXML-SV-II-union-anyURI-float-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23039NISTSchema-SV-II-union-anyURI-float-enumeration-4 tokoe:valid" result="pass"/><test-case name="23040NISTXML-SV-II-union-anyURI-float-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23041NISTXML-SV-II-union-anyURI-float-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23042NISTXML-SV-II-union-anyURI-float-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23043NISTXML-SV-II-union-anyURI-float-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23044NISTXML-SV-II-union-anyURI-float-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23045NISTSchema-SV-II-union-anyURI-float-enumeration-5 tokoe:valid" result="pass"/><test-case name="23046NISTXML-SV-II-union-anyURI-float-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23047NISTXML-SV-II-union-anyURI-float-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23048NISTXML-SV-II-union-anyURI-float-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23049NISTXML-SV-II-union-anyURI-float-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23050NISTXML-SV-II-union-anyURI-float-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23051NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-1 tokoe:valid" result="pass"/><test-case name="23052NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="23053NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="23054NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="23055NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="23056NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="23057NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-2 tokoe:valid" result="pass"/><test-case name="23058NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="23059NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23060NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23061NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23062NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23063NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-3 tokoe:valid" result="pass"/><test-case name="23064NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23065NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23066NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23067NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23068NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23069NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-4 tokoe:valid" result="pass"/><test-case name="23070NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23071NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23072NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23073NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23074NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23075NISTSchema-SV-II-union-gMonthDay-gYearMonth-pattern-5 tokoe:valid" result="pass"/><test-case name="23076NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23077NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23078NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23079NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23080NISTXML-SV-II-union-gMonthDay-gYearMonth-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23081NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-1 tokoe:valid" result="pass"/><test-case name="23082NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23083NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23084NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23085NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23086NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23087NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-2 tokoe:valid" result="pass"/><test-case name="23088NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23089NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23090NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23091NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23092NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23093NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-3 tokoe:valid" result="pass"/><test-case name="23094NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23095NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23096NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23097NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23098NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23099NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-4 tokoe:valid" result="pass"/><test-case name="23100NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23101NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23102NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23103NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23104NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23105NISTSchema-SV-II-union-gMonthDay-gYearMonth-enumeration-5 tokoe:valid" result="pass"/><test-case name="23106NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23107NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23108NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23109NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23110NISTXML-SV-II-union-gMonthDay-gYearMonth-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23111NISTSchema-SV-II-union-short-gYear-pattern-1 tokoe:valid" result="pass"/><test-case name="23112NISTXML-SV-II-union-short-gYear-pattern-1-1 tokoe:invalid" result="pass"/><test-case name="23113NISTXML-SV-II-union-short-gYear-pattern-1-2 tokoe:invalid" result="pass"/><test-case name="23114NISTXML-SV-II-union-short-gYear-pattern-1-3 tokoe:invalid" result="pass"/><test-case name="23115NISTXML-SV-II-union-short-gYear-pattern-1-4 tokoe:invalid" result="pass"/><test-case name="23116NISTXML-SV-II-union-short-gYear-pattern-1-5 tokoe:invalid" result="pass"/><test-case name="23117NISTSchema-SV-II-union-short-gYear-pattern-2 tokoe:valid" result="pass"/><test-case name="23118NISTXML-SV-II-union-short-gYear-pattern-2-1 tokoe:invalid" result="pass"/><test-case name="23119NISTXML-SV-II-union-short-gYear-pattern-2-2 tokoe:invalid" result="pass"/><test-case name="23120NISTXML-SV-II-union-short-gYear-pattern-2-3 tokoe:invalid" result="pass"/><test-case name="23121NISTXML-SV-II-union-short-gYear-pattern-2-4 tokoe:invalid" result="pass"/><test-case name="23122NISTXML-SV-II-union-short-gYear-pattern-2-5 tokoe:invalid" result="pass"/><test-case name="23123NISTSchema-SV-II-union-short-gYear-pattern-3 tokoe:valid" result="pass"/><test-case name="23124NISTXML-SV-II-union-short-gYear-pattern-3-1 tokoe:invalid" result="pass"/><test-case name="23125NISTXML-SV-II-union-short-gYear-pattern-3-2 tokoe:invalid" result="pass"/><test-case name="23126NISTXML-SV-II-union-short-gYear-pattern-3-3 tokoe:invalid" result="pass"/><test-case name="23127NISTXML-SV-II-union-short-gYear-pattern-3-4 tokoe:invalid" result="pass"/><test-case name="23128NISTXML-SV-II-union-short-gYear-pattern-3-5 tokoe:invalid" result="pass"/><test-case name="23129NISTSchema-SV-II-union-short-gYear-pattern-4 tokoe:valid" result="pass"/><test-case name="23130NISTXML-SV-II-union-short-gYear-pattern-4-1 tokoe:invalid" result="pass"/><test-case name="23131NISTXML-SV-II-union-short-gYear-pattern-4-2 tokoe:invalid" result="pass"/><test-case name="23132NISTXML-SV-II-union-short-gYear-pattern-4-3 tokoe:invalid" result="pass"/><test-case name="23133NISTXML-SV-II-union-short-gYear-pattern-4-4 tokoe:invalid" result="pass"/><test-case name="23134NISTXML-SV-II-union-short-gYear-pattern-4-5 tokoe:invalid" result="pass"/><test-case name="23135NISTSchema-SV-II-union-short-gYear-pattern-5 tokoe:valid" result="pass"/><test-case name="23136NISTXML-SV-II-union-short-gYear-pattern-5-1 tokoe:invalid" result="pass"/><test-case name="23137NISTXML-SV-II-union-short-gYear-pattern-5-2 tokoe:invalid" result="pass"/><test-case name="23138NISTXML-SV-II-union-short-gYear-pattern-5-3 tokoe:invalid" result="pass"/><test-case name="23139NISTXML-SV-II-union-short-gYear-pattern-5-4 tokoe:invalid" result="pass"/><test-case name="23140NISTXML-SV-II-union-short-gYear-pattern-5-5 tokoe:invalid" result="pass"/><test-case name="23141NISTSchema-SV-II-union-short-gYear-enumeration-1 tokoe:valid" result="pass"/><test-case name="23142NISTXML-SV-II-union-short-gYear-enumeration-1-1 tokoe:invalid" result="pass"/><test-case name="23143NISTXML-SV-II-union-short-gYear-enumeration-1-2 tokoe:invalid" result="pass"/><test-case name="23144NISTXML-SV-II-union-short-gYear-enumeration-1-3 tokoe:invalid" result="pass"/><test-case name="23145NISTXML-SV-II-union-short-gYear-enumeration-1-4 tokoe:invalid" result="pass"/><test-case name="23146NISTXML-SV-II-union-short-gYear-enumeration-1-5 tokoe:invalid" result="pass"/><test-case name="23147NISTSchema-SV-II-union-short-gYear-enumeration-2 tokoe:valid" result="pass"/><test-case name="23148NISTXML-SV-II-union-short-gYear-enumeration-2-1 tokoe:invalid" result="pass"/><test-case name="23149NISTXML-SV-II-union-short-gYear-enumeration-2-2 tokoe:invalid" result="pass"/><test-case name="23150NISTXML-SV-II-union-short-gYear-enumeration-2-3 tokoe:invalid" result="pass"/><test-case name="23151NISTXML-SV-II-union-short-gYear-enumeration-2-4 tokoe:invalid" result="pass"/><test-case name="23152NISTXML-SV-II-union-short-gYear-enumeration-2-5 tokoe:invalid" result="pass"/><test-case name="23153NISTSchema-SV-II-union-short-gYear-enumeration-3 tokoe:valid" result="pass"/><test-case name="23154NISTXML-SV-II-union-short-gYear-enumeration-3-1 tokoe:invalid" result="pass"/><test-case name="23155NISTXML-SV-II-union-short-gYear-enumeration-3-2 tokoe:invalid" result="pass"/><test-case name="23156NISTXML-SV-II-union-short-gYear-enumeration-3-3 tokoe:invalid" result="pass"/><test-case name="23157NISTXML-SV-II-union-short-gYear-enumeration-3-4 tokoe:invalid" result="pass"/><test-case name="23158NISTXML-SV-II-union-short-gYear-enumeration-3-5 tokoe:invalid" result="pass"/><test-case name="23159NISTSchema-SV-II-union-short-gYear-enumeration-4 tokoe:valid" result="pass"/><test-case name="23160NISTXML-SV-II-union-short-gYear-enumeration-4-1 tokoe:invalid" result="pass"/><test-case name="23161NISTXML-SV-II-union-short-gYear-enumeration-4-2 tokoe:invalid" result="pass"/><test-case name="23162NISTXML-SV-II-union-short-gYear-enumeration-4-3 tokoe:invalid" result="pass"/><test-case name="23163NISTXML-SV-II-union-short-gYear-enumeration-4-4 tokoe:invalid" result="pass"/><test-case name="23164NISTXML-SV-II-union-short-gYear-enumeration-4-5 tokoe:invalid" result="pass"/><test-case name="23165NISTSchema-SV-II-union-short-gYear-enumeration-5 tokoe:valid" result="pass"/><test-case name="23166NISTXML-SV-II-union-short-gYear-enumeration-5-1 tokoe:invalid" result="pass"/><test-case name="23167NISTXML-SV-II-union-short-gYear-enumeration-5-2 tokoe:invalid" result="pass"/><test-case name="23168NISTXML-SV-II-union-short-gYear-enumeration-5-3 tokoe:invalid" result="pass"/><test-case name="23169NISTXML-SV-II-union-short-gYear-enumeration-5-4 tokoe:invalid" result="pass"/><test-case name="23170NISTXML-SV-II-union-short-gYear-enumeration-5-5 tokoe:invalid" result="pass"/><test-case name="23171test tokoe:valid" result="pass"/><test-case name="23172test.1.v tokoe:valid" result="pass"/><test-case name="23173test.2.n tokoe:invalid" result="pass"/><test-case name="23174test tokoe:valid" result="pass"/><test-case name="23175test.1.v tokoe:valid" result="pass"/><test-case name="23176test.2.n tokoe:invalid" result="pass"/><test-case name="23177test.3.n tokoe:invalid" result="pass"/><test-case name="23178test.4.n tokoe:invalid" result="pass"/><test-case name="23179test.5.n tokoe:invalid" result="pass"/><test-case name="23180test tokoe:valid" result="pass"/><test-case name="23181test.1.v tokoe:valid" result="pass"/><test-case name="23182test.2.n tokoe:invalid" result="pass"/><test-case name="23183test.3.n tokoe:invalid" result="pass"/><test-case name="23184test.4.n tokoe:invalid" result="pass"/><test-case name="23185test.5.n tokoe:invalid" result="pass"/><test-case name="23186test tokoe:valid" result="pass"/><test-case name="23187test.1.v tokoe:valid" result="pass"/><test-case name="23188test.2.n tokoe:invalid" result="pass"/><test-case name="23189test.3.n tokoe:invalid" result="pass"/><test-case name="23190test.4.n tokoe:invalid" result="pass"/><test-case name="23191test.5.n tokoe:invalid" result="pass"/><test-case name="23192test tokoe:valid" result="pass"/><test-case name="23193test.1.v tokoe:valid" result="pass"/><test-case name="23194test.2.n tokoe:invalid" result="pass"/><test-case name="23195test.3.n tokoe:invalid" result="pass"/><test-case name="23196test.4.n tokoe:invalid" result="pass"/><test-case name="23197test.5.n tokoe:invalid" result="pass"/><test-case name="23198test tokoe:valid" result="pass"/><test-case name="23199test.1.v tokoe:valid" result="pass"/><test-case name="23200test.10.n tokoe:invalid" result="pass"/><test-case name="23201test.11.n tokoe:invalid" result="pass"/><test-case name="23202test.12.n tokoe:invalid" result="pass"/><test-case name="23203test.13.n tokoe:invalid" result="pass"/><test-case name="23204test.14.n tokoe:invalid" result="pass"/><test-case name="23205test.15.n tokoe:invalid" result="pass"/><test-case name="23206test.16.n tokoe:invalid" result="pass"/><test-case name="23207test.17.n tokoe:invalid" result="pass"/><test-case name="23208test.18.n tokoe:invalid" result="pass"/><test-case name="23209test.19.n tokoe:invalid" result="pass"/><test-case name="23210test.2.v tokoe:valid" result="pass"/><test-case name="23211test.20.n tokoe:invalid" result="pass"/><test-case name="23212test.21.n tokoe:invalid" result="pass"/><test-case name="23213test.22.n tokoe:invalid" result="pass"/><test-case name="23214test.23.n tokoe:invalid" result="pass"/><test-case name="23215test.24.n tokoe:invalid" result="pass"/><test-case name="23216test.25.n tokoe:invalid" result="pass"/><test-case name="23217test.26.n tokoe:invalid" result="pass"/><test-case name="23218test.27.n tokoe:invalid" result="pass"/><test-case name="23219test.28.n tokoe:invalid" result="pass"/><test-case name="23220test.29.n tokoe:invalid" result="pass"/><test-case name="23221test.3.n tokoe:invalid" result="pass"/><test-case name="23222test.30.n tokoe:invalid" result="pass"/><test-case name="23223test.31.n tokoe:invalid" result="pass"/><test-case name="23224test.32.n tokoe:invalid" result="pass"/><test-case name="23225test.33.n tokoe:invalid" result="pass"/><test-case name="23226test.34.n tokoe:invalid" result="pass"/><test-case name="23227test.4.n tokoe:invalid" result="pass"/><test-case name="23228test.5.n tokoe:invalid" result="pass"/><test-case name="23229test.6.n tokoe:invalid" result="pass"/><test-case name="23230test.7.n tokoe:invalid" result="pass"/><test-case name="23231test.8.n tokoe:invalid" result="pass"/><test-case name="23232test.9.n tokoe:invalid" result="pass"/><test-case name="23233test tokoe:valid" result="pass"/><test-case name="23234test.1.v tokoe:valid" result="pass"/><test-case name="23235test.6.v tokoe:valid" result="pass"/><test-case name="23236test.2.n tokoe:invalid" result="pass"/><test-case name="23237test.3.n tokoe:invalid" result="pass"/><test-case name="23238test.4.n tokoe:invalid" result="pass"/><test-case name="23239test.5.n tokoe:invalid" result="pass"/><test-case name="23240test.7.n tokoe:invalid" result="pass"/><test-case name="23241test.8.n tokoe:invalid" result="pass"/><test-case name="23242test tokoe:valid" result="pass"/><test-case name="23243test.1.n tokoe:invalid" result="pass"/><test-case name="23244test.10.n tokoe:invalid" result="pass"/><test-case name="23245test.11.n tokoe:invalid" result="pass"/><test-case name="23246test.12.n tokoe:invalid" result="pass"/><test-case name="23247test.5.n tokoe:invalid" result="pass"/><test-case name="23248test.7.n tokoe:invalid" result="pass"/><test-case name="23249test.8.n tokoe:invalid" result="pass"/><test-case name="23250test.9.n tokoe:invalid" result="pass"/><test-case name="23251test.2.v tokoe:valid" result="pass"/><test-case name="23252test.3.v tokoe:valid" result="pass"/><test-case name="23253test.4.v tokoe:valid" result="pass"/><test-case name="23254test.6.v tokoe:valid" result="pass"/><test-case name="23255test tokoe:valid" result="pass"/><test-case name="23256test.13.n tokoe:invalid" result="pass"/><test-case name="23257test.8.n tokoe:invalid" result="pass"/><test-case name="23258test.1.v tokoe:valid" result="pass"/><test-case name="23259test.10.v tokoe:valid" result="pass"/><test-case name="23260test.11.v tokoe:valid" result="pass"/><test-case name="23261test.12.v tokoe:valid" result="pass"/><test-case name="23262test.2.v tokoe:valid" result="pass"/><test-case name="23263test.3.v tokoe:valid" result="pass"/><test-case name="23264test.4.v tokoe:valid" result="pass"/><test-case name="23265test.5.v tokoe:valid" result="pass"/><test-case name="23266test.6.v tokoe:valid" result="pass"/><test-case name="23267test.7.v tokoe:valid" result="pass"/><test-case name="23268test.9.v tokoe:valid" result="pass"/><test-case name="23269test tokoe:valid" result="pass"/><test-case name="23270test.1.v tokoe:valid" result="pass"/><test-case name="23271test.2.n tokoe:invalid" result="pass"/><test-case name="23272test tokoe:valid" result="pass"/><test-case name="23273test.1.v tokoe:valid" result="pass"/><test-case name="23274test.2.v tokoe:valid" result="pass"/><test-case name="23275test.3.n tokoe:invalid" result="pass"/><test-case name="23276test tokoe:valid" result="pass"/><test-case name="23277test.1.v tokoe:valid" result="pass"/><test-case name="23278test.2.v tokoe:valid" result="pass"/><test-case name="23279test.3.n tokoe:invalid" result="pass"/><test-case name="23280test tokoe:valid" result="pass"/><test-case name="23281test.1.v tokoe:valid" result="pass"/><test-case name="23282test.2.n tokoe:invalid" result="pass"/><test-case name="23283test.3.n tokoe:invalid" result="pass"/><test-case name="23284idc001.nogen tokoe:valid" result="pass"/><test-case name="23285idc001.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23286idc001.nogen.v00 tokoe:valid" result="pass"/><test-case name="23287idc001.nogen.v01 tokoe:valid" result="pass"/><test-case name="23288idc002.e tokoe:invalid" result="pass"/><test-case name="23289idc002b.e tokoe:invalid" result="pass"/><test-case name="23290idc003.e tokoe:invalid" result="pass"/><test-case name="23291idc004.nogen tokoe:valid" result="pass"/><test-case name="23292idc004.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23293idc004.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23294idc004.nogen.n02 tokoe:invalid" result="pass"/><test-case name="23295idc004.nogen.n03 tokoe:invalid" result="pass"/><test-case name="23296idc004.nogen.v00 tokoe:valid" result="pass"/><test-case name="23297idc004a.e tokoe:invalid" result="pass"/><test-case name="23298idc005.nogen tokoe:valid" result="pass"/><test-case name="23299idc005.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23300idc005.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23301idc005.nogen.v00 tokoe:valid" result="pass"/><test-case name="23302idc006.nogen tokoe:valid" result="pass"/><test-case name="23303idc006.nogen.n00 tokoe:invalid" result="pass"/><test-case name="23304idc006.nogen.n01 tokoe:invalid" result="pass"/><test-case name="23305idc006.nogen.v00 tokoe:valid" result="pass"/><test-case name="23306xsd001 tokoe:valid" result="pass"/><test-case name="23307xsd001.n00 tokoe:invalid" result="pass"/><test-case name="23308xsd001.n01 tokoe:invalid" result="pass"/><test-case name="23309xsd001.n02 tokoe:invalid" result="pass"/><test-case name="23310xsd001.n03 tokoe:invalid" result="pass"/><test-case name="23311xsd001.n04 tokoe:invalid" result="pass"/><test-case name="23312xsd001.n05 tokoe:invalid" result="pass"/><test-case name="23313xsd001.n06 tokoe:invalid" result="pass"/><test-case name="23314xsd001.n07 tokoe:invalid" result="pass"/><test-case name="23315xsd001.v00 tokoe:valid" result="pass"/><test-case name="23316xsd001.v01 tokoe:valid" result="pass"/><test-case name="23317xsd001.v02 tokoe:valid" result="pass"/><test-case name="23318xsd001.v03 tokoe:valid" result="pass"/><test-case name="23319xsd002 tokoe:valid" result="pass"/><test-case name="23320xsd002.n00 tokoe:invalid" result="pass"/><test-case name="23321xsd002.n01 tokoe:invalid" result="pass"/><test-case name="23322xsd002.n02 tokoe:invalid" result="pass"/><test-case name="23323xsd002.v00 tokoe:valid" result="pass"/><test-case name="23324xsd002.v01 tokoe:valid" result="pass"/><test-case name="23325xsd003-1.e tokoe:invalid" result="pass"/><test-case name="23326xsd003-2.e tokoe:invalid" result="pass"/><test-case name="23327xsd003a tokoe:valid" result="pass"/><test-case name="23328xsd003a.v00 tokoe:valid" result="pass"/><test-case name="23329xsd003b.e tokoe:invalid" result="pass"/><test-case name="23330xsd003b tokoe:valid" result="pass"/><test-case name="23331xsd003b.n00 tokoe:invalid" result="pass"/><test-case name="23332xsd003b.n01 tokoe:invalid" result="pass"/><test-case name="23333xsd003b.v00 tokoe:valid" result="pass"/><test-case name="23334xsd003b.v01 tokoe:valid" result="pass"/><test-case name="23335xsd004 tokoe:valid" result="pass"/><test-case name="23336xsd004.n00 tokoe:invalid" result="pass"/><test-case name="23337xsd004.n01 tokoe:invalid" result="pass"/><test-case name="23338xsd004.n02 tokoe:invalid" result="pass"/><test-case name="23339xsd004.n03 tokoe:invalid" result="pass"/><test-case name="23340xsd004.n04 tokoe:invalid" result="pass"/><test-case name="23341xsd004.n05 tokoe:invalid" result="pass"/><test-case name="23342xsd004.n06 tokoe:invalid" result="pass"/><test-case name="23343xsd004.n07 tokoe:invalid" result="pass"/><test-case name="23344xsd004.n08 tokoe:invalid" result="pass"/><test-case name="23345xsd004.n09 tokoe:invalid" result="pass"/><test-case name="23346xsd004.n10 tokoe:invalid" result="pass"/><test-case name="23347xsd004.n11 tokoe:invalid" result="pass"/><test-case name="23348xsd004.n12 tokoe:invalid" result="pass"/><test-case name="23349xsd004.v00 tokoe:valid" result="pass"/><test-case name="23350xsd005 tokoe:valid" result="pass"/><test-case name="23351xsd005.n00 tokoe:invalid" result="pass"/><test-case name="23352xsd005.n01 tokoe:invalid" result="pass"/><test-case name="23353xsd005.n02 tokoe:invalid" result="pass"/><test-case name="23354xsd005.n03 tokoe:invalid" result="pass"/><test-case name="23355xsd005.n04 tokoe:invalid" result="pass"/><test-case name="23356xsd005.n05 tokoe:invalid" result="pass"/><test-case name="23357xsd005.n06 tokoe:invalid" result="pass"/><test-case name="23358xsd005.v00 tokoe:valid" result="pass"/><test-case name="23359xsd006 tokoe:valid" result="pass"/><test-case name="23360xsd006.n00 tokoe:invalid" result="pass"/><test-case name="23361xsd006.n01 tokoe:invalid" result="pass"/><test-case name="23362xsd006.n02 tokoe:invalid" result="pass"/><test-case name="23363xsd006.n03 tokoe:invalid" result="pass"/><test-case name="23364xsd006.n04 tokoe:invalid" result="pass"/><test-case name="23365xsd006.n05 tokoe:invalid" result="pass"/><test-case name="23366xsd006.n06 tokoe:invalid" result="pass"/><test-case name="23367xsd006.n07 tokoe:invalid" result="pass"/><test-case name="23368xsd006.n08 tokoe:invalid" result="pass"/><test-case name="23369xsd006.n09 tokoe:invalid" result="pass"/><test-case name="23370xsd006.n10 tokoe:invalid" result="pass"/><test-case name="23371xsd006.n11 tokoe:invalid" result="pass"/><test-case name="23372xsd006.v00 tokoe:valid" result="pass"/><test-case name="23373xsd007.e tokoe:invalid" result="pass"/><test-case name="23374xsd008 tokoe:valid" result="pass"/><test-case name="23375xsd008.n00 tokoe:invalid" result="pass"/><test-case name="23376xsd008.n01 tokoe:invalid" result="pass"/><test-case name="23377xsd008.n02 tokoe:invalid" result="pass"/><test-case name="23378xsd008.v00 tokoe:valid" result="pass"/><test-case name="23379xsd009.e tokoe:invalid" result="pass"/><test-case name="23380xsd010.e tokoe:invalid" result="pass"/><test-case name="23381xsd011 tokoe:valid" result="pass"/><test-case name="23382xsd011.n00 tokoe:invalid" result="pass"/><test-case name="23383xsd011.n01 tokoe:invalid" result="pass"/><test-case name="23384xsd011.n02 tokoe:invalid" result="pass"/><test-case name="23385xsd011.n03 tokoe:invalid" result="pass"/><test-case name="23386xsd011.n04 tokoe:invalid" result="pass"/><test-case name="23387xsd011.v00 tokoe:valid" result="pass"/><test-case name="23388xsd012 tokoe:valid" result="pass"/><test-case name="23389xsd012.n00 tokoe:invalid" result="pass"/><test-case name="23390xsd012.v00 tokoe:valid" result="pass"/><test-case name="23391xsd013.e tokoe:invalid" result="pass"/><test-case name="23392xsd014.e tokoe:invalid" result="pass"/><test-case name="23393xsd015.e tokoe:invalid" result="pass"/><test-case name="23394xsd016.e tokoe:invalid" result="pass"/><test-case name="23395xsd017.e tokoe:invalid" result="pass"/><test-case name="23396xsd018.e tokoe:invalid" result="pass"/><test-case name="23397xsd019.e tokoe:invalid" result="pass"/><test-case name="23398xsd020-2.e tokoe:invalid" result="pass"/><test-case name="23399xsd020-3.e tokoe:invalid" result="pass"/><test-case name="23400xsd020-4.e tokoe:invalid" result="pass"/><test-case name="23401xsd020.e tokoe:invalid" result="pass"/><test-case name="23402xsd021 tokoe:valid" result="pass"/><test-case name="23403xsd021.n00 tokoe:invalid" result="pass"/><test-case name="23404xsd021.n01 tokoe:invalid" result="pass"/><test-case name="23405xsd021.n02 tokoe:invalid" result="pass"/><test-case name="23406xsd021.n03 tokoe:invalid" result="pass"/><test-case name="23407xsd021.n04 tokoe:invalid" result="pass"/><test-case name="23408xsd021.n05 tokoe:invalid" result="pass"/><test-case name="23409xsd021.n06 tokoe:invalid" result="pass"/><test-case name="23410xsd021.n07 tokoe:invalid" result="pass"/><test-case name="23411xsd021.n08 tokoe:invalid" result="pass"/><test-case name="23412xsd021.n09 tokoe:invalid" result="pass"/><test-case name="23413xsd021.n10 tokoe:invalid" result="pass"/><test-case name="23414xsd021.n11 tokoe:invalid" result="pass"/><test-case name="23415xsd021.v00 tokoe:valid" result="pass"/><test-case name="23416xsd022 tokoe:valid" result="pass"/><test-case name="23417xsd022.n00 tokoe:invalid" result="pass"/><test-case name="23418xsd022.v00 tokoe:valid" result="pass"/><test-case name="23419xsd023.e tokoe:invalid" result="pass"/><test-case name="23420xsd024 tokoe:valid" result="pass"/><test-case name="23421xsd024.v00 tokoe:valid" result="pass"/><test-case name="23422AG_attrUseNS00101m1_p tokoe:valid" result="pass"/><test-case name="23423Positive tokoe:valid" result="pass"/><test-case name="23424AG_attrUseNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23425AG_attrWCard00101m1 tokoe:valid" result="pass"/><test-case name="23426Positive tokoe:valid" result="pass"/><test-case name="23427AG_name00101m1_p tokoe:valid" result="pass"/><test-case name="23428Positive tokoe:valid" result="pass"/><test-case name="23429AG_name00101m1_n tokoe:invalid" result="pass"/><test-case name="23430AG_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23431Positive tokoe:valid" result="pass"/><test-case name="23432AG_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23433annotation00101m1 tokoe:valid" result="pass"/><test-case name="23434Positive tokoe:valid" result="pass"/><test-case name="23435annotation00101m2 tokoe:invalid" result="pass"/><test-case name="23436annotation00101m3 tokoe:invalid" result="pass"/><test-case name="23437annotation00101m4 tokoe:valid" result="pass"/><test-case name="23438Positive tokoe:valid" result="pass"/><test-case name="23439annotation00101m5 tokoe:invalid" result="pass"/><test-case name="23440annotation00101m6 tokoe:invalid" result="pass"/><test-case name="23441AD_annotation00101m1 tokoe:valid" result="pass"/><test-case name="23442Positive tokoe:valid" result="pass"/><test-case name="23443AD_annotation00101m2 tokoe:valid" result="pass"/><test-case name="23444Positive tokoe:valid" result="pass"/><test-case name="23445AD_name00101m1 tokoe:valid" result="pass"/><test-case name="23446Positive tokoe:valid" result="pass"/><test-case name="23447Negative tokoe:invalid" result="pass"/><test-case name="23448AD_name00101m2 tokoe:valid" result="pass"/><test-case name="23449Positive tokoe:valid" result="pass"/><test-case name="23450Negative tokoe:invalid" result="pass"/><test-case name="23451AD_name00101m3 tokoe:valid" result="pass"/><test-case name="23452Positive tokoe:valid" result="pass"/><test-case name="23453Negative tokoe:invalid" result="pass"/><test-case name="23454AD_name00101m4 tokoe:valid" result="pass"/><test-case name="23455Positive tokoe:valid" result="pass"/><test-case name="23456Negative tokoe:invalid" result="pass"/><test-case name="23457AD_name00102m1 tokoe:valid" result="pass"/><test-case name="23458Positive tokoe:valid" result="pass"/><test-case name="23459AD_name00103m1 tokoe:valid" result="pass"/><test-case name="23460Positive tokoe:valid" result="pass"/><test-case name="23461AD_name00103m2 tokoe:valid" result="pass"/><test-case name="23462Positive tokoe:valid" result="pass"/><test-case name="23463AD_name00104m1 tokoe:valid" result="pass"/><test-case name="23464Positive tokoe:valid" result="pass"/><test-case name="23465AD_name00104m10 tokoe:valid" result="pass"/><test-case name="23466Positive tokoe:valid" result="pass"/><test-case name="23467AD_name00104m11 tokoe:valid" result="pass"/><test-case name="23468Positive tokoe:valid" result="pass"/><test-case name="23469AD_name00104m12 tokoe:valid" result="pass"/><test-case name="23470Positive tokoe:valid" result="pass"/><test-case name="23471AD_name00104m13 tokoe:valid" result="pass"/><test-case name="23472Positive tokoe:valid" result="pass"/><test-case name="23473AD_name00104m14 tokoe:valid" result="pass"/><test-case name="23474Positive tokoe:valid" result="pass"/><test-case name="23475AD_name00104m15 tokoe:valid" result="pass"/><test-case name="23476Positive tokoe:valid" result="pass"/><test-case name="23477AD_name00104m16 tokoe:valid" result="pass"/><test-case name="23478Positive tokoe:valid" result="pass"/><test-case name="23479AD_name00104m17 tokoe:valid" result="pass"/><test-case name="23480Positive tokoe:valid" result="pass"/><test-case name="23481AD_name00104m18 tokoe:valid" result="pass"/><test-case name="23482Positive tokoe:valid" result="pass"/><test-case name="23483AD_name00104m19 tokoe:valid" result="pass"/><test-case name="23484Positive tokoe:valid" result="pass"/><test-case name="23485AD_name00104m2 tokoe:valid" result="pass"/><test-case name="23486Positive tokoe:valid" result="pass"/><test-case name="23487AD_name00104m20 tokoe:valid" result="pass"/><test-case name="23488Positive tokoe:valid" result="pass"/><test-case name="23489AD_name00104m21 tokoe:valid" result="pass"/><test-case name="23490Positive tokoe:valid" result="pass"/><test-case name="23491AD_name00104m3 tokoe:valid" result="pass"/><test-case name="23492Positive tokoe:valid" result="pass"/><test-case name="23493AD_name00104m4 tokoe:valid" result="pass"/><test-case name="23494Positive tokoe:valid" result="pass"/><test-case name="23495AD_name00104m5 tokoe:valid" result="pass"/><test-case name="23496Positive tokoe:valid" result="pass"/><test-case name="23497AD_name00104m6 tokoe:valid" result="pass"/><test-case name="23498Positive tokoe:valid" result="pass"/><test-case name="23499AD_name00104m7 tokoe:valid" result="pass"/><test-case name="23500Positive tokoe:valid" result="pass"/><test-case name="23501AD_name00104m8 tokoe:valid" result="pass"/><test-case name="23502Positive tokoe:valid" result="pass"/><test-case name="23503AD_name00104m9 tokoe:valid" result="pass"/><test-case name="23504Positive tokoe:valid" result="pass"/><test-case name="23505AD_name00105m1 tokoe:valid" result="pass"/><test-case name="23506Positive tokoe:valid" result="pass"/><test-case name="23507AD_name00106m1 tokoe:valid" result="pass"/><test-case name="23508Positive tokoe:valid" result="pass"/><test-case name="23509AD_name00107m1 tokoe:valid" result="pass"/><test-case name="23510Positive tokoe:valid" result="pass"/><test-case name="23511AD_name00108m1 tokoe:valid" result="pass"/><test-case name="23512Positive tokoe:valid" result="pass"/><test-case name="23513AD_name00108m10 tokoe:valid" result="pass"/><test-case name="23514Positive tokoe:valid" result="pass"/><test-case name="23515AD_name00108m11 tokoe:valid" result="pass"/><test-case name="23516Positive tokoe:valid" result="pass"/><test-case name="23517AD_name00108m12 tokoe:valid" result="pass"/><test-case name="23518Positive tokoe:valid" result="pass"/><test-case name="23519AD_name00108m13 tokoe:valid" result="pass"/><test-case name="23520Positive tokoe:valid" result="pass"/><test-case name="23521AD_name00108m14 tokoe:valid" result="pass"/><test-case name="23522Positive tokoe:valid" result="pass"/><test-case name="23523AD_name00108m15 tokoe:valid" result="pass"/><test-case name="23524Positive tokoe:valid" result="pass"/><test-case name="23525AD_name00108m16 tokoe:valid" result="pass"/><test-case name="23526Positive tokoe:valid" result="pass"/><test-case name="23527AD_name00108m17 tokoe:valid" result="pass"/><test-case name="23528Positive tokoe:valid" result="pass"/><test-case name="23529AD_name00108m18 tokoe:valid" result="pass"/><test-case name="23530Positive tokoe:valid" result="pass"/><test-case name="23531AD_name00108m19 tokoe:valid" result="pass"/><test-case name="23532Positive tokoe:valid" result="pass"/><test-case name="23533AD_name00108m2 tokoe:valid" result="pass"/><test-case name="23534Positive tokoe:valid" result="pass"/><test-case name="23535AD_name00108m20 tokoe:valid" result="pass"/><test-case name="23536Positive tokoe:valid" result="pass"/><test-case name="23537AD_name00108m21 tokoe:valid" result="pass"/><test-case name="23538Positive tokoe:valid" result="pass"/><test-case name="23539AD_name00108m3 tokoe:valid" result="pass"/><test-case name="23540Positive tokoe:valid" result="pass"/><test-case name="23541AD_name00108m4 tokoe:valid" result="pass"/><test-case name="23542Positive tokoe:valid" result="pass"/><test-case name="23543AD_name00108m5 tokoe:valid" result="pass"/><test-case name="23544Positive tokoe:valid" result="pass"/><test-case name="23545AD_name00108m6 tokoe:valid" result="pass"/><test-case name="23546Positive tokoe:valid" result="pass"/><test-case name="23547AD_name00108m7 tokoe:valid" result="pass"/><test-case name="23548Positive tokoe:valid" result="pass"/><test-case name="23549AD_name00108m8 tokoe:valid" result="pass"/><test-case name="23550Positive tokoe:valid" result="pass"/><test-case name="23551AD_name00108m9 tokoe:valid" result="pass"/><test-case name="23552Positive tokoe:valid" result="pass"/><test-case name="23553AD_name00109m1 tokoe:valid" result="pass"/><test-case name="23554Positive tokoe:valid" result="pass"/><test-case name="23555AD_name00109m2 tokoe:valid" result="pass"/><test-case name="23556Positive tokoe:valid" result="pass"/><test-case name="23557AD_name00110m1 tokoe:valid" result="pass"/><test-case name="23558Positive tokoe:valid" result="pass"/><test-case name="23559AD_name00110m10 tokoe:valid" result="pass"/><test-case name="23560Positive tokoe:valid" result="pass"/><test-case name="23561AD_name00110m2 tokoe:valid" result="pass"/><test-case name="23562Positive tokoe:valid" result="pass"/><test-case name="23563AD_name00110m3 tokoe:valid" result="pass"/><test-case name="23564Positive tokoe:valid" result="pass"/><test-case name="23565AD_name00110m4 tokoe:valid" result="pass"/><test-case name="23566Positive tokoe:valid" result="pass"/><test-case name="23567AD_name00110m5 tokoe:valid" result="pass"/><test-case name="23568Positive tokoe:valid" result="pass"/><test-case name="23569AD_name00110m6 tokoe:valid" result="pass"/><test-case name="23570Positive tokoe:valid" result="pass"/><test-case name="23571AD_name00110m7 tokoe:valid" result="pass"/><test-case name="23572Positive tokoe:valid" result="pass"/><test-case name="23573AD_name00110m8 tokoe:valid" result="pass"/><test-case name="23574Positive tokoe:valid" result="pass"/><test-case name="23575AD_name00110m9 tokoe:valid" result="pass"/><test-case name="23576Positive tokoe:valid" result="pass"/><test-case name="23577AD_name00111 tokoe:valid" result="pass"/><test-case name="23578AD_name00111_p tokoe:valid" result="pass"/><test-case name="23579AD_name00112 tokoe:valid" result="pass"/><test-case name="23580AD_name00112_p tokoe:valid" result="pass"/><test-case name="23581AD_name00113 tokoe:valid" result="pass"/><test-case name="23582AD_name00113_p tokoe:valid" result="pass"/><test-case name="23583AD_name00114 tokoe:valid" result="pass"/><test-case name="23584AD_name00114_p tokoe:valid" result="pass"/><test-case name="23585AD_name00115 tokoe:valid" result="pass"/><test-case name="23586AD_name00115_p tokoe:valid" result="pass"/><test-case name="23587AD_name00118 tokoe:valid" result="pass"/><test-case name="23588AD_name00118_p tokoe:valid" result="pass"/><test-case name="23589AD_scope00101m1 tokoe:valid" result="pass"/><test-case name="23590Positive tokoe:valid" result="pass"/><test-case name="23591AD_scope00101m2 tokoe:invalid" result="pass"/><test-case name="23592AD_targetNS00101m tokoe:valid" result="pass"/><test-case name="23593AD_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23594AD_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23595AD_targetNS00101m2_n tokoe:invalid" result="pass"/><test-case name="23596AD_targetNS00101m3_p tokoe:valid" result="pass"/><test-case name="23597AD_targetNS00101m3_n tokoe:invalid" result="pass"/><test-case name="23598AD_type00101m tokoe:valid" result="pass"/><test-case name="23599AD_type00101m1_p tokoe:valid" result="pass"/><test-case name="23600AD_type00101m1_n tokoe:invalid" result="pass"/><test-case name="23601AD_type00101m2_p tokoe:valid" result="pass"/><test-case name="23602AD_type00101m2_n tokoe:invalid" result="pass"/><test-case name="23603AD_type00102m tokoe:valid" result="pass"/><test-case name="23604AD_type00102m1_p tokoe:valid" result="pass"/><test-case name="23605AD_type00102m1_n tokoe:invalid" result="pass"/><test-case name="23606AD_type00102m2_p tokoe:valid" result="pass"/><test-case name="23607AD_type00102m2_n tokoe:invalid" result="pass"/><test-case name="23608AD_valConstr00101m tokoe:valid" result="pass"/><test-case name="23609AD_valConstr00101m1_p tokoe:valid" result="pass"/><test-case name="23610AD_valConstr00101m1_n tokoe:invalid" result="pass"/><test-case name="23611AD_valConstr00101m2_p tokoe:valid" result="pass"/><test-case name="23612AD_valConstr00101m2_n tokoe:invalid" result="pass"/><test-case name="23613AD_valConstr00201m1 tokoe:invalid" result="pass"/><test-case name="23614AD_valConstr00201m2 tokoe:invalid" result="pass"/><test-case name="23615AD_valConstr00201m3 tokoe:valid" result="pass"/><test-case name="23616Positive tokoe:valid" result="pass"/><test-case name="23617AD_valConstr00201m4 tokoe:invalid" result="pass"/><test-case name="23618AD_valConstr00201m5 tokoe:invalid" result="pass"/><test-case name="23619AU_attrDecl00101m1_p tokoe:valid" result="pass"/><test-case name="23620Positive tokoe:valid" result="pass"/><test-case name="23621AU_attrDecl00101m1_n tokoe:invalid" result="pass"/><test-case name="23622AU_required00101m1 tokoe:valid" result="pass"/><test-case name="23623Positive tokoe:valid" result="pass"/><test-case name="23624Negative tokoe:invalid" result="pass"/><test-case name="23625AU_valConstr00101m1 tokoe:valid" result="pass"/><test-case name="23626Positive tokoe:valid" result="pass"/><test-case name="23627Negative tokoe:invalid" result="pass"/><test-case name="23628abstract00101m1 tokoe:valid" result="pass"/><test-case name="23629Positive tokoe:valid" result="pass"/><test-case name="23630Negative tokoe:invalid" result="pass"/><test-case name="23631abstract00101m2 tokoe:valid" result="pass"/><test-case name="23632Negative tokoe:invalid" result="pass"/><test-case name="23633annotation00101m1 tokoe:valid" result="pass"/><test-case name="23634Positive tokoe:valid" result="pass"/><test-case name="23635annotation00101m2 tokoe:valid" result="pass"/><test-case name="23636Positive tokoe:valid" result="pass"/><test-case name="23637annotation00101m3 tokoe:invalid" result="pass"/><test-case name="23638annotation00101m4 tokoe:invalid" result="pass"/><test-case name="23639attrWildcard00101m1 tokoe:valid" result="pass"/><test-case name="23640Positive tokoe:valid" result="pass"/><test-case name="23641attributeUses00101m1 tokoe:valid" result="pass"/><test-case name="23642Positive tokoe:valid" result="pass"/><test-case name="23643Negative tokoe:invalid" result="pass"/><test-case name="23644baseTD00101m1 tokoe:valid" result="pass"/><test-case name="23645Positive tokoe:valid" result="pass"/><test-case name="23646Negative tokoe:invalid" result="pass"/><test-case name="23647baseTD00101m2 tokoe:valid" result="pass"/><test-case name="23648Positive tokoe:valid" result="pass"/><test-case name="23649Negative tokoe:invalid" result="pass"/><test-case name="23650baseTD00101m3 tokoe:valid" result="pass"/><test-case name="23651Positive tokoe:valid" result="pass"/><test-case name="23652Negative tokoe:invalid" result="pass"/><test-case name="23653baseTD00101m4 tokoe:valid" result="pass"/><test-case name="23654Positive tokoe:valid" result="pass"/><test-case name="23655Negative tokoe:invalid" result="pass"/><test-case name="23656contentType00101m tokoe:valid" result="pass"/><test-case name="23657contentType00101m1_p tokoe:valid" result="pass"/><test-case name="23658contentType00101m1_n tokoe:invalid" result="pass"/><test-case name="23659contentType00201m tokoe:valid" result="pass"/><test-case name="23660contentType00201m1_p tokoe:valid" result="pass"/><test-case name="23661contentType00201m1_n tokoe:invalid" result="pass"/><test-case name="23662contentType00301m tokoe:valid" result="pass"/><test-case name="23663contentType00301m1_p tokoe:valid" result="pass"/><test-case name="23664contentType00301m1_n tokoe:invalid" result="pass"/><test-case name="23665contentType00401m tokoe:valid" result="pass"/><test-case name="23666contentType00401m1_p tokoe:valid" result="pass"/><test-case name="23667contentType00401m1_n tokoe:invalid" result="pass"/><test-case name="23668derivationMethod00101m1 tokoe:valid" result="pass"/><test-case name="23669Positive tokoe:valid" result="pass"/><test-case name="23670Negative tokoe:invalid" result="pass"/><test-case name="23671derivationMethod00101m2 tokoe:valid" result="pass"/><test-case name="23672Positive tokoe:valid" result="pass"/><test-case name="23673Negative tokoe:invalid" result="pass"/><test-case name="23674derivationMethod00102m1 tokoe:valid" result="pass"/><test-case name="23675Positive tokoe:valid" result="pass"/><test-case name="23676Negative tokoe:invalid" result="pass"/><test-case name="23677derivationMethod00102m2 tokoe:valid" result="pass"/><test-case name="23678Positive tokoe:valid" result="pass"/><test-case name="23679Negative tokoe:invalid" result="pass"/><test-case name="23680final00101m2 tokoe:invalid" result="pass"/><test-case name="23681final00101m3 tokoe:valid" result="pass"/><test-case name="23682Positive tokoe:valid" result="pass"/><test-case name="23683Negative tokoe:invalid" result="pass"/><test-case name="23684final00101m4 tokoe:invalid" result="pass"/><test-case name="23685final00101m5 tokoe:invalid" result="pass"/><test-case name="23686final00101m6 tokoe:invalid" result="pass"/><test-case name="23687name00101m tokoe:valid" result="pass"/><test-case name="23688name00101m1_p tokoe:valid" result="pass"/><test-case name="23689name00101m1_n tokoe:invalid" result="pass"/><test-case name="23690pSubstitutions00101m tokoe:valid" result="pass"/><test-case name="23691pSubstitutions00101m1_p tokoe:valid" result="pass"/><test-case name="23692pSubstitutions00101m1_n tokoe:invalid" result="pass"/><test-case name="23693pSubstitutions00101m2_p tokoe:valid" result="pass"/><test-case name="23694pSubstitutions00101m2_n tokoe:invalid" result="pass"/><test-case name="23695pSubstitutions00102m tokoe:valid" result="pass"/><test-case name="23696pSubstitutions00102m1_p tokoe:valid" result="pass"/><test-case name="23697pSubstitutions00102m1_n tokoe:invalid" result="pass"/><test-case name="23698pSubstitutions00102m2_p tokoe:valid" result="pass"/><test-case name="23699pSubstitutions00102m2_n tokoe:invalid" result="pass"/><test-case name="23700pSubstitutions00103m tokoe:valid" result="pass"/><test-case name="23701pSubstitutions00103m1_p tokoe:valid" result="pass"/><test-case name="23702pSubstitutions00103m1_n tokoe:invalid" result="pass"/><test-case name="23703pSubstitutions00103m2_p tokoe:valid" result="pass"/><test-case name="23704pSubstitutions00103m2_n tokoe:invalid" result="pass"/><test-case name="23705pSubstitutions00104m tokoe:valid" result="pass"/><test-case name="23706pSubstitutions00104m1_p tokoe:valid" result="pass"/><test-case name="23707pSubstitutions00104m1_n tokoe:invalid" result="pass"/><test-case name="23708pSubstitutions00104m2_p tokoe:valid" result="pass"/><test-case name="23709pSubstitutions00104m2_n tokoe:invalid" result="pass"/><test-case name="23710targetNS00101m tokoe:valid" result="pass"/><test-case name="23711targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23712targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="23713abstract00101m tokoe:valid" result="pass"/><test-case name="23714abstract00101m1_p tokoe:valid" result="pass"/><test-case name="23715abstract00101m1_n tokoe:invalid" result="pass"/><test-case name="23716abstract00201m1 tokoe:valid" result="pass"/><test-case name="23717Negative tokoe:invalid" result="pass"/><test-case name="23718abstract00201m2 tokoe:valid" result="pass"/><test-case name="23719Positive tokoe:valid" result="pass"/><test-case name="23720abstract00201m3 tokoe:valid" result="pass"/><test-case name="23721Positive tokoe:valid" result="pass"/><test-case name="23722annotation00101m1 tokoe:valid" result="pass"/><test-case name="23723Positive tokoe:valid" result="pass"/><test-case name="23724annotation00101m2 tokoe:invalid" result="pass"/><test-case name="23725annotation00101m3 tokoe:valid" result="pass"/><test-case name="23726Positive tokoe:valid" result="pass"/><test-case name="23727annotation00101m4 tokoe:invalid" result="pass"/><test-case name="23728disallowedSubst00101m tokoe:valid" result="pass"/><test-case name="23729disallowedSubst00101m1_p tokoe:valid" result="pass"/><test-case name="23730disallowedSubst00101m1_n tokoe:invalid" result="pass"/><test-case name="23731disallowedSubst00102m1 tokoe:valid" result="pass"/><test-case name="23732Positive tokoe:valid" result="pass"/><test-case name="23733disallowedSubst00102m2 tokoe:valid" result="pass"/><test-case name="23734Negative tokoe:invalid" result="pass"/><test-case name="23735disallowedSubst00105m tokoe:valid" result="pass"/><test-case name="23736disallowedSubst00105m1_p tokoe:valid" result="pass"/><test-case name="23737disallowedSubst00105m1_n tokoe:invalid" result="pass"/><test-case name="23738disallowedSubst00106m1 tokoe:valid" result="pass"/><test-case name="23739Positive tokoe:valid" result="pass"/><test-case name="23740disallowedSubst00106m2 tokoe:valid" result="pass"/><test-case name="23741Negative tokoe:invalid" result="pass"/><test-case name="23742disallowedSubst00202m1 tokoe:invalid" result="pass"/><test-case name="23743disallowedSubst00202m10 tokoe:invalid" result="pass"/><test-case name="23744disallowedSubst00202m11 tokoe:invalid" result="pass"/><test-case name="23745disallowedSubst00202m12 tokoe:valid" result="pass"/><test-case name="23746Positive tokoe:valid" result="pass"/><test-case name="23747disallowedSubst00202m2 tokoe:invalid" result="pass"/><test-case name="23748disallowedSubst00202m3 tokoe:invalid" result="pass"/><test-case name="23749disallowedSubst00202m4 tokoe:invalid" result="pass"/><test-case name="23750disallowedSubst00202m5 tokoe:invalid" result="pass"/><test-case name="23751disallowedSubst00202m6 tokoe:invalid" result="pass"/><test-case name="23752disallowedSubst00202m7 tokoe:invalid" result="pass"/><test-case name="23753disallowedSubst00202m8 tokoe:invalid" result="pass"/><test-case name="23754disallowedSubst00202m9 tokoe:invalid" result="pass"/><test-case name="23755disallowedSubst00301m1 tokoe:valid" result="pass"/><test-case name="23756Positive tokoe:valid" result="pass"/><test-case name="23757disallowedSubst00301m2 tokoe:valid" result="pass"/><test-case name="23758Negative tokoe:invalid" result="pass"/><test-case name="23759disallowedSubst00401m1 tokoe:valid" result="pass"/><test-case name="23760Positive tokoe:valid" result="pass"/><test-case name="23761disallowedSubst00401m2 tokoe:valid" result="pass"/><test-case name="23762Negative tokoe:invalid" result="pass"/><test-case name="23763disallowedSubst00501m1 tokoe:valid" result="pass"/><test-case name="23764Positive tokoe:valid" result="pass"/><test-case name="23765disallowedSubst00501m2 tokoe:valid" result="pass"/><test-case name="23766Negative tokoe:invalid" result="pass"/><test-case name="23767disallowedSubst00502m1 tokoe:valid" result="pass"/><test-case name="23768Positive tokoe:valid" result="pass"/><test-case name="23769disallowedSubst00502m2 tokoe:valid" result="pass"/><test-case name="23770Positive tokoe:valid" result="pass"/><test-case name="23771disallowedSubst00502m3 tokoe:valid" result="pass"/><test-case name="23772Negative tokoe:invalid" result="pass"/><test-case name="23773disallowedSubst00502m4 tokoe:valid" result="pass"/><test-case name="23774Negative tokoe:invalid" result="pass"/><test-case name="23775disallowedSubst00503m1 tokoe:valid" result="pass"/><test-case name="23776Positive tokoe:valid" result="pass"/><test-case name="23777disallowedSubst00503m2 tokoe:valid" result="pass"/><test-case name="23778Positive tokoe:valid" result="pass"/><test-case name="23779disallowedSubst00503m3 tokoe:valid" result="pass"/><test-case name="23780Negative tokoe:invalid" result="pass"/><test-case name="23781disallowedSubst00503m4 tokoe:valid" result="pass"/><test-case name="23782Negative tokoe:invalid" result="pass"/><test-case name="23783disallowedSubst00503m5 tokoe:valid" result="pass"/><test-case name="23784Negative tokoe:invalid" result="pass"/><test-case name="23785idConstrDefs00101m tokoe:valid" result="pass"/><test-case name="23786idConstrDefs00101m1_p tokoe:valid" result="pass"/><test-case name="23787idConstrDefs00101m1_n tokoe:invalid" result="pass"/><test-case name="23788idConstrDefs00201m tokoe:valid" result="pass"/><test-case name="23789idConstrDefs00201m1_p tokoe:valid" result="pass"/><test-case name="23790idConstrDefs00201m2_n tokoe:invalid" result="pass"/><test-case name="23791idConstrDefs00201m3_n tokoe:invalid" result="pass"/><test-case name="23792idConstrDefs00201m4_n tokoe:invalid" result="pass"/><test-case name="23793idConstrDefs00202m tokoe:valid" result="pass"/><test-case name="23794idConstrDefs00202m1_p tokoe:valid" result="pass"/><test-case name="23795idConstrDefs00202m1_n tokoe:invalid" result="pass"/><test-case name="23796idConstrDefs00203m tokoe:valid" result="pass"/><test-case name="23797idConstrDefs00203m1_p tokoe:valid" result="pass"/><test-case name="23798idConstrDefs00203m1_n tokoe:invalid" result="pass"/><test-case name="23799idConstrDefs00204m tokoe:valid" result="pass"/><test-case name="23800idConstrDefs00204m1_p tokoe:valid" result="pass"/><test-case name="23801idConstrDefs00204m1_n tokoe:invalid" result="pass"/><test-case name="23802idConstrDefs00301m tokoe:valid" result="pass"/><test-case name="23803idConstrDefs00301m1_p tokoe:valid" result="pass"/><test-case name="23804idConstrDefs00301m2_n tokoe:invalid" result="pass"/><test-case name="23805idConstrDefs00301m3_n tokoe:invalid" result="pass"/><test-case name="23806idConstrDefs00301m4_n tokoe:invalid" result="pass"/><test-case name="23807idConstrDefs00302m tokoe:valid" result="pass"/><test-case name="23808idConstrDefs00302m1_p tokoe:valid" result="pass"/><test-case name="23809idConstrDefs00302m2_n tokoe:invalid" result="pass"/><test-case name="23810idConstrDefs00302m3_n tokoe:invalid" result="pass"/><test-case name="23811idConstrDefs00302m4_n tokoe:invalid" result="pass"/><test-case name="23812idConstrDefs00401m tokoe:valid" result="pass"/><test-case name="23813idConstrDefs00401m1_p tokoe:valid" result="pass"/><test-case name="23814idConstrDefs00402m tokoe:valid" result="pass"/><test-case name="23815idConstrDefs00402m1_p tokoe:valid" result="pass"/><test-case name="23816idConstrDefs00402m1_n tokoe:invalid" result="pass"/><test-case name="23817idConstrDefs00403m tokoe:valid" result="pass"/><test-case name="23818idConstrDefs00403m1_p tokoe:valid" result="pass"/><test-case name="23819idConstrDefs00403m1_n tokoe:invalid" result="pass"/><test-case name="23820idConstrDefs00501m tokoe:valid" result="pass"/><test-case name="23821idConstrDefs00501m1_p tokoe:valid" result="pass"/><test-case name="23822idConstrDefs00501m1_n tokoe:invalid" result="pass"/><test-case name="23823maxOccurs00101m tokoe:valid" result="pass"/><test-case name="23824maxOccurs00101m1_p tokoe:valid" result="pass"/><test-case name="23825maxOccurs00101m1_n tokoe:invalid" result="pass"/><test-case name="23826maxOccurs00201m tokoe:valid" result="pass"/><test-case name="23827maxOccurs00201m1_p tokoe:valid" result="pass"/><test-case name="23828maxOccurs00201m1_n tokoe:invalid" result="pass"/><test-case name="23829minOccurs00101m tokoe:valid" result="pass"/><test-case name="23830minOccurs00101m1_p tokoe:valid" result="pass"/><test-case name="23831minOccurs00101m1_n tokoe:invalid" result="pass"/><test-case name="23832minOccurs00201m tokoe:valid" result="pass"/><test-case name="23833minOccurs00201m1_p tokoe:valid" result="pass"/><test-case name="23834minOccurs00201m1_n tokoe:invalid" result="pass"/><test-case name="23835name00101m tokoe:valid" result="pass"/><test-case name="23836name00101m1_p tokoe:valid" result="pass"/><test-case name="23837name00101m1_n tokoe:invalid" result="pass"/><test-case name="23838name00201m1 tokoe:valid" result="pass"/><test-case name="23839Positive tokoe:valid" result="pass"/><test-case name="23840name00201m2 tokoe:valid" result="pass"/><test-case name="23841Positive tokoe:valid" result="pass"/><test-case name="23842name00301m1 tokoe:valid" result="pass"/><test-case name="23843Positive tokoe:valid" result="pass"/><test-case name="23844name00401m1 tokoe:valid" result="pass"/><test-case name="23845Positive tokoe:valid" result="pass"/><test-case name="23846name00401m2 tokoe:valid" result="pass"/><test-case name="23847Positive tokoe:valid" result="pass"/><test-case name="23848name00401m3 tokoe:invalid" result="pass"/><test-case name="23849name00401m4 tokoe:invalid" result="pass"/><test-case name="23850name00401m5 tokoe:invalid" result="pass"/><test-case name="23851name00501m1 tokoe:valid" result="pass"/><test-case name="23852Positive tokoe:valid" result="pass"/><test-case name="23853name00501m10 tokoe:invalid" result="pass"/><test-case name="23854name00501m11 tokoe:valid" result="pass"/><test-case name="23855Positive tokoe:valid" result="pass"/><test-case name="23856name00501m12 tokoe:invalid" result="pass"/><test-case name="23857name00501m13 tokoe:valid" result="pass"/><test-case name="23858Positive tokoe:valid" result="pass"/><test-case name="23859name00501m14 tokoe:valid" result="pass"/><test-case name="23860Positive tokoe:valid" result="pass"/><test-case name="23861name00501m15 tokoe:valid" result="pass"/><test-case name="23862Positive tokoe:valid" result="pass"/><test-case name="23863name00501m2 tokoe:invalid" result="pass"/><test-case name="23864name00501m3 tokoe:valid" result="pass"/><test-case name="23865Positive tokoe:valid" result="pass"/><test-case name="23866name00501m4 tokoe:invalid" result="pass"/><test-case name="23867name00501m5 tokoe:valid" result="pass"/><test-case name="23868Positive tokoe:valid" result="pass"/><test-case name="23869name00501m6 tokoe:invalid" result="pass"/><test-case name="23870name00501m7 tokoe:valid" result="pass"/><test-case name="23871Positive tokoe:valid" result="pass"/><test-case name="23872name00501m8 tokoe:invalid" result="pass"/><test-case name="23873name00501m9 tokoe:valid" result="pass"/><test-case name="23874Positive tokoe:valid" result="pass"/><test-case name="23875name00502m1 tokoe:valid" result="pass"/><test-case name="23876Positive tokoe:valid" result="pass"/><test-case name="23877name00502m2 tokoe:invalid" result="pass"/><test-case name="23878name00503m1 tokoe:valid" result="pass"/><test-case name="23879Positive tokoe:valid" result="pass"/><test-case name="23880name00503m2 tokoe:invalid" result="pass"/><test-case name="23881name00504m1 tokoe:valid" result="pass"/><test-case name="23882Positive tokoe:valid" result="pass"/><test-case name="23883name00504m2 tokoe:invalid" result="pass"/><test-case name="23884name00504m3 tokoe:valid" result="pass"/><test-case name="23885Positive tokoe:valid" result="pass"/><test-case name="23886name00504m4 tokoe:invalid" result="pass"/><test-case name="23887name00505m1 tokoe:valid" result="pass"/><test-case name="23888Positive tokoe:valid" result="pass"/><test-case name="23889name00505m2 tokoe:invalid" result="pass"/><test-case name="23890name00601m tokoe:valid" result="pass"/><test-case name="23891name00601m1_p tokoe:valid" result="pass"/><test-case name="23892name00601m1_n tokoe:invalid" result="pass"/><test-case name="23893name00801 tokoe:valid" result="pass"/><test-case name="23894name00801_p tokoe:valid" result="pass"/><test-case name="23895name00802 tokoe:valid" result="pass"/><test-case name="23896name00802_p tokoe:valid" result="pass"/><test-case name="23897name00803 tokoe:valid" result="pass"/><test-case name="23898name00803_p tokoe:valid" result="pass"/><test-case name="23899name00804 tokoe:valid" result="pass"/><test-case name="23900name00804_p tokoe:valid" result="pass"/><test-case name="23901name00805 tokoe:valid" result="pass"/><test-case name="23902name00805_p tokoe:valid" result="pass"/><test-case name="23903nillable00101m1 tokoe:valid" result="pass"/><test-case name="23904Positive tokoe:valid" result="pass"/><test-case name="23905nillable00101m2 tokoe:valid" result="pass"/><test-case name="23906Negative tokoe:invalid" result="pass"/><test-case name="23907nillable00102m tokoe:valid" result="pass"/><test-case name="23908nillable00102m1_p tokoe:valid" result="pass"/><test-case name="23909nillable00102m1_n tokoe:invalid" result="pass"/><test-case name="23910nillable00201m tokoe:valid" result="pass"/><test-case name="23911nillable00201m1_n tokoe:invalid" result="pass"/><test-case name="23912nillable00201m2_n tokoe:invalid" result="pass"/><test-case name="23913nillable00201m3_p tokoe:valid" result="pass"/><test-case name="23914nillable00301m tokoe:valid" result="pass"/><test-case name="23915nillable00301m1_p tokoe:valid" result="pass"/><test-case name="23916nillable00301m1_n tokoe:invalid" result="pass"/><test-case name="23917nillable00302m tokoe:valid" result="pass"/><test-case name="23918nillable00302m1_p tokoe:valid" result="pass"/><test-case name="23919nillable00302m1_n tokoe:invalid" result="pass"/><test-case name="23920nillable00401m1 tokoe:valid" result="pass"/><test-case name="23921Positive tokoe:valid" result="pass"/><test-case name="23922nillable00401m2 tokoe:valid" result="pass"/><test-case name="23923Positive tokoe:valid" result="pass"/><test-case name="23924scope00101m tokoe:valid" result="pass"/><test-case name="23925scope00101m1_p tokoe:valid" result="pass"/><test-case name="23926scope00201m1 tokoe:valid" result="pass"/><test-case name="23927Positive tokoe:valid" result="pass"/><test-case name="23928scope00201m2 tokoe:invalid" result="pass"/><test-case name="23929scope00301m tokoe:valid" result="pass"/><test-case name="23930scope00301m1_p tokoe:valid" result="pass"/><test-case name="23931substGrpAffil00101m tokoe:valid" result="pass"/><test-case name="23932substGrpAffil00101m1_p tokoe:valid" result="pass"/><test-case name="23933substGrpAffil00101m1_n tokoe:invalid" result="pass"/><test-case name="23934substGrpAffil00201m tokoe:valid" result="pass"/><test-case name="23935substGrpAffil00201m1_p tokoe:valid" result="pass"/><test-case name="23936substGrpAffil00201m1_n tokoe:invalid" result="pass"/><test-case name="23937substGrpExcl00202m1 tokoe:valid" result="pass"/><test-case name="23938Positive tokoe:valid" result="pass"/><test-case name="23939substGrpExcl00202m2 tokoe:invalid" result="pass"/><test-case name="23940substGrpExcl00301m1 tokoe:valid" result="pass"/><test-case name="23941Positive tokoe:valid" result="pass"/><test-case name="23942substGrpExcl00301m3 tokoe:valid" result="pass"/><test-case name="23943Positive tokoe:valid" result="pass"/><test-case name="23944substGrpExcl00303m1 tokoe:valid" result="pass"/><test-case name="23945Positive tokoe:valid" result="pass"/><test-case name="23946substGrpExcl00303m2 tokoe:invalid" result="pass"/><test-case name="23947substGrpExcl00303m3 tokoe:valid" result="pass"/><test-case name="23948Positive tokoe:valid" result="pass"/><test-case name="23949substGrpExcl00401m1 tokoe:valid" result="pass"/><test-case name="23950Positive tokoe:valid" result="pass"/><test-case name="23951substGrpExcl00401m2 tokoe:valid" result="pass"/><test-case name="23952Positive tokoe:valid" result="pass"/><test-case name="23953substGrpExcl00401m3 tokoe:valid" result="pass"/><test-case name="23954Positive tokoe:valid" result="pass"/><test-case name="23955substGrpExcl00401m4 tokoe:valid" result="pass"/><test-case name="23956Positive tokoe:valid" result="pass"/><test-case name="23957substGrpExcl00401m5 tokoe:valid" result="pass"/><test-case name="23958Positive tokoe:valid" result="pass"/><test-case name="23959substGrpExcl00401m6 tokoe:valid" result="pass"/><test-case name="23960Positive tokoe:valid" result="pass"/><test-case name="23961substGrpExcl00402m1 tokoe:invalid" result="pass"/><test-case name="23962substGrpExcl00402m2 tokoe:invalid" result="pass"/><test-case name="23963substGrpExcl00402m3 tokoe:invalid" result="pass"/><test-case name="23964substGrpExcl00402m4 tokoe:invalid" result="pass"/><test-case name="23965substGrpExcl00402m5 tokoe:invalid" result="pass"/><test-case name="23966substGrpExcl00402m6 tokoe:invalid" result="pass"/><test-case name="23967substGrpExcl00402m7 tokoe:valid" result="pass"/><test-case name="23968Positive tokoe:valid" result="pass"/><test-case name="23969targetNS00101m tokoe:valid" result="pass"/><test-case name="23970targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="23971targetNS00201m tokoe:valid" result="pass"/><test-case name="23972targetNS00201m1_p tokoe:valid" result="pass"/><test-case name="23973targetNS00201m1_n tokoe:invalid" result="pass"/><test-case name="23974targetNS00301m1 tokoe:valid" result="pass"/><test-case name="23975Positive tokoe:valid" result="pass"/><test-case name="23976Negative tokoe:invalid" result="pass"/><test-case name="23977targetNS00301m2 tokoe:valid" result="pass"/><test-case name="23978Positive tokoe:valid" result="pass"/><test-case name="23979Negative tokoe:invalid" result="pass"/><test-case name="23980targetNS00301m3 tokoe:valid" result="pass"/><test-case name="23981Positive tokoe:valid" result="pass"/><test-case name="23982Negative tokoe:invalid" result="pass"/><test-case name="23983targetNS00302m1 tokoe:valid" result="pass"/><test-case name="23984Positive tokoe:valid" result="pass"/><test-case name="23985Negative tokoe:invalid" result="pass"/><test-case name="23986targetNS00302m2 tokoe:valid" result="pass"/><test-case name="23987Positive tokoe:valid" result="pass"/><test-case name="23988Negative tokoe:invalid" result="pass"/><test-case name="23989targetNS00302m3 tokoe:valid" result="pass"/><test-case name="23990Positive tokoe:valid" result="pass"/><test-case name="23991Negative tokoe:invalid" result="pass"/><test-case name="23992targetNS00303m1 tokoe:valid" result="pass"/><test-case name="23993Positive tokoe:valid" result="pass"/><test-case name="23994Negative tokoe:invalid" result="pass"/><test-case name="23995targetNS00303m2 tokoe:valid" result="pass"/><test-case name="23996Positive tokoe:valid" result="pass"/><test-case name="23997Negative tokoe:invalid" result="pass"/><test-case name="23998targetNS00303m3 tokoe:valid" result="pass"/><test-case name="23999Positive tokoe:valid" result="pass"/><test-case name="24000Negative tokoe:invalid" result="pass"/><test-case name="24001targetNS00401m tokoe:valid" result="pass"/><test-case name="24002targetNS00401m1_p tokoe:valid" result="pass"/><test-case name="24003targetNS00401m1_n tokoe:invalid" result="pass"/><test-case name="24004targetNS00402m tokoe:valid" result="pass"/><test-case name="24005targetNS00402m1_p tokoe:valid" result="pass"/><test-case name="24006targetNS00402m1_n tokoe:invalid" result="pass"/><test-case name="24007term00101m tokoe:valid" result="pass"/><test-case name="24008term00101m1_p tokoe:valid" result="pass"/><test-case name="24009term00101m1_n tokoe:invalid" result="pass"/><test-case name="24010typeDef00101m tokoe:valid" result="pass"/><test-case name="24011typeDef00101m1_p tokoe:valid" result="pass"/><test-case name="24012typeDef00101m1_n tokoe:invalid" result="pass"/><test-case name="24013typeDef00201m tokoe:valid" result="pass"/><test-case name="24014typeDef00201m1_p tokoe:valid" result="pass"/><test-case name="24015typeDef00201m1_n tokoe:invalid" result="pass"/><test-case name="24016typeDef00202m tokoe:valid" result="pass"/><test-case name="24017typeDef00202m1_p tokoe:valid" result="pass"/><test-case name="24018typeDef00202m1_n tokoe:invalid" result="pass"/><test-case name="24019typeDef00203m tokoe:valid" result="pass"/><test-case name="24020typeDef00203m1_p tokoe:valid" result="pass"/><test-case name="24021typeDef00203m1_n tokoe:invalid" result="pass"/><test-case name="24022typeDef00204m tokoe:valid" result="pass"/><test-case name="24023typeDef00204m1_p tokoe:valid" result="pass"/><test-case name="24024typeDef00204m1_n tokoe:invalid" result="pass"/><test-case name="24025typeDef00205m tokoe:valid" result="pass"/><test-case name="24026typeDef00205m1_p tokoe:valid" result="pass"/><test-case name="24027typeDef00301m tokoe:valid" result="pass"/><test-case name="24028typeDef00301m1_p tokoe:valid" result="pass"/><test-case name="24029typeDef00301m1_n tokoe:invalid" result="pass"/><test-case name="24030typeDef00401m tokoe:valid" result="pass"/><test-case name="24031typeDef00401m1_p tokoe:valid" result="pass"/><test-case name="24032typeDef00401m1_n tokoe:invalid" result="pass"/><test-case name="24033typeDef00402m tokoe:valid" result="pass"/><test-case name="24034typeDef00402m1_p tokoe:valid" result="pass"/><test-case name="24035typeDef00402m1_n tokoe:invalid" result="pass"/><test-case name="24036typeDef00403m tokoe:valid" result="pass"/><test-case name="24037typeDef00403m1_p tokoe:valid" result="pass"/><test-case name="24038typeDef00501m1 tokoe:valid" result="pass"/><test-case name="24039Positive tokoe:valid" result="pass"/><test-case name="24040typeDef00501m2 tokoe:invalid" result="pass"/><test-case name="24041typeDef00502m1 tokoe:valid" result="pass"/><test-case name="24042Positive tokoe:valid" result="pass"/><test-case name="24043typeDef00502m2 tokoe:invalid" result="pass"/><test-case name="24044typeDef00601m tokoe:valid" result="pass"/><test-case name="24045typeDef00601m1_p tokoe:valid" result="pass"/><test-case name="24046typeDef00701m tokoe:valid" result="pass"/><test-case name="24047typeDef00701m1_p tokoe:valid" result="pass"/><test-case name="24048typeDef00701m1_n tokoe:invalid" result="pass"/><test-case name="24049typeDef00801m1 tokoe:valid" result="pass"/><test-case name="24050Positive tokoe:valid" result="pass"/><test-case name="24051typeDef00801m2 tokoe:valid" result="pass"/><test-case name="24052Negative tokoe:invalid" result="pass"/><test-case name="24053typeDef00801m3 tokoe:valid" result="pass"/><test-case name="24054Negative tokoe:invalid" result="pass"/><test-case name="24055typeDef00802m1 tokoe:valid" result="pass"/><test-case name="24056Positive tokoe:valid" result="pass"/><test-case name="24057Negative tokoe:invalid" result="pass"/><test-case name="24058typeDef00802m2 tokoe:valid" result="pass"/><test-case name="24059Negative tokoe:invalid" result="pass"/><test-case name="24060typeDef00901m1 tokoe:valid" result="pass"/><test-case name="24061Positive tokoe:valid" result="pass"/><test-case name="24062Negative tokoe:invalid" result="pass"/><test-case name="24063typeDef01101m1 tokoe:valid" result="pass"/><test-case name="24064Positive tokoe:valid" result="pass"/><test-case name="24065Negative tokoe:invalid" result="pass"/><test-case name="24066typeDef01201m1 tokoe:valid" result="pass"/><test-case name="24067Positive tokoe:valid" result="pass"/><test-case name="24068Negative tokoe:invalid" result="pass"/><test-case name="24069typeDef01202m1 tokoe:valid" result="pass"/><test-case name="24070Positive tokoe:valid" result="pass"/><test-case name="24071Negative tokoe:invalid" result="pass"/><test-case name="24072typeDef01301m1 tokoe:valid" result="pass"/><test-case name="24073Positive tokoe:valid" result="pass"/><test-case name="24074Negative tokoe:invalid" result="pass"/><test-case name="24075typeDef01401m1 tokoe:valid" result="pass"/><test-case name="24076Positive tokoe:valid" result="pass"/><test-case name="24077Negative tokoe:invalid" result="pass"/><test-case name="24078typeDef01501m1 tokoe:valid" result="pass"/><test-case name="24079Positive tokoe:valid" result="pass"/><test-case name="24080Negative tokoe:invalid" result="pass"/><test-case name="24081valueConstraint00101m1 tokoe:valid" result="pass"/><test-case name="24082Positive tokoe:valid" result="pass"/><test-case name="24083valueConstraint00101m2 tokoe:invalid" result="pass"/><test-case name="24084valueConstraint00201m tokoe:valid" result="pass"/><test-case name="24085valueConstraint00201m1_p tokoe:valid" result="pass"/><test-case name="24086valueConstraint00201m1_n tokoe:invalid" result="pass"/><test-case name="24087valueConstraint00301m1 tokoe:valid" result="pass"/><test-case name="24088Positive tokoe:valid" result="pass"/><test-case name="24089valueConstraint00301m2 tokoe:valid" result="pass"/><test-case name="24090Positive tokoe:valid" result="pass"/><test-case name="24091valueConstraint00301m3 tokoe:invalid" result="pass"/><test-case name="24092valueConstraint00301m4 tokoe:invalid" result="pass"/><test-case name="24093valueConstraint00301m5 tokoe:invalid" result="pass"/><test-case name="24094valueConstraint00401m1 tokoe:valid" result="pass"/><test-case name="24095Positive tokoe:valid" result="pass"/><test-case name="24096valueConstraint00401m2 tokoe:invalid" result="pass"/><test-case name="24097valueConstraint00401m3 tokoe:valid" result="pass"/><test-case name="24098Positive tokoe:valid" result="pass"/><test-case name="24099valueConstraint00401m4 tokoe:valid" result="pass"/><test-case name="24100Positive tokoe:valid" result="pass"/><test-case name="24101valueConstraint00401m5 tokoe:valid" result="pass"/><test-case name="24102Positive tokoe:valid" result="pass"/><test-case name="24103valueConstraint00401m6 tokoe:invalid" result="pass"/><test-case name="24104valueConstraint00401m7 tokoe:valid" result="pass"/><test-case name="24105Positive tokoe:valid" result="pass"/><test-case name="24106valueConstraint00401m8 tokoe:invalid" result="pass"/><test-case name="24107valueConstraint00401m9 tokoe:valid" result="pass"/><test-case name="24108Positive tokoe:valid" result="pass"/><test-case name="24109valueConstraint00402m1 tokoe:valid" result="pass"/><test-case name="24110Positive tokoe:valid" result="pass"/><test-case name="24111valueConstraint00402m2 tokoe:invalid" result="pass"/><test-case name="24112valueConstraint00402m3 tokoe:valid" result="pass"/><test-case name="24113Positive tokoe:valid" result="pass"/><test-case name="24114valueConstraint00402m4 tokoe:valid" result="pass"/><test-case name="24115Positive tokoe:valid" result="pass"/><test-case name="24116valueConstraint00402m5 tokoe:valid" result="pass"/><test-case name="24117Positive tokoe:valid" result="pass"/><test-case name="24118valueConstraint00402m6 tokoe:invalid" result="pass"/><test-case name="24119valueConstraint00402m7 tokoe:valid" result="pass"/><test-case name="24120Positive tokoe:valid" result="pass"/><test-case name="24121valueConstraint00402m8 tokoe:invalid" result="pass"/><test-case name="24122valueConstraint00402m9 tokoe:valid" result="pass"/><test-case name="24123Positive tokoe:valid" result="pass"/><test-case name="24124valueConstraint00501m1 tokoe:valid" result="pass"/><test-case name="24125Positive tokoe:valid" result="pass"/><test-case name="24126valueConstraint00501m2 tokoe:valid" result="pass"/><test-case name="24127Positive tokoe:valid" result="pass"/><test-case name="24128valueConstraint00501m3 tokoe:valid" result="pass"/><test-case name="24129Negative tokoe:invalid" result="pass"/><test-case name="24130valueConstraint00501m4 tokoe:valid" result="pass"/><test-case name="24131Positive tokoe:valid" result="pass"/><test-case name="24132valueConstraint00501m5 tokoe:valid" result="pass"/><test-case name="24133Positive tokoe:valid" result="pass"/><test-case name="24134valueConstraint00501m6 tokoe:valid" result="pass"/><test-case name="24135Negative tokoe:invalid" result="pass"/><test-case name="24136valueConstraint00601m1 tokoe:valid" result="pass"/><test-case name="24137Positive tokoe:valid" result="pass"/><test-case name="24138valueConstraint00601m2 tokoe:invalid" result="pass"/><test-case name="24139valueConstraint00601m3 tokoe:valid" result="pass"/><test-case name="24140Positive tokoe:valid" result="pass"/><test-case name="24141valueConstraint00601m4 tokoe:invalid" result="pass"/><test-case name="24142valueConstraint00601m5 tokoe:valid" result="pass"/><test-case name="24143Positive tokoe:valid" result="pass"/><test-case name="24144valueConstraint00601m6 tokoe:invalid" result="pass"/><test-case name="24145valueConstraint00601m7 tokoe:valid" result="pass"/><test-case name="24146Positive tokoe:valid" result="pass"/><test-case name="24147valueConstraint00601m8 tokoe:invalid" result="pass"/><test-case name="24148valueConstraint00701m1 tokoe:valid" result="pass"/><test-case name="24149Positive tokoe:valid" result="pass"/><test-case name="24150Negative tokoe:invalid" result="pass"/><test-case name="24151valueConstraint00801m1 tokoe:valid" result="pass"/><test-case name="24152Positive tokoe:valid" result="pass"/><test-case name="24153Negative tokoe:invalid" result="pass"/><test-case name="24154valueConstraint00901m1 tokoe:valid" result="pass"/><test-case name="24155Positive tokoe:valid" result="pass"/><test-case name="24156Negative tokoe:invalid" result="pass"/><test-case name="24157valueConstraint01001m1 tokoe:valid" result="pass"/><test-case name="24158Positive tokoe:valid" result="pass"/><test-case name="24159valueConstraint01001m2 tokoe:invalid" result="pass"/><test-case name="24160valueConstraint01001m3 tokoe:invalid" result="pass"/><test-case name="24161valueConstraint01001m4 tokoe:valid" result="pass"/><test-case name="24162Positive tokoe:valid" result="pass"/><test-case name="24163valueConstraint01001m5 tokoe:invalid" result="pass"/><test-case name="24164valueConstraint01001m6 tokoe:invalid" result="pass"/><test-case name="24165valueConstraint01001m7 tokoe:valid" result="pass"/><test-case name="24166Positive tokoe:valid" result="pass"/><test-case name="24167valueConstraint01001m8 tokoe:valid" result="pass"/><test-case name="24168Positive tokoe:valid" result="pass"/><test-case name="24169valueConstraint01101m1 tokoe:valid" result="pass"/><test-case name="24170Positive tokoe:valid" result="pass"/><test-case name="24171valueConstraint01101m2 tokoe:valid" result="pass"/><test-case name="24172Negative tokoe:invalid" result="pass"/><test-case name="24173valueConstraint01101m3 tokoe:valid" result="pass"/><test-case name="24174Positive tokoe:valid" result="pass"/><test-case name="24175valueConstraint01101m4 tokoe:valid" result="pass"/><test-case name="24176Negative tokoe:invalid" result="pass"/><test-case name="24177annotation00101m1 tokoe:valid" result="pass"/><test-case name="24178Positive tokoe:valid" result="pass"/><test-case name="24179annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24180annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24181annotation00101m4 tokoe:valid" result="pass"/><test-case name="24182Positive tokoe:valid" result="pass"/><test-case name="24183annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24184annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24185fields00101m1 tokoe:valid" result="pass"/><test-case name="24186Positive tokoe:valid" result="pass"/><test-case name="24187fields00201m1 tokoe:valid" result="pass"/><test-case name="24188Positive tokoe:valid" result="pass"/><test-case name="24189fields00201m2 tokoe:valid" result="pass"/><test-case name="24190Negative tokoe:invalid" result="pass"/><test-case name="24191fields00201m3 tokoe:valid" result="pass"/><test-case name="24192Negative tokoe:invalid" result="pass"/><test-case name="24193fields00201m4 tokoe:valid" result="pass"/><test-case name="24194Positive tokoe:valid" result="pass"/><test-case name="24195fields00201m5 tokoe:valid" result="pass"/><test-case name="24196Negative tokoe:invalid" result="pass"/><test-case name="24197fields00202m1 tokoe:valid" result="pass"/><test-case name="24198Positive tokoe:valid" result="pass"/><test-case name="24199fields00202m2 tokoe:valid" result="pass"/><test-case name="24200Positive tokoe:valid" result="pass"/><test-case name="24201fields00202m3 tokoe:valid" result="pass"/><test-case name="24202Positive tokoe:valid" result="pass"/><test-case name="24203fields00202m4 tokoe:valid" result="pass"/><test-case name="24204Positive tokoe:valid" result="pass"/><test-case name="24205fields00202m5 tokoe:valid" result="pass"/><test-case name="24206Negative tokoe:invalid" result="pass"/><test-case name="24207fields00203m1 tokoe:valid" result="pass"/><test-case name="24208Positive tokoe:valid" result="pass"/><test-case name="24209fields00203m2 tokoe:valid" result="pass"/><test-case name="24210Negative tokoe:invalid" result="pass"/><test-case name="24211fields00203m3 tokoe:valid" result="pass"/><test-case name="24212Negative tokoe:invalid" result="pass"/><test-case name="24213fields00203m4 tokoe:valid" result="pass"/><test-case name="24214Positive tokoe:valid" result="pass"/><test-case name="24215fields00203m5 tokoe:valid" result="pass"/><test-case name="24216Negative tokoe:invalid" result="pass"/><test-case name="24217name00101m1 tokoe:valid" result="pass"/><test-case name="24218Positive tokoe:valid" result="pass"/><test-case name="24219name00201m1 tokoe:valid" result="pass"/><test-case name="24220Positive tokoe:valid" result="pass"/><test-case name="24221targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24222Positive tokoe:valid" result="pass"/><test-case name="24223targetNS00101m2 tokoe:invalid" result="pass"/><test-case name="24224annotation00101m1 tokoe:valid" result="pass"/><test-case name="24225Positive tokoe:valid" result="pass"/><test-case name="24226annotation00101m10 tokoe:valid" result="pass"/><test-case name="24227Positive tokoe:valid" result="pass"/><test-case name="24228annotation00101m11 tokoe:invalid" result="pass"/><test-case name="24229annotation00101m12 tokoe:invalid" result="pass"/><test-case name="24230annotation00101m13 tokoe:valid" result="pass"/><test-case name="24231Positive tokoe:valid" result="pass"/><test-case name="24232annotation00101m14 tokoe:invalid" result="pass"/><test-case name="24233annotation00101m15 tokoe:invalid" result="pass"/><test-case name="24234annotation00101m16 tokoe:valid" result="pass"/><test-case name="24235Positive tokoe:valid" result="pass"/><test-case name="24236annotation00101m17 tokoe:invalid" result="pass"/><test-case name="24237annotation00101m18 tokoe:invalid" result="pass"/><test-case name="24238annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24239annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24240annotation00101m4 tokoe:valid" result="pass"/><test-case name="24241Positive tokoe:valid" result="pass"/><test-case name="24242annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24243annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24244annotation00101m7 tokoe:valid" result="pass"/><test-case name="24245Positive tokoe:valid" result="pass"/><test-case name="24246annotation00101m8 tokoe:invalid" result="pass"/><test-case name="24247annotation00101m9 tokoe:invalid" result="pass"/><test-case name="24248compositor00101m1 tokoe:valid" result="pass"/><test-case name="24249Positive tokoe:valid" result="pass"/><test-case name="24250Negative tokoe:invalid" result="pass"/><test-case name="24251compositor00102m1 tokoe:valid" result="pass"/><test-case name="24252Positive tokoe:valid" result="pass"/><test-case name="24253Negative tokoe:invalid" result="pass"/><test-case name="24254compositor00103m1 tokoe:valid" result="pass"/><test-case name="24255Positive tokoe:valid" result="pass"/><test-case name="24256Negative tokoe:invalid" result="pass"/><test-case name="24257compositor00201m1 tokoe:valid" result="pass"/><test-case name="24258Positive tokoe:valid" result="pass"/><test-case name="24259compositor00202m1 tokoe:valid" result="pass"/><test-case name="24260Positive tokoe:valid" result="pass"/><test-case name="24261compositor00203m1 tokoe:valid" result="pass"/><test-case name="24262Positive tokoe:valid" result="pass"/><test-case name="24263particles00101m1 tokoe:valid" result="pass"/><test-case name="24264Positive tokoe:valid" result="pass"/><test-case name="24265Negative tokoe:invalid" result="pass"/><test-case name="24266particles00101m2 tokoe:valid" result="pass"/><test-case name="24267Positive tokoe:valid" result="pass"/><test-case name="24268Negative tokoe:invalid" result="pass"/><test-case name="24269particles00102m1 tokoe:invalid" result="pass"/><test-case name="24270particles00103m1 tokoe:invalid" result="pass"/><test-case name="24271particles00104m1 tokoe:invalid" result="pass"/><test-case name="24272particles00105m1 tokoe:invalid" result="pass"/><test-case name="24273particles00201m1 tokoe:valid" result="pass"/><test-case name="24274Positive tokoe:valid" result="pass"/><test-case name="24275Negative tokoe:invalid" result="pass"/><test-case name="24276particles00202m1 tokoe:valid" result="pass"/><test-case name="24277Positive tokoe:valid" result="pass"/><test-case name="24278Negative tokoe:invalid" result="pass"/><test-case name="24279particles00203m1 tokoe:valid" result="pass"/><test-case name="24280Positive tokoe:valid" result="pass"/><test-case name="24281Negative tokoe:invalid" result="pass"/><test-case name="24282particles00204m1 tokoe:valid" result="pass"/><test-case name="24283Positive tokoe:valid" result="pass"/><test-case name="24284Negative tokoe:invalid" result="pass"/><test-case name="24285particles00205m1 tokoe:valid" result="pass"/><test-case name="24286Positive tokoe:valid" result="pass"/><test-case name="24287Negative tokoe:invalid" result="pass"/><test-case name="24288particles00301m1 tokoe:valid" result="pass"/><test-case name="24289Positive tokoe:valid" result="fail"/><test-case name="24290Negative tokoe:invalid" result="pass"/><test-case name="24291particles00302m1 tokoe:valid" result="pass"/><test-case name="24292Positive tokoe:valid" result="fail"/><test-case name="24293Negative tokoe:invalid" result="pass"/><test-case name="24294particles00303m1 tokoe:valid" result="pass"/><test-case name="24295Positive tokoe:valid" result="pass"/><test-case name="24296Negative tokoe:invalid" result="pass"/><test-case name="24297particles00304m1 tokoe:valid" result="pass"/><test-case name="24298Positive tokoe:valid" result="pass"/><test-case name="24299Negative tokoe:invalid" result="pass"/><test-case name="24300particles00305m1 tokoe:valid" result="pass"/><test-case name="24301Positive tokoe:valid" result="pass"/><test-case name="24302Negative tokoe:invalid" result="pass"/><test-case name="24303annotation00101m1 tokoe:valid" result="pass"/><test-case name="24304Positive tokoe:valid" result="pass"/><test-case name="24305annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24306annotation00101m3 tokoe:invalid" result="pass"/><test-case name="24307annotation00101m4 tokoe:valid" result="pass"/><test-case name="24308Positive tokoe:valid" result="pass"/><test-case name="24309annotation00101m5 tokoe:invalid" result="pass"/><test-case name="24310annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24311modelGroup00101m1 tokoe:valid" result="pass"/><test-case name="24312Positive tokoe:valid" result="pass"/><test-case name="24313Negative tokoe:invalid" result="pass"/><test-case name="24314modelGroup00101m2 tokoe:valid" result="pass"/><test-case name="24315Positive tokoe:valid" result="pass"/><test-case name="24316Negative tokoe:invalid" result="pass"/><test-case name="24317modelGroup00101m3 tokoe:valid" result="pass"/><test-case name="24318Positive tokoe:valid" result="pass"/><test-case name="24319Negative tokoe:invalid" result="pass"/><test-case name="24320modelGroup00102m1 tokoe:invalid" result="pass"/><test-case name="24321modelGroup00102m2 tokoe:invalid" result="pass"/><test-case name="24322modelGroup00102m3 tokoe:invalid" result="pass"/><test-case name="24323modelGroup00102m4 tokoe:invalid" result="pass"/><test-case name="24324modelGroup00102m5 tokoe:invalid" result="pass"/><test-case name="24325modelGroup00102m6 tokoe:invalid" result="pass"/><test-case name="24326name00101m1 tokoe:valid" result="pass"/><test-case name="24327Positive tokoe:valid" result="pass"/><test-case name="24328Negative tokoe:invalid" result="pass"/><test-case name="24329targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24330Positive tokoe:valid" result="pass"/><test-case name="24331Negative tokoe:invalid" result="pass"/><test-case name="24332targetNS00101m2 tokoe:valid" result="pass"/><test-case name="24333Positive tokoe:valid" result="pass"/><test-case name="24334Negative tokoe:invalid" result="pass"/><test-case name="24335annotation00101m1 tokoe:valid" result="pass"/><test-case name="24336Positive tokoe:valid" result="pass"/><test-case name="24337annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24338annotation00101m3 tokoe:valid" result="pass"/><test-case name="24339Positive tokoe:valid" result="pass"/><test-case name="24340annotation00101m4 tokoe:invalid" result="pass"/><test-case name="24341name00101m1 tokoe:valid" result="pass"/><test-case name="24342Positive tokoe:valid" result="pass"/><test-case name="24343name00201m1 tokoe:invalid" result="pass"/><test-case name="24344publicId00101m1 tokoe:valid" result="pass"/><test-case name="24345Positive tokoe:valid" result="pass"/><test-case name="24346publicId00201m1 tokoe:invalid" result="pass"/><test-case name="24347systemId00101m1 tokoe:valid" result="pass"/><test-case name="24348Positive tokoe:valid" result="pass"/><test-case name="24349systemId00201m1 tokoe:valid" result="pass"/><test-case name="24350Positive tokoe:valid" result="pass"/><test-case name="24351targetNS00101m1 tokoe:valid" result="pass"/><test-case name="24352Positive tokoe:valid" result="pass"/><test-case name="24353targetNS00101m2 tokoe:valid" result="pass"/><test-case name="24354Positive tokoe:valid" result="pass"/><test-case name="24355ST_annotation00101m1 tokoe:valid" result="pass"/><test-case name="24356Positive tokoe:valid" result="pass"/><test-case name="24357ST_annotation00101m2 tokoe:valid" result="pass"/><test-case name="24358Positive tokoe:valid" result="pass"/><test-case name="24359ST_baseTD00101m tokoe:valid" result="pass"/><test-case name="24360ST_baseTD00101m1_p tokoe:valid" result="pass"/><test-case name="24361ST_baseTD00101m1_n tokoe:invalid" result="pass"/><test-case name="24362ST_baseTD00101m2_p tokoe:valid" result="pass"/><test-case name="24363ST_baseTD00201m tokoe:valid" result="pass"/><test-case name="24364ST_baseTD00201m1_p tokoe:valid" result="pass"/><test-case name="24365ST_baseTD00201m1_n tokoe:invalid" result="pass"/><test-case name="24366ST_baseTD00301m tokoe:valid" result="pass"/><test-case name="24367ST_baseTD00301m1_p tokoe:valid" result="pass"/><test-case name="24368ST_baseTD00301m1_n tokoe:invalid" result="pass"/><test-case name="24369ST_baseTD00302m tokoe:valid" result="pass"/><test-case name="24370ST_baseTD00302m1_p tokoe:valid" result="pass"/><test-case name="24371ST_baseTD00302m1_n tokoe:invalid" result="pass"/><test-case name="24372ST_baseTD00302m2_p tokoe:valid" result="pass"/><test-case name="24373ST_baseTD00302m2_n tokoe:invalid" result="pass"/><test-case name="24374ST_baseTD00302m3_n tokoe:invalid" result="pass"/><test-case name="24375ST_facets00101m tokoe:valid" result="pass"/><test-case name="24376ST_facets00101m1_p tokoe:valid" result="pass"/><test-case name="24377ST_facets00101m1_n tokoe:invalid" result="pass"/><test-case name="24378ST_facets00101m2_p tokoe:valid" result="pass"/><test-case name="24379ST_facets00101m3_p tokoe:valid" result="pass"/><test-case name="24380ST_facets00102m tokoe:valid" result="pass"/><test-case name="24381ST_facets00102m1_p tokoe:valid" result="pass"/><test-case name="24382ST_facets00102m1_n tokoe:invalid" result="pass"/><test-case name="24383ST_facets00103m tokoe:valid" result="pass"/><test-case name="24384ST_facets00103m1_p tokoe:valid" result="pass"/><test-case name="24385ST_facets00103m1_n tokoe:invalid" result="pass"/><test-case name="24386ST_facets00104m tokoe:valid" result="pass"/><test-case name="24387ST_facets00104m1_p tokoe:valid" result="pass"/><test-case name="24388ST_facets00104m1_n tokoe:invalid" result="pass"/><test-case name="24389ST_facets00105m tokoe:valid" result="pass"/><test-case name="24390ST_facets00105m1_p tokoe:valid" result="pass"/><test-case name="24391ST_facets00105m1_n tokoe:invalid" result="pass"/><test-case name="24392ST_facets00106m tokoe:valid" result="pass"/><test-case name="24393ST_facets00106m1_p tokoe:valid" result="pass"/><test-case name="24394ST_facets00106m1_n tokoe:invalid" result="pass"/><test-case name="24395ST_facets00107m tokoe:valid" result="pass"/><test-case name="24396ST_facets00107m1_p tokoe:valid" result="pass"/><test-case name="24397ST_facets00107m1_n tokoe:invalid" result="pass"/><test-case name="24398ST_facets00108m tokoe:valid" result="pass"/><test-case name="24399ST_facets00108m1_p tokoe:valid" result="pass"/><test-case name="24400ST_facets00108m1_n tokoe:invalid" result="pass"/><test-case name="24401ST_facets00109m tokoe:valid" result="pass"/><test-case name="24402ST_facets00109m1_p tokoe:valid" result="pass"/><test-case name="24403ST_facets00109m1_n tokoe:invalid" result="pass"/><test-case name="24404ST_facets00110m tokoe:valid" result="pass"/><test-case name="24405ST_facets00110m1_p tokoe:valid" result="pass"/><test-case name="24406ST_facets00110m1_n tokoe:invalid" result="pass"/><test-case name="24407ST_facets00111m tokoe:valid" result="pass"/><test-case name="24408ST_facets00111m1_p tokoe:valid" result="pass"/><test-case name="24409ST_facets00111m1_n tokoe:invalid" result="pass"/><test-case name="24410ST_facets00112m tokoe:valid" result="pass"/><test-case name="24411ST_facets00112m1_p tokoe:valid" result="pass"/><test-case name="24412ST_facets00112m1_n tokoe:invalid" result="pass"/><test-case name="24413ST_facets00113m tokoe:valid" result="pass"/><test-case name="24414ST_facets00113m1_p tokoe:valid" result="pass"/><test-case name="24415ST_facets00113m1_n tokoe:invalid" result="pass"/><test-case name="24416ST_facets00114m tokoe:valid" result="pass"/><test-case name="24417ST_facets00114m1_p tokoe:valid" result="pass"/><test-case name="24418ST_facets00114m1_n tokoe:invalid" result="pass"/><test-case name="24419ST_facets00115m tokoe:valid" result="pass"/><test-case name="24420ST_facets00115m1_p tokoe:valid" result="pass"/><test-case name="24421ST_facets00115m1_n tokoe:invalid" result="pass"/><test-case name="24422ST_facets00116m tokoe:valid" result="pass"/><test-case name="24423ST_facets00116m1_p tokoe:valid" result="pass"/><test-case name="24424ST_facets00116m1_n tokoe:invalid" result="pass"/><test-case name="24425ST_facets00117m tokoe:valid" result="pass"/><test-case name="24426ST_facets00117m1_p tokoe:valid" result="pass"/><test-case name="24427ST_facets00117m1_n tokoe:invalid" result="pass"/><test-case name="24428ST_facets00118m tokoe:valid" result="pass"/><test-case name="24429ST_facets00118m1_p tokoe:valid" result="pass"/><test-case name="24430ST_facets00118m1_n tokoe:invalid" result="pass"/><test-case name="24431ST_facets00119m tokoe:valid" result="fail"/><test-case name="24432ST_facets00119m1_p tokoe:valid" result="fail"/><test-case name="24433ST_facets00119m1_n tokoe:invalid" result="pass"/><test-case name="24434ST_facets00120m tokoe:valid" result="pass"/><test-case name="24435ST_facets00120m1_p tokoe:valid" result="pass"/><test-case name="24436ST_facets00120m1_n tokoe:invalid" result="pass"/><test-case name="24437ST_facets00121m tokoe:valid" result="pass"/><test-case name="24438ST_facets00121m1_p tokoe:valid" result="pass"/><test-case name="24439ST_facets00121m1_n tokoe:invalid" result="pass"/><test-case name="24440ST_facets00122m tokoe:valid" result="pass"/><test-case name="24441ST_facets00122m1_p tokoe:valid" result="pass"/><test-case name="24442ST_facets00122m1_n tokoe:invalid" result="pass"/><test-case name="24443ST_facets00123m tokoe:valid" result="pass"/><test-case name="24444ST_facets00123m1_p tokoe:valid" result="pass"/><test-case name="24445ST_facets00123m1_n tokoe:invalid" result="pass"/><test-case name="24446ST_facets00124m1 tokoe:valid" result="pass"/><test-case name="24447Positive tokoe:valid" result="pass"/><test-case name="24448Negative tokoe:invalid" result="pass"/><test-case name="24449ST_facets00201m1 tokoe:valid" result="pass"/><test-case name="24450Positive tokoe:valid" result="pass"/><test-case name="24451Negative tokoe:invalid" result="pass"/><test-case name="24452ST_facets00201m10 tokoe:valid" result="pass"/><test-case name="24453Positive tokoe:valid" result="pass"/><test-case name="24454Negative tokoe:invalid" result="pass"/><test-case name="24455ST_facets00201m11 tokoe:valid" result="pass"/><test-case name="24456Positive tokoe:valid" result="pass"/><test-case name="24457Negative tokoe:invalid" result="pass"/><test-case name="24458ST_facets00201m12 tokoe:valid" result="pass"/><test-case name="24459Positive tokoe:valid" result="pass"/><test-case name="24460Negative tokoe:invalid" result="pass"/><test-case name="24461ST_facets00201m13 tokoe:valid" result="pass"/><test-case name="24462Positive tokoe:valid" result="pass"/><test-case name="24463Negative tokoe:invalid" result="pass"/><test-case name="24464ST_facets00201m14 tokoe:valid" result="pass"/><test-case name="24465Positive tokoe:valid" result="pass"/><test-case name="24466Negative tokoe:invalid" result="pass"/><test-case name="24467ST_facets00201m15 tokoe:valid" result="pass"/><test-case name="24468Positive tokoe:valid" result="pass"/><test-case name="24469Negative tokoe:invalid" result="pass"/><test-case name="24470ST_facets00201m16 tokoe:valid" result="pass"/><test-case name="24471Positive tokoe:valid" result="pass"/><test-case name="24472Negative tokoe:invalid" result="pass"/><test-case name="24473ST_facets00201m2 tokoe:valid" result="pass"/><test-case name="24474Positive tokoe:valid" result="pass"/><test-case name="24475Negative tokoe:invalid" result="pass"/><test-case name="24476ST_facets00201m3 tokoe:valid" result="pass"/><test-case name="24477Positive tokoe:valid" result="pass"/><test-case name="24478Negative tokoe:invalid" result="pass"/><test-case name="24479ST_facets00201m4 tokoe:valid" result="pass"/><test-case name="24480Positive tokoe:valid" result="pass"/><test-case name="24481Negative tokoe:invalid" result="pass"/><test-case name="24482ST_facets00201m5 tokoe:valid" result="pass"/><test-case name="24483Positive tokoe:valid" result="pass"/><test-case name="24484Negative tokoe:invalid" result="pass"/><test-case name="24485ST_facets00201m6 tokoe:valid" result="pass"/><test-case name="24486Positive tokoe:valid" result="pass"/><test-case name="24487Negative tokoe:invalid" result="pass"/><test-case name="24488ST_facets00201m7 tokoe:valid" result="pass"/><test-case name="24489Positive tokoe:valid" result="pass"/><test-case name="24490Negative tokoe:invalid" result="pass"/><test-case name="24491ST_facets00201m8 tokoe:valid" result="pass"/><test-case name="24492Positive tokoe:valid" result="pass"/><test-case name="24493Negative tokoe:invalid" result="pass"/><test-case name="24494ST_facets00201m9 tokoe:valid" result="pass"/><test-case name="24495Positive tokoe:valid" result="pass"/><test-case name="24496Negative tokoe:invalid" result="pass"/><test-case name="24497ST_facets00301m tokoe:valid" result="pass"/><test-case name="24498ST_facets00301m1_p tokoe:valid" result="pass"/><test-case name="24499ST_facets00301m1_n tokoe:invalid" result="pass"/><test-case name="24500ST_facets00401m1 tokoe:valid" result="pass"/><test-case name="24501Positive tokoe:valid" result="pass"/><test-case name="24502ST_facets00401m10 tokoe:valid" result="pass"/><test-case name="24503Positive tokoe:valid" result="pass"/><test-case name="24504ST_facets00401m11 tokoe:valid" result="pass"/><test-case name="24505Positive tokoe:valid" result="pass"/><test-case name="24506ST_facets00401m12 tokoe:valid" result="pass"/><test-case name="24507Positive tokoe:valid" result="pass"/><test-case name="24508ST_facets00401m13 tokoe:valid" result="pass"/><test-case name="24509Positive tokoe:valid" result="pass"/><test-case name="24510ST_facets00401m14 tokoe:valid" result="pass"/><test-case name="24511Positive tokoe:valid" result="pass"/><test-case name="24512ST_facets00401m15 tokoe:valid" result="pass"/><test-case name="24513Positive tokoe:valid" result="pass"/><test-case name="24514ST_facets00401m16 tokoe:valid" result="pass"/><test-case name="24515Positive tokoe:valid" result="pass"/><test-case name="24516ST_facets00401m17 tokoe:valid" result="pass"/><test-case name="24517Positive tokoe:valid" result="pass"/><test-case name="24518ST_facets00401m18 tokoe:valid" result="pass"/><test-case name="24519Positive tokoe:valid" result="pass"/><test-case name="24520ST_facets00401m19 tokoe:valid" result="pass"/><test-case name="24521Positive tokoe:valid" result="pass"/><test-case name="24522ST_facets00401m2 tokoe:valid" result="pass"/><test-case name="24523Positive tokoe:valid" result="pass"/><test-case name="24524ST_facets00401m20 tokoe:valid" result="pass"/><test-case name="24525Positive tokoe:valid" result="pass"/><test-case name="24526ST_facets00401m21 tokoe:valid" result="pass"/><test-case name="24527Positive tokoe:valid" result="pass"/><test-case name="24528ST_facets00401m3 tokoe:valid" result="pass"/><test-case name="24529Positive tokoe:valid" result="pass"/><test-case name="24530ST_facets00401m4 tokoe:valid" result="pass"/><test-case name="24531Positive tokoe:valid" result="pass"/><test-case name="24532ST_facets00401m5 tokoe:valid" result="pass"/><test-case name="24533Positive tokoe:valid" result="pass"/><test-case name="24534ST_facets00401m6 tokoe:valid" result="pass"/><test-case name="24535Positive tokoe:valid" result="pass"/><test-case name="24536ST_facets00401m7 tokoe:valid" result="pass"/><test-case name="24537Positive tokoe:valid" result="pass"/><test-case name="24538ST_facets00401m8 tokoe:valid" result="pass"/><test-case name="24539Positive tokoe:valid" result="pass"/><test-case name="24540ST_facets00401m9 tokoe:valid" result="pass"/><test-case name="24541Positive tokoe:valid" result="pass"/><test-case name="24542ST_facets00402m1 tokoe:valid" result="pass"/><test-case name="24543Positive tokoe:valid" result="pass"/><test-case name="24544ST_facets00403m1 tokoe:valid" result="pass"/><test-case name="24545Positive tokoe:valid" result="pass"/><test-case name="24546ST_facets00501m1 tokoe:valid" result="pass"/><test-case name="24547Positive tokoe:valid" result="pass"/><test-case name="24548ST_facets00501m10 tokoe:valid" result="pass"/><test-case name="24549Positive tokoe:valid" result="pass"/><test-case name="24550ST_facets00501m11 tokoe:valid" result="pass"/><test-case name="24551Positive tokoe:valid" result="pass"/><test-case name="24552ST_facets00501m12 tokoe:valid" result="pass"/><test-case name="24553Positive tokoe:valid" result="pass"/><test-case name="24554ST_facets00501m13 tokoe:valid" result="pass"/><test-case name="24555Positive tokoe:valid" result="pass"/><test-case name="24556ST_facets00501m14 tokoe:valid" result="pass"/><test-case name="24557Positive tokoe:valid" result="pass"/><test-case name="24558ST_facets00501m15 tokoe:valid" result="pass"/><test-case name="24559Positive tokoe:valid" result="pass"/><test-case name="24560ST_facets00501m16 tokoe:valid" result="pass"/><test-case name="24561Positive tokoe:valid" result="pass"/><test-case name="24562ST_facets00501m17 tokoe:valid" result="pass"/><test-case name="24563Positive tokoe:valid" result="pass"/><test-case name="24564ST_facets00501m18 tokoe:valid" result="pass"/><test-case name="24565Positive tokoe:valid" result="pass"/><test-case name="24566ST_facets00501m19 tokoe:valid" result="pass"/><test-case name="24567Positive tokoe:valid" result="pass"/><test-case name="24568ST_facets00501m2 tokoe:valid" result="pass"/><test-case name="24569Positive tokoe:valid" result="pass"/><test-case name="24570ST_facets00501m20 tokoe:valid" result="pass"/><test-case name="24571Positive tokoe:valid" result="pass"/><test-case name="24572ST_facets00501m21 tokoe:valid" result="pass"/><test-case name="24573Positive tokoe:valid" result="pass"/><test-case name="24574ST_facets00501m3 tokoe:valid" result="pass"/><test-case name="24575Positive tokoe:valid" result="pass"/><test-case name="24576ST_facets00501m4 tokoe:valid" result="pass"/><test-case name="24577Positive tokoe:valid" result="pass"/><test-case name="24578ST_facets00501m5 tokoe:valid" result="pass"/><test-case name="24579Positive tokoe:valid" result="pass"/><test-case name="24580ST_facets00501m6 tokoe:valid" result="pass"/><test-case name="24581Positive tokoe:valid" result="pass"/><test-case name="24582ST_facets00501m7 tokoe:valid" result="pass"/><test-case name="24583Positive tokoe:valid" result="pass"/><test-case name="24584ST_facets00501m8 tokoe:valid" result="pass"/><test-case name="24585Positive tokoe:valid" result="pass"/><test-case name="24586ST_facets00501m9 tokoe:valid" result="pass"/><test-case name="24587Positive tokoe:valid" result="pass"/><test-case name="24588ST_facets00502m1 tokoe:valid" result="pass"/><test-case name="24589Positive tokoe:valid" result="pass"/><test-case name="24590ST_facets00503m1 tokoe:valid" result="pass"/><test-case name="24591Positive tokoe:valid" result="pass"/><test-case name="24592ST_facets00504m1 tokoe:valid" result="pass"/><test-case name="24593Positive tokoe:valid" result="pass"/><test-case name="24594ST_facets00504m2 tokoe:valid" result="pass"/><test-case name="24595Positive tokoe:valid" result="pass"/><test-case name="24596ST_facets00505m1 tokoe:valid" result="pass"/><test-case name="24597Positive tokoe:valid" result="pass"/><test-case name="24598ST_facets00505m10 tokoe:valid" result="pass"/><test-case name="24599Positive tokoe:valid" result="pass"/><test-case name="24600ST_facets00505m2 tokoe:valid" result="pass"/><test-case name="24601Positive tokoe:valid" result="pass"/><test-case name="24602ST_facets00505m3 tokoe:valid" result="pass"/><test-case name="24603Positive tokoe:valid" result="pass"/><test-case name="24604ST_facets00505m4 tokoe:valid" result="pass"/><test-case name="24605Positive tokoe:valid" result="pass"/><test-case name="24606ST_facets00505m5 tokoe:valid" result="pass"/><test-case name="24607Positive tokoe:valid" result="pass"/><test-case name="24608ST_facets00505m6 tokoe:valid" result="pass"/><test-case name="24609Positive tokoe:valid" result="pass"/><test-case name="24610ST_facets00505m7 tokoe:valid" result="pass"/><test-case name="24611Positive tokoe:valid" result="pass"/><test-case name="24612ST_facets00505m8 tokoe:valid" result="pass"/><test-case name="24613Positive tokoe:valid" result="pass"/><test-case name="24614ST_facets00505m9 tokoe:valid" result="pass"/><test-case name="24615Positive tokoe:valid" result="pass"/><test-case name="24616ST_facets00506m1 tokoe:valid" result="pass"/><test-case name="24617Positive tokoe:valid" result="pass"/><test-case name="24618ST_facets00506m2 tokoe:valid" result="pass"/><test-case name="24619Positive tokoe:valid" result="pass"/><test-case name="24620ST_facets00601 tokoe:valid" result="pass"/><test-case name="24621ST_facets00601_p tokoe:valid" result="pass"/><test-case name="24622ST_facets00602 tokoe:valid" result="pass"/><test-case name="24623ST_facets00602_p tokoe:valid" result="pass"/><test-case name="24624ST_facets00603 tokoe:valid" result="pass"/><test-case name="24625ST_facets00603_p tokoe:valid" result="pass"/><test-case name="24626ST_facets00604 tokoe:valid" result="pass"/><test-case name="24627ST_facets00604_p tokoe:valid" result="pass"/><test-case name="24628ST_facets00605 tokoe:valid" result="pass"/><test-case name="24629ST_facets00605_p tokoe:valid" result="pass"/><test-case name="24630ST_facets00608 tokoe:valid" result="pass"/><test-case name="24631ST_facets00608_p tokoe:valid" result="pass"/><test-case name="24632ST_final00101m1 tokoe:invalid" result="pass"/><test-case name="24633ST_final00101m2 tokoe:valid" result="pass"/><test-case name="24634Positive tokoe:valid" result="pass"/><test-case name="24635Negative tokoe:invalid" result="pass"/><test-case name="24636ST_final00101m3 tokoe:valid" result="pass"/><test-case name="24637Positive tokoe:valid" result="pass"/><test-case name="24638Negative tokoe:invalid" result="pass"/><test-case name="24639ST_final00101m4 tokoe:valid" result="pass"/><test-case name="24640Positive tokoe:valid" result="pass"/><test-case name="24641Negative tokoe:invalid" result="pass"/><test-case name="24642ST_final00101m5 tokoe:valid" result="pass"/><test-case name="24643Positive tokoe:valid" result="pass"/><test-case name="24644Negative tokoe:invalid" result="pass"/><test-case name="24645ST_final00101m6 tokoe:valid" result="pass"/><test-case name="24646Positive tokoe:valid" result="pass"/><test-case name="24647Negative tokoe:invalid" result="pass"/><test-case name="24648ST_final00102m1 tokoe:invalid" result="pass"/><test-case name="24649ST_final00102m2 tokoe:valid" result="pass"/><test-case name="24650Positive tokoe:valid" result="pass"/><test-case name="24651Negative tokoe:invalid" result="pass"/><test-case name="24652ST_final00102m3 tokoe:valid" result="pass"/><test-case name="24653Positive tokoe:valid" result="pass"/><test-case name="24654Negative tokoe:invalid" result="pass"/><test-case name="24655ST_final00102m4 tokoe:valid" result="pass"/><test-case name="24656Positive tokoe:valid" result="pass"/><test-case name="24657Negative tokoe:invalid" result="pass"/><test-case name="24658ST_final00102m5 tokoe:valid" result="pass"/><test-case name="24659Positive tokoe:valid" result="pass"/><test-case name="24660Negative tokoe:invalid" result="pass"/><test-case name="24661ST_final00102m6 tokoe:valid" result="pass"/><test-case name="24662Positive tokoe:valid" result="pass"/><test-case name="24663Negative tokoe:invalid" result="pass"/><test-case name="24664ST_final00103m1 tokoe:invalid" result="pass"/><test-case name="24665ST_final00103m2 tokoe:valid" result="pass"/><test-case name="24666Positive tokoe:valid" result="pass"/><test-case name="24667Negative tokoe:invalid" result="pass"/><test-case name="24668ST_final00103m3 tokoe:valid" result="pass"/><test-case name="24669Positive tokoe:valid" result="pass"/><test-case name="24670Negative tokoe:invalid" result="pass"/><test-case name="24671ST_name00101m tokoe:valid" result="pass"/><test-case name="24672ST_name00101m1_p tokoe:valid" result="pass"/><test-case name="24673ST_name00101m1_n tokoe:invalid" result="pass"/><test-case name="24674ST_name00201m tokoe:invalid" result="pass"/><test-case name="24675ST_name00301m tokoe:invalid" result="pass"/><test-case name="24676ST_name00401m tokoe:valid" result="pass"/><test-case name="24677ST_name00401m1_p tokoe:valid" result="pass"/><test-case name="24678ST_targetNS00101m tokoe:valid" result="pass"/><test-case name="24679ST_targetNS00101m1_p tokoe:valid" result="pass"/><test-case name="24680ST_targetNS00101m1_n tokoe:invalid" result="pass"/><test-case name="24681ST_targetNS00101m2_p tokoe:valid" result="pass"/><test-case name="24682ST_targetNS00101m2_n tokoe:invalid" result="pass"/><test-case name="24683ST_targetNS00201m tokoe:valid" result="pass"/><test-case name="24684ST_targetNS00201m1_p tokoe:valid" result="pass"/><test-case name="24685ST_variety00101m1 tokoe:valid" result="pass"/><test-case name="24686Positive tokoe:valid" result="pass"/><test-case name="24687Negative tokoe:invalid" result="pass"/><test-case name="24688ST_variety00101m2 tokoe:valid" result="pass"/><test-case name="24689Positive tokoe:valid" result="pass"/><test-case name="24690Negative tokoe:invalid" result="pass"/><test-case name="24691ST_variety00201m1 tokoe:invalid" result="pass"/><test-case name="24692ST_variety00201m2 tokoe:invalid" result="pass"/><test-case name="24693annotations00101m1 tokoe:valid" result="pass"/><test-case name="24694Positive tokoe:valid" result="pass"/><test-case name="24695annotations00101m2 tokoe:valid" result="pass"/><test-case name="24696Positive tokoe:valid" result="pass"/><test-case name="24697annotations00101m3 tokoe:valid" result="pass"/><test-case name="24698Positive tokoe:valid" result="pass"/><test-case name="24699annotations00101m4 tokoe:valid" result="pass"/><test-case name="24700Positive tokoe:valid" result="pass"/><test-case name="24701annotations00101m5 tokoe:valid" result="pass"/><test-case name="24702Positive tokoe:valid" result="pass"/><test-case name="24703annotations00101m6 tokoe:valid" result="pass"/><test-case name="24704Positive tokoe:valid" result="pass"/><test-case name="24705annotation00101m1 tokoe:valid" result="pass"/><test-case name="24706Positive tokoe:valid" result="pass"/><test-case name="24707annotation00101m2 tokoe:invalid" result="pass"/><test-case name="24708annotation00101m3 tokoe:valid" result="pass"/><test-case name="24709Positive tokoe:valid" result="pass"/><test-case name="24710annotation00101m4 tokoe:invalid" result="pass"/><test-case name="24711annotation00101m5 tokoe:valid" result="pass"/><test-case name="24712Positive tokoe:valid" result="pass"/><test-case name="24713annotation00101m6 tokoe:invalid" result="pass"/><test-case name="24714annotation00101m7 tokoe:valid" result="pass"/><test-case name="24715Positive tokoe:valid" result="pass"/><test-case name="24716annotation00101m8 tokoe:invalid" result="pass"/><test-case name="24717nsConstraint00101m1 tokoe:valid" result="pass"/><test-case name="24718Positive tokoe:valid" result="pass"/><test-case name="24719Negative tokoe:invalid" result="pass"/><test-case name="24720nsConstraint00101m2 tokoe:valid" result="pass"/><test-case name="24721Positive tokoe:valid" result="pass"/><test-case name="24722Negative tokoe:invalid" result="pass"/><test-case name="24723nsConstraint00102m1 tokoe:valid" result="pass"/><test-case name="24724Positive tokoe:valid" result="pass"/><test-case name="24725nsConstraint00102m2 tokoe:valid" result="pass"/><test-case name="24726Positive tokoe:valid" result="pass"/><test-case name="24727nsConstraint00201m1 tokoe:valid" result="pass"/><test-case name="24728Positive tokoe:valid" result="pass"/><test-case name="24729Negative tokoe:invalid" result="pass"/><test-case name="24730nsConstraint00202m1 tokoe:valid" result="pass"/><test-case name="24731Positive tokoe:valid" result="pass"/><test-case name="24732Negative tokoe:invalid" result="pass"/><test-case name="24733nsConstraint00301m1 tokoe:valid" result="pass"/><test-case name="24734Positive tokoe:valid" result="pass"/><test-case name="24735Negative tokoe:invalid" result="pass"/><test-case name="24736nsConstraint00302m1 tokoe:valid" result="pass"/><test-case name="24737Positive tokoe:valid" result="pass"/><test-case name="24738Negative tokoe:invalid" result="pass"/><test-case name="24739psContents00101m1 tokoe:valid" result="pass"/><test-case name="24740Positive tokoe:valid" result="pass"/><test-case name="24741Negative tokoe:invalid" result="pass"/><test-case name="24742psContents00101m2 tokoe:valid" result="pass"/><test-case name="24743Negative tokoe:invalid" result="pass"/><test-case name="24744psContents00102m1 tokoe:valid" result="pass"/><test-case name="24745Positive tokoe:valid" result="pass"/><test-case name="24746Negative tokoe:invalid" result="pass"/><test-case name="24747psContents00102m2 tokoe:valid" result="pass"/><test-case name="24748Negative tokoe:invalid" result="pass"/><test-case name="24749psContents00201m1 tokoe:valid" result="pass"/><test-case name="24750Positive tokoe:valid" result="pass"/><test-case name="24751Negative tokoe:invalid" result="pass"/><test-case name="24752psContents00202m1 tokoe:valid" result="pass"/><test-case name="24753Positive tokoe:valid" result="pass"/><test-case name="24754psContents00301m1 tokoe:valid" result="pass"/><test-case name="24755Positive tokoe:valid" result="pass"/><test-case name="24756Negative tokoe:invalid" result="pass"/><test-case name="24757psContents00301m2 tokoe:valid" result="pass"/><test-case name="24758Positive tokoe:valid" result="pass"/><test-case name="24759Negative tokoe:invalid" result="pass"/><test-case name="24760psContents00302m1 tokoe:valid" result="pass"/><test-case name="24761Positive tokoe:valid" result="pass"/><test-case name="24762Negative tokoe:invalid" result="pass"/><test-case name="24763psContents00302m2 tokoe:valid" result="pass"/><test-case name="24764Positive tokoe:valid" result="pass"/><test-case name="24765Negative tokoe:invalid" result="pass"/><test-case name="24766addA001 tokoe:valid" result="pass"/><test-case name="24767addA002 tokoe:valid" result="pass"/><test-case name="24768addA003 tokoe:invalid" result="pass"/><test-case name="24769addA005 tokoe:valid" result="pass"/><test-case name="24770addA005.v tokoe:valid" result="pass"/><test-case name="24771addA006.v tokoe:valid" result="fail"/><test-case name="24772adda007.v tokoe:valid" result="pass"/><test-case name="24773addA008.v tokoe:valid" result="pass"/><test-case name="24774addC001 tokoe:valid" result="pass"/><test-case name="24775addC001.v tokoe:valid" result="pass"/><test-case name="24776addC002 tokoe:valid" result="pass"/><test-case name="24777addB001 tokoe:valid" result="pass"/><test-case name="24778addB002 tokoe:valid" result="pass"/><test-case name="24779addB002.i tokoe:invalid" result="pass"/><test-case name="24780addB003 tokoe:valid" result="pass"/><test-case name="24781addB003.i tokoe:invalid" result="pass"/><test-case name="24782addB004 tokoe:invalid" result="pass"/><test-case name="24783addB005 tokoe:invalid" result="pass"/><test-case name="24784addB006 tokoe:valid" result="pass"/><test-case name="24785addB007 tokoe:valid" result="pass"/><test-case name="24786addB008 tokoe:invalid" result="pass"/><test-case name="24787addB009 tokoe:invalid" result="pass"/><test-case name="24788addB010 tokoe:invalid" result="pass"/><test-case name="24789addB011 tokoe:valid" result="pass"/><test-case name="24790addB011.i tokoe:invalid" result="pass"/><test-case name="24791addB012 tokoe:valid" result="pass"/><test-case name="24792addB012.v tokoe:valid" result="pass"/><test-case name="24793addB013 tokoe:valid" result="pass"/><test-case name="24794addB013.i tokoe:invalid" result="pass"/><test-case name="24795addB014 tokoe:invalid" result="pass"/><test-case name="24796addB016 tokoe:valid" result="fail"/><test-case name="24797addB017 tokoe:valid" result="pass"/><test-case name="24798addB018 tokoe:valid" result="pass"/><test-case name="24799addB019 tokoe:valid" result="pass"/><test-case name="24800addB019.v tokoe:valid" result="pass"/><test-case name="24801addB020 tokoe:valid" result="pass"/><test-case name="24802addB021 tokoe:valid" result="pass"/><test-case name="24803addB021a tokoe:invalid" result="pass"/><test-case name="24804addB022 tokoe:invalid" result="pass"/><test-case name="24805addB023 tokoe:valid" result="pass"/><test-case name="24806addB024 tokoe:valid" result="pass"/><test-case name="24807addB025 tokoe:valid" result="pass"/><test-case name="24808addB026 tokoe:valid" result="pass"/><test-case name="24809addB027 tokoe:valid" result="pass"/><test-case name="24810addB028 tokoe:valid" result="pass"/><test-case name="24811addB028.v tokoe:valid" result="pass"/><test-case name="24812addB029 tokoe:valid" result="pass"/><test-case name="24813addB030 tokoe:invalid" result="pass"/><test-case name="24814addB31 tokoe:valid" result="pass"/><test-case name="24815addB31.v tokoe:valid" result="pass"/><test-case name="24816addB32 tokoe:invalid" result="pass"/><test-case name="24817addB033 tokoe:invalid" result="pass"/><test-case name="24818addB034 tokoe:valid" result="pass"/><test-case name="24819addB034.v tokoe:valid" result="pass"/><test-case name="24820addB035 tokoe:invalid" result="pass"/><test-case name="24821addB036 tokoe:invalid" result="pass"/><test-case name="24822addB037 tokoe:valid" result="pass"/><test-case name="24823addB037.i tokoe:invalid" result="pass"/><test-case name="24824addB040 tokoe:valid" result="pass"/><test-case name="24825addB040.v tokoe:valid" result="pass"/><test-case name="24826addB041 tokoe:invalid" result="pass"/><test-case name="24827addB042 tokoe:valid" result="pass"/><test-case name="24828addB043 tokoe:invalid" result="pass"/><test-case name="24829addB044 tokoe:invalid" result="pass"/><test-case name="24830addB045 tokoe:invalid" result="pass"/><test-case name="24831addB046 tokoe:valid" result="pass"/><test-case name="24832addB046.v tokoe:valid" result="pass"/><test-case name="24833addB047 tokoe:valid" result="pass"/><test-case name="24834addB047.v tokoe:valid" result="pass"/><test-case name="24835addB050 tokoe:valid" result="pass"/><test-case name="24836addB050.i tokoe:invalid" result="pass"/><test-case name="24837addB051 tokoe:valid" result="pass"/><test-case name="24838addB051b tokoe:valid" result="pass"/><test-case name="24839addB052 tokoe:invalid" result="pass"/><test-case name="24840addB053 tokoe:invalid" result="pass"/><test-case name="24841addB054 tokoe:valid" result="pass"/><test-case name="24842addB054.v tokoe:valid" result="pass"/><test-case name="24843addB055 tokoe:valid" result="pass"/><test-case name="24844addB056 tokoe:valid" result="pass"/><test-case name="24845addB056.v tokoe:valid" result="pass"/><test-case name="24846addB057 tokoe:valid" result="pass"/><test-case name="24847addB057.i tokoe:invalid" result="pass"/><test-case name="24848addB058 tokoe:valid" result="pass"/><test-case name="24849addB058.v tokoe:valid" result="pass"/><test-case name="24850addB059 tokoe:valid" result="pass"/><test-case name="24851addB059.v tokoe:valid" result="pass"/><test-case name="24852addB060 tokoe:valid" result="pass"/><test-case name="24853addB061 tokoe:valid" result="pass"/><test-case name="24854addB062 tokoe:valid" result="pass"/><test-case name="24855addB063.i tokoe:invalid" result="pass"/><test-case name="24856addB064 tokoe:valid" result="pass"/><test-case name="24857addB065 tokoe:valid" result="pass"/><test-case name="24858addB065.i tokoe:invalid" result="pass"/><test-case name="24859addB066 tokoe:valid" result="pass"/><test-case name="24860addB066.i tokoe:invalid" result="pass"/><test-case name="24861addB067 tokoe:valid" result="pass"/><test-case name="24862addB067.v tokoe:valid" result="pass"/><test-case name="24863addB069 tokoe:valid" result="pass"/><test-case name="24864addB069.i tokoe:invalid" result="pass"/><test-case name="24865addB070 tokoe:invalid" result="pass"/><test-case name="24866addB070a tokoe:invalid" result="pass"/><test-case name="24867addB071 tokoe:valid" result="pass"/><test-case name="24868addB072 tokoe:valid" result="pass"/><test-case name="24869addB073 tokoe:valid" result="pass"/><test-case name="24870addB075 tokoe:valid" result="pass"/><test-case name="24871addB075.i tokoe:invalid" result="pass"/><test-case name="24872addB076 tokoe:valid" result="pass"/><test-case name="24873addB076.v tokoe:valid" result="pass"/><test-case name="24874addB077 tokoe:valid" result="pass"/><test-case name="24875addB079 tokoe:valid" result="pass"/><test-case name="24876addB080 tokoe:valid" result="pass"/><test-case name="24877addB080.i tokoe:invalid" result="pass"/><test-case name="24878addB081 tokoe:invalid" result="pass"/><test-case name="24879addB082 tokoe:invalid" result="pass"/><test-case name="24880addB083 tokoe:invalid" result="pass"/><test-case name="24881addB084 tokoe:valid" result="pass"/><test-case name="24882addB084.v tokoe:valid" result="pass"/><test-case name="24883addB085 tokoe:valid" result="pass"/><test-case name="24884addB087 tokoe:valid" result="pass"/><test-case name="24885addB087.i tokoe:invalid" result="pass"/><test-case name="24886addB088 tokoe:valid" result="pass"/><test-case name="24887addB088.v tokoe:valid" result="pass"/><test-case name="24888addB089 tokoe:invalid" result="pass"/><test-case name="24889addB090 tokoe:valid" result="pass"/><test-case name="24890addB090.v tokoe:valid" result="pass"/><test-case name="24891addB091 tokoe:valid" result="pass"/><test-case name="24892addB092 tokoe:valid" result="pass"/><test-case name="24893addB092.i tokoe:invalid" result="pass"/><test-case name="24894addB093 tokoe:valid" result="pass"/><test-case name="24895addB094 tokoe:valid" result="pass"/><test-case name="24896addB095 tokoe:invalid" result="pass"/><test-case name="24897addB096 tokoe:valid" result="pass"/><test-case name="24898addB096.v tokoe:valid" result="pass"/><test-case name="24899addB097 tokoe:invalid" result="pass"/><test-case name="24900addB098 tokoe:valid" result="pass"/><test-case name="24901addB098.i tokoe:invalid" result="pass"/><test-case name="24902addB100 tokoe:invalid" result="pass"/><test-case name="24903addB101 tokoe:invalid" result="pass"/><test-case name="24904addB102 tokoe:valid" result="pass"/><test-case name="24905addB102.i tokoe:invalid" result="pass"/><test-case name="24906addB103 tokoe:valid" result="pass"/><test-case name="24907addB104 tokoe:valid" result="pass"/><test-case name="24908addB104.v tokoe:valid" result="pass"/><test-case name="24909addB105 tokoe:valid" result="pass"/><test-case name="24910addB105.i tokoe:invalid" result="pass"/><test-case name="24911addB106 tokoe:valid" result="pass"/><test-case name="24912addB107 tokoe:valid" result="pass"/><test-case name="24913addB108 tokoe:invalid" result="pass"/><test-case name="24914addB109 tokoe:valid" result="pass"/><test-case name="24915addB109.i tokoe:invalid" result="pass"/><test-case name="24916addB110 tokoe:invalid" result="pass"/><test-case name="24917addB111 tokoe:invalid" result="pass"/><test-case name="24918addB112 tokoe:invalid" result="pass"/><test-case name="24919addB113 tokoe:invalid" result="pass"/><test-case name="24920addB114 tokoe:valid" result="pass"/><test-case name="24921addB114.i tokoe:invalid" result="pass"/><test-case name="24922addB115 tokoe:valid" result="pass"/><test-case name="24923addB115.i tokoe:invalid" result="pass"/><test-case name="24924addB116 tokoe:valid" result="pass"/><test-case name="24925addB116.v tokoe:valid" result="pass"/><test-case name="24926addB117 tokoe:valid" result="pass"/><test-case name="24927addB121 tokoe:invalid" result="pass"/><test-case name="24928addB122 tokoe:valid" result="pass"/><test-case name="24929addB122.v tokoe:valid" result="pass"/><test-case name="24930addB123 tokoe:valid" result="pass"/><test-case name="24931addB123.i tokoe:invalid" result="pass"/><test-case name="24932addB124.i tokoe:invalid" result="pass"/><test-case name="24933addB125 tokoe:valid" result="pass"/><test-case name="24934addB125.v tokoe:valid" result="pass"/><test-case name="24935addB126 tokoe:valid" result="pass"/><test-case name="24936addB127 tokoe:valid" result="pass"/><test-case name="24937addB128 tokoe:valid" result="pass"/><test-case name="24938addB129 tokoe:valid" result="pass"/><test-case name="24939addB129.v tokoe:valid" result="pass"/><test-case name="24940addB130 tokoe:valid" result="pass"/><test-case name="24941addB130.v tokoe:valid" result="pass"/><test-case name="24942addB131 tokoe:valid" result="pass"/><test-case name="24943addB131.v tokoe:valid" result="pass"/><test-case name="24944addB132 tokoe:valid" result="pass"/><test-case name="24945addB132.v tokoe:valid" result="pass"/><test-case name="24946addB134.v tokoe:valid" result="pass"/><test-case name="24947addB135 tokoe:valid" result="pass"/><test-case name="24948addB135.v tokoe:valid" result="pass"/><test-case name="24949addB136 tokoe:valid" result="pass"/><test-case name="24950addB136.v tokoe:valid" result="pass"/><test-case name="24951addB137 tokoe:invalid" result="pass"/><test-case name="24952addB138.i tokoe:invalid" result="pass"/><test-case name="24953addB139.i tokoe:invalid" result="pass"/><test-case name="24954addB140 tokoe:valid" result="pass"/><test-case name="24955addB140.v tokoe:valid" result="pass"/><test-case name="24956addB141 tokoe:invalid" result="pass"/><test-case name="24957addB142.i tokoe:invalid" result="pass"/><test-case name="24958addB143 tokoe:valid" result="pass"/><test-case name="24959addB143.i tokoe:invalid" result="pass"/><test-case name="24960addB144 tokoe:valid" result="pass"/><test-case name="24961addB145 tokoe:valid" result="pass"/><test-case name="24962addB145.v tokoe:valid" result="pass"/><test-case name="24963test93160 tokoe:valid" result="pass"/><test-case name="24964test93160.i tokoe:invalid" result="pass"/><test-case name="24965addB147 tokoe:valid" result="pass"/><test-case name="24966addB148 tokoe:valid" result="pass"/><test-case name="24967addB148.v tokoe:valid" result="pass"/><test-case name="24968addB149 tokoe:valid" result="pass"/><test-case name="24969addB149.i tokoe:invalid" result="pass"/><test-case name="24970addB150 tokoe:valid" result="pass"/><test-case name="24971addB151 tokoe:valid" result="pass"/><test-case name="24972addB153 tokoe:invalid" result="pass"/><test-case name="24973addB155.v tokoe:valid" result="pass"/><test-case name="24974addB156.i tokoe:invalid" result="pass"/><test-case name="24975addB157.v tokoe:valid" result="pass"/><test-case name="24976addB158.i tokoe:invalid" result="pass"/><test-case name="24977addB159.i tokoe:invalid" result="pass"/><test-case name="24978addB160.v tokoe:valid" result="pass"/><test-case name="24979addB161.i tokoe:invalid" result="pass"/><test-case name="24980addB162.i tokoe:invalid" result="pass"/><test-case name="24981addB163.v tokoe:valid" result="pass"/><test-case name="24982addB164.i tokoe:invalid" result="pass"/><test-case name="24983addB165.v tokoe:valid" result="pass"/><test-case name="24984addB166.i tokoe:invalid" result="pass"/><test-case name="24985addB167.i tokoe:invalid" result="fail"/><test-case name="24986addB168.v tokoe:valid" result="pass"/><test-case name="24987addB169.v tokoe:valid" result="pass"/><test-case name="24988addB169.1 tokoe:valid" result="pass"/><test-case name="24989addB169.1.v tokoe:valid" result="pass"/><test-case name="24990addB170 tokoe:valid" result="pass"/><test-case name="24991addB170.i tokoe:invalid" result="pass"/><test-case name="24992addB171 tokoe:valid" result="pass"/><test-case name="24993addB171.i tokoe:invalid" result="pass"/><test-case name="24994addB172 tokoe:valid" result="pass"/><test-case name="24995addB172.i tokoe:invalid" result="pass"/><test-case name="24996addB173 tokoe:valid" result="pass"/><test-case name="24997addB173.i tokoe:invalid" result="pass"/><test-case name="24998addB174 tokoe:valid" result="pass"/><test-case name="24999addB174.v tokoe:valid" result="pass"/><test-case name="25000addB175 tokoe:valid" result="pass"/><test-case name="25001addB175.i tokoe:invalid" result="pass"/><test-case name="25002addB176 tokoe:valid" result="pass"/><test-case name="25003addB176.v tokoe:valid" result="pass"/><test-case name="25004addB177 tokoe:invalid" result="pass"/><test-case name="25005addB178 tokoe:invalid" result="pass"/><test-case name="25006addB180 tokoe:invalid" result="pass"/><test-case name="25007addB181.i tokoe:invalid" result="pass"/><test-case name="25008addB182 tokoe:valid" result="pass"/><test-case name="25009addB182.v tokoe:valid" result="pass"/><test-case name="25010addB183 tokoe:valid" result="pass"/><test-case name="25011addB184 tokoe:valid" result="pass"/><test-case name="25012addB187 tokoe:valid" result="pass"/><test-case name="25013addB187.v tokoe:valid" result="pass"/><test-case name="25014addB188 tokoe:valid" result="pass"/><test-case name="25015addB188.i tokoe:invalid" result="pass"/><test-case name="25016addB191.v tokoe:invalid" result="pass"/><test-case name="25017addB193 tokoe:valid" result="pass"/><test-case name="25018addB194 tokoe:valid" result="fail"/><test-case name="25019addB196a tokoe:valid" result="pass"/><test-case name="25020addB196a.v tokoe:valid" result="pass"/><test-case name="25021addB196b tokoe:valid" result="pass"/><test-case name="25022addB196b.i tokoe:invalid" result="pass"/><test-case name="25023addB196c tokoe:valid" result="pass"/><test-case name="25024addB196c.v tokoe:valid" result="pass"/><test-case name="25025addB196d tokoe:valid" result="pass"/><test-case name="25026addB196d.i tokoe:invalid" result="pass"/><test-case name="25027addB196e tokoe:valid" result="pass"/><test-case name="25028addB196e.i tokoe:invalid" result="pass"/><test-case name="25029addB196f tokoe:valid" result="pass"/><test-case name="25030addB196f.v tokoe:valid" result="pass"/><test-case name="25031addB196g tokoe:valid" result="pass"/><test-case name="25032addB196g.i tokoe:invalid" result="pass"/><test-case name="25033addB196h tokoe:valid" result="pass"/><test-case name="25034addB196h.v tokoe:valid" result="pass"/><test-case name="25035addB196i tokoe:valid" result="pass"/><test-case name="25036addB196i.i tokoe:invalid" result="pass"/><test-case name="25037addB196j tokoe:valid" result="pass"/><test-case name="25038addB196j.i tokoe:invalid" result="pass"/><test-case name="25039addB196k tokoe:valid" result="pass"/><test-case name="25040addB196k.i tokoe:invalid" result="pass"/><test-case name="25041addB196l tokoe:valid" result="pass"/><test-case name="25042addB196l.i tokoe:invalid" result="pass"/><test-case name="25043addB197a tokoe:valid" result="pass"/><test-case name="25044addB197a.v tokoe:valid" result="pass"/><test-case name="25045addB197b tokoe:valid" result="pass"/><test-case name="25046addB197b.i tokoe:invalid" result="pass"/><test-case name="25047addB197c tokoe:valid" result="pass"/><test-case name="25048addB197c.v tokoe:valid" result="pass"/><test-case name="25049addB197d tokoe:valid" result="pass"/><test-case name="25050addB197d.i tokoe:invalid" result="pass"/><test-case name="25051addB197e tokoe:valid" result="pass"/><test-case name="25052addB197e.i tokoe:invalid" result="pass"/><test-case name="25053addB197f tokoe:valid" result="pass"/><test-case name="25054addB197f.i tokoe:invalid" result="pass"/><test-case name="25055addB198a tokoe:valid" result="pass"/><test-case name="25056addB198a.i tokoe:invalid" result="pass"/><test-case name="25057addB198b tokoe:valid" result="pass"/><test-case name="25058addB198b.i tokoe:invalid" result="pass"/><test-case name="25059addB198c tokoe:valid" result="pass"/><test-case name="25060addB198c.v tokoe:valid" result="pass"/><test-case name="25061addB198d tokoe:valid" result="pass"/><test-case name="25062addB198d.v tokoe:valid" result="pass"/><test-case name="25063addB199.i tokoe:invalid" result="pass"/><test-case name="25064addB200a tokoe:valid" result="pass"/><test-case name="25065addB200a.i tokoe:invalid" result="pass"/><test-case name="25066addB200b tokoe:valid" result="pass"/><test-case name="25067addB200b.i tokoe:invalid" result="pass"/><test-case name="25068addB200c tokoe:valid" result="pass"/><test-case name="25069addB200c.i tokoe:invalid" result="pass"/><test-case name="25070addB201 tokoe:valid" result="pass"/><test-case name="25071addB201.i tokoe:invalid" result="pass"/><test-case name="25072addB202a.i tokoe:invalid" result="pass"/><test-case name="25073addB202b.i tokoe:invalid" result="pass"/><test-case name="25074addD001 tokoe:valid" result="pass"/><test-case name="25075addD001.v tokoe:valid" result="pass"/><test-case name="25076addD002 tokoe:valid" result="pass"/><test-case name="25077addD002.v tokoe:valid" result="pass"/><test-case name="25078addD003 tokoe:valid" result="pass"/><test-case name="25079addD004 tokoe:valid" result="pass"/><test-case name="25080addD004.v tokoe:valid" result="pass"/><test-case name="25081addD004a tokoe:valid" result="pass"/><test-case name="25082addD004a.v tokoe:valid" result="pass"/><test-case name="25083isDefault001 tokoe:valid" result="pass"/><test-case name="25084isDefault001.v tokoe:valid" result="pass"/><test-case name="25085isDefault002 tokoe:valid" result="pass"/><test-case name="25086isDefault002.v tokoe:valid" result="pass"/><test-case name="25087isDefault003 tokoe:valid" result="pass"/><test-case name="25088isDefault003.v tokoe:valid" result="pass"/><test-case name="25089isDefault004 tokoe:valid" result="pass"/><test-case name="25090isDefault004.i tokoe:invalid" result="pass"/><test-case name="25091isDefault005 tokoe:valid" result="pass"/><test-case name="25092isDefault005.v tokoe:valid" result="pass"/><test-case name="25093isDefault006 tokoe:valid" result="pass"/><test-case name="25094isDefault006.v tokoe:valid" result="pass"/><test-case name="25095isDefault007 tokoe:valid" result="pass"/><test-case name="25096isDefault007.v tokoe:valid" result="pass"/><test-case name="25097isDefault008 tokoe:valid" result="pass"/><test-case name="25098isDefault008.i tokoe:invalid" result="pass"/><test-case name="25099isDefault009 tokoe:valid" result="pass"/><test-case name="25100isDefault009.i tokoe:invalid" result="pass"/><test-case name="25101isDefault010 tokoe:valid" result="pass"/><test-case name="25102isDefault010.i tokoe:invalid" result="pass"/><test-case name="25103isDefault011 tokoe:valid" result="pass"/><test-case name="25104isDefault011.i tokoe:invalid" result="pass"/><test-case name="25105isDefault021 tokoe:valid" result="pass"/><test-case name="25106isDefault021.v tokoe:valid" result="pass"/><test-case name="25107isDefault022 tokoe:valid" result="pass"/><test-case name="25108isDefault022.v tokoe:valid" result="pass"/><test-case name="25109isDefault023 tokoe:valid" result="pass"/><test-case name="25110isDefault023.v tokoe:valid" result="pass"/><test-case name="25111isDefault024 tokoe:valid" result="pass"/><test-case name="25112isDefault024.v tokoe:valid" result="pass"/><test-case name="25113isDefault025 tokoe:valid" result="pass"/><test-case name="25114isDefault025.v tokoe:valid" result="pass"/><test-case name="25115isDefault026 tokoe:valid" result="pass"/><test-case name="25116isDefault026.v tokoe:valid" result="pass"/><test-case name="25117isDefault027 tokoe:valid" result="pass"/><test-case name="25118isDefault027.v tokoe:valid" result="pass"/><test-case name="25119isDefault028 tokoe:valid" result="pass"/><test-case name="25120isDefault028.v tokoe:valid" result="pass"/><test-case name="25121isDefault051 tokoe:valid" result="pass"/><test-case name="25122isDefault051.v tokoe:valid" result="pass"/><test-case name="25123isDefault052 tokoe:valid" result="pass"/><test-case name="25124isDefault052.i tokoe:invalid" result="pass"/><test-case name="25125isDefault053 tokoe:valid" result="pass"/><test-case name="25126isDefault053.i tokoe:invalid" result="pass"/><test-case name="25127isDefault054 tokoe:valid" result="pass"/><test-case name="25128isDefault054.i tokoe:invalid" result="pass"/><test-case name="25129isDefault055 tokoe:valid" result="pass"/><test-case name="25130isDefault055.v tokoe:valid" result="pass"/><test-case name="25131isDefault056 tokoe:valid" result="pass"/><test-case name="25132isDefault056.v tokoe:valid" result="pass"/><test-case name="25133isDefault057 tokoe:valid" result="pass"/><test-case name="25134isDefault057.v tokoe:valid" result="pass"/><test-case name="25135isDefault058 tokoe:valid" result="pass"/><test-case name="25136isDefault058.v tokoe:valid" result="pass"/><test-case name="25137isDefault061 tokoe:valid" result="pass"/><test-case name="25138isDefault061.v tokoe:valid" result="pass"/><test-case name="25139isDefault062 tokoe:valid" result="pass"/><test-case name="25140isDefault062.i tokoe:invalid" result="pass"/><test-case name="25141isDefault063 tokoe:valid" result="pass"/><test-case name="25142isDefault063.i tokoe:invalid" result="pass"/><test-case name="25143isDefault064 tokoe:valid" result="pass"/><test-case name="25144isDefault064.i tokoe:invalid" result="pass"/><test-case name="25145isDefault065 tokoe:valid" result="pass"/><test-case name="25146isDefault065.v tokoe:valid" result="pass"/><test-case name="25147isDefault066 tokoe:valid" result="pass"/><test-case name="25148isDefault066.v tokoe:valid" result="pass"/><test-case name="25149isDefault067 tokoe:valid" result="pass"/><test-case name="25150isDefault067.v tokoe:valid" result="pass"/><test-case name="25151isDefault068 tokoe:valid" result="pass"/><test-case name="25152isDefault068.v tokoe:valid" result="pass"/><test-case name="25153isDefault060_1 tokoe:valid" result="pass"/><test-case name="25154isDefault060_1.v tokoe:valid" result="pass"/><test-case name="25155isDefault070 tokoe:valid" result="pass"/><test-case name="25156isDefault070.i tokoe:invalid" result="pass"/><test-case name="25157isDefault071 tokoe:valid" result="pass"/><test-case name="25158isDefault071.v tokoe:valid" result="pass"/><test-case name="25159isDefault072 tokoe:valid" result="pass"/><test-case name="25160isDefault072.v tokoe:valid" result="pass"/><test-case name="25161isDefault073 tokoe:valid" result="pass"/><test-case name="25162isDefault073.v tokoe:valid" result="pass"/><test-case name="25163isDefault074 tokoe:valid" result="pass"/><test-case name="25164isDefault074.v tokoe:valid" result="pass"/><test-case name="25165isDefault075 tokoe:valid" result="pass"/><test-case name="25166isDefault075.v tokoe:valid" result="pass"/><test-case name="25167isDefault076 tokoe:valid" result="pass"/><test-case name="25168isDefault076.v tokoe:valid" result="pass"/><test-case name="25169isDefault077 tokoe:valid" result="pass"/><test-case name="25170isDefault077.i tokoe:invalid" result="pass"/><test-case name="25171isDefault078 tokoe:valid" result="pass"/><test-case name="25172isDefault078.v tokoe:valid" result="pass"/><test-case name="25173isDefault079 tokoe:valid" result="pass"/><test-case name="25174isDefault079.v tokoe:valid" result="pass"/><test-case name="25175memberType001 tokoe:valid" result="pass"/><test-case name="25176memberType001.v tokoe:valid" result="pass"/><test-case name="25177memberType002 tokoe:valid" result="pass"/><test-case name="25178memberType002.v tokoe:valid" result="pass"/><test-case name="25179memberType003 tokoe:valid" result="pass"/><test-case name="25180memberType003.v tokoe:valid" result="pass"/><test-case name="25181memberType004 tokoe:valid" result="pass"/><test-case name="25182memberType004.v tokoe:valid" result="pass"/><test-case name="25183memberType005 tokoe:valid" result="pass"/><test-case name="25184memberType005.v tokoe:valid" result="pass"/><test-case name="25185memberType006 tokoe:valid" result="pass"/><test-case name="25186memberType006.v tokoe:valid" result="pass"/><test-case name="25187memberType007 tokoe:valid" result="pass"/><test-case name="25188memberType007.v tokoe:valid" result="pass"/><test-case name="25189memberType008 tokoe:valid" result="pass"/><test-case name="25190memberType008.v tokoe:valid" result="pass"/><test-case name="25191memberType021 tokoe:valid" result="pass"/><test-case name="25192memberType021.v tokoe:valid" result="pass"/><test-case name="25193memberType022 tokoe:valid" result="pass"/><test-case name="25194memberType022.v tokoe:valid" result="pass"/><test-case name="25195memberType023 tokoe:valid" result="pass"/><test-case name="25196memberType023.v tokoe:valid" result="pass"/><test-case name="25197memberType024 tokoe:valid" result="pass"/><test-case name="25198memberType024.v tokoe:valid" result="pass"/><test-case name="25199annotA001 tokoe:valid" result="pass"/><test-case name="25200annotA002 tokoe:valid" result="pass"/><test-case name="25201annotA003 tokoe:valid" result="pass"/><test-case name="25202annotA004 tokoe:valid" result="pass"/><test-case name="25203annotA005 tokoe:valid" result="pass"/><test-case name="25204annotA006 tokoe:valid" result="pass"/><test-case name="25205annotA007 tokoe:valid" result="pass"/><test-case name="25206annotA008 tokoe:valid" result="pass"/><test-case name="25207annotA009 tokoe:valid" result="pass"/><test-case name="25208annotA010 tokoe:valid" result="pass"/><test-case name="25209annotA011 tokoe:valid" result="pass"/><test-case name="25210annotA012 tokoe:valid" result="pass"/><test-case name="25211annotA013 tokoe:valid" result="pass"/><test-case name="25212annotA014 tokoe:valid" result="pass"/><test-case name="25213annotA015 tokoe:valid" result="pass"/><test-case name="25214annotA016 tokoe:valid" result="pass"/><test-case name="25215annotA017 tokoe:valid" result="pass"/><test-case name="25216annotA018 tokoe:valid" result="pass"/><test-case name="25217annotA019 tokoe:valid" result="pass"/><test-case name="25218annotA020 tokoe:valid" result="pass"/><test-case name="25219annotA021 tokoe:valid" result="pass"/><test-case name="25220annotA022 tokoe:valid" result="pass"/><test-case name="25221annotA023 tokoe:valid" result="pass"/><test-case name="25222annotB001 tokoe:invalid" result="pass"/><test-case name="25223annotB002 tokoe:valid" result="pass"/><test-case name="25224annotB003 tokoe:valid" result="pass"/><test-case name="25225annotB004 tokoe:invalid" result="pass"/><test-case name="25226annotB005 tokoe:invalid" result="pass"/><test-case name="25227annotB006 tokoe:invalid" result="pass"/><test-case name="25228annotB007 tokoe:invalid" result="pass"/><test-case name="25229annotB008 tokoe:valid" result="pass"/><test-case name="25230annotB009 tokoe:invalid" result="pass"/><test-case name="25231annotB010 tokoe:invalid" result="pass"/><test-case name="25232annotB011 tokoe:invalid" result="pass"/><test-case name="25233annotB012 tokoe:invalid" result="pass"/><test-case name="25234annotB013 tokoe:invalid" result="pass"/><test-case name="25235annotB014 tokoe:valid" result="pass"/><test-case name="25236annotB015 tokoe:invalid" result="pass"/><test-case name="25237annotB016 tokoe:invalid" result="pass"/><test-case name="25238annotB017 tokoe:invalid" result="pass"/><test-case name="25239annotB018 tokoe:invalid" result="pass"/><test-case name="25240annotB019 tokoe:invalid" result="pass"/><test-case name="25241annotB020 tokoe:invalid" result="pass"/><test-case name="25242annotB021 tokoe:invalid" result="pass"/><test-case name="25243annotB022 tokoe:invalid" result="pass"/><test-case name="25244annotB023 tokoe:invalid" result="pass"/><test-case name="25245annotB024 tokoe:invalid" result="pass"/><test-case name="25246annotB026 tokoe:invalid" result="pass"/><test-case name="25247annotB027 tokoe:valid" result="pass"/><test-case name="25248annotB028 tokoe:invalid" result="pass"/><test-case name="25249annotB029 tokoe:invalid" result="pass"/><test-case name="25250annotB030 tokoe:invalid" result="pass"/><test-case name="25251annotB031 tokoe:invalid" result="pass"/><test-case name="25252annotB032 tokoe:invalid" result="pass"/><test-case name="25253annotB033 tokoe:invalid" result="pass"/><test-case name="25254annotC001 tokoe:valid" result="pass"/><test-case name="25255annotC002 tokoe:valid" result="pass"/><test-case name="25256annotC003 tokoe:valid" result="pass"/><test-case name="25257annotC004 tokoe:valid" result="pass"/><test-case name="25258annotC005 tokoe:valid" result="pass"/><test-case name="25259annotD001 tokoe:valid" result="pass"/><test-case name="25260annotD002 tokoe:valid" result="pass"/><test-case name="25261annotD003 tokoe:valid" result="pass"/><test-case name="25262annotD004 tokoe:valid" result="pass"/><test-case name="25263annotD005 tokoe:valid" result="pass"/><test-case name="25264annotE001 tokoe:valid" result="pass"/><test-case name="25265annotE002 tokoe:valid" result="pass"/><test-case name="25266annotF001 tokoe:invalid" result="pass"/><test-case name="25267annotF002 tokoe:valid" result="pass"/><test-case name="25268annotF003 tokoe:invalid" result="pass"/><test-case name="25269annotF004 tokoe:valid" result="pass"/><test-case name="25270annotF005 tokoe:valid" result="pass"/><test-case name="25271annotF006 tokoe:valid" result="pass"/><test-case name="25272annotF007 tokoe:valid" result="pass"/><test-case name="25273annotF008 tokoe:valid" result="pass"/><test-case name="25274annotF009 tokoe:invalid" result="pass"/><test-case name="25275annotZ001 tokoe:valid" result="pass"/><test-case name="25276annotZ002 tokoe:valid" result="pass"/><test-case name="25277annotZ004 tokoe:valid" result="pass"/><test-case name="25278attgA001 tokoe:valid" result="pass"/><test-case name="25279attgA002 tokoe:invalid" result="pass"/><test-case name="25280attgA003 tokoe:invalid" result="pass"/><test-case name="25281attgA004 tokoe:invalid" result="pass"/><test-case name="25282attgA005 tokoe:invalid" result="pass"/><test-case name="25283attgA006 tokoe:invalid" result="pass"/><test-case name="25284attgA007 tokoe:invalid" result="pass"/><test-case name="25285attgA008 tokoe:valid" result="pass"/><test-case name="25286attgA009 tokoe:invalid" result="pass"/><test-case name="25287attgB001 tokoe:valid" result="pass"/><test-case name="25288attgB002 tokoe:invalid" result="pass"/><test-case name="25289attgB003 tokoe:invalid" result="pass"/><test-case name="25290attgB004 tokoe:invalid" result="pass"/><test-case name="25291attgB005 tokoe:valid" result="pass"/><test-case name="25292attgB006 tokoe:invalid" result="pass"/><test-case name="25293attgB007 tokoe:invalid" result="pass"/><test-case name="25294attgB008 tokoe:valid" result="pass"/><test-case name="25295attgB009 tokoe:valid" result="pass"/><test-case name="25296attgB010 tokoe:invalid" result="pass"/><test-case name="25297attgB011 tokoe:invalid" result="pass"/><test-case name="25298attgB012 tokoe:valid" result="pass"/><test-case name="25299attgB013 tokoe:invalid" result="pass"/><test-case name="25300attgB014 tokoe:valid" result="pass"/><test-case name="25301attgB015 tokoe:invalid" result="pass"/><test-case name="25302attgC001 tokoe:invalid" result="pass"/><test-case name="25303attgC002 tokoe:valid" result="pass"/><test-case name="25304attgC003 tokoe:valid" result="pass"/><test-case name="25305attgC004 tokoe:valid" result="pass"/><test-case name="25306attgC005 tokoe:valid" result="pass"/><test-case name="25307attgC006 tokoe:valid" result="pass"/><test-case name="25308attgC006.i tokoe:invalid" result="pass"/><test-case name="25309attgC007 tokoe:valid" result="pass"/><test-case name="25310attgC007.v tokoe:valid" result="pass"/><test-case name="25311attgC008 tokoe:invalid" result="pass"/><test-case name="25312attgC009 tokoe:invalid" result="pass"/><test-case name="25313attgC010 tokoe:invalid" result="pass"/><test-case name="25314attgC011 tokoe:invalid" result="pass"/><test-case name="25315attgC012 tokoe:valid" result="pass"/><test-case name="25316attgC013 tokoe:valid" result="pass"/><test-case name="25317attgC014 tokoe:valid" result="pass"/><test-case name="25318attgC015 tokoe:valid" result="pass"/><test-case name="25319attgC016 tokoe:valid" result="pass"/><test-case name="25320attgC017 tokoe:valid" result="pass"/><test-case name="25321attgC018 tokoe:invalid" result="pass"/><test-case name="25322attgC019 tokoe:invalid" result="pass"/><test-case name="25323attgC020 tokoe:invalid" result="pass"/><test-case name="25324attgC021 tokoe:invalid" result="pass"/><test-case name="25325attgC022 tokoe:valid" result="pass"/><test-case name="25326attgC023 tokoe:valid" result="pass"/><test-case name="25327attgC024 tokoe:valid" result="pass"/><test-case name="25328attgC024.v tokoe:valid" result="pass"/><test-case name="25329attgC025 tokoe:valid" result="pass"/><test-case name="25330attgC025.i tokoe:invalid" result="pass"/><test-case name="25331attgC026 tokoe:valid" result="pass"/><test-case name="25332attgC026.v tokoe:valid" result="pass"/><test-case name="25333attgC027 tokoe:valid" result="pass"/><test-case name="25334attgC028 tokoe:invalid" result="pass"/><test-case name="25335attgC029 tokoe:invalid" result="pass"/><test-case name="25336attgC030 tokoe:invalid" result="pass"/><test-case name="25337attgC031 tokoe:invalid" result="pass"/><test-case name="25338attgC032 tokoe:invalid" result="pass"/><test-case name="25339attgC033 tokoe:valid" result="pass"/><test-case name="25340attgC034 tokoe:valid" result="pass"/><test-case name="25341attgC035 tokoe:valid" result="pass"/><test-case name="25342attgC035.v tokoe:valid" result="pass"/><test-case name="25343attgC036 tokoe:valid" result="pass"/><test-case name="25344attgC036.v tokoe:valid" result="pass"/><test-case name="25345attgC037 tokoe:valid" result="pass"/><test-case name="25346attgC037.v tokoe:valid" result="pass"/><test-case name="25347attgC038 tokoe:valid" result="pass"/><test-case name="25348attgC038.v tokoe:valid" result="pass"/><test-case name="25349attgC039 tokoe:invalid" result="pass"/><test-case name="25350attgC040 tokoe:invalid" result="pass"/><test-case name="25351attgC041 tokoe:valid" result="pass"/><test-case name="25352attgC042 tokoe:invalid" result="pass"/><test-case name="25353attgC043 tokoe:valid" result="pass"/><test-case name="25354attgC044 tokoe:invalid" result="pass"/><test-case name="25355attgC045 tokoe:valid" result="pass"/><test-case name="25356attgD001 tokoe:valid" result="pass"/><test-case name="25357attgD002 tokoe:invalid" result="pass"/><test-case name="25358attgD003 tokoe:valid" result="pass"/><test-case name="25359attgD003.v tokoe:valid" result="pass"/><test-case name="25360attgD004 tokoe:valid" result="pass"/><test-case name="25361attgD004.v tokoe:valid" result="pass"/><test-case name="25362attgD005 tokoe:valid" result="pass"/><test-case name="25363attgD005.v tokoe:valid" result="pass"/><test-case name="25364attgD006 tokoe:invalid" result="pass"/><test-case name="25365attgD007 tokoe:invalid" result="pass"/><test-case name="25366attgD008 tokoe:invalid" result="pass"/><test-case name="25367attgD009 tokoe:invalid" result="pass"/><test-case name="25368attgD010 tokoe:valid" result="pass"/><test-case name="25369attgD011 tokoe:invalid" result="pass"/><test-case name="25370attgD012 tokoe:invalid" result="pass"/><test-case name="25371attgD013 tokoe:invalid" result="pass"/><test-case name="25372attgD014 tokoe:invalid" result="pass"/><test-case name="25373attgD015 tokoe:invalid" result="pass"/><test-case name="25374attgD016 tokoe:invalid" result="pass"/><test-case name="25375attgD017 tokoe:invalid" result="pass"/><test-case name="25376attgD018 tokoe:valid" result="pass"/><test-case name="25377attgD018.v tokoe:valid" result="pass"/><test-case name="25378attgD019 tokoe:valid" result="pass"/><test-case name="25379attgD019.v tokoe:valid" result="pass"/><test-case name="25380attgD020 tokoe:valid" result="pass"/><test-case name="25381attgD020.v tokoe:valid" result="pass"/><test-case name="25382attgD021 tokoe:valid" result="pass"/><test-case name="25383attgD021.v tokoe:valid" result="pass"/><test-case name="25384attgD022 tokoe:valid" result="pass"/><test-case name="25385attgD022.v tokoe:valid" result="pass"/><test-case name="25386attgD023 tokoe:valid" result="pass"/><test-case name="25387attgD023.i tokoe:invalid" result="pass"/><test-case name="25388attgD024 tokoe:valid" result="pass"/><test-case name="25389attgD024.i tokoe:invalid" result="pass"/><test-case name="25390attgD025 tokoe:valid" result="pass"/><test-case name="25391attgD025.v tokoe:valid" result="pass"/><test-case name="25392attgD026 tokoe:valid" result="pass"/><test-case name="25393attgD026.i tokoe:invalid" result="pass"/><test-case name="25394attgD027 tokoe:valid" result="pass"/><test-case name="25395attgD027.v tokoe:valid" result="pass"/><test-case name="25396attgD028 tokoe:valid" result="pass"/><test-case name="25397attgD028.i tokoe:invalid" result="pass"/><test-case name="25398attgD029 tokoe:valid" result="pass"/><test-case name="25399attgD029.v tokoe:valid" result="pass"/><test-case name="25400attgD030 tokoe:valid" result="pass"/><test-case name="25401attgD030.i tokoe:invalid" result="pass"/><test-case name="25402attgD031 tokoe:valid" result="pass"/><test-case name="25403attgD031.v tokoe:valid" result="pass"/><test-case name="25404attgD032 tokoe:valid" result="pass"/><test-case name="25405attgD032.v tokoe:valid" result="pass"/><test-case name="25406attgD033 tokoe:valid" result="pass"/><test-case name="25407attgD033.v tokoe:valid" result="pass"/><test-case name="25408attgD034 tokoe:valid" result="pass"/><test-case name="25409attgD034.v tokoe:valid" result="pass"/><test-case name="25410attgD035 tokoe:valid" result="pass"/><test-case name="25411attgD035.i tokoe:invalid" result="pass"/><test-case name="25412attgD036 tokoe:valid" result="pass"/><test-case name="25413attgD036.v tokoe:valid" result="pass"/><test-case name="25414attgD037 tokoe:invalid" result="pass"/><test-case name="25415attgD038 tokoe:invalid" result="pass"/><test-case name="25416attgD039 tokoe:invalid" result="pass"/><test-case name="25417attgD040 tokoe:valid" result="pass"/><test-case name="25418attgD041 tokoe:invalid" result="pass"/><test-case name="25419attgD042 tokoe:valid" result="pass"/><test-case name="25420attgD042.i tokoe:invalid" result="pass"/><test-case name="25421attgZ001 tokoe:valid" result="pass"/><test-case name="25422attgZ001.i tokoe:invalid" result="pass"/><test-case name="25423attgZ002 tokoe:invalid" result="pass"/><test-case name="25424attgZ003 tokoe:invalid" result="pass"/><test-case name="25425attA001 tokoe:invalid" result="pass"/><test-case name="25426attA002 tokoe:invalid" result="pass"/><test-case name="25427attA003 tokoe:invalid" result="pass"/><test-case name="25428attA004 tokoe:invalid" result="pass"/><test-case name="25429attA005 tokoe:invalid" result="pass"/><test-case name="25430attA006 tokoe:invalid" result="pass"/><test-case name="25431attA007 tokoe:valid" result="pass"/><test-case name="25432attA008 tokoe:valid" result="pass"/><test-case name="25433attB001 tokoe:valid" result="pass"/><test-case name="25434attB002 tokoe:valid" result="pass"/><test-case name="25435attB003 tokoe:valid" result="pass"/><test-case name="25436attB004 tokoe:valid" result="pass"/><test-case name="25437attB005 tokoe:invalid" result="pass"/><test-case name="25438attB006 tokoe:invalid" result="pass"/><test-case name="25439attC001 tokoe:valid" result="pass"/><test-case name="25440attC002 tokoe:valid" result="pass"/><test-case name="25441attC003 tokoe:valid" result="pass"/><test-case name="25442attC004 tokoe:invalid" result="pass"/><test-case name="25443attC005 tokoe:invalid" result="pass"/><test-case name="25444attC006 tokoe:invalid" result="pass"/><test-case name="25445attC007 tokoe:invalid" result="pass"/><test-case name="25446attC008 tokoe:invalid" result="pass"/><test-case name="25447attC009 tokoe:invalid" result="pass"/><test-case name="25448attC010 tokoe:invalid" result="pass"/><test-case name="25449attD001 tokoe:valid" result="pass"/><test-case name="25450attD002 tokoe:invalid" result="pass"/><test-case name="25451attD003 tokoe:valid" result="pass"/><test-case name="25452attD003.v tokoe:valid" result="pass"/><test-case name="25453attD004 tokoe:valid" result="pass"/><test-case name="25454attD004.v tokoe:valid" result="pass"/><test-case name="25455attD005 tokoe:invalid" result="pass"/><test-case name="25456attD006 tokoe:invalid" result="pass"/><test-case name="25457attD007 tokoe:valid" result="pass"/><test-case name="25458attD007.v tokoe:valid" result="pass"/><test-case name="25459attE001 tokoe:valid" result="pass"/><test-case name="25460attE001.v tokoe:valid" result="pass"/><test-case name="25461attE002 tokoe:invalid" result="pass"/><test-case name="25462attE003 tokoe:invalid" result="pass"/><test-case name="25463attE004 tokoe:invalid" result="pass"/><test-case name="25464attE005 tokoe:invalid" result="pass"/><test-case name="25465attE006 tokoe:invalid" result="pass"/><test-case name="25466attE007 tokoe:invalid" result="pass"/><test-case name="25467attE008 tokoe:valid" result="pass"/><test-case name="25468attF001 tokoe:valid" result="pass"/><test-case name="25469attF001.i tokoe:invalid" result="pass"/><test-case name="25470attF002 tokoe:valid" result="pass"/><test-case name="25471attF002.v tokoe:valid" result="pass"/><test-case name="25472attF003 tokoe:valid" result="pass"/><test-case name="25473attF003.v tokoe:valid" result="pass"/><test-case name="25474attF004 tokoe:invalid" result="pass"/><test-case name="25475attF005 tokoe:invalid" result="pass"/><test-case name="25476attF006 tokoe:invalid" result="pass"/><test-case name="25477attF007 tokoe:invalid" result="pass"/><test-case name="25478attF008 tokoe:invalid" result="pass"/><test-case name="25479attF009 tokoe:invalid" result="pass"/><test-case name="25480attF010 tokoe:invalid" result="pass"/><test-case name="25481attF011 tokoe:invalid" result="pass"/><test-case name="25482attJ001 tokoe:valid" result="pass"/><test-case name="25483attJ001.v tokoe:valid" result="pass"/><test-case name="25484attJ002 tokoe:valid" result="pass"/><test-case name="25485attJ002.i tokoe:invalid" result="pass"/><test-case name="25486attJ003 tokoe:valid" result="pass"/><test-case name="25487attJ003.i tokoe:invalid" result="pass"/><test-case name="25488attJ004 tokoe:valid" result="pass"/><test-case name="25489attJ004.v tokoe:valid" result="pass"/><test-case name="25490attJ005 tokoe:valid" result="pass"/><test-case name="25491attJ005.v tokoe:valid" result="pass"/><test-case name="25492attJ006 tokoe:valid" result="pass"/><test-case name="25493attJ006.v tokoe:valid" result="pass"/><test-case name="25494attJ007 tokoe:valid" result="pass"/><test-case name="25495attJ007.v tokoe:valid" result="pass"/><test-case name="25496attJ008 tokoe:valid" result="pass"/><test-case name="25497attJ008.i tokoe:invalid" result="pass"/><test-case name="25498attJ009 tokoe:valid" result="pass"/><test-case name="25499attJ009.i tokoe:invalid" result="pass"/><test-case name="25500attJ010 tokoe:valid" result="pass"/><test-case name="25501attJ010.i tokoe:invalid" result="pass"/><test-case name="25502attJ011 tokoe:invalid" result="pass"/><test-case name="25503attJ012 tokoe:invalid" result="pass"/><test-case name="25504attJ013 tokoe:invalid" result="pass"/><test-case name="25505attJ014 tokoe:invalid" result="pass"/><test-case name="25506attJ015 tokoe:invalid" result="pass"/><test-case name="25507attJ016 tokoe:invalid" result="pass"/><test-case name="25508attJ017 tokoe:invalid" result="pass"/><test-case name="25509attJ018 tokoe:valid" result="pass"/><test-case name="25510attJ018.v tokoe:valid" result="pass"/><test-case name="25511attG001 tokoe:valid" result="pass"/><test-case name="25512attG002 tokoe:valid" result="pass"/><test-case name="25513attG003 tokoe:valid" result="pass"/><test-case name="25514attH001 tokoe:invalid" result="pass"/><test-case name="25515attI001 tokoe:valid" result="pass"/><test-case name="25516attI002 tokoe:valid" result="pass"/><test-case name="25517attI003 tokoe:valid" result="pass"/><test-case name="25518attI003.v tokoe:valid" result="pass"/><test-case name="25519attI004 tokoe:invalid" result="pass"/><test-case name="25520attI005 tokoe:invalid" result="pass"/><test-case name="25521attI006 tokoe:invalid" result="pass"/><test-case name="25522attKa001 tokoe:invalid" result="pass"/><test-case name="25523attKa002 tokoe:valid" result="pass"/><test-case name="25524attKa003 tokoe:invalid" result="pass"/><test-case name="25525attKa004 tokoe:invalid" result="pass"/><test-case name="25526attKa005 tokoe:invalid" result="pass"/><test-case name="25527attKa006 tokoe:valid" result="pass"/><test-case name="25528attKa007 tokoe:invalid" result="pass"/><test-case name="25529attKa008 tokoe:invalid" result="pass"/><test-case name="25530attKa009 tokoe:invalid" result="pass"/><test-case name="25531attKa010 tokoe:invalid" result="pass"/><test-case name="25532attKa011 tokoe:invalid" result="pass"/><test-case name="25533attKa012 tokoe:invalid" result="pass"/><test-case name="25534attKa013 tokoe:invalid" result="pass"/><test-case name="25535attKa014 tokoe:invalid" result="pass"/><test-case name="25536attKa015 tokoe:invalid" result="pass"/><test-case name="25537attKb001 tokoe:invalid" result="pass"/><test-case name="25538attKb002 tokoe:valid" result="pass"/><test-case name="25539attKb003 tokoe:valid" result="pass"/><test-case name="25540attKb004 tokoe:invalid" result="pass"/><test-case name="25541attKb005 tokoe:invalid" result="pass"/><test-case name="25542attKb006 tokoe:valid" result="pass"/><test-case name="25543attKb007 tokoe:valid" result="pass"/><test-case name="25544attKb008 tokoe:valid" result="pass"/><test-case name="25545attKb009 tokoe:valid" result="pass"/><test-case name="25546attKb010 tokoe:invalid" result="pass"/><test-case name="25547attKb011 tokoe:invalid" result="pass"/><test-case name="25548attKb012 tokoe:invalid" result="pass"/><test-case name="25549attKb013 tokoe:invalid" result="pass"/><test-case name="25550attKb014 tokoe:invalid" result="pass"/><test-case name="25551attKb015 tokoe:invalid" result="pass"/><test-case name="25552attKb016 tokoe:invalid" result="pass"/><test-case name="25553attKb017 tokoe:invalid" result="pass"/><test-case name="25554attKb018 tokoe:valid" result="pass"/><test-case name="25555attKb018a tokoe:invalid" result="pass"/><test-case name="25556attKc001 tokoe:invalid" result="pass"/><test-case name="25557attKc002 tokoe:valid" result="pass"/><test-case name="25558attKc003 tokoe:valid" result="pass"/><test-case name="25559attKc004 tokoe:invalid" result="pass"/><test-case name="25560attKc005 tokoe:invalid" result="pass"/><test-case name="25561attKc006 tokoe:valid" result="pass"/><test-case name="25562attKc007 tokoe:valid" result="pass"/><test-case name="25563attKc008 tokoe:valid" result="pass"/><test-case name="25564attKc009 tokoe:valid" result="pass"/><test-case name="25565attKc010 tokoe:invalid" result="pass"/><test-case name="25566attKc011 tokoe:invalid" result="pass"/><test-case name="25567attKc012 tokoe:invalid" result="pass"/><test-case name="25568attKc013 tokoe:invalid" result="pass"/><test-case name="25569attKc014 tokoe:invalid" result="pass"/><test-case name="25570attKc015 tokoe:invalid" result="pass"/><test-case name="25571attKc016 tokoe:invalid" result="pass"/><test-case name="25572attKc017 tokoe:invalid" result="pass"/><test-case name="25573attKc018 tokoe:valid" result="pass"/><test-case name="25574attKc018a tokoe:invalid" result="pass"/><test-case name="25575attLa001 tokoe:valid" result="pass"/><test-case name="25576attLa001.v tokoe:valid" result="pass"/><test-case name="25577attLa002 tokoe:valid" result="pass"/><test-case name="25578attLa002.v tokoe:valid" result="pass"/><test-case name="25579attLa003 tokoe:valid" result="pass"/><test-case name="25580attLa003.v tokoe:valid" result="pass"/><test-case name="25581attLa004 tokoe:valid" result="pass"/><test-case name="25582attLa004.v tokoe:valid" result="pass"/><test-case name="25583attLa005 tokoe:valid" result="pass"/><test-case name="25584attLa005.i tokoe:invalid" result="pass"/><test-case name="25585attLa006 tokoe:valid" result="pass"/><test-case name="25586attLa006.v tokoe:valid" result="pass"/><test-case name="25587attLb001 tokoe:valid" result="pass"/><test-case name="25588attLb001.v tokoe:valid" result="pass"/><test-case name="25589attLb002 tokoe:valid" result="pass"/><test-case name="25590attLb002.v tokoe:valid" result="pass"/><test-case name="25591attLb003 tokoe:valid" result="pass"/><test-case name="25592attLb003.v tokoe:valid" result="pass"/><test-case name="25593attLb004 tokoe:valid" result="pass"/><test-case name="25594attLb004.v tokoe:valid" result="pass"/><test-case name="25595attLb005 tokoe:valid" result="pass"/><test-case name="25596attLb005.i tokoe:invalid" result="pass"/><test-case name="25597attLb006 tokoe:valid" result="pass"/><test-case name="25598attLb006.v tokoe:valid" result="pass"/><test-case name="25599attLc001 tokoe:valid" result="pass"/><test-case name="25600attLc001.v tokoe:valid" result="pass"/><test-case name="25601attLc002 tokoe:valid" result="pass"/><test-case name="25602attLc002.v tokoe:valid" result="pass"/><test-case name="25603attLc003 tokoe:valid" result="pass"/><test-case name="25604attLc003.v tokoe:valid" result="pass"/><test-case name="25605attLc004 tokoe:valid" result="pass"/><test-case name="25606attLc004.v tokoe:valid" result="pass"/><test-case name="25607attLc005 tokoe:valid" result="pass"/><test-case name="25608attLc005.i tokoe:invalid" result="pass"/><test-case name="25609attLc006 tokoe:valid" result="pass"/><test-case name="25610attLc006.v tokoe:valid" result="pass"/><test-case name="25611attO001 tokoe:valid" result="pass"/><test-case name="25612attO001.i tokoe:invalid" result="pass"/><test-case name="25613attO002 tokoe:invalid" result="pass"/><test-case name="25614attO003 tokoe:invalid" result="pass"/><test-case name="25615attO004 tokoe:valid" result="pass"/><test-case name="25616attO004.i tokoe:invalid" result="pass"/><test-case name="25617attO005 tokoe:invalid" result="pass"/><test-case name="25618attO006 tokoe:valid" result="pass"/><test-case name="25619attO006.v tokoe:valid" result="pass"/><test-case name="25620attO007 tokoe:valid" result="pass"/><test-case name="25621attO007.v tokoe:valid" result="pass"/><test-case name="25622attO008 tokoe:valid" result="pass"/><test-case name="25623attO008.i tokoe:invalid" result="pass"/><test-case name="25624attO009 tokoe:valid" result="pass"/><test-case name="25625attO009.v tokoe:valid" result="pass"/><test-case name="25626attO010 tokoe:valid" result="pass"/><test-case name="25627attO010.v tokoe:valid" result="pass"/><test-case name="25628attO011 tokoe:valid" result="pass"/><test-case name="25629attO011.v tokoe:valid" result="pass"/><test-case name="25630attO012 tokoe:valid" result="pass"/><test-case name="25631attO012.i tokoe:invalid" result="pass"/><test-case name="25632attO013 tokoe:invalid" result="pass"/><test-case name="25633attO014 tokoe:invalid" result="pass"/><test-case name="25634attO015 tokoe:invalid" result="pass"/><test-case name="25635attO016 tokoe:invalid" result="pass"/><test-case name="25636attO017 tokoe:invalid" result="pass"/><test-case name="25637attO018 tokoe:valid" result="pass"/><test-case name="25638attO019 tokoe:invalid" result="pass"/><test-case name="25639attO020 tokoe:invalid" result="pass"/><test-case name="25640attO021 tokoe:invalid" result="pass"/><test-case name="25641attO022 tokoe:invalid" result="pass"/><test-case name="25642attO023 tokoe:invalid" result="pass"/><test-case name="25643attO024 tokoe:invalid" result="pass"/><test-case name="25644attO025 tokoe:invalid" result="pass"/><test-case name="25645attMa001 tokoe:valid" result="pass"/><test-case name="25646attMa001.i tokoe:invalid" result="pass"/><test-case name="25647attMa002 tokoe:valid" result="pass"/><test-case name="25648attMa002.i tokoe:invalid" result="pass"/><test-case name="25649attMa003 tokoe:valid" result="pass"/><test-case name="25650attMa003.v tokoe:valid" result="pass"/><test-case name="25651attMa004 tokoe:valid" result="pass"/><test-case name="25652attMa004.v tokoe:valid" result="pass"/><test-case name="25653attMb001 tokoe:valid" result="pass"/><test-case name="25654attMb001.i tokoe:invalid" result="pass"/><test-case name="25655attMb002 tokoe:valid" result="pass"/><test-case name="25656attMb002.i tokoe:invalid" result="pass"/><test-case name="25657attMb003 tokoe:valid" result="pass"/><test-case name="25658attMb003.i tokoe:invalid" result="pass"/><test-case name="25659attMb004 tokoe:valid" result="pass"/><test-case name="25660attMb004.v tokoe:valid" result="pass"/><test-case name="25661attMb005 tokoe:valid" result="pass"/><test-case name="25662attMb005.v tokoe:valid" result="pass"/><test-case name="25663attMb006 tokoe:valid" result="pass"/><test-case name="25664attMb006.v tokoe:valid" result="pass"/><test-case name="25665attMb007 tokoe:valid" result="pass"/><test-case name="25666attMb007.v tokoe:valid" result="pass"/><test-case name="25667attMb008 tokoe:valid" result="pass"/><test-case name="25668attMb008.v tokoe:valid" result="pass"/><test-case name="25669attMb009 tokoe:valid" result="pass"/><test-case name="25670attMb009.v tokoe:valid" result="pass"/><test-case name="25671attMb010 tokoe:valid" result="pass"/><test-case name="25672attMb010.i tokoe:invalid" result="pass"/><test-case name="25673attMb011 tokoe:valid" result="pass"/><test-case name="25674attMb011.i tokoe:invalid" result="pass"/><test-case name="25675attMb012 tokoe:valid" result="pass"/><test-case name="25676attMb012.i tokoe:invalid" result="pass"/><test-case name="25677attMc001 tokoe:valid" result="pass"/><test-case name="25678attMc001.i tokoe:invalid" result="pass"/><test-case name="25679attMc002 tokoe:valid" result="pass"/><test-case name="25680attMc002.i tokoe:invalid" result="pass"/><test-case name="25681attMc003 tokoe:valid" result="pass"/><test-case name="25682attMc003.i tokoe:invalid" result="pass"/><test-case name="25683attMc004 tokoe:valid" result="pass"/><test-case name="25684attMc004.v tokoe:valid" result="pass"/><test-case name="25685attMc005 tokoe:valid" result="pass"/><test-case name="25686attMc005.v tokoe:valid" result="pass"/><test-case name="25687attMc006 tokoe:valid" result="pass"/><test-case name="25688attMc006.v tokoe:valid" result="pass"/><test-case name="25689attMc007 tokoe:valid" result="pass"/><test-case name="25690attMc007.v tokoe:valid" result="pass"/><test-case name="25691attMc008 tokoe:valid" result="pass"/><test-case name="25692attMc008.v tokoe:valid" result="pass"/><test-case name="25693attMc009 tokoe:valid" result="pass"/><test-case name="25694attMc009.v tokoe:valid" result="pass"/><test-case name="25695attMc010 tokoe:valid" result="pass"/><test-case name="25696attMc010.i tokoe:invalid" result="pass"/><test-case name="25697attMc011 tokoe:valid" result="pass"/><test-case name="25698attMc011.i tokoe:invalid" result="pass"/><test-case name="25699attMc012 tokoe:valid" result="pass"/><test-case name="25700attMc012.i tokoe:invalid" result="pass"/><test-case name="25701attMd001.i tokoe:invalid" result="pass"/><test-case name="25702attMd002.i tokoe:invalid" result="pass"/><test-case name="25703attMd003.i tokoe:invalid" result="pass"/><test-case name="25704attMd004.i tokoe:invalid" result="pass"/><test-case name="25705attMd005.i tokoe:invalid" result="pass"/><test-case name="25706attMd006.i tokoe:invalid" result="pass"/><test-case name="25707attMd007.i tokoe:invalid" result="pass"/><test-case name="25708attMd008.i tokoe:invalid" result="pass"/><test-case name="25709attMd009.i tokoe:invalid" result="pass"/><test-case name="25710attMd010.i tokoe:invalid" result="pass"/><test-case name="25711attMd011.i tokoe:invalid" result="pass"/><test-case name="25712attP001 tokoe:invalid" result="pass"/><test-case name="25713attP002 tokoe:invalid" result="pass"/><test-case name="25714attP003 tokoe:invalid" result="pass"/><test-case name="25715attP004 tokoe:valid" result="pass"/><test-case name="25716attP004.v tokoe:valid" result="pass"/><test-case name="25717attP005 tokoe:valid" result="pass"/><test-case name="25718attP005.i tokoe:invalid" result="pass"/><test-case name="25719attP006 tokoe:invalid" result="pass"/><test-case name="25720attP007 tokoe:valid" result="pass"/><test-case name="25721attP007.v tokoe:valid" result="pass"/><test-case name="25722attP008 tokoe:valid" result="pass"/><test-case name="25723attP008.i tokoe:invalid" result="pass"/><test-case name="25724attP009 tokoe:valid" result="pass"/><test-case name="25725attP009.i tokoe:invalid" result="pass"/><test-case name="25726attP010 tokoe:valid" result="pass"/><test-case name="25727attP010.i tokoe:invalid" result="pass"/><test-case name="25728attP011 tokoe:valid" result="pass"/><test-case name="25729attP011.v tokoe:valid" result="pass"/><test-case name="25730attP012 tokoe:valid" result="pass"/><test-case name="25731attP012.i tokoe:invalid" result="pass"/><test-case name="25732attP013 tokoe:valid" result="pass"/><test-case name="25733attP013.v tokoe:valid" result="pass"/><test-case name="25734attP014 tokoe:valid" result="pass"/><test-case name="25735attP014.i tokoe:invalid" result="pass"/><test-case name="25736attP015 tokoe:valid" result="pass"/><test-case name="25737attP015.v tokoe:valid" result="pass"/><test-case name="25738attP016 tokoe:valid" result="pass"/><test-case name="25739attP016.i tokoe:invalid" result="pass"/><test-case name="25740attP017 tokoe:valid" result="pass"/><test-case name="25741attP017.v tokoe:valid" result="pass"/><test-case name="25742attP018 tokoe:valid" result="pass"/><test-case name="25743attP018.i tokoe:invalid" result="pass"/><test-case name="25744attP019 tokoe:valid" result="pass"/><test-case name="25745attP019.v tokoe:valid" result="pass"/><test-case name="25746attP020 tokoe:valid" result="pass"/><test-case name="25747attP020.i tokoe:invalid" result="pass"/><test-case name="25748attP021 tokoe:valid" result="pass"/><test-case name="25749attP021.v tokoe:valid" result="pass"/><test-case name="25750attP022 tokoe:valid" result="pass"/><test-case name="25751attP022.v tokoe:valid" result="pass"/><test-case name="25752attP023 tokoe:valid" result="pass"/><test-case name="25753attP023.v tokoe:valid" result="pass"/><test-case name="25754attP024 tokoe:valid" result="pass"/><test-case name="25755attP024.v tokoe:valid" result="pass"/><test-case name="25756attP025 tokoe:valid" result="pass"/><test-case name="25757attP025.v tokoe:valid" result="pass"/><test-case name="25758attP026 tokoe:valid" result="pass"/><test-case name="25759attP026.v tokoe:valid" result="pass"/><test-case name="25760attP027 tokoe:valid" result="pass"/><test-case name="25761attP027.i tokoe:invalid" result="pass"/><test-case name="25762attP028 tokoe:valid" result="pass"/><test-case name="25763attP028.v tokoe:valid" result="pass"/><test-case name="25764attP029 tokoe:valid" result="pass"/><test-case name="25765attP029.v tokoe:valid" result="pass"/><test-case name="25766attP030 tokoe:invalid" result="pass"/><test-case name="25767attP031 tokoe:valid" result="pass"/><test-case name="25768attP031.i tokoe:invalid" result="pass"/><test-case name="25769attP032 tokoe:valid" result="pass"/><test-case name="25770attP032.v tokoe:valid" result="pass"/><test-case name="25771attQ001 tokoe:invalid" result="pass"/><test-case name="25772attQ002 tokoe:invalid" result="pass"/><test-case name="25773attQ003 tokoe:valid" result="pass"/><test-case name="25774attQ003.v tokoe:valid" result="pass"/><test-case name="25775attQ004 tokoe:invalid" result="pass"/><test-case name="25776attQ005 tokoe:invalid" result="pass"/><test-case name="25777attQ006 tokoe:invalid" result="pass"/><test-case name="25778attQ007 tokoe:invalid" result="pass"/><test-case name="25779attQ008 tokoe:invalid" result="pass"/><test-case name="25780attQ009 tokoe:invalid" result="pass"/><test-case name="25781attQ010 tokoe:valid" result="pass"/><test-case name="25782attQ011 tokoe:invalid" result="pass"/><test-case name="25783attQ012 tokoe:invalid" result="pass"/><test-case name="25784attQ013 tokoe:invalid" result="pass"/><test-case name="25785attQ014 tokoe:valid" result="pass"/><test-case name="25786attQ014.v tokoe:valid" result="pass"/><test-case name="25787attQ015 tokoe:invalid" result="pass"/><test-case name="25788attQ016 tokoe:invalid" result="pass"/><test-case name="25789attQ017 tokoe:invalid" result="pass"/><test-case name="25790attQ018 tokoe:invalid" result="pass"/><test-case name="25791attQ019 tokoe:valid" result="pass"/><test-case name="25792attQ019.v tokoe:valid" result="pass"/><test-case name="25793attZ001 tokoe:valid" result="pass"/><test-case name="25794attZ001.i tokoe:invalid" result="pass"/><test-case name="25795attZ002 tokoe:valid" result="pass"/><test-case name="25796attZ002.v tokoe:valid" result="pass"/><test-case name="25797attZ004 tokoe:invalid" result="pass"/><test-case name="25798attZ005 tokoe:valid" result="pass"/><test-case name="25799attZ005.v tokoe:valid" result="pass"/><test-case name="25800attZ006 tokoe:invalid" result="pass"/><test-case name="25801attZ007v tokoe:valid" result="pass"/><test-case name="25802attZ007v.v tokoe:valid" result="pass"/><test-case name="25803attZ007i tokoe:valid" result="pass"/><test-case name="25804attZ007i.i tokoe:invalid" result="pass"/><test-case name="25805attZ008_a tokoe:valid" result="pass"/><test-case name="25806attZ008_b tokoe:valid" result="pass"/><test-case name="25807attZ008_c tokoe:valid" result="pass"/><test-case name="25808attZ008_d tokoe:valid" result="pass"/><test-case name="25809attZ008_e tokoe:invalid" result="pass"/><test-case name="25810attZ008_f tokoe:invalid" result="pass"/><test-case name="25811attZ008_g tokoe:valid" result="pass"/><test-case name="25812attZ008_h tokoe:invalid" result="pass"/><test-case name="25813attZ009 tokoe:valid" result="pass"/><test-case name="25814attZ009.i tokoe:invalid" result="pass"/><test-case name="25815attZ010a tokoe:valid" result="pass"/><test-case name="25816attZ010b tokoe:valid" result="pass"/><test-case name="25817attZ010c tokoe:valid" result="pass"/><test-case name="25818attZ011 tokoe:invalid" result="pass"/><test-case name="25819attZ012 tokoe:invalid" result="pass"/><test-case name="25820attZ013a tokoe:invalid" result="pass"/><test-case name="25821attZ013b tokoe:invalid" result="pass"/><test-case name="25822attZ014a tokoe:valid" result="pass"/><test-case name="25823attZ014a.i tokoe:invalid" result="pass"/><test-case name="25824attZ014b tokoe:valid" result="pass"/><test-case name="25825attZ014b.i tokoe:invalid" result="pass"/><test-case name="25826attZ015 tokoe:valid" result="pass"/><test-case name="25827attZ015.v tokoe:valid" result="pass"/><test-case name="25828ctA001 tokoe:valid" result="pass"/><test-case name="25829ctA001.v tokoe:valid" result="pass"/><test-case name="25830ctA002 tokoe:valid" result="pass"/><test-case name="25831ctA002.v tokoe:valid" result="pass"/><test-case name="25832ctA003 tokoe:valid" result="pass"/><test-case name="25833ctA003.v tokoe:valid" result="pass"/><test-case name="25834ctA004 tokoe:invalid" result="pass"/><test-case name="25835ctA005 tokoe:valid" result="pass"/><test-case name="25836ctA005.v tokoe:valid" result="pass"/><test-case name="25837ctA006 tokoe:invalid" result="pass"/><test-case name="25838ctA007 tokoe:invalid" result="pass"/><test-case name="25839ctA008 tokoe:invalid" result="pass"/><test-case name="25840ctA009 tokoe:valid" result="pass"/><test-case name="25841ctA009.v tokoe:valid" result="pass"/><test-case name="25842ctA010 tokoe:valid" result="pass"/><test-case name="25843ctA010.v tokoe:valid" result="pass"/><test-case name="25844ctA011 tokoe:valid" result="pass"/><test-case name="25845ctA011.v tokoe:valid" result="pass"/><test-case name="25846ctA012 tokoe:valid" result="pass"/><test-case name="25847ctA012.v tokoe:valid" result="pass"/><test-case name="25848ctA013 tokoe:valid" result="pass"/><test-case name="25849ctA013.v tokoe:valid" result="pass"/><test-case name="25850ctA014 tokoe:valid" result="pass"/><test-case name="25851ctA015 tokoe:valid" result="pass"/><test-case name="25852ctA016 tokoe:invalid" result="pass"/><test-case name="25853ctA017 tokoe:valid" result="pass"/><test-case name="25854ctA017.v tokoe:valid" result="pass"/><test-case name="25855ctA018 tokoe:valid" result="pass"/><test-case name="25856ctA018.v tokoe:valid" result="pass"/><test-case name="25857ctA019 tokoe:valid" result="pass"/><test-case name="25858ctA019.v tokoe:valid" result="pass"/><test-case name="25859ctA020 tokoe:valid" result="pass"/><test-case name="25860ctA020.v tokoe:valid" result="pass"/><test-case name="25861ctA021 tokoe:valid" result="pass"/><test-case name="25862ctA021.v tokoe:valid" result="pass"/><test-case name="25863ctA022 tokoe:valid" result="pass"/><test-case name="25864ctA022.v tokoe:valid" result="pass"/><test-case name="25865ctA023 tokoe:valid" result="pass"/><test-case name="25866ctA024 tokoe:valid" result="pass"/><test-case name="25867ctA025 tokoe:invalid" result="pass"/><test-case name="25868ctA026 tokoe:valid" result="pass"/><test-case name="25869ctA026.v tokoe:valid" result="pass"/><test-case name="25870ctA027 tokoe:valid" result="pass"/><test-case name="25871ctA027.v tokoe:valid" result="pass"/><test-case name="25872ctA028 tokoe:invalid" result="pass"/><test-case name="25873ctA029 tokoe:valid" result="pass"/><test-case name="25874ctA030 tokoe:invalid" result="pass"/><test-case name="25875ctA031 tokoe:invalid" result="pass"/><test-case name="25876ctA032 tokoe:valid" result="pass"/><test-case name="25877ctA032.v tokoe:valid" result="pass"/><test-case name="25878ctA033 tokoe:valid" result="pass"/><test-case name="25879ctA033.v tokoe:valid" result="pass"/><test-case name="25880ctA034 tokoe:valid" result="pass"/><test-case name="25881ctA034.v tokoe:valid" result="pass"/><test-case name="25882ctA035 tokoe:valid" result="pass"/><test-case name="25883ctA035.v tokoe:valid" result="pass"/><test-case name="25884ctA036 tokoe:invalid" result="pass"/><test-case name="25885ctA037 tokoe:valid" result="pass"/><test-case name="25886ctA037.v tokoe:valid" result="pass"/><test-case name="25887ctA038 tokoe:invalid" result="pass"/><test-case name="25888ctA039 tokoe:invalid" result="pass"/><test-case name="25889ctA040 tokoe:invalid" result="pass"/><test-case name="25890ctA041 tokoe:valid" result="pass"/><test-case name="25891ctA041.v tokoe:valid" result="pass"/><test-case name="25892ctA042 tokoe:invalid" result="pass"/><test-case name="25893ctA043 tokoe:invalid" result="pass"/><test-case name="25894ctA044 tokoe:invalid" result="pass"/><test-case name="25895ctA045 tokoe:valid" result="pass"/><test-case name="25896ctA045.v tokoe:valid" result="pass"/><test-case name="25897ctA046 tokoe:invalid" result="pass"/><test-case name="25898ctA047 tokoe:valid" result="pass"/><test-case name="25899ctA047.v tokoe:valid" result="pass"/><test-case name="25900ctA048 tokoe:valid" result="pass"/><test-case name="25901ctA048.v tokoe:valid" result="pass"/><test-case name="25902ctA049 tokoe:valid" result="pass"/><test-case name="25903ctA049.v tokoe:valid" result="pass"/><test-case name="25904ctB001 tokoe:valid" result="pass"/><test-case name="25905ctB001.v tokoe:valid" result="pass"/><test-case name="25906ctB002 tokoe:invalid" result="pass"/><test-case name="25907ctB003 tokoe:valid" result="pass"/><test-case name="25908ctB003.v tokoe:valid" result="pass"/><test-case name="25909ctB004 tokoe:invalid" result="pass"/><test-case name="25910ctB005 tokoe:invalid" result="pass"/><test-case name="25911ctB006 tokoe:invalid" result="pass"/><test-case name="25912ctB007 tokoe:invalid" result="pass"/><test-case name="25913ctB008 tokoe:invalid" result="pass"/><test-case name="25914ctB009 tokoe:invalid" result="pass"/><test-case name="25915ctB010 tokoe:invalid" result="pass"/><test-case name="25916ctB011 tokoe:invalid" result="pass"/><test-case name="25917ctB012 tokoe:invalid" result="pass"/><test-case name="25918ctB013 tokoe:invalid" result="pass"/><test-case name="25919ctB014 tokoe:invalid" result="pass"/><test-case name="25920ctB015 tokoe:invalid" result="pass"/><test-case name="25921ctB016 tokoe:invalid" result="pass"/><test-case name="25922ctB017 tokoe:valid" result="pass"/><test-case name="25923ctB017.v tokoe:valid" result="pass"/><test-case name="25924ctB018 tokoe:invalid" result="pass"/><test-case name="25925ctB019 tokoe:invalid" result="pass"/><test-case name="25926ctB020 tokoe:invalid" result="pass"/><test-case name="25927ctB021 tokoe:invalid" result="pass"/><test-case name="25928ctB022 tokoe:invalid" result="pass"/><test-case name="25929ctB023 tokoe:invalid" result="pass"/><test-case name="25930ctB024 tokoe:invalid" result="pass"/><test-case name="25931ctB025 tokoe:invalid" result="pass"/><test-case name="25932ctB026 tokoe:invalid" result="pass"/><test-case name="25933ctB027 tokoe:invalid" result="pass"/><test-case name="25934ctB028 tokoe:invalid" result="pass"/><test-case name="25935ctB029 tokoe:invalid" result="pass"/><test-case name="25936ctB030 tokoe:invalid" result="pass"/><test-case name="25937ctB031 tokoe:valid" result="pass"/><test-case name="25938ctB031.v tokoe:valid" result="pass"/><test-case name="25939ctB032 tokoe:invalid" result="pass"/><test-case name="25940ctB033 tokoe:invalid" result="pass"/><test-case name="25941ctB034 tokoe:invalid" result="pass"/><test-case name="25942ctB035 tokoe:invalid" result="pass"/><test-case name="25943ctB036 tokoe:invalid" result="pass"/><test-case name="25944ctB037 tokoe:invalid" result="pass"/><test-case name="25945ctB038 tokoe:invalid" result="pass"/><test-case name="25946ctB039 tokoe:valid" result="pass"/><test-case name="25947ctB039.v tokoe:valid" result="pass"/><test-case name="25948ctB040 tokoe:valid" result="pass"/><test-case name="25949ctB040.v tokoe:valid" result="pass"/><test-case name="25950ctB041 tokoe:valid" result="pass"/><test-case name="25951ctB041.v tokoe:valid" result="pass"/><test-case name="25952ctB042 tokoe:valid" result="pass"/><test-case name="25953ctB042.v tokoe:valid" result="pass"/><test-case name="25954ctB043 tokoe:valid" result="pass"/><test-case name="25955ctB043.v tokoe:valid" result="pass"/><test-case name="25956ctB044 tokoe:invalid" result="pass"/><test-case name="25957ctB045 tokoe:valid" result="pass"/><test-case name="25958ctB045.v tokoe:valid" result="pass"/><test-case name="25959ctB046 tokoe:invalid" result="pass"/><test-case name="25960ctB047 tokoe:invalid" result="pass"/><test-case name="25961ctB048 tokoe:invalid" result="pass"/><test-case name="25962ctB049 tokoe:invalid" result="pass"/><test-case name="25963ctB050 tokoe:invalid" result="pass"/><test-case name="25964ctB051 tokoe:invalid" result="pass"/><test-case name="25965ctB052 tokoe:invalid" result="pass"/><test-case name="25966ctB053 tokoe:valid" result="pass"/><test-case name="25967ctB053.v tokoe:valid" result="pass"/><test-case name="25968ctB054 tokoe:valid" result="pass"/><test-case name="25969ctB054.v tokoe:valid" result="pass"/><test-case name="25970ctB055 tokoe:valid" result="pass"/><test-case name="25971ctB055.v tokoe:valid" result="pass"/><test-case name="25972ctB056 tokoe:valid" result="pass"/><test-case name="25973ctB056.v tokoe:valid" result="pass"/><test-case name="25974ctB057 tokoe:valid" result="pass"/><test-case name="25975ctB057.v tokoe:valid" result="pass"/><test-case name="25976ctB058 tokoe:invalid" result="pass"/><test-case name="25977ctB059 tokoe:valid" result="pass"/><test-case name="25978ctB059.v tokoe:valid" result="pass"/><test-case name="25979ctB060 tokoe:invalid" result="pass"/><test-case name="25980ctB061 tokoe:invalid" result="pass"/><test-case name="25981ctB062 tokoe:invalid" result="pass"/><test-case name="25982ctB063 tokoe:invalid" result="pass"/><test-case name="25983ctB064 tokoe:invalid" result="pass"/><test-case name="25984ctB065 tokoe:invalid" result="pass"/><test-case name="25985ctB066 tokoe:invalid" result="pass"/><test-case name="25986ctB067 tokoe:valid" result="pass"/><test-case name="25987ctB067.v tokoe:valid" result="pass"/><test-case name="25988ctB068 tokoe:valid" result="pass"/><test-case name="25989ctB068.v tokoe:valid" result="pass"/><test-case name="25990ctB069 tokoe:valid" result="pass"/><test-case name="25991ctB069.v tokoe:valid" result="pass"/><test-case name="25992ctB070 tokoe:valid" result="pass"/><test-case name="25993ctB070.v tokoe:valid" result="pass"/><test-case name="25994ctB071 tokoe:valid" result="pass"/><test-case name="25995ctB071.v tokoe:valid" result="pass"/><test-case name="25996ctB072 tokoe:invalid" result="pass"/><test-case name="25997ctB073 tokoe:valid" result="pass"/><test-case name="25998ctB073.v tokoe:valid" result="pass"/><test-case name="25999ctB074 tokoe:invalid" result="pass"/><test-case name="26000ctB075 tokoe:invalid" result="pass"/><test-case name="26001ctB076 tokoe:invalid" result="pass"/><test-case name="26002ctB077 tokoe:invalid" result="pass"/><test-case name="26003ctB078 tokoe:invalid" result="pass"/><test-case name="26004ctB079 tokoe:invalid" result="pass"/><test-case name="26005ctB080 tokoe:invalid" result="pass"/><test-case name="26006ctB081 tokoe:valid" result="pass"/><test-case name="26007ctB081.v tokoe:valid" result="pass"/><test-case name="26008ctB082 tokoe:valid" result="pass"/><test-case name="26009ctB082.v tokoe:valid" result="pass"/><test-case name="26010ctB083 tokoe:valid" result="pass"/><test-case name="26011ctB083.v tokoe:valid" result="pass"/><test-case name="26012ctB084 tokoe:valid" result="pass"/><test-case name="26013ctB084.v tokoe:valid" result="pass"/><test-case name="26014ctB085 tokoe:valid" result="pass"/><test-case name="26015ctB085.v tokoe:valid" result="pass"/><test-case name="26016ctB086 tokoe:invalid" result="pass"/><test-case name="26017ctB087 tokoe:valid" result="pass"/><test-case name="26018ctB087.v tokoe:valid" result="pass"/><test-case name="26019ctB088 tokoe:invalid" result="pass"/><test-case name="26020ctB089 tokoe:invalid" result="pass"/><test-case name="26021ctB090 tokoe:invalid" result="pass"/><test-case name="26022ctB091 tokoe:invalid" result="pass"/><test-case name="26023ctB092 tokoe:invalid" result="pass"/><test-case name="26024ctB093 tokoe:invalid" result="pass"/><test-case name="26025ctB094 tokoe:invalid" result="pass"/><test-case name="26026ctB095 tokoe:valid" result="pass"/><test-case name="26027ctB095.v tokoe:valid" result="pass"/><test-case name="26028ctB096 tokoe:valid" result="pass"/><test-case name="26029ctB096.v tokoe:valid" result="pass"/><test-case name="26030ctB097 tokoe:valid" result="pass"/><test-case name="26031ctB097.v tokoe:valid" result="pass"/><test-case name="26032ctB098 tokoe:valid" result="pass"/><test-case name="26033ctB098.v tokoe:valid" result="pass"/><test-case name="26034ctB099 tokoe:invalid" result="pass"/><test-case name="26035ctB100 tokoe:valid" result="pass"/><test-case name="26036ctB100.v tokoe:valid" result="pass"/><test-case name="26037ctB101 tokoe:invalid" result="pass"/><test-case name="26038ctB102 tokoe:invalid" result="pass"/><test-case name="26039ctB103 tokoe:invalid" result="pass"/><test-case name="26040ctB104 tokoe:invalid" result="pass"/><test-case name="26041ctB105 tokoe:invalid" result="pass"/><test-case name="26042ctB106 tokoe:invalid" result="pass"/><test-case name="26043ctB107 tokoe:invalid" result="pass"/><test-case name="26044ctB108 tokoe:valid" result="pass"/><test-case name="26045ctB108.v tokoe:valid" result="pass"/><test-case name="26046ctB109 tokoe:valid" result="pass"/><test-case name="26047ctB109.v tokoe:valid" result="pass"/><test-case name="26048ctB110 tokoe:valid" result="pass"/><test-case name="26049ctB110.v tokoe:valid" result="pass"/><test-case name="26050ctB111 tokoe:valid" result="pass"/><test-case name="26051ctB111.v tokoe:valid" result="pass"/><test-case name="26052ctB112 tokoe:invalid" result="pass"/><test-case name="26053ctB113 tokoe:valid" result="pass"/><test-case name="26054ctB113.v tokoe:valid" result="pass"/><test-case name="26055ctB114 tokoe:invalid" result="pass"/><test-case name="26056ctB115 tokoe:invalid" result="pass"/><test-case name="26057ctB116 tokoe:invalid" result="pass"/><test-case name="26058ctB117 tokoe:invalid" result="pass"/><test-case name="26059ctB118 tokoe:invalid" result="pass"/><test-case name="26060ctB119 tokoe:invalid" result="pass"/><test-case name="26061ctB120 tokoe:invalid" result="pass"/><test-case name="26062ctB121 tokoe:invalid" result="pass"/><test-case name="26063ctB122 tokoe:invalid" result="pass"/><test-case name="26064ctB123 tokoe:invalid" result="pass"/><test-case name="26065ctB124 tokoe:invalid" result="pass"/><test-case name="26066ctB125 tokoe:invalid" result="pass"/><test-case name="26067ctC001 tokoe:valid" result="pass"/><test-case name="26068ctC001.v tokoe:valid" result="pass"/><test-case name="26069ctC002 tokoe:invalid" result="pass"/><test-case name="26070ctC003 tokoe:valid" result="pass"/><test-case name="26071ctC004 tokoe:invalid" result="pass"/><test-case name="26072ctC005 tokoe:invalid" result="pass"/><test-case name="26073ctC006 tokoe:valid" result="pass"/><test-case name="26074ctC006.v tokoe:valid" result="pass"/><test-case name="26075ctC007 tokoe:valid" result="pass"/><test-case name="26076ctC007.v tokoe:valid" result="pass"/><test-case name="26077ctC008 tokoe:valid" result="pass"/><test-case name="26078ctC008.v tokoe:valid" result="pass"/><test-case name="26079ctC009 tokoe:invalid" result="pass"/><test-case name="26080ctC010 tokoe:invalid" result="pass"/><test-case name="26081ctC011 tokoe:invalid" result="pass"/><test-case name="26082ctC012 tokoe:valid" result="pass"/><test-case name="26083ctC012.v tokoe:valid" result="pass"/><test-case name="26084ctD001 tokoe:invalid" result="pass"/><test-case name="26085ctD002 tokoe:valid" result="pass"/><test-case name="26086ctD002.v tokoe:valid" result="pass"/><test-case name="26087ctD003 tokoe:invalid" result="pass"/><test-case name="26088ctD004 tokoe:invalid" result="pass"/><test-case name="26089ctD005 tokoe:valid" result="pass"/><test-case name="26090ctD005.v tokoe:valid" result="pass"/><test-case name="26091ctD006 tokoe:valid" result="pass"/><test-case name="26092ctD006.v tokoe:valid" result="pass"/><test-case name="26093ctD007 tokoe:invalid" result="pass"/><test-case name="26094ctD008 tokoe:valid" result="pass"/><test-case name="26095ctD008.v tokoe:valid" result="pass"/><test-case name="26096ctD009 tokoe:invalid" result="pass"/><test-case name="26097ctD010 tokoe:valid" result="pass"/><test-case name="26098ctD010.v tokoe:valid" result="pass"/><test-case name="26099ctD011 tokoe:invalid" result="pass"/><test-case name="26100ctD012 tokoe:valid" result="pass"/><test-case name="26101ctD012.v tokoe:valid" result="pass"/><test-case name="26102ctD013 tokoe:invalid" result="pass"/><test-case name="26103ctD014 tokoe:invalid" result="pass"/><test-case name="26104ctD015 tokoe:valid" result="pass"/><test-case name="26105ctD015.v tokoe:valid" result="pass"/><test-case name="26106ctD016 tokoe:valid" result="pass"/><test-case name="26107ctD016.v tokoe:valid" result="pass"/><test-case name="26108ctD017 tokoe:valid" result="pass"/><test-case name="26109ctD017.v tokoe:valid" result="pass"/><test-case name="26110ctD018 tokoe:valid" result="pass"/><test-case name="26111ctD018.v tokoe:valid" result="pass"/><test-case name="26112ctD019 tokoe:valid" result="pass"/><test-case name="26113ctD019.v tokoe:valid" result="pass"/><test-case name="26114ctD020 tokoe:valid" result="pass"/><test-case name="26115ctD020.v tokoe:valid" result="pass"/><test-case name="26116ctD021 tokoe:valid" result="pass"/><test-case name="26117ctD021.v tokoe:valid" result="pass"/><test-case name="26118ctD022 tokoe:valid" result="pass"/><test-case name="26119ctD022.v tokoe:valid" result="pass"/><test-case name="26120ctD023 tokoe:valid" result="pass"/><test-case name="26121ctD023.v tokoe:valid" result="pass"/><test-case name="26122ctD024 tokoe:invalid" result="pass"/><test-case name="26123ctD025 tokoe:valid" result="pass"/><test-case name="26124ctD025.v tokoe:valid" result="pass"/><test-case name="26125ctD026 tokoe:valid" result="pass"/><test-case name="26126ctD026.v tokoe:valid" result="pass"/><test-case name="26127ctD027 tokoe:valid" result="pass"/><test-case name="26128ctD027.v tokoe:valid" result="pass"/><test-case name="26129ctD028 tokoe:valid" result="pass"/><test-case name="26130ctD028.v tokoe:valid" result="pass"/><test-case name="26131ctD029 tokoe:valid" result="pass"/><test-case name="26132ctD029.v tokoe:valid" result="pass"/><test-case name="26133ctD030 tokoe:valid" result="pass"/><test-case name="26134ctD030.v tokoe:valid" result="pass"/><test-case name="26135ctD031 tokoe:valid" result="pass"/><test-case name="26136ctD031.v tokoe:valid" result="pass"/><test-case name="26137ctD032 tokoe:valid" result="pass"/><test-case name="26138ctD032.v tokoe:valid" result="pass"/><test-case name="26139ctD033 tokoe:valid" result="pass"/><test-case name="26140ctD033.v tokoe:valid" result="pass"/><test-case name="26141ctD034 tokoe:invalid" result="pass"/><test-case name="26142ctD035 tokoe:valid" result="pass"/><test-case name="26143ctD035.v tokoe:valid" result="pass"/><test-case name="26144ctD036 tokoe:invalid" result="pass"/><test-case name="26145ctD037 tokoe:invalid" result="pass"/><test-case name="26146ctD038 tokoe:invalid" result="pass"/><test-case name="26147ctD039 tokoe:invalid" result="pass"/><test-case name="26148ctD040 tokoe:invalid" result="pass"/><test-case name="26149ctD041 tokoe:invalid" result="pass"/><test-case name="26150ctD042 tokoe:invalid" result="pass"/><test-case name="26151ctD043 tokoe:invalid" result="pass"/><test-case name="26152ctE001 tokoe:valid" result="pass"/><test-case name="26153ctE001.v tokoe:valid" result="pass"/><test-case name="26154ctE002 tokoe:valid" result="pass"/><test-case name="26155ctE002.v tokoe:valid" result="pass"/><test-case name="26156ctE003 tokoe:invalid" result="pass"/><test-case name="26157ctE004 tokoe:invalid" result="pass"/><test-case name="26158ctE005 tokoe:invalid" result="pass"/><test-case name="26159ctE006 tokoe:valid" result="pass"/><test-case name="26160ctE006.v tokoe:valid" result="pass"/><test-case name="26161ctE007 tokoe:valid" result="pass"/><test-case name="26162ctE007.v tokoe:valid" result="pass"/><test-case name="26163ctE008 tokoe:valid" result="pass"/><test-case name="26164ctE008.v tokoe:valid" result="pass"/><test-case name="26165ctE009 tokoe:invalid" result="pass"/><test-case name="26166ctE010 tokoe:valid" result="pass"/><test-case name="26167ctE010.v tokoe:valid" result="pass"/><test-case name="26168ctE011 tokoe:invalid" result="pass"/><test-case name="26169ctE012 tokoe:invalid" result="pass"/><test-case name="26170ctE013 tokoe:invalid" result="pass"/><test-case name="26171ctE014 tokoe:invalid" result="pass"/><test-case name="26172ctE015 tokoe:invalid" result="pass"/><test-case name="26173ctE016 tokoe:invalid" result="pass"/><test-case name="26174ctE017 tokoe:valid" result="pass"/><test-case name="26175ctE017.v tokoe:valid" result="pass"/><test-case name="26176ctE018 tokoe:valid" result="pass"/><test-case name="26177ctE018.v tokoe:valid" result="pass"/><test-case name="26178ctE019 tokoe:valid" result="pass"/><test-case name="26179ctE019.v tokoe:valid" result="pass"/><test-case name="26180ctF001 tokoe:valid" result="pass"/><test-case name="26181ctF001.v tokoe:valid" result="pass"/><test-case name="26182ctF002 tokoe:invalid" result="pass"/><test-case name="26183ctF003 tokoe:valid" result="pass"/><test-case name="26184ctF004 tokoe:invalid" result="pass"/><test-case name="26185ctF005 tokoe:invalid" result="pass"/><test-case name="26186ctF006 tokoe:invalid" result="pass"/><test-case name="26187ctF007 tokoe:valid" result="pass"/><test-case name="26188ctF007.v tokoe:valid" result="pass"/><test-case name="26189ctF008 tokoe:invalid" result="pass"/><test-case name="26190ctF009 tokoe:invalid" result="pass"/><test-case name="26191ctF010 tokoe:valid" result="pass"/><test-case name="26192ctF010.v tokoe:valid" result="pass"/><test-case name="26193ctF011 tokoe:valid" result="pass"/><test-case name="26194ctF011.v tokoe:valid" result="pass"/><test-case name="26195ctF012 tokoe:invalid" result="pass"/><test-case name="26196ctF013 tokoe:valid" result="pass"/><test-case name="26197ctF013.v tokoe:valid" result="pass"/><test-case name="26198ctF014 tokoe:valid" result="pass"/><test-case name="26199ctF014.v tokoe:valid" result="pass"/><test-case name="26200ctF015 tokoe:invalid" result="pass"/><test-case name="26201ctF016 tokoe:invalid" result="pass"/><test-case name="26202ctF017 tokoe:invalid" result="pass"/><test-case name="26203ctG001 tokoe:valid" result="pass"/><test-case name="26204ctG001.v tokoe:valid" result="pass"/><test-case name="26205ctG002 tokoe:invalid" result="pass"/><test-case name="26206ctG003 tokoe:invalid" result="pass"/><test-case name="26207ctG004 tokoe:invalid" result="pass"/><test-case name="26208ctG005 tokoe:invalid" result="pass"/><test-case name="26209ctG006 tokoe:invalid" result="pass"/><test-case name="26210ctG007 tokoe:valid" result="pass"/><test-case name="26211ctG007.v tokoe:valid" result="pass"/><test-case name="26212ctG008 tokoe:valid" result="pass"/><test-case name="26213ctG008.v tokoe:valid" result="pass"/><test-case name="26214ctG009 tokoe:valid" result="pass"/><test-case name="26215ctG009.v tokoe:valid" result="pass"/><test-case name="26216ctG010 tokoe:valid" result="pass"/><test-case name="26217ctG010.v tokoe:valid" result="pass"/><test-case name="26218ctG011 tokoe:valid" result="pass"/><test-case name="26219ctG011.v tokoe:valid" result="pass"/><test-case name="26220ctG012 tokoe:invalid" result="pass"/><test-case name="26221ctG013 tokoe:valid" result="pass"/><test-case name="26222ctG013.v tokoe:valid" result="pass"/><test-case name="26223ctG014 tokoe:invalid" result="pass"/><test-case name="26224ctG015 tokoe:invalid" result="pass"/><test-case name="26225ctG016 tokoe:invalid" result="pass"/><test-case name="26226ctG017 tokoe:invalid" result="pass"/><test-case name="26227ctG018 tokoe:invalid" result="pass"/><test-case name="26228ctG019 tokoe:valid" result="pass"/><test-case name="26229ctG019.v tokoe:valid" result="pass"/><test-case name="26230ctG020 tokoe:valid" result="pass"/><test-case name="26231ctG020.v tokoe:valid" result="pass"/><test-case name="26232ctG021 tokoe:valid" result="pass"/><test-case name="26233ctG021.v tokoe:valid" result="pass"/><test-case name="26234ctG022 tokoe:valid" result="pass"/><test-case name="26235ctG022.v tokoe:valid" result="pass"/><test-case name="26236ctG023 tokoe:valid" result="pass"/><test-case name="26237ctG023.v tokoe:valid" result="pass"/><test-case name="26238ctG024 tokoe:invalid" result="pass"/><test-case name="26239ctG025 tokoe:valid" result="pass"/><test-case name="26240ctG025.v tokoe:valid" result="pass"/><test-case name="26241ctG026 tokoe:invalid" result="pass"/><test-case name="26242ctG027 tokoe:invalid" result="pass"/><test-case name="26243ctG028 tokoe:invalid" result="pass"/><test-case name="26244ctG029 tokoe:invalid" result="pass"/><test-case name="26245ctG030 tokoe:invalid" result="pass"/><test-case name="26246ctG031 tokoe:valid" result="pass"/><test-case name="26247ctG031.v tokoe:valid" result="pass"/><test-case name="26248ctG032 tokoe:valid" result="pass"/><test-case name="26249ctG032.v tokoe:valid" result="pass"/><test-case name="26250ctG033 tokoe:valid" result="pass"/><test-case name="26251ctG033.v tokoe:valid" result="pass"/><test-case name="26252ctG034 tokoe:valid" result="pass"/><test-case name="26253ctG034.v tokoe:valid" result="pass"/><test-case name="26254ctG035 tokoe:valid" result="pass"/><test-case name="26255ctG035.v tokoe:valid" result="pass"/><test-case name="26256ctG036 tokoe:invalid" result="pass"/><test-case name="26257ctG037 tokoe:valid" result="pass"/><test-case name="26258ctG037.v tokoe:valid" result="pass"/><test-case name="26259ctG038 tokoe:invalid" result="pass"/><test-case name="26260ctG039 tokoe:invalid" result="pass"/><test-case name="26261ctG040 tokoe:invalid" result="pass"/><test-case name="26262ctG041 tokoe:invalid" result="pass"/><test-case name="26263ctG042 tokoe:invalid" result="pass"/><test-case name="26264ctG043 tokoe:valid" result="pass"/><test-case name="26265ctG043.v tokoe:valid" result="pass"/><test-case name="26266ctG044 tokoe:valid" result="pass"/><test-case name="26267ctG044.v tokoe:valid" result="pass"/><test-case name="26268ctG045 tokoe:valid" result="pass"/><test-case name="26269ctG045.v tokoe:valid" result="pass"/><test-case name="26270ctG046 tokoe:valid" result="pass"/><test-case name="26271ctG046.v tokoe:valid" result="pass"/><test-case name="26272ctG047 tokoe:valid" result="pass"/><test-case name="26273ctG047.v tokoe:valid" result="pass"/><test-case name="26274ctG048 tokoe:invalid" result="pass"/><test-case name="26275ctG049 tokoe:valid" result="pass"/><test-case name="26276ctG049.v tokoe:valid" result="pass"/><test-case name="26277ctG050 tokoe:invalid" result="pass"/><test-case name="26278ctG051 tokoe:invalid" result="pass"/><test-case name="26279ctG052 tokoe:invalid" result="pass"/><test-case name="26280ctG053 tokoe:invalid" result="pass"/><test-case name="26281ctG054 tokoe:invalid" result="pass"/><test-case name="26282ctG055 tokoe:valid" result="pass"/><test-case name="26283ctG055.v tokoe:valid" result="pass"/><test-case name="26284ctG056 tokoe:valid" result="pass"/><test-case name="26285ctG056.v tokoe:valid" result="pass"/><test-case name="26286ctG057 tokoe:valid" result="pass"/><test-case name="26287ctG057.v tokoe:valid" result="pass"/><test-case name="26288ctG058 tokoe:valid" result="pass"/><test-case name="26289ctG058.v tokoe:valid" result="pass"/><test-case name="26290ctG059 tokoe:invalid" result="pass"/><test-case name="26291ctG060 tokoe:valid" result="pass"/><test-case name="26292ctG060.v tokoe:valid" result="pass"/><test-case name="26293ctG061 tokoe:invalid" result="pass"/><test-case name="26294ctG062 tokoe:invalid" result="pass"/><test-case name="26295ctG063 tokoe:invalid" result="pass"/><test-case name="26296ctG064 tokoe:invalid" result="pass"/><test-case name="26297ctG065 tokoe:invalid" result="pass"/><test-case name="26298ctG066 tokoe:valid" result="pass"/><test-case name="26299ctG066.v tokoe:valid" result="pass"/><test-case name="26300ctG067 tokoe:valid" result="pass"/><test-case name="26301ctG067.v tokoe:valid" result="pass"/><test-case name="26302ctG068 tokoe:valid" result="pass"/><test-case name="26303ctG068.v tokoe:valid" result="pass"/><test-case name="26304ctG069 tokoe:valid" result="pass"/><test-case name="26305ctG069.v tokoe:valid" result="pass"/><test-case name="26306ctG070 tokoe:invalid" result="pass"/><test-case name="26307ctG071 tokoe:valid" result="pass"/><test-case name="26308ctG071.v tokoe:valid" result="pass"/><test-case name="26309ctG072 tokoe:invalid" result="pass"/><test-case name="26310ctG073 tokoe:invalid" result="pass"/><test-case name="26311ctG074 tokoe:invalid" result="pass"/><test-case name="26312ctG075 tokoe:invalid" result="pass"/><test-case name="26313ctG076 tokoe:invalid" result="pass"/><test-case name="26314ctG077 tokoe:invalid" result="pass"/><test-case name="26315ctG078 tokoe:invalid" result="pass"/><test-case name="26316ctG079 tokoe:invalid" result="pass"/><test-case name="26317ctG080 tokoe:invalid" result="pass"/><test-case name="26318ctG081 tokoe:invalid" result="pass"/><test-case name="26319ctH001 tokoe:valid" result="pass"/><test-case name="26320ctH001.v tokoe:valid" result="pass"/><test-case name="26321ctH002 tokoe:invalid" result="pass"/><test-case name="26322ctH003 tokoe:invalid" result="pass"/><test-case name="26323ctH004 tokoe:invalid" result="pass"/><test-case name="26324ctH005 tokoe:invalid" result="pass"/><test-case name="26325ctH006 tokoe:invalid" result="pass"/><test-case name="26326ctH007 tokoe:valid" result="pass"/><test-case name="26327ctH007.v tokoe:valid" result="pass"/><test-case name="26328ctH008 tokoe:valid" result="pass"/><test-case name="26329ctH008.v tokoe:valid" result="pass"/><test-case name="26330ctH009 tokoe:valid" result="pass"/><test-case name="26331ctH009.v tokoe:valid" result="pass"/><test-case name="26332ctH010 tokoe:valid" result="pass"/><test-case name="26333ctH010.v tokoe:valid" result="pass"/><test-case name="26334ctH011 tokoe:valid" result="pass"/><test-case name="26335ctH011.v tokoe:valid" result="pass"/><test-case name="26336ctH012 tokoe:invalid" result="pass"/><test-case name="26337ctH013 tokoe:invalid" result="pass"/><test-case name="26338ctH014 tokoe:invalid" result="pass"/><test-case name="26339ctH015 tokoe:invalid" result="pass"/><test-case name="26340ctH016 tokoe:invalid" result="pass"/><test-case name="26341ctH017 tokoe:invalid" result="pass"/><test-case name="26342ctH018 tokoe:invalid" result="pass"/><test-case name="26343ctH019 tokoe:invalid" result="pass"/><test-case name="26344ctH020 tokoe:invalid" result="pass"/><test-case name="26345ctH021 tokoe:invalid" result="pass"/><test-case name="26346ctH022 tokoe:invalid" result="pass"/><test-case name="26347ctH023 tokoe:invalid" result="pass"/><test-case name="26348ctH024 tokoe:invalid" result="pass"/><test-case name="26349ctH025 tokoe:valid" result="pass"/><test-case name="26350ctH025.v tokoe:valid" result="pass"/><test-case name="26351ctH026 tokoe:invalid" result="pass"/><test-case name="26352ctH027 tokoe:invalid" result="pass"/><test-case name="26353ctH028 tokoe:invalid" result="pass"/><test-case name="26354ctH029 tokoe:invalid" result="pass"/><test-case name="26355ctH030 tokoe:invalid" result="pass"/><test-case name="26356ctH031 tokoe:valid" result="pass"/><test-case name="26357ctH031.v tokoe:valid" result="pass"/><test-case name="26358ctH032 tokoe:valid" result="pass"/><test-case name="26359ctH032.v tokoe:valid" result="pass"/><test-case name="26360ctH033 tokoe:valid" result="pass"/><test-case name="26361ctH033.v tokoe:valid" result="pass"/><test-case name="26362ctH034 tokoe:valid" result="pass"/><test-case name="26363ctH034.v tokoe:valid" result="pass"/><test-case name="26364ctH035 tokoe:valid" result="pass"/><test-case name="26365ctH035.v tokoe:valid" result="pass"/><test-case name="26366ctH036 tokoe:invalid" result="pass"/><test-case name="26367ctH037 tokoe:valid" result="pass"/><test-case name="26368ctH037.v tokoe:valid" result="pass"/><test-case name="26369ctH038 tokoe:invalid" result="pass"/><test-case name="26370ctH039 tokoe:invalid" result="pass"/><test-case name="26371ctH040 tokoe:invalid" result="pass"/><test-case name="26372ctH041 tokoe:invalid" result="pass"/><test-case name="26373ctH042 tokoe:invalid" result="pass"/><test-case name="26374ctH043 tokoe:valid" result="pass"/><test-case name="26375ctH043.v tokoe:valid" result="pass"/><test-case name="26376ctH044 tokoe:valid" result="pass"/><test-case name="26377ctH044.v tokoe:valid" result="pass"/><test-case name="26378ctH045 tokoe:valid" result="pass"/><test-case name="26379ctH045.v tokoe:valid" result="pass"/><test-case name="26380ctH046 tokoe:valid" result="pass"/><test-case name="26381ctH046.v tokoe:valid" result="pass"/><test-case name="26382ctH047 tokoe:valid" result="pass"/><test-case name="26383ctH047.v tokoe:valid" result="pass"/><test-case name="26384ctH048 tokoe:invalid" result="pass"/><test-case name="26385ctH049 tokoe:valid" result="pass"/><test-case name="26386ctH049.v tokoe:valid" result="pass"/><test-case name="26387ctH050 tokoe:invalid" result="pass"/><test-case name="26388ctH051 tokoe:invalid" result="pass"/><test-case name="26389ctH052 tokoe:invalid" result="pass"/><test-case name="26390ctH053 tokoe:invalid" result="pass"/><test-case name="26391ctH054 tokoe:invalid" result="pass"/><test-case name="26392ctH055 tokoe:valid" result="pass"/><test-case name="26393ctH055.v tokoe:valid" result="pass"/><test-case name="26394ctH056 tokoe:valid" result="pass"/><test-case name="26395ctH056.v tokoe:valid" result="pass"/><test-case name="26396ctH057 tokoe:valid" result="pass"/><test-case name="26397ctH057.v tokoe:valid" result="pass"/><test-case name="26398ctH058 tokoe:valid" result="pass"/><test-case name="26399ctH058.v tokoe:valid" result="pass"/><test-case name="26400ctH059 tokoe:invalid" result="pass"/><test-case name="26401ctH060 tokoe:valid" result="pass"/><test-case name="26402ctH060.v tokoe:valid" result="pass"/><test-case name="26403ctH061 tokoe:invalid" result="pass"/><test-case name="26404ctH062 tokoe:invalid" result="pass"/><test-case name="26405ctH063 tokoe:invalid" result="pass"/><test-case name="26406ctH064 tokoe:invalid" result="pass"/><test-case name="26407ctH065 tokoe:invalid" result="pass"/><test-case name="26408ctH066 tokoe:valid" result="pass"/><test-case name="26409ctH066.v tokoe:valid" result="pass"/><test-case name="26410ctH067 tokoe:valid" result="pass"/><test-case name="26411ctH067.v tokoe:valid" result="pass"/><test-case name="26412ctH068 tokoe:valid" result="pass"/><test-case name="26413ctH068.v tokoe:valid" result="pass"/><test-case name="26414ctH069 tokoe:valid" result="pass"/><test-case name="26415ctH069.v tokoe:valid" result="pass"/><test-case name="26416ctH070 tokoe:invalid" result="pass"/><test-case name="26417ctH071 tokoe:valid" result="pass"/><test-case name="26418ctH071.v tokoe:valid" result="pass"/><test-case name="26419ctH072 tokoe:invalid" result="pass"/><test-case name="26420ctH073 tokoe:invalid" result="pass"/><test-case name="26421ctH074 tokoe:invalid" result="pass"/><test-case name="26422ctH075 tokoe:invalid" result="pass"/><test-case name="26423ctH076 tokoe:invalid" result="pass"/><test-case name="26424ctH077 tokoe:invalid" result="pass"/><test-case name="26425ctH078 tokoe:invalid" result="pass"/><test-case name="26426ctH079 tokoe:invalid" result="pass"/><test-case name="26427ctH080 tokoe:invalid" result="pass"/><test-case name="26428ctH081 tokoe:invalid" result="pass"/><test-case name="26429ctH082 tokoe:valid" result="pass"/><test-case name="26430ctH082.v tokoe:valid" result="pass"/><test-case name="26431ctI001 tokoe:invalid" result="pass"/><test-case name="26432ctI002 tokoe:invalid" result="pass"/><test-case name="26433ctI003 tokoe:valid" result="pass"/><test-case name="26434ctI003.v tokoe:valid" result="pass"/><test-case name="26435ctI004 tokoe:valid" result="pass"/><test-case name="26436ctI004.v tokoe:valid" result="pass"/><test-case name="26437ctI005 tokoe:valid" result="pass"/><test-case name="26438ctI005.v tokoe:valid" result="pass"/><test-case name="26439ctI006 tokoe:invalid" result="pass"/><test-case name="26440ctI007 tokoe:invalid" result="pass"/><test-case name="26441ctI008 tokoe:invalid" result="pass"/><test-case name="26442ctI009 tokoe:valid" result="pass"/><test-case name="26443ctI009.v tokoe:valid" result="pass"/><test-case name="26444ctI010 tokoe:valid" result="pass"/><test-case name="26445ctI010.v tokoe:valid" result="pass"/><test-case name="26446ctI011 tokoe:invalid" result="pass"/><test-case name="26447ctI012 tokoe:invalid" result="pass"/><test-case name="26448ctI013 tokoe:invalid" result="pass"/><test-case name="26449ctI014 tokoe:valid" result="pass"/><test-case name="26450ctI014.v tokoe:valid" result="pass"/><test-case name="26451ctI015 tokoe:valid" result="pass"/><test-case name="26452ctI015.v tokoe:valid" result="pass"/><test-case name="26453ctI016 tokoe:invalid" result="pass"/><test-case name="26454ctI017 tokoe:invalid" result="pass"/><test-case name="26455ctI018 tokoe:valid" result="pass"/><test-case name="26456ctI018.v tokoe:valid" result="pass"/><test-case name="26457ctI019 tokoe:valid" result="pass"/><test-case name="26458ctI019.v tokoe:valid" result="pass"/><test-case name="26459ctI020 tokoe:invalid" result="pass"/><test-case name="26460ctI021 tokoe:valid" result="pass"/><test-case name="26461ctI021.v tokoe:valid" result="pass"/><test-case name="26462ctI022 tokoe:valid" result="pass"/><test-case name="26463ctI022.v tokoe:valid" result="pass"/><test-case name="26464ctI023 tokoe:valid" result="pass"/><test-case name="26465ctI023.v tokoe:valid" result="pass"/><test-case name="26466ctI024 tokoe:invalid" result="pass"/><test-case name="26467ctI025 tokoe:valid" result="pass"/><test-case name="26468ctI025.v tokoe:valid" result="pass"/><test-case name="26469ctI026 tokoe:valid" result="pass"/><test-case name="26470ctI026.v tokoe:valid" result="pass"/><test-case name="26471ctI027 tokoe:valid" result="pass"/><test-case name="26472ctI027.v tokoe:valid" result="pass"/><test-case name="26473ctI028 tokoe:valid" result="pass"/><test-case name="26474ctI028.v tokoe:valid" result="pass"/><test-case name="26475ctI029 tokoe:valid" result="pass"/><test-case name="26476ctI029.v tokoe:valid" result="pass"/><test-case name="26477ctI030 tokoe:valid" result="pass"/><test-case name="26478ctI030.i tokoe:invalid" result="pass"/><test-case name="26479ctI031 tokoe:valid" result="pass"/><test-case name="26480ctI031.i tokoe:invalid" result="pass"/><test-case name="26481ctI032 tokoe:valid" result="pass"/><test-case name="26482ctI032.i tokoe:invalid" result="pass"/><test-case name="26483ctI033 tokoe:valid" result="pass"/><test-case name="26484ctI033.v tokoe:valid" result="pass"/><test-case name="26485ctI034 tokoe:valid" result="pass"/><test-case name="26486ctI034.v tokoe:valid" result="pass"/><test-case name="26487ctI035 tokoe:valid" result="pass"/><test-case name="26488ctI035.i tokoe:invalid" result="pass"/><test-case name="26489ctI036 tokoe:valid" result="pass"/><test-case name="26490ctI036.v tokoe:valid" result="pass"/><test-case name="26491ctI037 tokoe:valid" result="pass"/><test-case name="26492ctI037.v tokoe:valid" result="pass"/><test-case name="26493ctI038 tokoe:valid" result="pass"/><test-case name="26494ctI038.i tokoe:invalid" result="pass"/><test-case name="26495ctI039 tokoe:valid" result="pass"/><test-case name="26496ctI039.i tokoe:invalid" result="pass"/><test-case name="26497ctI040 tokoe:valid" result="pass"/><test-case name="26498ctI040.v tokoe:valid" result="pass"/><test-case name="26499ctI041 tokoe:valid" result="pass"/><test-case name="26500ctI041.v tokoe:valid" result="pass"/><test-case name="26501ctI042 tokoe:valid" result="pass"/><test-case name="26502ctI042.i tokoe:invalid" result="pass"/><test-case name="26503ctI043 tokoe:valid" result="pass"/><test-case name="26504ctI043.v tokoe:valid" result="pass"/><test-case name="26505ctI044 tokoe:valid" result="pass"/><test-case name="26506ctI044.v tokoe:valid" result="pass"/><test-case name="26507ctI045 tokoe:valid" result="pass"/><test-case name="26508ctI045.i tokoe:invalid" result="pass"/><test-case name="26509ctI046 tokoe:valid" result="pass"/><test-case name="26510ctI046.v tokoe:valid" result="pass"/><test-case name="26511ctI047 tokoe:valid" result="pass"/><test-case name="26512ctI047.v tokoe:valid" result="pass"/><test-case name="26513ctI048 tokoe:valid" result="pass"/><test-case name="26514ctI048.i tokoe:invalid" result="pass"/><test-case name="26515ctI049 tokoe:valid" result="pass"/><test-case name="26516ctI049.i tokoe:invalid" result="pass"/><test-case name="26517ctI050 tokoe:valid" result="pass"/><test-case name="26518ctI050.v tokoe:valid" result="pass"/><test-case name="26519ctJ001 tokoe:valid" result="pass"/><test-case name="26520ctJ001.v tokoe:valid" result="pass"/><test-case name="26521ctJ002 tokoe:invalid" result="pass"/><test-case name="26522ctJ003 tokoe:invalid" result="pass"/><test-case name="26523ctK001 tokoe:valid" result="pass"/><test-case name="26524ctK001.v tokoe:valid" result="pass"/><test-case name="26525ctK002 tokoe:invalid" result="pass"/><test-case name="26526ctL001 tokoe:valid" result="pass"/><test-case name="26527ctL001.i tokoe:invalid" result="pass"/><test-case name="26528ctL002 tokoe:valid" result="pass"/><test-case name="26529ctL002.i tokoe:invalid" result="pass"/><test-case name="26530ctL003 tokoe:valid" result="pass"/><test-case name="26531ctL003.v tokoe:valid" result="pass"/><test-case name="26532ctL004 tokoe:valid" result="pass"/><test-case name="26533ctL004.i tokoe:invalid" result="pass"/><test-case name="26534ctL005 tokoe:valid" result="pass"/><test-case name="26535ctL005.v tokoe:valid" result="pass"/><test-case name="26536ctL006 tokoe:valid" result="pass"/><test-case name="26537ctL006.i tokoe:invalid" result="pass"/><test-case name="26538ctL007 tokoe:valid" result="pass"/><test-case name="26539ctL007.v tokoe:valid" result="pass"/><test-case name="26540ctL008 tokoe:valid" result="pass"/><test-case name="26541ctL008.v tokoe:valid" result="pass"/><test-case name="26542ctL009 tokoe:valid" result="pass"/><test-case name="26543ctL009.i tokoe:invalid" result="pass"/><test-case name="26544ctL010 tokoe:valid" result="pass"/><test-case name="26545ctL010.i tokoe:invalid" result="pass"/><test-case name="26546ctL011 tokoe:valid" result="pass"/><test-case name="26547ctL011.v tokoe:valid" result="pass"/><test-case name="26548ctL012 tokoe:valid" result="pass"/><test-case name="26549ctL012.i tokoe:invalid" result="pass"/><test-case name="26550ctL013 tokoe:valid" result="pass"/><test-case name="26551ctL013.i tokoe:invalid" result="pass"/><test-case name="26552ctL014 tokoe:valid" result="pass"/><test-case name="26553ctL014.v tokoe:valid" result="pass"/><test-case name="26554ctL015 tokoe:valid" result="pass"/><test-case name="26555ctL015.v tokoe:valid" result="pass"/><test-case name="26556ctL016 tokoe:valid" result="pass"/><test-case name="26557ctL016.v tokoe:valid" result="pass"/><test-case name="26558ctL017 tokoe:valid" result="pass"/><test-case name="26559ctL017.v tokoe:valid" result="pass"/><test-case name="26560ctL018 tokoe:valid" result="pass"/><test-case name="26561ctL018.v tokoe:valid" result="pass"/><test-case name="26562ctL019 tokoe:valid" result="pass"/><test-case name="26563ctL019.v tokoe:valid" result="pass"/><test-case name="26564ctL020 tokoe:valid" result="pass"/><test-case name="26565ctL020.i tokoe:invalid" result="pass"/><test-case name="26566ctL021 tokoe:valid" result="pass"/><test-case name="26567ctL021.v tokoe:valid" result="pass"/><test-case name="26568ctL022 tokoe:valid" result="pass"/><test-case name="26569ctL022.v tokoe:valid" result="pass"/><test-case name="26570ctM001 tokoe:invalid" result="pass"/><test-case name="26571ctM002 tokoe:valid" result="pass"/><test-case name="26572ctM002.v tokoe:valid" result="pass"/><test-case name="26573ctM003 tokoe:invalid" result="pass"/><test-case name="26574ctM004 tokoe:invalid" result="pass"/><test-case name="26575ctN001 tokoe:valid" result="pass"/><test-case name="26576ctN001.v tokoe:valid" result="pass"/><test-case name="26577ctN002 tokoe:invalid" result="pass"/><test-case name="26578ctN003 tokoe:valid" result="pass"/><test-case name="26579ctN003.v tokoe:valid" result="pass"/><test-case name="26580ctN004 tokoe:valid" result="pass"/><test-case name="26581ctN004.v tokoe:valid" result="pass"/><test-case name="26582ctO001 tokoe:valid" result="pass"/><test-case name="26583ctO001.v tokoe:valid" result="pass"/><test-case name="26584ctO002 tokoe:invalid" result="pass"/><test-case name="26585ctO003 tokoe:valid" result="pass"/><test-case name="26586ctO003.v tokoe:valid" result="pass"/><test-case name="26587ctO004 tokoe:invalid" result="pass"/><test-case name="26588ctO005 tokoe:invalid" result="pass"/><test-case name="26589ctO006 tokoe:valid" result="pass"/><test-case name="26590ctO006.v tokoe:valid" result="pass"/><test-case name="26591ctO007 tokoe:invalid" result="pass"/><test-case name="26592ctZ001 tokoe:valid" result="pass"/><test-case name="26593ctZ001.v tokoe:valid" result="pass"/><test-case name="26594ctZ002 tokoe:invalid" result="pass"/><test-case name="26595ctZ003 tokoe:valid" result="pass"/><test-case name="26596ctZ003.v tokoe:valid" result="pass"/><test-case name="26597ctZ004 tokoe:valid" result="pass"/><test-case name="26598ctZ005 tokoe:valid" result="pass"/><test-case name="26599ctZ005.i tokoe:invalid" result="pass"/><test-case name="26600ctZ006 tokoe:valid" result="pass"/><test-case name="26601ctZ006.v tokoe:valid" result="pass"/><test-case name="26602ctZ007 tokoe:valid" result="pass"/><test-case name="26603ctZ007.v tokoe:valid" result="fail"/><test-case name="26604ctZ008 tokoe:valid" result="pass"/><test-case name="26605ctZ008.v tokoe:valid" result="pass"/><test-case name="26606ctZ009 tokoe:valid" result="pass"/><test-case name="26607ctZ009.v tokoe:valid" result="pass"/><test-case name="26608ctZ009_a tokoe:valid" result="pass"/><test-case name="26609ctZ009_a.v tokoe:valid" result="pass"/><test-case name="26610ctZ009_b tokoe:valid" result="pass"/><test-case name="26611ctZ009_b.v tokoe:valid" result="pass"/><test-case name="26612ctZ009_c tokoe:valid" result="pass"/><test-case name="26613ctZ009_c.i tokoe:invalid" result="pass"/><test-case name="26614ctZ009_d tokoe:valid" result="pass"/><test-case name="26615ctZ009_d.v tokoe:valid" result="pass"/><test-case name="26616ctZ010 tokoe:valid" result="pass"/><test-case name="26617ctZ010a tokoe:invalid" result="pass"/><test-case name="26618ctZ010b tokoe:valid" result="pass"/><test-case name="26619ctZ010c tokoe:valid" result="pass"/><test-case name="26620ctZ010d tokoe:invalid" result="pass"/><test-case name="26621ctZ010e tokoe:invalid" result="pass"/><test-case name="26622ctZ010f tokoe:valid" result="pass"/><test-case name="26623ctZ010g tokoe:valid" result="pass"/><test-case name="26624ctZ010h tokoe:valid" result="pass"/><test-case name="26625ctZ011_a.v tokoe:valid" result="pass"/><test-case name="26626ctZ011_b tokoe:valid" result="pass"/><test-case name="26627ctZ011_b.v tokoe:valid" result="pass"/><test-case name="26628ctZ012a tokoe:valid" result="pass"/><test-case name="26629ctZ012b tokoe:valid" result="pass"/><test-case name="26630ctZ013a tokoe:valid" result="pass"/><test-case name="26631ctZ013a.v tokoe:valid" result="pass"/><test-case name="26632ctZ013b tokoe:valid" result="pass"/><test-case name="26633ctZ013b.v tokoe:valid" result="pass"/><test-case name="26634ctZ013c tokoe:valid" result="pass"/><test-case name="26635ctZ013c.i tokoe:invalid" result="pass"/><test-case name="26636ctZ013d tokoe:valid" result="pass"/><test-case name="26637ctZ013d.i tokoe:invalid" result="pass"/><test-case name="26638ctZ013e tokoe:valid" result="pass"/><test-case name="26639ctZ013e.i tokoe:invalid" result="pass"/><test-case name="26640string_length001_0 tokoe:invalid" result="pass"/><test-case name="26641string_length002_1 tokoe:invalid" result="pass"/><test-case name="26642string_length003_2 tokoe:valid" result="pass"/><test-case name="26643string_length004_3 tokoe:invalid" result="pass"/><test-case name="26644string_length005_4 tokoe:invalid" result="pass"/><test-case name="26645string_length006_5 tokoe:invalid" result="pass"/><test-case name="26646string_length007_6 tokoe:invalid" result="pass"/><test-case name="26647string_minLength001_7 tokoe:invalid" result="pass"/><test-case name="26648string_minLength002_8 tokoe:invalid" result="pass"/><test-case name="26649string_minLength003_9 tokoe:valid" result="pass"/><test-case name="26650string_minLength004_10 tokoe:invalid" result="pass"/><test-case name="26651string_minLength005_11 tokoe:invalid" result="pass"/><test-case name="26652string_minLength006_12 tokoe:invalid" result="pass"/><test-case name="26653string_minLength007_13 tokoe:valid" result="pass"/><test-case name="26654string_minLength008_14 tokoe:valid" result="pass"/><test-case name="26655string_maxLength001_15 tokoe:invalid" result="pass"/><test-case name="26656string_maxLength002_16 tokoe:invalid" result="pass"/><test-case name="26657string_maxLength003_17 tokoe:valid" result="pass"/><test-case name="26658string_maxLength004_18 tokoe:invalid" result="pass"/><test-case name="26659string_maxLength005_19 tokoe:invalid" result="pass"/><test-case name="26660string_pattern001_20 tokoe:valid" result="pass"/><test-case name="26661string_enumeration001_21 tokoe:valid" result="pass"/><test-case name="26662string_enumeration002_22 tokoe:valid" result="pass"/><test-case name="26663decimal_pattern001_23 tokoe:valid" result="pass"/><test-case name="26664decimal_enumeration001_24 tokoe:invalid" result="pass"/><test-case name="26665decimal_enumeration002_25 tokoe:valid" result="pass"/><test-case name="26666decimal_maxInclusive001_26 tokoe:invalid" result="pass"/><test-case name="26667decimal_maxInclusive002_27 tokoe:valid" result="pass"/><test-case name="26668decimal_maxInclusive003_28 tokoe:invalid" result="pass"/><test-case name="26669decimal_maxExclusive001_29 tokoe:invalid" result="pass"/><test-case name="26670decimal_maxExclusive002_30 tokoe:valid" result="pass"/><test-case name="26671decimal_minInclusive001_31 tokoe:invalid" result="pass"/><test-case name="26672decimal_minInclusive002_32 tokoe:valid" result="pass"/><test-case name="26673decimal_minInclusive003_33 tokoe:invalid" result="pass"/><test-case name="26674decimal_minExclusive001_34 tokoe:invalid" result="pass"/><test-case name="26675decimal_minExclusive002_35 tokoe:valid" result="pass"/><test-case name="26676decimal_minExclusive003_36 tokoe:invalid" result="pass"/><test-case name="26677decimal_totalDigits001_37 tokoe:invalid" result="pass"/><test-case name="26678decimal_totalDigits002_38 tokoe:invalid" result="pass"/><test-case name="26679decimal_totalDigits003_39 tokoe:invalid" result="pass"/><test-case name="26680decimal_totalDigits004_40 tokoe:valid" result="pass"/><test-case name="26681decimal_totalDigits005_41 tokoe:invalid" result="pass"/><test-case name="26682decimal_totalDigits006_42 tokoe:invalid" result="pass"/><test-case name="26683decimal_totalDigits007_43 tokoe:valid" result="pass"/><test-case name="26684decimal_fractionDigits001_44 tokoe:invalid" result="pass"/><test-case name="26685decimal_fractionDigits002_45 tokoe:invalid" result="pass"/><test-case name="26686decimal_fractionDigits003_46 tokoe:valid" result="pass"/><test-case name="26687decimal_fractionDigits004_47 tokoe:valid" result="pass"/><test-case name="26688decimal_fractionDigits005_48 tokoe:invalid" result="pass"/><test-case name="26689decimal_fractionDigits006_49 tokoe:invalid" result="pass"/><test-case name="26690decimal_fractionDigits007_50 tokoe:valid" result="pass"/><test-case name="26691decimal_fractionDigits008_51 tokoe:invalid" result="pass"/><test-case name="26692float_pattern001_52 tokoe:valid" result="pass"/><test-case name="26693float_enumeration001_53 tokoe:invalid" result="pass"/><test-case name="26694float_enumeration002_54 tokoe:valid" result="pass"/><test-case name="26695float_maxInclusive001_55 tokoe:invalid" result="pass"/><test-case name="26696float_maxInclusive002_56 tokoe:valid" result="pass"/><test-case name="26697float_maxInclusive003_57 tokoe:invalid" result="pass"/><test-case name="26698float_maxExclusive001_58 tokoe:invalid" result="pass"/><test-case name="26699float_maxExclusive002_59 tokoe:valid" result="pass"/><test-case name="26700float_minInclusive001_60 tokoe:invalid" result="pass"/><test-case name="26701float_minInclusive002_61 tokoe:valid" result="pass"/><test-case name="26702float_minInclusive003_62 tokoe:invalid" result="pass"/><test-case name="26703float_minExclusive001_63 tokoe:invalid" result="pass"/><test-case name="26704float_minExclusive002_64 tokoe:valid" result="pass"/><test-case name="26705float_minExclusive003_65 tokoe:invalid" result="pass"/><test-case name="26706double_pattern001_66 tokoe:valid" result="pass"/><test-case name="26707double_enumeration001_67 tokoe:invalid" result="pass"/><test-case name="26708double_enumeration002_68 tokoe:valid" result="pass"/><test-case name="26709double_maxInclusive001_69 tokoe:invalid" result="pass"/><test-case name="26710double_maxInclusive002_70 tokoe:valid" result="pass"/><test-case name="26711double_maxInclusive003_71 tokoe:invalid" result="pass"/><test-case name="26712double_maxExclusive001_72 tokoe:invalid" result="pass"/><test-case name="26713double_maxExclusive002_73 tokoe:valid" result="pass"/><test-case name="26714double_minInclusive001_74 tokoe:invalid" result="pass"/><test-case name="26715double_minInclusive002_75 tokoe:valid" result="pass"/><test-case name="26716double_minInclusive003_76 tokoe:invalid" result="pass"/><test-case name="26717double_minExclusive001_77 tokoe:invalid" result="pass"/><test-case name="26718double_minExclusive002_78 tokoe:valid" result="pass"/><test-case name="26719double_minExclusive003_79 tokoe:invalid" result="pass"/><test-case name="26720duration_pattern001_80 tokoe:valid" result="pass"/><test-case name="26721duration_enumeration001_81 tokoe:invalid" result="pass"/><test-case name="26722duration_enumeration002_82 tokoe:valid" result="pass"/><test-case name="26723duration_enumeration003_83 tokoe:valid" result="pass"/><test-case name="26724duration_enumeration004_84 tokoe:valid" result="pass"/><test-case name="26725duration_maxInclusive001_85 tokoe:invalid" result="pass"/><test-case name="26726duration_maxInclusive002_86 tokoe:valid" result="pass"/><test-case name="26727duration_maxInclusive003_87 tokoe:invalid" result="pass"/><test-case name="26728duration_maxExclusive001_88 tokoe:invalid" result="pass"/><test-case name="26729duration_maxExclusive002_89 tokoe:valid" result="pass"/><test-case name="26730duration_minInclusive001_90 tokoe:invalid" result="pass"/><test-case name="26731duration_minInclusive002_91 tokoe:valid" result="pass"/><test-case name="26732duration_minInclusive003_92 tokoe:invalid" result="pass"/><test-case name="26733duration_minInclusive004_93 tokoe:valid" result="fail"/><test-case name="26734duration_minExclusive001_94 tokoe:invalid" result="pass"/><test-case name="26735duration_minExclusive002_95 tokoe:valid" result="pass"/><test-case name="26736duration_minExclusive003_96 tokoe:invalid" result="pass"/><test-case name="26737dateTime_pattern001_97 tokoe:valid" result="pass"/><test-case name="26738dateTime_enumeration001_98 tokoe:invalid" result="pass"/><test-case name="26739dateTime_enumeration002_99 tokoe:valid" result="pass"/><test-case name="26740dateTime_enumeration003_100 tokoe:valid" result="fail"/><test-case name="26741dateTime_maxInclusive001_101 tokoe:invalid" result="pass"/><test-case name="26742dateTime_maxInclusive002_102 tokoe:valid" result="pass"/><test-case name="26743dateTime_maxInclusive003_103 tokoe:invalid" result="pass"/><test-case name="26744dateTime_maxInclusive004_104 tokoe:valid" result="pass"/><test-case name="26745dateTime_maxExclusive001_105 tokoe:invalid" result="pass"/><test-case name="26746dateTime_maxExclusive002_106 tokoe:valid" result="pass"/><test-case name="26747dateTime_minInclusive001_107 tokoe:invalid" result="pass"/><test-case name="26748dateTime_minInclusive002_108 tokoe:valid" result="pass"/><test-case name="26749dateTime_minInclusive003_109 tokoe:invalid" result="pass"/><test-case name="26750dateTime_minExclusive001_110 tokoe:invalid" result="pass"/><test-case name="26751dateTime_minExclusive002_111 tokoe:valid" result="pass"/><test-case name="26752dateTime_minExclusive003_112 tokoe:invalid" result="pass"/><test-case name="26753time_pattern001_113 tokoe:valid" result="pass"/><test-case name="26754time_enumeration001_114 tokoe:invalid" result="pass"/><test-case name="26755time_enumeration002_115 tokoe:valid" result="pass"/><test-case name="26756time_maxInclusive001_116 tokoe:invalid" result="pass"/><test-case name="26757time_maxInclusive002_117 tokoe:valid" result="pass"/><test-case name="26758time_maxInclusive003_118 tokoe:invalid" result="pass"/><test-case name="26759time_maxInclusive007_119 tokoe:invalid" result="pass"/><test-case name="26760time_maxExclusive001_120 tokoe:invalid" result="pass"/><test-case name="26761time_maxExclusive002_121 tokoe:valid" result="pass"/><test-case name="26762time_minInclusive001_122 tokoe:invalid" result="pass"/><test-case name="26763time_minInclusive002_123 tokoe:valid" result="pass"/><test-case name="26764time_minInclusive003_124 tokoe:invalid" result="pass"/><test-case name="26765time_minExclusive001_125 tokoe:invalid" result="pass"/><test-case name="26766time_minExclusive002_126 tokoe:valid" result="pass"/><test-case name="26767time_minExclusive003_127 tokoe:invalid" result="pass"/><test-case name="26768date_pattern001_128 tokoe:valid" result="pass"/><test-case name="26769date_enumeration001_129 tokoe:invalid" result="pass"/><test-case name="26770date_enumeration002_130 tokoe:valid" result="pass"/><test-case name="26771date_maxInclusive001_131 tokoe:invalid" result="pass"/><test-case name="26772date_maxInclusive002_132 tokoe:valid" result="pass"/><test-case name="26773date_maxInclusive003_133 tokoe:invalid" result="pass"/><test-case name="26774date_maxInclusive007_134 tokoe:invalid" result="pass"/><test-case name="26775date_maxInclusive008_135 tokoe:invalid" result="pass"/><test-case name="26776date_maxInclusive009_136 tokoe:valid" result="pass"/><test-case name="26777date_maxExclusive001_137 tokoe:invalid" result="pass"/><test-case name="26778date_maxExclusive002_138 tokoe:valid" result="pass"/><test-case name="26779date_minInclusive001_139 tokoe:invalid" result="pass"/><test-case name="26780date_minInclusive002_140 tokoe:valid" result="pass"/><test-case name="26781date_minInclusive003_141 tokoe:invalid" result="pass"/><test-case name="26782date_minExclusive001_142 tokoe:invalid" result="pass"/><test-case name="26783date_minExclusive002_143 tokoe:valid" result="pass"/><test-case name="26784date_minExclusive003_144 tokoe:invalid" result="pass"/><test-case name="26785gYearMonth_pattern001_145 tokoe:valid" result="pass"/><test-case name="26786gYearMonth_enumeration001_146 tokoe:invalid" result="pass"/><test-case name="26787gYearMonth_enumeration002_147 tokoe:valid" result="pass"/><test-case name="26788gYearMonth_maxInclusive001_148 tokoe:invalid" result="pass"/><test-case name="26789gYearMonth_maxInclusive002_149 tokoe:valid" result="pass"/><test-case name="26790gYearMonth_maxInclusive003_150 tokoe:invalid" result="pass"/><test-case name="26791gYearMonth_maxExclusive001_151 tokoe:invalid" result="pass"/><test-case name="26792gYearMonth_maxExclusive002_152 tokoe:valid" result="pass"/><test-case name="26793gYearMonth_minInclusive001_153 tokoe:invalid" result="pass"/><test-case name="26794gYearMonth_minInclusive002_154 tokoe:valid" result="pass"/><test-case name="26795gYearMonth_minInclusive003_155 tokoe:invalid" result="pass"/><test-case name="26796gYearMonth_minExclusive001_156 tokoe:invalid" result="pass"/><test-case name="26797gYearMonth_minExclusive002_157 tokoe:valid" result="pass"/><test-case name="26798gYearMonth_minExclusive003_158 tokoe:invalid" result="pass"/><test-case name="26799gYear_pattern001_159 tokoe:valid" result="pass"/><test-case name="26800gYear_enumeration001_160 tokoe:invalid" result="pass"/><test-case name="26801gYear_enumeration002_161 tokoe:valid" result="pass"/><test-case name="26802gYear_maxInclusive001_162 tokoe:invalid" result="pass"/><test-case name="26803gYear_maxInclusive002_163 tokoe:valid" result="pass"/><test-case name="26804gYear_maxInclusive003_164 tokoe:invalid" result="pass"/><test-case name="26805gYear_maxExclusive001_165 tokoe:invalid" result="pass"/><test-case name="26806gYear_maxExclusive002_166 tokoe:valid" result="pass"/><test-case name="26807gYear_minInclusive001_167 tokoe:invalid" result="pass"/><test-case name="26808gYear_minInclusive002_168 tokoe:valid" result="pass"/><test-case name="26809gYear_minInclusive003_169 tokoe:invalid" result="pass"/><test-case name="26810gYear_minExclusive001_170 tokoe:invalid" result="pass"/><test-case name="26811gYear_minExclusive002_171 tokoe:valid" result="pass"/><test-case name="26812gYear_minExclusive003_172 tokoe:invalid" result="pass"/><test-case name="26813gMonthDay_pattern001_173 tokoe:valid" result="pass"/><test-case name="26814gMonthDay_enumeration001_174 tokoe:invalid" result="pass"/><test-case name="26815gMonthDay_enumeration002_175 tokoe:valid" result="pass"/><test-case name="26816gMonthDay_maxInclusive001_176 tokoe:invalid" result="pass"/><test-case name="26817gMonthDay_maxInclusive002_177 tokoe:valid" result="pass"/><test-case name="26818gMonthDay_maxInclusive003_178 tokoe:invalid" result="pass"/><test-case name="26819gMonthDay_maxExclusive001_179 tokoe:invalid" result="pass"/><test-case name="26820gMonthDay_maxExclusive002_180 tokoe:valid" result="pass"/><test-case name="26821gMonthDay_minInclusive001_181 tokoe:invalid" result="pass"/><test-case name="26822gMonthDay_minInclusive002_182 tokoe:valid" result="pass"/><test-case name="26823gMonthDay_minInclusive003_183 tokoe:invalid" result="pass"/><test-case name="26824gMonthDay_minExclusive001_184 tokoe:invalid" result="pass"/><test-case name="26825gMonthDay_minExclusive002_185 tokoe:valid" result="pass"/><test-case name="26826gMonthDay_minExclusive003_186 tokoe:invalid" result="pass"/><test-case name="26827gDay_pattern001_187 tokoe:valid" result="pass"/><test-case name="26828gDay_enumeration001_188 tokoe:invalid" result="pass"/><test-case name="26829gDay_enumeration002_189 tokoe:valid" result="pass"/><test-case name="26830gDay_maxInclusive001_190 tokoe:invalid" result="pass"/><test-case name="26831gDay_maxInclusive002_191 tokoe:valid" result="pass"/><test-case name="26832gDay_maxInclusive003_192 tokoe:invalid" result="pass"/><test-case name="26833gDay_maxExclusive001_193 tokoe:invalid" result="pass"/><test-case name="26834gDay_maxExclusive002_194 tokoe:valid" result="pass"/><test-case name="26835gDay_minInclusive001_195 tokoe:invalid" result="pass"/><test-case name="26836gDay_minInclusive002_196 tokoe:valid" result="pass"/><test-case name="26837gDay_minInclusive003_197 tokoe:invalid" result="pass"/><test-case name="26838gDay_minExclusive001_198 tokoe:invalid" result="pass"/><test-case name="26839gDay_minExclusive002_199 tokoe:valid" result="pass"/><test-case name="26840gDay_minExclusive003_200 tokoe:invalid" result="pass"/><test-case name="26841gMonth_pattern001_201 tokoe:valid" result="pass"/><test-case name="26842gMonth_enumeration001_202 tokoe:invalid" result="pass"/><test-case name="26843gMonth_enumeration002_203 tokoe:valid" result="fail"/><test-case name="26844gMonth_maxInclusive001_204 tokoe:invalid" result="pass"/><test-case name="26845gMonth_maxInclusive002_205 tokoe:valid" result="fail"/><test-case name="26846gMonth_maxInclusive003_206 tokoe:invalid" result="pass"/><test-case name="26847gMonth_maxExclusive001_207 tokoe:invalid" result="pass"/><test-case name="26848gMonth_maxExclusive002_208 tokoe:valid" result="fail"/><test-case name="26849gMonth_minInclusive001_209 tokoe:invalid" result="pass"/><test-case name="26850gMonth_minInclusive002_210 tokoe:valid" result="fail"/><test-case name="26851gMonth_minInclusive003_211 tokoe:invalid" result="pass"/><test-case name="26852gMonth_minExclusive001_212 tokoe:invalid" result="pass"/><test-case name="26853gMonth_minExclusive002_213 tokoe:valid" result="fail"/><test-case name="26854gMonth_minExclusive003_214 tokoe:invalid" result="pass"/><test-case name="26855hexBinary_length001_215 tokoe:invalid" result="pass"/><test-case name="26856hexBinary_length002_216 tokoe:invalid" result="pass"/><test-case name="26857hexBinary_length003_217 tokoe:valid" result="pass"/><test-case name="26858hexBinary_length004_218 tokoe:invalid" result="pass"/><test-case name="26859hexBinary_length005_219 tokoe:invalid" result="pass"/><test-case name="26860hexBinary_length006_220 tokoe:invalid" result="pass"/><test-case name="26861hexBinary_length007_221 tokoe:invalid" result="pass"/><test-case name="26862hexBinary_minLength001_222 tokoe:invalid" result="pass"/><test-case name="26863hexBinary_minLength002_223 tokoe:invalid" result="pass"/><test-case name="26864hexBinary_minLength003_224 tokoe:valid" result="pass"/><test-case name="26865hexBinary_minLength004_225 tokoe:invalid" result="pass"/><test-case name="26866hexBinary_minLength005_226 tokoe:invalid" result="pass"/><test-case name="26867hexBinary_minLength006_227 tokoe:invalid" result="pass"/><test-case name="26868hexBinary_minLength007_228 tokoe:valid" result="pass"/><test-case name="26869hexBinary_maxLength001_229 tokoe:invalid" result="pass"/><test-case name="26870hexBinary_maxLength002_230 tokoe:invalid" result="pass"/><test-case name="26871hexBinary_maxLength003_231 tokoe:valid" result="pass"/><test-case name="26872hexBinary_maxLength004_232 tokoe:invalid" result="pass"/><test-case name="26873hexBinary_maxLength005_233 tokoe:invalid" result="pass"/><test-case name="26874hexBinary_enumeration001_234 tokoe:valid" result="pass"/><test-case name="26875hexBinary_enumeration002_235 tokoe:valid" result="pass"/><test-case name="26876base64Binary_length001_236 tokoe:invalid" result="pass"/><test-case name="26877base64Binary_length002_237 tokoe:invalid" result="pass"/><test-case name="26878base64Binary_length003_238 tokoe:valid" result="pass"/><test-case name="26879base64Binary_length004_239 tokoe:invalid" result="pass"/><test-case name="26880base64Binary_length005_240 tokoe:invalid" result="pass"/><test-case name="26881base64Binary_length006_241 tokoe:invalid" result="pass"/><test-case name="26882base64Binary_length007_242 tokoe:invalid" result="pass"/><test-case name="26883base64Binary_minLength001_243 tokoe:invalid" result="pass"/><test-case name="26884base64Binary_minLength002_244 tokoe:invalid" result="pass"/><test-case name="26885base64Binary_minLength003_245 tokoe:valid" result="pass"/><test-case name="26886base64Binary_minLength004_246 tokoe:invalid" result="pass"/><test-case name="26887base64Binary_minLength005_247 tokoe:invalid" result="pass"/><test-case name="26888base64Binary_minLength006_248 tokoe:invalid" result="pass"/><test-case name="26889base64Binary_minLength007_249 tokoe:valid" result="pass"/><test-case name="26890base64Binary_maxLength001_250 tokoe:invalid" result="pass"/><test-case name="26891base64Binary_maxLength002_251 tokoe:invalid" result="pass"/><test-case name="26892base64Binary_maxLength003_252 tokoe:valid" result="pass"/><test-case name="26893base64Binary_maxLength004_253 tokoe:invalid" result="pass"/><test-case name="26894base64Binary_maxLength005_254 tokoe:invalid" result="pass"/><test-case name="26895base64Binary_enumeration001_255 tokoe:valid" result="pass"/><test-case name="26896base64Binary_enumeration002_256 tokoe:valid" result="pass"/><test-case name="26897base64Binary_enumeration003_257 tokoe:valid" result="pass"/><test-case name="26898anyURI_length002_258 tokoe:invalid" result="pass"/><test-case name="26899anyURI_length003_259 tokoe:valid" result="pass"/><test-case name="26900anyURI_length004_260 tokoe:invalid" result="pass"/><test-case name="26901anyURI_length005_261 tokoe:invalid" result="pass"/><test-case name="26902anyURI_length006_262 tokoe:invalid" result="pass"/><test-case name="26903anyURI_length007_263 tokoe:invalid" result="pass"/><test-case name="26904anyURI_minLength001_264 tokoe:invalid" result="pass"/><test-case name="26905anyURI_minLength002_265 tokoe:invalid" result="pass"/><test-case name="26906anyURI_minLength003_266 tokoe:valid" result="pass"/><test-case name="26907anyURI_minLength004_267 tokoe:invalid" result="pass"/><test-case name="26908anyURI_minLength005_268 tokoe:invalid" result="pass"/><test-case name="26909anyURI_minLength006_269 tokoe:invalid" result="pass"/><test-case name="26910anyURI_minLength007_270 tokoe:valid" result="pass"/><test-case name="26911anyURI_maxLength001_271 tokoe:invalid" result="pass"/><test-case name="26912anyURI_maxLength002_272 tokoe:invalid" result="pass"/><test-case name="26913anyURI_maxLength003_273 tokoe:valid" result="pass"/><test-case name="26914anyURI_maxLength004_274 tokoe:invalid" result="pass"/><test-case name="26915anyURI_maxLength005_275 tokoe:invalid" result="pass"/><test-case name="26916anyURI_enumeration001_276 tokoe:valid" result="pass"/><test-case name="26917anyURI_enumeration002_277 tokoe:valid" result="pass"/><test-case name="26918QName_length001_278 tokoe:invalid" result="pass"/><test-case name="26919QName_length002_279 tokoe:invalid" result="pass"/><test-case name="26920QName_length003_280 tokoe:valid" result="pass"/><test-case name="26921QName_length004_281 tokoe:invalid" result="pass"/><test-case name="26922QName_length005_282 tokoe:invalid" result="pass"/><test-case name="26923QName_length006_283 tokoe:invalid" result="pass"/><test-case name="26924QName_length007_284 tokoe:invalid" result="pass"/><test-case name="26925QName_minLength001_285 tokoe:invalid" result="pass"/><test-case name="26926QName_minLength002_286 tokoe:invalid" result="pass"/><test-case name="26927QName_minLength003_287 tokoe:valid" result="pass"/><test-case name="26928QName_minLength004_288 tokoe:invalid" result="pass"/><test-case name="26929QName_minLength005_289 tokoe:invalid" result="pass"/><test-case name="26930QName_minLength006_290 tokoe:invalid" result="pass"/><test-case name="26931QName_minLength007_291 tokoe:valid" result="pass"/><test-case name="26932QName_maxLength001_292 tokoe:invalid" result="pass"/><test-case name="26933QName_maxLength002_293 tokoe:invalid" result="pass"/><test-case name="26934QName_maxLength003_294 tokoe:valid" result="pass"/><test-case name="26935QName_maxLength004_295 tokoe:invalid" result="pass"/><test-case name="26936QName_maxLength005_296 tokoe:invalid" result="pass"/><test-case name="26937QName_pattern001_297 tokoe:valid" result="pass"/><test-case name="26938QName_enumeration001_298 tokoe:invalid" result="pass"/><test-case name="26939QName_enumeration002_299 tokoe:valid" result="pass"/><test-case name="26940NOTATION_length001_300 tokoe:invalid" result="pass"/><test-case name="26941NOTATION_length002_301 tokoe:invalid" result="pass"/><test-case name="26942NOTATION_length003_302 tokoe:valid" result="pass"/><test-case name="26943NOTATION_length004_303 tokoe:invalid" result="pass"/><test-case name="26944NOTATION_length005_304 tokoe:invalid" result="pass"/><test-case name="26945NOTATION_length006_305 tokoe:invalid" result="pass"/><test-case name="26946NOTATION_length007_306 tokoe:invalid" result="pass"/><test-case name="26947NOTATION_minLength001_307 tokoe:invalid" result="pass"/><test-case name="26948NOTATION_minLength002_308 tokoe:invalid" result="pass"/><test-case name="26949NOTATION_minLength003_309 tokoe:valid" result="pass"/><test-case name="26950NOTATION_minLength004_310 tokoe:invalid" result="pass"/><test-case name="26951NOTATION_minLength005_311 tokoe:invalid" result="pass"/><test-case name="26952NOTATION_minLength006_312 tokoe:invalid" result="pass"/><test-case name="26953NOTATION_minLength007_313 tokoe:valid" result="pass"/><test-case name="26954NOTATION_maxLength001_314 tokoe:invalid" result="pass"/><test-case name="26955NOTATION_maxLength002_315 tokoe:invalid" result="pass"/><test-case name="26956NOTATION_maxLength003_316 tokoe:valid" result="pass"/><test-case name="26957NOTATION_maxLength004_317 tokoe:invalid" result="pass"/><test-case name="26958NOTATION_maxLength005_318 tokoe:invalid" result="pass"/><test-case name="26959NOTATION_pattern001_319 tokoe:valid" result="pass"/><test-case name="26960NOTATION_enumeration001_320 tokoe:invalid" result="pass"/><test-case name="26961NOTATION_enumeration002_321 tokoe:valid" result="pass"/><test-case name="26962normalizedString_length001_322 tokoe:invalid" result="pass"/><test-case name="26963normalizedString_length002_323 tokoe:invalid" result="pass"/><test-case name="26964normalizedString_length003_324 tokoe:valid" result="pass"/><test-case name="26965normalizedString_length004_325 tokoe:invalid" result="pass"/><test-case name="26966normalizedString_length005_326 tokoe:invalid" result="pass"/><test-case name="26967normalizedString_length006_327 tokoe:invalid" result="pass"/><test-case name="26968normalizedString_length007_328 tokoe:invalid" result="pass"/><test-case name="26969normalizedString_minLength001_329 tokoe:invalid" result="pass"/><test-case name="26970normalizedString_minLength002_330 tokoe:invalid" result="pass"/><test-case name="26971normalizedString_minLength003_331 tokoe:valid" result="pass"/><test-case name="26972normalizedString_minLength004_332 tokoe:invalid" result="pass"/><test-case name="26973normalizedString_minLength005_333 tokoe:invalid" result="pass"/><test-case name="26974normalizedString_minLength006_334 tokoe:invalid" result="pass"/><test-case name="26975normalizedString_minLength007_335 tokoe:valid" result="pass"/><test-case name="26976normalizedString_maxLength001_336 tokoe:invalid" result="pass"/><test-case name="26977normalizedString_maxLength002_337 tokoe:invalid" result="pass"/><test-case name="26978normalizedString_maxLength003_338 tokoe:valid" result="pass"/><test-case name="26979normalizedString_maxLength004_339 tokoe:invalid" result="pass"/><test-case name="26980normalizedString_maxLength005_340 tokoe:invalid" result="pass"/><test-case name="26981normalizedString_pattern001_341 tokoe:valid" result="pass"/><test-case name="26982normalizedString_enumeration001_342 tokoe:valid" result="pass"/><test-case name="26983normalizedString_enumeration002_343 tokoe:valid" result="pass"/><test-case name="26984normalizedString_whitespace001_344 tokoe:invalid" result="pass"/><test-case name="26985token_length001_345 tokoe:invalid" result="pass"/><test-case name="26986token_length002_346 tokoe:invalid" result="pass"/><test-case name="26987token_length003_347 tokoe:valid" result="pass"/><test-case name="26988token_length004_348 tokoe:invalid" result="pass"/><test-case name="26989token_length005_349 tokoe:invalid" result="pass"/><test-case name="26990token_length006_350 tokoe:invalid" result="pass"/><test-case name="26991token_length007_351 tokoe:invalid" result="pass"/><test-case name="26992token_minLength001_352 tokoe:invalid" result="pass"/><test-case name="26993token_minLength002_353 tokoe:invalid" result="pass"/><test-case name="26994token_minLength003_354 tokoe:valid" result="pass"/><test-case name="26995token_minLength004_355 tokoe:invalid" result="pass"/><test-case name="26996token_minLength005_356 tokoe:invalid" result="pass"/><test-case name="26997token_minLength006_357 tokoe:invalid" result="pass"/><test-case name="26998token_minLength007_358 tokoe:valid" result="pass"/><test-case name="26999token_maxLength001_359 tokoe:invalid" result="pass"/><test-case name="27000token_maxLength002_360 tokoe:invalid" result="pass"/><test-case name="27001token_maxLength003_361 tokoe:valid" result="pass"/><test-case name="27002token_maxLength004_362 tokoe:invalid" result="pass"/><test-case name="27003token_maxLength005_363 tokoe:invalid" result="pass"/><test-case name="27004token_pattern001_364 tokoe:valid" result="pass"/><test-case name="27005token_enumeration001_365 tokoe:valid" result="pass"/><test-case name="27006token_enumeration002_366 tokoe:valid" result="pass"/><test-case name="27007token_whitespace001_367 tokoe:invalid" result="pass"/><test-case name="27008language_length001_368 tokoe:invalid" result="pass"/><test-case name="27009language_length002_369 tokoe:invalid" result="pass"/><test-case name="27010language_length003_370 tokoe:valid" result="pass"/><test-case name="27011language_length004_371 tokoe:invalid" result="pass"/><test-case name="27012language_length005_372 tokoe:invalid" result="pass"/><test-case name="27013language_length006_373 tokoe:invalid" result="pass"/><test-case name="27014language_length007_374 tokoe:invalid" result="pass"/><test-case name="27015language_minLength001_375 tokoe:invalid" result="pass"/><test-case name="27016language_minLength002_376 tokoe:invalid" result="pass"/><test-case name="27017language_minLength003_377 tokoe:valid" result="pass"/><test-case name="27018language_minLength004_378 tokoe:invalid" result="pass"/><test-case name="27019language_minLength005_379 tokoe:invalid" result="pass"/><test-case name="27020language_minLength006_380 tokoe:invalid" result="pass"/><test-case name="27021language_minLength007_381 tokoe:valid" result="pass"/><test-case name="27022language_maxLength001_382 tokoe:invalid" result="pass"/><test-case name="27023language_maxLength002_383 tokoe:invalid" result="pass"/><test-case name="27024language_maxLength003_384 tokoe:valid" result="pass"/><test-case name="27025language_maxLength004_385 tokoe:invalid" result="pass"/><test-case name="27026language_maxLength005_386 tokoe:invalid" result="pass"/><test-case name="27027language_pattern001_387 tokoe:valid" result="pass"/><test-case name="27028language_enumeration001_388 tokoe:invalid" result="pass"/><test-case name="27029language_enumeration002_389 tokoe:valid" result="pass"/><test-case name="27030IDREFS_length001_390 tokoe:invalid" result="pass"/><test-case name="27031IDREFS_length002_391 tokoe:invalid" result="pass"/><test-case name="27032IDREFS_length003_392 tokoe:valid" result="pass"/><test-case name="27033IDREFS_length004_393 tokoe:invalid" result="pass"/><test-case name="27034IDREFS_length005_394 tokoe:invalid" result="pass"/><test-case name="27035IDREFS_length006_395 tokoe:invalid" result="fail"/><test-case name="27036IDREFS_length007_396 tokoe:invalid" result="pass"/><test-case name="27037IDREFS_minLength001_397 tokoe:invalid" result="pass"/><test-case name="27038IDREFS_minLength002_398 tokoe:invalid" result="pass"/><test-case name="27039IDREFS_minLength003_399 tokoe:valid" result="pass"/><test-case name="27040IDREFS_minLength004_400 tokoe:invalid" result="pass"/><test-case name="27041IDREFS_minLength005_401 tokoe:invalid" result="pass"/><test-case name="27042IDREFS_minLength006_402 tokoe:invalid" result="pass"/><test-case name="27043IDREFS_minLength007_403 tokoe:valid" result="pass"/><test-case name="27044IDREFS_maxLength001_404 tokoe:invalid" result="pass"/><test-case name="27045IDREFS_maxLength002_405 tokoe:invalid" result="pass"/><test-case name="27046IDREFS_maxLength003_406 tokoe:valid" result="pass"/><test-case name="27047IDREFS_maxLength004_407 tokoe:invalid" result="pass"/><test-case name="27048IDREFS_maxLength005_408 tokoe:invalid" result="pass"/><test-case name="27049IDREFS_enumeration001_409 tokoe:invalid" result="pass"/><test-case name="27050IDREFS_enumeration002_410 tokoe:valid" result="pass"/><test-case name="27051NMTOKEN_length001_411 tokoe:invalid" result="pass"/><test-case name="27052NMTOKEN_length002_412 tokoe:invalid" result="pass"/><test-case name="27053NMTOKEN_length003_413 tokoe:valid" result="pass"/><test-case name="27054NMTOKEN_length004_414 tokoe:invalid" result="pass"/><test-case name="27055NMTOKEN_length005_415 tokoe:invalid" result="pass"/><test-case name="27056NMTOKEN_length006_416 tokoe:invalid" result="pass"/><test-case name="27057NMTOKEN_length007_417 tokoe:invalid" result="pass"/><test-case name="27058NMTOKEN_minLength001_418 tokoe:invalid" result="pass"/><test-case name="27059NMTOKEN_minLength002_419 tokoe:invalid" result="pass"/><test-case name="27060NMTOKEN_minLength003_420 tokoe:valid" result="pass"/><test-case name="27061NMTOKEN_minLength004_421 tokoe:invalid" result="pass"/><test-case name="27062NMTOKEN_minLength005_422 tokoe:invalid" result="pass"/><test-case name="27063NMTOKEN_minLength006_423 tokoe:invalid" result="pass"/><test-case name="27064NMTOKEN_minLength007_424 tokoe:valid" result="pass"/><test-case name="27065NMTOKEN_maxLength001_425 tokoe:invalid" result="pass"/><test-case name="27066NMTOKEN_maxLength002_426 tokoe:invalid" result="pass"/><test-case name="27067NMTOKEN_maxLength003_427 tokoe:valid" result="pass"/><test-case name="27068NMTOKEN_maxLength004_428 tokoe:invalid" result="pass"/><test-case name="27069NMTOKEN_maxLength005_429 tokoe:invalid" result="pass"/><test-case name="27070NMTOKEN_pattern001_430 tokoe:valid" result="pass"/><test-case name="27071NMTOKEN_enumeration001_431 tokoe:invalid" result="pass"/><test-case name="27072NMTOKEN_enumeration002_432 tokoe:valid" result="pass"/><test-case name="27073NMTOKENS_length001_433 tokoe:invalid" result="pass"/><test-case name="27074NMTOKENS_length002_434 tokoe:invalid" result="pass"/><test-case name="27075NMTOKENS_length003_435 tokoe:valid" result="pass"/><test-case name="27076NMTOKENS_length004_436 tokoe:invalid" result="pass"/><test-case name="27077NMTOKENS_length005_437 tokoe:invalid" result="pass"/><test-case name="27078NMTOKENS_length006_438 tokoe:invalid" result="fail"/><test-case name="27079NMTOKENS_length007_439 tokoe:invalid" result="pass"/><test-case name="27080NMTOKENS_minLength001_440 tokoe:invalid" result="pass"/><test-case name="27081NMTOKENS_minLength002_441 tokoe:invalid" result="pass"/><test-case name="27082NMTOKENS_minLength003_442 tokoe:valid" result="pass"/><test-case name="27083NMTOKENS_minLength004_443 tokoe:invalid" result="pass"/><test-case name="27084NMTOKENS_minLength005_444 tokoe:invalid" result="pass"/><test-case name="27085NMTOKENS_minLength006_445 tokoe:invalid" result="pass"/><test-case name="27086NMTOKENS_minLength007_446 tokoe:valid" result="pass"/><test-case name="27087NMTOKENS_maxLength001_447 tokoe:invalid" result="pass"/><test-case name="27088NMTOKENS_maxLength002_448 tokoe:invalid" result="pass"/><test-case name="27089NMTOKENS_maxLength003_449 tokoe:valid" result="pass"/><test-case name="27090NMTOKENS_maxLength004_450 tokoe:invalid" result="pass"/><test-case name="27091NMTOKENS_maxLength005_451 tokoe:invalid" result="pass"/><test-case name="27092NMTOKENS_enumeration001_452 tokoe:invalid" result="pass"/><test-case name="27093NMTOKENS_enumeration002_453 tokoe:valid" result="pass"/><test-case name="27094Name_length001_454 tokoe:invalid" result="pass"/><test-case name="27095Name_length002_455 tokoe:invalid" result="pass"/><test-case name="27096Name_length003_456 tokoe:valid" result="pass"/><test-case name="27097Name_length004_457 tokoe:invalid" result="pass"/><test-case name="27098Name_length005_458 tokoe:invalid" result="pass"/><test-case name="27099Name_length006_459 tokoe:invalid" result="pass"/><test-case name="27100Name_length007_460 tokoe:invalid" result="pass"/><test-case name="27101Name_minLength001_461 tokoe:invalid" result="pass"/><test-case name="27102Name_minLength002_462 tokoe:invalid" result="pass"/><test-case name="27103Name_minLength003_463 tokoe:valid" result="pass"/><test-case name="27104Name_minLength004_464 tokoe:invalid" result="pass"/><test-case name="27105Name_minLength005_465 tokoe:invalid" result="pass"/><test-case name="27106Name_minLength006_466 tokoe:invalid" result="pass"/><test-case name="27107Name_minLength007_467 tokoe:valid" result="pass"/><test-case name="27108Name_maxLength001_468 tokoe:invalid" result="pass"/><test-case name="27109Name_maxLength002_469 tokoe:invalid" result="pass"/><test-case name="27110Name_maxLength003_470 tokoe:valid" result="pass"/><test-case name="27111Name_maxLength004_471 tokoe:invalid" result="pass"/><test-case name="27112Name_maxLength005_472 tokoe:invalid" result="pass"/><test-case name="27113Name_pattern001_473 tokoe:valid" result="pass"/><test-case name="27114Name_enumeration001_474 tokoe:invalid" result="pass"/><test-case name="27115Name_enumeration002_475 tokoe:valid" result="pass"/><test-case name="27116NCName_length001_476 tokoe:invalid" result="pass"/><test-case name="27117NCName_length002_477 tokoe:invalid" result="pass"/><test-case name="27118NCName_length003_478 tokoe:valid" result="pass"/><test-case name="27119NCName_length004_479 tokoe:invalid" result="pass"/><test-case name="27120NCName_length005_480 tokoe:invalid" result="pass"/><test-case name="27121NCName_length006_481 tokoe:invalid" result="pass"/><test-case name="27122NCName_length007_482 tokoe:invalid" result="pass"/><test-case name="27123NCName_minLength001_483 tokoe:invalid" result="pass"/><test-case name="27124NCName_minLength002_484 tokoe:invalid" result="pass"/><test-case name="27125NCName_minLength003_485 tokoe:valid" result="pass"/><test-case name="27126NCName_minLength004_486 tokoe:invalid" result="pass"/><test-case name="27127NCName_minLength005_487 tokoe:invalid" result="pass"/><test-case name="27128NCName_minLength006_488 tokoe:invalid" result="pass"/><test-case name="27129NCName_minLength007_489 tokoe:valid" result="pass"/><test-case name="27130NCName_maxLength001_490 tokoe:invalid" result="pass"/><test-case name="27131NCName_maxLength002_491 tokoe:invalid" result="pass"/><test-case name="27132NCName_maxLength003_492 tokoe:valid" result="pass"/><test-case name="27133NCName_maxLength004_493 tokoe:invalid" result="pass"/><test-case name="27134NCName_maxLength005_494 tokoe:invalid" result="pass"/><test-case name="27135NCName_pattern001_495 tokoe:valid" result="pass"/><test-case name="27136NCName_enumeration001_496 tokoe:invalid" result="pass"/><test-case name="27137NCName_enumeration002_497 tokoe:valid" result="pass"/><test-case name="27138ID_length001_498 tokoe:invalid" result="pass"/><test-case name="27139ID_length002_499 tokoe:invalid" result="pass"/><test-case name="27140ID_length003_500 tokoe:valid" result="pass"/><test-case name="27141ID_length004_501 tokoe:invalid" result="pass"/><test-case name="27142ID_length005_502 tokoe:invalid" result="pass"/><test-case name="27143ID_length006_503 tokoe:invalid" result="pass"/><test-case name="27144ID_length007_504 tokoe:invalid" result="pass"/><test-case name="27145ID_minLength001_505 tokoe:invalid" result="pass"/><test-case name="27146ID_minLength002_506 tokoe:invalid" result="pass"/><test-case name="27147ID_minLength003_507 tokoe:valid" result="pass"/><test-case name="27148ID_minLength004_508 tokoe:invalid" result="pass"/><test-case name="27149ID_minLength005_509 tokoe:invalid" result="pass"/><test-case name="27150ID_minLength006_510 tokoe:invalid" result="pass"/><test-case name="27151ID_minLength007_511 tokoe:valid" result="pass"/><test-case name="27152ID_maxLength001_512 tokoe:invalid" result="pass"/><test-case name="27153ID_maxLength002_513 tokoe:invalid" result="pass"/><test-case name="27154ID_maxLength003_514 tokoe:valid" result="pass"/><test-case name="27155ID_maxLength004_515 tokoe:invalid" result="pass"/><test-case name="27156ID_maxLength005_516 tokoe:invalid" result="pass"/><test-case name="27157ID_pattern001_517 tokoe:valid" result="pass"/><test-case name="27158ID_enumeration001_518 tokoe:invalid" result="pass"/><test-case name="27159ID_enumeration002_519 tokoe:valid" result="pass"/><test-case name="27160IDREF_length001_520 tokoe:invalid" result="pass"/><test-case name="27161IDREF_length002_521 tokoe:invalid" result="pass"/><test-case name="27162IDREF_length003_522 tokoe:valid" result="pass"/><test-case name="27163IDREF_length004_523 tokoe:invalid" result="pass"/><test-case name="27164IDREF_length005_524 tokoe:invalid" result="pass"/><test-case name="27165IDREF_length006_525 tokoe:invalid" result="pass"/><test-case name="27166IDREF_length007_526 tokoe:invalid" result="pass"/><test-case name="27167IDREF_minLength001_527 tokoe:invalid" result="pass"/><test-case name="27168IDREF_minLength002_528 tokoe:invalid" result="pass"/><test-case name="27169IDREF_minLength003_529 tokoe:valid" result="pass"/><test-case name="27170IDREF_minLength004_530 tokoe:invalid" result="pass"/><test-case name="27171IDREF_minLength005_531 tokoe:invalid" result="pass"/><test-case name="27172IDREF_minLength006_532 tokoe:invalid" result="pass"/><test-case name="27173IDREF_minLength007_533 tokoe:valid" result="pass"/><test-case name="27174IDREF_maxLength001_534 tokoe:invalid" result="pass"/><test-case name="27175IDREF_maxLength002_535 tokoe:invalid" result="pass"/><test-case name="27176IDREF_maxLength003_536 tokoe:valid" result="pass"/><test-case name="27177IDREF_maxLength004_537 tokoe:invalid" result="pass"/><test-case name="27178IDREF_maxLength005_538 tokoe:invalid" result="pass"/><test-case name="27179IDREF_pattern001_539 tokoe:valid" result="pass"/><test-case name="27180IDREF_enumeration001_540 tokoe:invalid" result="pass"/><test-case name="27181IDREF_enumeration002_541 tokoe:valid" result="pass"/><test-case name="27182integer_pattern001_542 tokoe:valid" result="pass"/><test-case name="27183integer_enumeration001_543 tokoe:invalid" result="pass"/><test-case name="27184integer_enumeration002_544 tokoe:valid" result="pass"/><test-case name="27185integer_maxInclusive001_545 tokoe:invalid" result="pass"/><test-case name="27186integer_maxInclusive002_546 tokoe:valid" result="pass"/><test-case name="27187integer_maxInclusive003_547 tokoe:invalid" result="pass"/><test-case name="27188integer_maxExclusive001_548 tokoe:invalid" result="pass"/><test-case name="27189integer_maxExclusive002_549 tokoe:valid" result="pass"/><test-case name="27190integer_minInclusive001_550 tokoe:invalid" result="pass"/><test-case name="27191integer_minInclusive002_551 tokoe:valid" result="pass"/><test-case name="27192integer_minInclusive003_552 tokoe:invalid" result="pass"/><test-case name="27193integer_minInclusive004_553 tokoe:invalid" result="pass"/><test-case name="27194integer_minExclusive001_554 tokoe:invalid" result="pass"/><test-case name="27195integer_minExclusive002_555 tokoe:valid" result="pass"/><test-case name="27196integer_minExclusive003_556 tokoe:invalid" result="pass"/><test-case name="27197integer_minExclusive004_557 tokoe:invalid" result="pass"/><test-case name="27198integer_totalDigits001_558 tokoe:invalid" result="pass"/><test-case name="27199integer_totalDigits002_559 tokoe:invalid" result="pass"/><test-case name="27200integer_totalDigits003_560 tokoe:invalid" result="pass"/><test-case name="27201integer_totalDigits004_561 tokoe:valid" result="pass"/><test-case name="27202integer_totalDigits005_562 tokoe:invalid" result="pass"/><test-case name="27203integer_totalDigits006_563 tokoe:invalid" result="pass"/><test-case name="27204integer_fractionDigits001_564 tokoe:invalid" result="pass"/><test-case name="27205integer_fractionDigits002_565 tokoe:invalid" result="pass"/><test-case name="27206integer_fractionDigits003_566 tokoe:valid" result="pass"/><test-case name="27207integer_fractionDigits004_567 tokoe:invalid" result="pass"/><test-case name="27208integer_fractionDigits005_568 tokoe:invalid" result="pass"/><test-case name="27209integer_fractionDigits006_569 tokoe:invalid" result="pass"/><test-case name="27210integer_fractionDigits007_570 tokoe:invalid" result="pass"/><test-case name="27211integer_fractionDigits008_571 tokoe:invalid" result="pass"/><test-case name="27212nonPositiveInteger_pattern001_572 tokoe:valid" result="pass"/><test-case name="27213nonPositiveInteger_enumeration001_573 tokoe:invalid" result="pass"/><test-case name="27214nonPositiveInteger_enumeration002_574 tokoe:valid" result="pass"/><test-case name="27215nonPositiveInteger_maxInclusive001_575 tokoe:invalid" result="pass"/><test-case name="27216nonPositiveInteger_maxInclusive002_576 tokoe:valid" result="pass"/><test-case name="27217nonPositiveInteger_maxInclusive003_577 tokoe:invalid" result="pass"/><test-case name="27218nonPositiveInteger_maxInclusive004_578 tokoe:invalid" result="pass"/><test-case name="27219nonPositiveInteger_maxExclusive001_579 tokoe:invalid" result="pass"/><test-case name="27220nonPositiveInteger_maxExclusive002_580 tokoe:valid" result="pass"/><test-case name="27221nonPositiveInteger_maxExclusive003_581 tokoe:invalid" result="pass"/><test-case name="27222nonPositiveInteger_minInclusive001_582 tokoe:invalid" result="pass"/><test-case name="27223nonPositiveInteger_minInclusive002_583 tokoe:valid" result="pass"/><test-case name="27224nonPositiveInteger_minInclusive003_584 tokoe:invalid" result="pass"/><test-case name="27225nonPositiveInteger_minInclusive004_585 tokoe:invalid" result="pass"/><test-case name="27226nonPositiveInteger_minExclusive001_586 tokoe:invalid" result="pass"/><test-case name="27227nonPositiveInteger_minExclusive002_587 tokoe:valid" result="pass"/><test-case name="27228nonPositiveInteger_minExclusive003_588 tokoe:invalid" result="pass"/><test-case name="27229nonPositiveInteger_minExclusive004_589 tokoe:invalid" result="pass"/><test-case name="27230nonPositiveInteger_totalDigits001_590 tokoe:invalid" result="pass"/><test-case name="27231nonPositiveInteger_totalDigits002_591 tokoe:invalid" result="pass"/><test-case name="27232nonPositiveInteger_totalDigits003_592 tokoe:invalid" result="pass"/><test-case name="27233nonPositiveInteger_totalDigits004_593 tokoe:valid" result="pass"/><test-case name="27234nonPositiveInteger_totalDigits005_594 tokoe:invalid" result="pass"/><test-case name="27235nonPositiveInteger_totalDigits006_595 tokoe:invalid" result="pass"/><test-case name="27236nonPositiveInteger_fractionDigits001_596 tokoe:invalid" result="pass"/><test-case name="27237nonPositiveInteger_fractionDigits002_597 tokoe:invalid" result="pass"/><test-case name="27238nonPositiveInteger_fractionDigits003_598 tokoe:valid" result="pass"/><test-case name="27239nonPositiveInteger_fractionDigits004_599 tokoe:invalid" result="pass"/><test-case name="27240nonPositiveInteger_fractionDigits005_600 tokoe:invalid" result="pass"/><test-case name="27241nonPositiveInteger_fractionDigits006_601 tokoe:invalid" result="pass"/><test-case name="27242nonPositiveInteger_fractionDigits007_602 tokoe:invalid" result="pass"/><test-case name="27243nonPositiveInteger_fractionDigits008_603 tokoe:invalid" result="pass"/><test-case name="27244negativeInteger_pattern001_604 tokoe:valid" result="pass"/><test-case name="27245negativeInteger_enumeration001_605 tokoe:invalid" result="pass"/><test-case name="27246negativeInteger_enumeration002_606 tokoe:valid" result="pass"/><test-case name="27247negativeInteger_maxInclusive001_607 tokoe:invalid" result="pass"/><test-case name="27248negativeInteger_maxInclusive002_608 tokoe:valid" result="pass"/><test-case name="27249negativeInteger_maxInclusive003_609 tokoe:invalid" result="pass"/><test-case name="27250negativeInteger_maxInclusive004_610 tokoe:invalid" result="pass"/><test-case name="27251negativeInteger_maxExclusive001_611 tokoe:invalid" result="pass"/><test-case name="27252negativeInteger_maxExclusive002_612 tokoe:valid" result="pass"/><test-case name="27253negativeInteger_maxExclusive003_613 tokoe:invalid" result="pass"/><test-case name="27254negativeInteger_minInclusive001_614 tokoe:invalid" result="pass"/><test-case name="27255negativeInteger_minInclusive002_615 tokoe:valid" result="pass"/><test-case name="27256negativeInteger_minInclusive003_616 tokoe:invalid" result="pass"/><test-case name="27257negativeInteger_minInclusive004_617 tokoe:invalid" result="pass"/><test-case name="27258negativeInteger_minExclusive001_618 tokoe:invalid" result="pass"/><test-case name="27259negativeInteger_minExclusive002_619 tokoe:valid" result="pass"/><test-case name="27260negativeInteger_minExclusive003_620 tokoe:invalid" result="pass"/><test-case name="27261negativeInteger_minExclusive004_621 tokoe:invalid" result="pass"/><test-case name="27262negativeInteger_totalDigits001_622 tokoe:invalid" result="pass"/><test-case name="27263negativeInteger_totalDigits002_623 tokoe:invalid" result="pass"/><test-case name="27264negativeInteger_totalDigits003_624 tokoe:invalid" result="pass"/><test-case name="27265negativeInteger_totalDigits004_625 tokoe:valid" result="pass"/><test-case name="27266negativeInteger_totalDigits005_626 tokoe:invalid" result="pass"/><test-case name="27267negativeInteger_totalDigits006_627 tokoe:invalid" result="pass"/><test-case name="27268negativeInteger_fractionDigits001_628 tokoe:invalid" result="pass"/><test-case name="27269negativeInteger_fractionDigits002_629 tokoe:invalid" result="pass"/><test-case name="27270negativeInteger_fractionDigits003_630 tokoe:valid" result="pass"/><test-case name="27271negativeInteger_fractionDigits004_631 tokoe:invalid" result="pass"/><test-case name="27272negativeInteger_fractionDigits005_632 tokoe:invalid" result="pass"/><test-case name="27273negativeInteger_fractionDigits006_633 tokoe:invalid" result="pass"/><test-case name="27274negativeInteger_fractionDigits007_634 tokoe:invalid" result="pass"/><test-case name="27275negativeInteger_fractionDigits008_635 tokoe:invalid" result="pass"/><test-case name="27276long_pattern001_636 tokoe:valid" result="pass"/><test-case name="27277long_enumeration001_637 tokoe:invalid" result="pass"/><test-case name="27278long_enumeration002_638 tokoe:valid" result="pass"/><test-case name="27279long_maxInclusive001_639 tokoe:invalid" result="pass"/><test-case name="27280long_maxInclusive002_640 tokoe:valid" result="pass"/><test-case name="27281long_maxInclusive003_641 tokoe:invalid" result="pass"/><test-case name="27282long_maxInclusive004_642 tokoe:invalid" result="pass"/><test-case name="27283long_maxInclusive005_643 tokoe:invalid" result="pass"/><test-case name="27284long_maxExclusive001_644 tokoe:invalid" result="pass"/><test-case name="27285long_maxExclusive002_645 tokoe:valid" result="pass"/><test-case name="27286long_maxExclusive003_646 tokoe:invalid" result="pass"/><test-case name="27287long_maxExclusive004_647 tokoe:invalid" result="pass"/><test-case name="27288long_minInclusive001_648 tokoe:invalid" result="pass"/><test-case name="27289long_minInclusive002_649 tokoe:valid" result="pass"/><test-case name="27290long_minInclusive003_650 tokoe:invalid" result="pass"/><test-case name="27291long_minInclusive004_651 tokoe:invalid" result="pass"/><test-case name="27292long_minInclusive005_652 tokoe:invalid" result="pass"/><test-case name="27293long_minExclusive001_653 tokoe:invalid" result="pass"/><test-case name="27294long_minExclusive002_654 tokoe:valid" result="pass"/><test-case name="27295long_minExclusive003_655 tokoe:invalid" result="pass"/><test-case name="27296long_minExclusive004_656 tokoe:invalid" result="pass"/><test-case name="27297long_minExclusive005_657 tokoe:invalid" result="pass"/><test-case name="27298long_totalDigits001_658 tokoe:invalid" result="pass"/><test-case name="27299long_totalDigits002_659 tokoe:invalid" result="pass"/><test-case name="27300long_totalDigits003_660 tokoe:invalid" result="pass"/><test-case name="27301long_totalDigits004_661 tokoe:valid" result="pass"/><test-case name="27302long_totalDigits005_662 tokoe:invalid" result="pass"/><test-case name="27303long_totalDigits006_663 tokoe:invalid" result="pass"/><test-case name="27304long_fractionDigits001_664 tokoe:invalid" result="pass"/><test-case name="27305long_fractionDigits002_665 tokoe:invalid" result="pass"/><test-case name="27306long_fractionDigits003_666 tokoe:valid" result="pass"/><test-case name="27307long_fractionDigits004_667 tokoe:invalid" result="pass"/><test-case name="27308long_fractionDigits005_668 tokoe:invalid" result="pass"/><test-case name="27309long_fractionDigits006_669 tokoe:invalid" result="pass"/><test-case name="27310long_fractionDigits007_670 tokoe:invalid" result="pass"/><test-case name="27311long_fractionDigits008_671 tokoe:invalid" result="pass"/><test-case name="27312int_pattern001_672 tokoe:valid" result="pass"/><test-case name="27313int_enumeration001_673 tokoe:invalid" result="pass"/><test-case name="27314int_enumeration002_674 tokoe:valid" result="pass"/><test-case name="27315int_maxInclusive001_675 tokoe:invalid" result="pass"/><test-case name="27316int_maxInclusive002_676 tokoe:valid" result="pass"/><test-case name="27317int_maxInclusive003_677 tokoe:invalid" result="pass"/><test-case name="27318int_maxInclusive004_678 tokoe:invalid" result="pass"/><test-case name="27319int_maxInclusive004a_679 tokoe:valid" result="pass"/><test-case name="27320int_maxInclusive004b_680 tokoe:invalid" result="pass"/><test-case name="27321int_maxInclusive004c_681 tokoe:invalid" result="pass"/><test-case name="27322int_maxInclusive004d_682 tokoe:invalid" result="pass"/><test-case name="27323int_maxInclusive004e_683 tokoe:valid" result="pass"/><test-case name="27324int_maxInclusive004f_684 tokoe:invalid" result="fail"/><test-case name="27325int_maxInclusive004g_685 tokoe:valid" result="pass"/><test-case name="27326int_maxInclusive004h_686 tokoe:valid" result="pass"/><test-case name="27327int_maxInclusive004i_687 tokoe:valid" result="pass"/><test-case name="27328int_maxInclusive005_688 tokoe:invalid" result="pass"/><test-case name="27329int_maxExclusive001_689 tokoe:invalid" result="pass"/><test-case name="27330int_maxExclusive002_690 tokoe:valid" result="pass"/><test-case name="27331int_maxExclusive003_691 tokoe:invalid" result="pass"/><test-case name="27332int_maxExclusive004b_692 tokoe:invalid" result="pass"/><test-case name="27333int_maxExclusive004c_693 tokoe:invalid" result="pass"/><test-case name="27334int_maxExclusive004d_694 tokoe:valid" result="pass"/><test-case name="27335int_maxExclusive004e_695 tokoe:valid" result="pass"/><test-case name="27336int_maxExclusive004f_696 tokoe:invalid" result="pass"/><test-case name="27337int_maxExclusive004h_697 tokoe:valid" result="pass"/><test-case name="27338int_maxExclusive004i_698 tokoe:invalid" result="pass"/><test-case name="27339int_minInclusive001_699 tokoe:invalid" result="pass"/><test-case name="27340int_minInclusive002_700 tokoe:valid" result="pass"/><test-case name="27341int_minInclusive003_701 tokoe:invalid" result="pass"/><test-case name="27342int_minInclusive004_702 tokoe:invalid" result="pass"/><test-case name="27343int_minInclusive005_703 tokoe:invalid" result="pass"/><test-case name="27344int_minInclusive006a_704 tokoe:valid" result="pass"/><test-case name="27345int_minInclusive006b_705 tokoe:invalid" result="pass"/><test-case name="27346int_minInclusive006c_706 tokoe:valid" result="pass"/><test-case name="27347int_minInclusive006d_707 tokoe:invalid" result="pass"/><test-case name="27348int_minInclusive006f_708 tokoe:invalid" result="pass"/><test-case name="27349int_minInclusive006g_709 tokoe:valid" result="pass"/><test-case name="27350int_minInclusive006h_710 tokoe:invalid" result="pass"/><test-case name="27351int_minInclusive006i_711 tokoe:invalid" result="pass"/><test-case name="27352int_minExclusive001_712 tokoe:invalid" result="pass"/><test-case name="27353int_minExclusive002_713 tokoe:valid" result="pass"/><test-case name="27354int_minExclusive003_714 tokoe:invalid" result="pass"/><test-case name="27355int_minExclusive004_715 tokoe:invalid" result="pass"/><test-case name="27356int_minExclusive005_716 tokoe:invalid" result="pass"/><test-case name="27357int_minExclusive006a_717 tokoe:invalid" result="fail"/><test-case name="27358int_minExclusive006c_718 tokoe:valid" result="pass"/><test-case name="27359int_minExclusive006e_719 tokoe:valid" result="pass"/><test-case name="27360int_minExclusive006f_720 tokoe:valid" result="pass"/><test-case name="27361int_minExclusive006g_721 tokoe:valid" result="pass"/><test-case name="27362int_minExclusive006h_722 tokoe:invalid" result="pass"/><test-case name="27363int_minExclusive006i_723 tokoe:invalid" result="pass"/><test-case name="27364int_minExclusive006j_724 tokoe:valid" result="pass"/><test-case name="27365int_totalDigits001_725 tokoe:invalid" result="pass"/><test-case name="27366int_totalDigits002_726 tokoe:invalid" result="pass"/><test-case name="27367int_totalDigits003_727 tokoe:invalid" result="pass"/><test-case name="27368int_totalDigits004_728 tokoe:valid" result="pass"/><test-case name="27369int_totalDigits005_729 tokoe:invalid" result="pass"/><test-case name="27370int_totalDigits006_730 tokoe:invalid" result="pass"/><test-case name="27371int_fractionDigits001_731 tokoe:invalid" result="pass"/><test-case name="27372int_fractionDigits002_732 tokoe:invalid" result="pass"/><test-case name="27373int_fractionDigits003_733 tokoe:valid" result="pass"/><test-case name="27374int_fractionDigits004_734 tokoe:invalid" result="pass"/><test-case name="27375int_fractionDigits005_735 tokoe:invalid" result="pass"/><test-case name="27376int_fractionDigits006_736 tokoe:invalid" result="pass"/><test-case name="27377int_fractionDigits007_737 tokoe:invalid" result="pass"/><test-case name="27378int_fractionDigits008_738 tokoe:invalid" result="pass"/><test-case name="27379short_pattern001_739 tokoe:valid" result="pass"/><test-case name="27380short_enumeration001_740 tokoe:invalid" result="pass"/><test-case name="27381short_enumeration002_741 tokoe:valid" result="pass"/><test-case name="27382short_maxInclusive001_742 tokoe:invalid" result="pass"/><test-case name="27383short_maxInclusive002_743 tokoe:valid" result="pass"/><test-case name="27384short_maxInclusive003_744 tokoe:invalid" result="pass"/><test-case name="27385short_maxInclusive004_745 tokoe:invalid" result="pass"/><test-case name="27386short_maxInclusive005_746 tokoe:invalid" result="pass"/><test-case name="27387short_maxExclusive001_747 tokoe:invalid" result="pass"/><test-case name="27388short_maxExclusive002_748 tokoe:valid" result="pass"/><test-case name="27389short_maxExclusive003_749 tokoe:invalid" result="pass"/><test-case name="27390short_maxExclusive004_750 tokoe:invalid" result="pass"/><test-case name="27391short_minInclusive001_751 tokoe:invalid" result="pass"/><test-case name="27392short_minInclusive002_752 tokoe:valid" result="pass"/><test-case name="27393short_minInclusive003_753 tokoe:invalid" result="pass"/><test-case name="27394short_minInclusive004_754 tokoe:invalid" result="pass"/><test-case name="27395short_minInclusive005_755 tokoe:invalid" result="pass"/><test-case name="27396short_minExclusive001_756 tokoe:invalid" result="pass"/><test-case name="27397short_minExclusive002_757 tokoe:valid" result="pass"/><test-case name="27398short_minExclusive003_758 tokoe:invalid" result="pass"/><test-case name="27399short_minExclusive004_759 tokoe:invalid" result="pass"/><test-case name="27400short_minExclusive005_760 tokoe:invalid" result="pass"/><test-case name="27401short_totalDigits001_761 tokoe:invalid" result="pass"/><test-case name="27402short_totalDigits002_762 tokoe:invalid" result="pass"/><test-case name="27403short_totalDigits003_763 tokoe:invalid" result="pass"/><test-case name="27404short_totalDigits004_764 tokoe:valid" result="pass"/><test-case name="27405short_totalDigits005_765 tokoe:invalid" result="pass"/><test-case name="27406short_totalDigits006_766 tokoe:invalid" result="pass"/><test-case name="27407short_fractionDigits001_767 tokoe:invalid" result="pass"/><test-case name="27408short_fractionDigits002_768 tokoe:invalid" result="pass"/><test-case name="27409short_fractionDigits003_769 tokoe:valid" result="pass"/><test-case name="27410short_fractionDigits004_770 tokoe:invalid" result="pass"/><test-case name="27411short_fractionDigits005_771 tokoe:invalid" result="pass"/><test-case name="27412short_fractionDigits006_772 tokoe:invalid" result="pass"/><test-case name="27413short_fractionDigits007_773 tokoe:invalid" result="pass"/><test-case name="27414short_fractionDigits008_774 tokoe:invalid" result="pass"/><test-case name="27415byte_pattern001_775 tokoe:valid" result="pass"/><test-case name="27416byte_enumeration001_776 tokoe:invalid" result="pass"/><test-case name="27417byte_enumeration002_777 tokoe:valid" result="pass"/><test-case name="27418byte_maxInclusive001_778 tokoe:invalid" result="pass"/><test-case name="27419byte_maxInclusive002_779 tokoe:valid" result="pass"/><test-case name="27420byte_maxInclusive003_780 tokoe:invalid" result="pass"/><test-case name="27421byte_maxInclusive004_781 tokoe:invalid" result="pass"/><test-case name="27422byte_maxInclusive005_782 tokoe:invalid" result="pass"/><test-case name="27423byte_maxExclusive001_783 tokoe:invalid" result="pass"/><test-case name="27424byte_maxExclusive002_784 tokoe:valid" result="pass"/><test-case name="27425byte_maxExclusive003_785 tokoe:invalid" result="pass"/><test-case name="27426byte_maxExclusive004_786 tokoe:invalid" result="pass"/><test-case name="27427byte_minInclusive001_787 tokoe:invalid" result="pass"/><test-case name="27428byte_minInclusive002_788 tokoe:valid" result="pass"/><test-case name="27429byte_minInclusive003_789 tokoe:invalid" result="pass"/><test-case name="27430byte_minInclusive004_790 tokoe:invalid" result="pass"/><test-case name="27431byte_minInclusive005_791 tokoe:invalid" result="pass"/><test-case name="27432byte_minExclusive001_792 tokoe:invalid" result="pass"/><test-case name="27433byte_minExclusive002_793 tokoe:valid" result="pass"/><test-case name="27434byte_minExclusive003_794 tokoe:invalid" result="pass"/><test-case name="27435byte_minExclusive004_795 tokoe:invalid" result="pass"/><test-case name="27436byte_minExclusive005_796 tokoe:invalid" result="pass"/><test-case name="27437byte_totalDigits001_797 tokoe:invalid" result="pass"/><test-case name="27438byte_totalDigits002_798 tokoe:invalid" result="pass"/><test-case name="27439byte_totalDigits003_799 tokoe:invalid" result="pass"/><test-case name="27440byte_totalDigits004_800 tokoe:valid" result="pass"/><test-case name="27441byte_totalDigits005_801 tokoe:invalid" result="pass"/><test-case name="27442byte_totalDigits006_802 tokoe:invalid" result="pass"/><test-case name="27443byte_fractionDigits001_803 tokoe:invalid" result="pass"/><test-case name="27444byte_fractionDigits002_804 tokoe:invalid" result="pass"/><test-case name="27445byte_fractionDigits003_805 tokoe:valid" result="pass"/><test-case name="27446byte_fractionDigits004_806 tokoe:invalid" result="pass"/><test-case name="27447byte_fractionDigits005_807 tokoe:invalid" result="pass"/><test-case name="27448byte_fractionDigits006_808 tokoe:invalid" result="pass"/><test-case name="27449byte_fractionDigits007_809 tokoe:invalid" result="pass"/><test-case name="27450byte_fractionDigits008_810 tokoe:invalid" result="pass"/><test-case name="27451nonNegativeInteger_pattern001_811 tokoe:valid" result="pass"/><test-case name="27452nonNegativeInteger_enumeration001_812 tokoe:invalid" result="pass"/><test-case name="27453nonNegativeInteger_enumeration002_813 tokoe:valid" result="pass"/><test-case name="27454nonNegativeInteger_maxInclusive001_814 tokoe:invalid" result="pass"/><test-case name="27455nonNegativeInteger_maxInclusive002_815 tokoe:valid" result="pass"/><test-case name="27456nonNegativeInteger_maxInclusive003_816 tokoe:invalid" result="pass"/><test-case name="27457nonNegativeInteger_maxInclusive004_817 tokoe:invalid" result="pass"/><test-case name="27458nonNegativeInteger_maxExclusive001_818 tokoe:invalid" result="pass"/><test-case name="27459nonNegativeInteger_maxExclusive002_819 tokoe:valid" result="pass"/><test-case name="27460nonNegativeInteger_maxExclusive003_820 tokoe:invalid" result="pass"/><test-case name="27461nonNegativeInteger_minInclusive001_821 tokoe:invalid" result="pass"/><test-case name="27462nonNegativeInteger_minInclusive002_822 tokoe:valid" result="pass"/><test-case name="27463nonNegativeInteger_minInclusive003_823 tokoe:invalid" result="pass"/><test-case name="27464nonNegativeInteger_minInclusive004_824 tokoe:invalid" result="pass"/><test-case name="27465nonNegativeInteger_minExclusive001_825 tokoe:invalid" result="pass"/><test-case name="27466nonNegativeInteger_minExclusive002_826 tokoe:valid" result="pass"/><test-case name="27467nonNegativeInteger_minExclusive003_827 tokoe:invalid" result="pass"/><test-case name="27468nonNegativeInteger_minExclusive004_828 tokoe:invalid" result="pass"/><test-case name="27469nonNegativeInteger_totalDigits001_829 tokoe:invalid" result="pass"/><test-case name="27470nonNegativeInteger_totalDigits002_830 tokoe:invalid" result="pass"/><test-case name="27471nonNegativeInteger_totalDigits003_831 tokoe:invalid" result="pass"/><test-case name="27472nonNegativeInteger_totalDigits004_832 tokoe:valid" result="pass"/><test-case name="27473nonNegativeInteger_totalDigits005_833 tokoe:invalid" result="pass"/><test-case name="27474nonNegativeInteger_totalDigits006_834 tokoe:invalid" result="pass"/><test-case name="27475nonNegativeInteger_fractionDigits001_835 tokoe:invalid" result="pass"/><test-case name="27476nonNegativeInteger_fractionDigits002_836 tokoe:invalid" result="pass"/><test-case name="27477nonNegativeInteger_fractionDigits003_837 tokoe:valid" result="pass"/><test-case name="27478nonNegativeInteger_fractionDigits004_838 tokoe:invalid" result="pass"/><test-case name="27479nonNegativeInteger_fractionDigits005_839 tokoe:invalid" result="pass"/><test-case name="27480nonNegativeInteger_fractionDigits006_840 tokoe:invalid" result="pass"/><test-case name="27481nonNegativeInteger_fractionDigits007_841 tokoe:invalid" result="pass"/><test-case name="27482nonNegativeInteger_fractionDigits008_842 tokoe:invalid" result="pass"/><test-case name="27483unsignedLong_pattern001_843 tokoe:valid" result="pass"/><test-case name="27484unsignedLong_enumeration001_844 tokoe:invalid" result="pass"/><test-case name="27485unsignedLong_enumeration002_845 tokoe:valid" result="pass"/><test-case name="27486unsignedLong_maxInclusive001_846 tokoe:invalid" result="pass"/><test-case name="27487unsignedLong_maxInclusive002_847 tokoe:valid" result="pass"/><test-case name="27488unsignedLong_maxInclusive003_848 tokoe:invalid" result="pass"/><test-case name="27489unsignedLong_maxInclusive004_849 tokoe:invalid" result="pass"/><test-case name="27490unsignedLong_maxInclusive005_850 tokoe:invalid" result="pass"/><test-case name="27491unsignedLong_maxExclusive001_851 tokoe:invalid" result="pass"/><test-case name="27492unsignedLong_maxExclusive002_852 tokoe:valid" result="pass"/><test-case name="27493unsignedLong_maxExclusive003_853 tokoe:invalid" result="pass"/><test-case name="27494unsignedLong_maxExclusive004_854 tokoe:invalid" result="pass"/><test-case name="27495unsignedLong_minInclusive001_855 tokoe:invalid" result="pass"/><test-case name="27496unsignedLong_minInclusive002_856 tokoe:valid" result="pass"/><test-case name="27497unsignedLong_minInclusive003_857 tokoe:invalid" result="pass"/><test-case name="27498unsignedLong_minInclusive004_858 tokoe:invalid" result="pass"/><test-case name="27499unsignedLong_minInclusive005_859 tokoe:invalid" result="pass"/><test-case name="27500unsignedLong_minExclusive001_860 tokoe:invalid" result="pass"/><test-case name="27501unsignedLong_minExclusive002_861 tokoe:valid" result="pass"/><test-case name="27502unsignedLong_minExclusive003_862 tokoe:invalid" result="pass"/><test-case name="27503unsignedLong_minExclusive004_863 tokoe:invalid" result="pass"/><test-case name="27504unsignedLong_minExclusive005_864 tokoe:invalid" result="pass"/><test-case name="27505unsignedLong_totalDigits001_865 tokoe:invalid" result="pass"/><test-case name="27506unsignedLong_totalDigits002_866 tokoe:invalid" result="pass"/><test-case name="27507unsignedLong_totalDigits003_867 tokoe:invalid" result="pass"/><test-case name="27508unsignedLong_totalDigits004_868 tokoe:valid" result="pass"/><test-case name="27509unsignedLong_totalDigits005_869 tokoe:invalid" result="pass"/><test-case name="27510unsignedLong_totalDigits006_870 tokoe:invalid" result="pass"/><test-case name="27511unsignedLong_fractionDigits001_871 tokoe:invalid" result="pass"/><test-case name="27512unsignedLong_fractionDigits002_872 tokoe:invalid" result="pass"/><test-case name="27513unsignedLong_fractionDigits003_873 tokoe:valid" result="pass"/><test-case name="27514unsignedLong_fractionDigits004_874 tokoe:invalid" result="pass"/><test-case name="27515unsignedLong_fractionDigits005_875 tokoe:invalid" result="pass"/><test-case name="27516unsignedLong_fractionDigits006_876 tokoe:invalid" result="pass"/><test-case name="27517unsignedLong_fractionDigits007_877 tokoe:invalid" result="pass"/><test-case name="27518unsignedLong_fractionDigits008_878 tokoe:invalid" result="pass"/><test-case name="27519unsignedInt_pattern001_879 tokoe:valid" result="pass"/><test-case name="27520unsignedInt_enumeration001_880 tokoe:invalid" result="pass"/><test-case name="27521unsignedInt_enumeration002_881 tokoe:valid" result="pass"/><test-case name="27522unsignedInt_maxInclusive001_882 tokoe:invalid" result="pass"/><test-case name="27523unsignedInt_maxInclusive002_883 tokoe:valid" result="pass"/><test-case name="27524unsignedInt_maxInclusive003_884 tokoe:invalid" result="pass"/><test-case name="27525unsignedInt_maxInclusive004_885 tokoe:invalid" result="pass"/><test-case name="27526unsignedInt_maxInclusive005_886 tokoe:invalid" result="pass"/><test-case name="27527unsignedInt_maxExclusive001_887 tokoe:invalid" result="pass"/><test-case name="27528unsignedInt_maxExclusive002_888 tokoe:valid" result="pass"/><test-case name="27529unsignedInt_maxExclusive003_889 tokoe:invalid" result="pass"/><test-case name="27530unsignedInt_maxExclusive004_890 tokoe:invalid" result="pass"/><test-case name="27531unsignedInt_minInclusive001_891 tokoe:invalid" result="pass"/><test-case name="27532unsignedInt_minInclusive002_892 tokoe:valid" result="pass"/><test-case name="27533unsignedInt_minInclusive003_893 tokoe:invalid" result="pass"/><test-case name="27534unsignedInt_minInclusive004_894 tokoe:invalid" result="pass"/><test-case name="27535unsignedInt_minInclusive005_895 tokoe:invalid" result="pass"/><test-case name="27536unsignedInt_minExclusive001_896 tokoe:invalid" result="pass"/><test-case name="27537unsignedInt_minExclusive002_897 tokoe:valid" result="pass"/><test-case name="27538unsignedInt_minExclusive003_898 tokoe:invalid" result="pass"/><test-case name="27539unsignedInt_minExclusive004_899 tokoe:invalid" result="pass"/><test-case name="27540unsignedInt_minExclusive005_900 tokoe:invalid" result="pass"/><test-case name="27541unsignedInt_totalDigits001_901 tokoe:invalid" result="pass"/><test-case name="27542unsignedInt_totalDigits002_902 tokoe:invalid" result="pass"/><test-case name="27543unsignedInt_totalDigits003_903 tokoe:invalid" result="pass"/><test-case name="27544unsignedInt_totalDigits004_904 tokoe:valid" result="pass"/><test-case name="27545unsignedInt_totalDigits005_905 tokoe:invalid" result="pass"/><test-case name="27546unsignedInt_totalDigits006_906 tokoe:invalid" result="pass"/><test-case name="27547unsignedInt_fractionDigits001_907 tokoe:invalid" result="pass"/><test-case name="27548unsignedInt_fractionDigits002_908 tokoe:invalid" result="pass"/><test-case name="27549unsignedInt_fractionDigits003_909 tokoe:valid" result="pass"/><test-case name="27550unsignedInt_fractionDigits004_910 tokoe:invalid" result="pass"/><test-case name="27551unsignedInt_fractionDigits005_911 tokoe:invalid" result="pass"/><test-case name="27552unsignedInt_fractionDigits006_912 tokoe:invalid" result="pass"/><test-case name="27553unsignedInt_fractionDigits007_913 tokoe:invalid" result="pass"/><test-case name="27554unsignedInt_fractionDigits008_914 tokoe:invalid" result="pass"/><test-case name="27555unsignedShort_pattern001_915 tokoe:valid" result="pass"/><test-case name="27556unsignedShort_enumeration001_916 tokoe:invalid" result="pass"/><test-case name="27557unsignedShort_enumeration002_917 tokoe:valid" result="pass"/><test-case name="27558unsignedShort_maxInclusive001_918 tokoe:invalid" result="pass"/><test-case name="27559unsignedShort_maxInclusive002_919 tokoe:valid" result="pass"/><test-case name="27560unsignedShort_maxInclusive003_920 tokoe:invalid" result="pass"/><test-case name="27561unsignedShort_maxInclusive004_921 tokoe:invalid" result="pass"/><test-case name="27562unsignedShort_maxInclusive005_922 tokoe:invalid" result="pass"/><test-case name="27563unsignedShort_maxExclusive001_923 tokoe:invalid" result="pass"/><test-case name="27564unsignedShort_maxExclusive002_924 tokoe:valid" result="pass"/><test-case name="27565unsignedShort_maxExclusive003_925 tokoe:invalid" result="pass"/><test-case name="27566unsignedShort_maxExclusive004_926 tokoe:invalid" result="pass"/><test-case name="27567unsignedShort_minInclusive001_927 tokoe:invalid" result="pass"/><test-case name="27568unsignedShort_minInclusive002_928 tokoe:valid" result="pass"/><test-case name="27569unsignedShort_minInclusive003_929 tokoe:invalid" result="pass"/><test-case name="27570unsignedShort_minInclusive004_930 tokoe:invalid" result="pass"/><test-case name="27571unsignedShort_minInclusive005_931 tokoe:invalid" result="pass"/><test-case name="27572unsignedShort_minExclusive001_932 tokoe:invalid" result="pass"/><test-case name="27573unsignedShort_minExclusive002_933 tokoe:valid" result="pass"/><test-case name="27574unsignedShort_minExclusive003_934 tokoe:invalid" result="pass"/><test-case name="27575unsignedShort_minExclusive004_935 tokoe:invalid" result="pass"/><test-case name="27576unsignedShort_minExclusive005_936 tokoe:invalid" result="pass"/><test-case name="27577unsignedShort_totalDigits001_937 tokoe:invalid" result="pass"/><test-case name="27578unsignedShort_totalDigits002_938 tokoe:invalid" result="pass"/><test-case name="27579unsignedShort_totalDigits003_939 tokoe:invalid" result="pass"/><test-case name="27580unsignedShort_totalDigits004_940 tokoe:valid" result="pass"/><test-case name="27581unsignedShort_totalDigits005_941 tokoe:invalid" result="pass"/><test-case name="27582unsignedShort_totalDigits006_942 tokoe:invalid" result="pass"/><test-case name="27583unsignedShort_fractionDigits001_943 tokoe:invalid" result="pass"/><test-case name="27584unsignedShort_fractionDigits002_944 tokoe:invalid" result="pass"/><test-case name="27585unsignedShort_fractionDigits003_945 tokoe:valid" result="pass"/><test-case name="27586unsignedShort_fractionDigits004_946 tokoe:invalid" result="pass"/><test-case name="27587unsignedShort_fractionDigits005_947 tokoe:invalid" result="pass"/><test-case name="27588unsignedShort_fractionDigits006_948 tokoe:invalid" result="pass"/><test-case name="27589unsignedShort_fractionDigits007_949 tokoe:invalid" result="pass"/><test-case name="27590unsignedShort_fractionDigits008_950 tokoe:invalid" result="pass"/><test-case name="27591unsignedByte_pattern001_951 tokoe:valid" result="pass"/><test-case name="27592unsignedByte_enumeration001_952 tokoe:invalid" result="pass"/><test-case name="27593unsignedByte_enumeration002_953 tokoe:valid" result="pass"/><test-case name="27594unsignedByte_maxInclusive001_954 tokoe:invalid" result="pass"/><test-case name="27595unsignedByte_maxInclusive002_955 tokoe:valid" result="pass"/><test-case name="27596unsignedByte_maxInclusive003_956 tokoe:invalid" result="pass"/><test-case name="27597unsignedByte_maxInclusive004_957 tokoe:invalid" result="pass"/><test-case name="27598unsignedByte_maxInclusive005_958 tokoe:invalid" result="pass"/><test-case name="27599unsignedByte_maxExclusive001_959 tokoe:invalid" result="pass"/><test-case name="27600unsignedByte_maxExclusive002_960 tokoe:valid" result="pass"/><test-case name="27601unsignedByte_maxExclusive003_961 tokoe:invalid" result="pass"/><test-case name="27602unsignedByte_maxExclusive004_962 tokoe:invalid" result="pass"/><test-case name="27603unsignedByte_minInclusive001_963 tokoe:invalid" result="pass"/><test-case name="27604unsignedByte_minInclusive002_964 tokoe:valid" result="pass"/><test-case name="27605unsignedByte_minInclusive003_965 tokoe:invalid" result="pass"/><test-case name="27606unsignedByte_minInclusive004_966 tokoe:invalid" result="pass"/><test-case name="27607unsignedByte_minInclusive005_967 tokoe:invalid" result="pass"/><test-case name="27608unsignedByte_minExclusive001_968 tokoe:invalid" result="pass"/><test-case name="27609unsignedByte_minExclusive002_969 tokoe:valid" result="pass"/><test-case name="27610unsignedByte_minExclusive003_970 tokoe:invalid" result="pass"/><test-case name="27611unsignedByte_minExclusive004_971 tokoe:invalid" result="pass"/><test-case name="27612unsignedByte_minExclusive005_972 tokoe:invalid" result="pass"/><test-case name="27613unsignedByte_totalDigits001_973 tokoe:invalid" result="pass"/><test-case name="27614unsignedByte_totalDigits002_974 tokoe:invalid" result="pass"/><test-case name="27615unsignedByte_totalDigits003_975 tokoe:invalid" result="pass"/><test-case name="27616unsignedByte_totalDigits004_976 tokoe:valid" result="pass"/><test-case name="27617unsignedByte_totalDigits005_977 tokoe:invalid" result="pass"/><test-case name="27618unsignedByte_totalDigits006_978 tokoe:invalid" result="pass"/><test-case name="27619unsignedByte_fractionDigits001_979 tokoe:invalid" result="pass"/><test-case name="27620unsignedByte_fractionDigits002_980 tokoe:invalid" result="pass"/><test-case name="27621unsignedByte_fractionDigits003_981 tokoe:valid" result="pass"/><test-case name="27622unsignedByte_fractionDigits004_982 tokoe:invalid" result="pass"/><test-case name="27623unsignedByte_fractionDigits005_983 tokoe:invalid" result="pass"/><test-case name="27624unsignedByte_fractionDigits006_984 tokoe:invalid" result="pass"/><test-case name="27625unsignedByte_fractionDigits007_985 tokoe:invalid" result="pass"/><test-case name="27626unsignedByte_fractionDigits008_986 tokoe:invalid" result="pass"/><test-case name="27627positiveInteger_pattern001_987 tokoe:valid" result="pass"/><test-case name="27628positiveInteger_enumeration001_988 tokoe:invalid" result="pass"/><test-case name="27629positiveInteger_enumeration002_989 tokoe:valid" result="pass"/><test-case name="27630positiveInteger_maxInclusive001_990 tokoe:invalid" result="pass"/><test-case name="27631positiveInteger_maxInclusive002_991 tokoe:valid" result="pass"/><test-case name="27632positiveInteger_maxInclusive003_992 tokoe:invalid" result="pass"/><test-case name="27633positiveInteger_maxInclusive004_993 tokoe:invalid" result="pass"/><test-case name="27634positiveInteger_maxExclusive001_994 tokoe:invalid" result="pass"/><test-case name="27635positiveInteger_maxExclusive002_995 tokoe:valid" result="pass"/><test-case name="27636positiveInteger_maxExclusive003_996 tokoe:invalid" result="pass"/><test-case name="27637positiveInteger_minInclusive001_997 tokoe:invalid" result="pass"/><test-case name="27638positiveInteger_minInclusive002_998 tokoe:valid" result="pass"/><test-case name="27639positiveInteger_minInclusive003_999 tokoe:invalid" result="pass"/><test-case name="27640positiveInteger_minInclusive004_1000 tokoe:invalid" result="pass"/><test-case name="27641positiveInteger_minExclusive001_1001 tokoe:invalid" result="pass"/><test-case name="27642positiveInteger_minExclusive002_1002 tokoe:valid" result="pass"/><test-case name="27643positiveInteger_minExclusive003_1003 tokoe:invalid" result="pass"/><test-case name="27644positiveInteger_minExclusive004_1004 tokoe:invalid" result="pass"/><test-case name="27645positiveInteger_totalDigits001_1005 tokoe:invalid" result="pass"/><test-case name="27646positiveInteger_totalDigits002_1006 tokoe:invalid" result="pass"/><test-case name="27647positiveInteger_totalDigits003_1007 tokoe:invalid" result="pass"/><test-case name="27648positiveInteger_totalDigits004_1008 tokoe:valid" result="pass"/><test-case name="27649positiveInteger_totalDigits005_1009 tokoe:invalid" result="pass"/><test-case name="27650positiveInteger_totalDigits006_1010 tokoe:invalid" result="pass"/><test-case name="27651positiveInteger_fractionDigits001_1011 tokoe:invalid" result="pass"/><test-case name="27652positiveInteger_fractionDigits002_1012 tokoe:invalid" result="pass"/><test-case name="27653positiveInteger_fractionDigits003_1013 tokoe:valid" result="pass"/><test-case name="27654positiveInteger_fractionDigits004_1014 tokoe:invalid" result="pass"/><test-case name="27655positiveInteger_fractionDigits005_1015 tokoe:invalid" result="pass"/><test-case name="27656positiveInteger_fractionDigits006_1016 tokoe:invalid" result="pass"/><test-case name="27657positiveInteger_fractionDigits007_1017 tokoe:invalid" result="pass"/><test-case name="27658positiveInteger_fractionDigits008_1018 tokoe:invalid" result="pass"/><test-case name="27659union_minInclisive_1019 tokoe:invalid" result="pass"/><test-case name="27660string_length001_1020 tokoe:valid" result="pass"/><test-case name="27661string_length001_1020.i tokoe:invalid" result="pass"/><test-case name="27662string_length002_1021 tokoe:valid" result="pass"/><test-case name="27663string_length002_1021.v tokoe:valid" result="pass"/><test-case name="27664string_length003_1022 tokoe:valid" result="pass"/><test-case name="27665string_length003_1022.i tokoe:invalid" result="pass"/><test-case name="27666string_minLength001_1023 tokoe:valid" result="pass"/><test-case name="27667string_minLength001_1023.v tokoe:valid" result="pass"/><test-case name="27668string_minLength002_1024 tokoe:valid" result="pass"/><test-case name="27669string_minLength002_1024.v tokoe:valid" result="pass"/><test-case name="27670string_minLength003_1025 tokoe:valid" result="pass"/><test-case name="27671string_minLength003_1025.i tokoe:invalid" result="pass"/><test-case name="27672string_minLength004_1026 tokoe:valid" result="pass"/><test-case name="27673string_minLength004_1026.v tokoe:valid" result="pass"/><test-case name="27674string_maxLength001_1027 tokoe:valid" result="pass"/><test-case name="27675string_maxLength001_1027.i tokoe:invalid" result="pass"/><test-case name="27676string_maxLength002_1028 tokoe:valid" result="pass"/><test-case name="27677string_maxLength002_1028.v tokoe:valid" result="pass"/><test-case name="27678string_maxLength003_1029 tokoe:valid" result="pass"/><test-case name="27679string_maxLength003_1029.v tokoe:valid" result="pass"/><test-case name="27680string_pattern001_1030 tokoe:valid" result="pass"/><test-case name="27681string_pattern001_1030.v tokoe:valid" result="pass"/><test-case name="27682string_pattern002_1031 tokoe:valid" result="pass"/><test-case name="27683string_pattern002_1031.i tokoe:invalid" result="pass"/><test-case name="27684string_enumeration001_1032 tokoe:valid" result="pass"/><test-case name="27685string_enumeration001_1032.i tokoe:invalid" result="pass"/><test-case name="27686string_enumeration002_1033 tokoe:valid" result="pass"/><test-case name="27687string_enumeration002_1033.v tokoe:valid" result="pass"/><test-case name="27688string_enumeration003_1034 tokoe:valid" result="pass"/><test-case name="27689string_enumeration003_1034.i tokoe:invalid" result="pass"/><test-case name="27690string_enumeration004_1035 tokoe:valid" result="pass"/><test-case name="27691string_enumeration004_1035.v tokoe:valid" result="pass"/><test-case name="27692decimal_pattern001_1036 tokoe:valid" result="pass"/><test-case name="27693decimal_pattern001_1036.v tokoe:valid" result="pass"/><test-case name="27694decimal_enumeration001_1037 tokoe:valid" result="pass"/><test-case name="27695decimal_enumeration001_1037.i tokoe:invalid" result="pass"/><test-case name="27696decimal_enumeration002_1038 tokoe:valid" result="pass"/><test-case name="27697decimal_enumeration002_1038.v tokoe:valid" result="pass"/><test-case name="27698decimal_enumeration003_1039 tokoe:valid" result="pass"/><test-case name="27699decimal_enumeration003_1039.i tokoe:invalid" result="pass"/><test-case name="27700decimal_enumeration004_1040 tokoe:valid" result="pass"/><test-case name="27701decimal_enumeration004_1040.v tokoe:valid" result="pass"/><test-case name="27702decimal_maxInclusive001_1041 tokoe:valid" result="pass"/><test-case name="27703decimal_maxInclusive001_1041.v tokoe:valid" result="pass"/><test-case name="27704decimal_maxInclusive002_1042 tokoe:valid" result="pass"/><test-case name="27705decimal_maxInclusive002_1042.i tokoe:invalid" result="pass"/><test-case name="27706decimal_maxInclusive003_1043 tokoe:valid" result="pass"/><test-case name="27707decimal_maxInclusive003_1043.v tokoe:valid" result="pass"/><test-case name="27708decimal_maxExclusive001_1044 tokoe:valid" result="pass"/><test-case name="27709decimal_maxExclusive001_1044.i tokoe:invalid" result="pass"/><test-case name="27710decimal_maxExclusive002_1045 tokoe:valid" result="pass"/><test-case name="27711decimal_maxExclusive002_1045.i tokoe:invalid" result="pass"/><test-case name="27712decimal_maxExclusive003_1046 tokoe:valid" result="pass"/><test-case name="27713decimal_maxExclusive003_1046.v tokoe:valid" result="pass"/><test-case name="27714decimal_minInclusive001_1047 tokoe:valid" result="pass"/><test-case name="27715decimal_minInclusive001_1047.v tokoe:valid" result="pass"/><test-case name="27716decimal_minInclusive002_1048 tokoe:valid" result="pass"/><test-case name="27717decimal_minInclusive002_1048.i tokoe:invalid" result="pass"/><test-case name="27718decimal_minInclusive003_1049 tokoe:valid" result="pass"/><test-case name="27719decimal_minInclusive003_1049.v tokoe:valid" result="pass"/><test-case name="27720decimal_minInclusive004_1050 tokoe:valid" result="pass"/><test-case name="27721decimal_minInclusive004_1050.v tokoe:valid" result="pass"/><test-case name="27722decimal_minInclusive005_1051 tokoe:valid" result="pass"/><test-case name="27723decimal_minInclusive005_1051.v tokoe:valid" result="pass"/><test-case name="27724decimal_minExclusive001_1052 tokoe:valid" result="pass"/><test-case name="27725decimal_minExclusive001_1052.i tokoe:invalid" result="pass"/><test-case name="27726decimal_minExclusive002_1053 tokoe:valid" result="pass"/><test-case name="27727decimal_minExclusive002_1053.i tokoe:invalid" result="pass"/><test-case name="27728decimal_minExclusive003_1054 tokoe:valid" result="pass"/><test-case name="27729decimal_minExclusive003_1054.v tokoe:valid" result="pass"/><test-case name="27730decimal_minExclusive004_1055 tokoe:valid" result="pass"/><test-case name="27731decimal_minExclusive004_1055.v tokoe:valid" result="pass"/><test-case name="27732decimal_minExclusive005_1056 tokoe:valid" result="pass"/><test-case name="27733decimal_minExclusive005_1056.v tokoe:valid" result="pass"/><test-case name="27734decimal_totalDigits001_1057 tokoe:valid" result="pass"/><test-case name="27735decimal_totalDigits001_1057.i tokoe:invalid" result="pass"/><test-case name="27736decimal_totalDigits002_1058 tokoe:valid" result="pass"/><test-case name="27737decimal_totalDigits002_1058.v tokoe:valid" result="pass"/><test-case name="27738decimal_totalDigits003_1059 tokoe:valid" result="pass"/><test-case name="27739decimal_totalDigits003_1059.v tokoe:valid" result="pass"/><test-case name="27740decimal_totalDigits004_1060 tokoe:valid" result="pass"/><test-case name="27741decimal_totalDigits004_1060.v tokoe:valid" result="pass"/><test-case name="27742float_pattern001_1061 tokoe:valid" result="pass"/><test-case name="27743float_pattern001_1061.v tokoe:valid" result="pass"/><test-case name="27744float_enumeration001_1062 tokoe:valid" result="pass"/><test-case name="27745float_enumeration001_1062.i tokoe:invalid" result="pass"/><test-case name="27746float_enumeration002_1063 tokoe:valid" result="pass"/><test-case name="27747float_enumeration002_1063.v tokoe:valid" result="pass"/><test-case name="27748float_enumeration003_1064 tokoe:valid" result="pass"/><test-case name="27749float_enumeration003_1064.i tokoe:invalid" result="pass"/><test-case name="27750float_enumeration004_1065 tokoe:valid" result="pass"/><test-case name="27751float_enumeration004_1065.v tokoe:valid" result="pass"/><test-case name="27752float_maxInclusive001_1066 tokoe:valid" result="pass"/><test-case name="27753float_maxInclusive001_1066.v tokoe:valid" result="pass"/><test-case name="27754float_maxInclusive002_1067 tokoe:valid" result="pass"/><test-case name="27755float_maxInclusive002_1067.i tokoe:invalid" result="pass"/><test-case name="27756float_maxInclusive003_1068 tokoe:valid" result="pass"/><test-case name="27757float_maxInclusive003_1068.v tokoe:valid" result="pass"/><test-case name="27758float_maxExclusive001_1069 tokoe:valid" result="pass"/><test-case name="27759float_maxExclusive001_1069.i tokoe:invalid" result="pass"/><test-case name="27760float_maxExclusive002_1070 tokoe:valid" result="pass"/><test-case name="27761float_maxExclusive002_1070.i tokoe:invalid" result="pass"/><test-case name="27762float_maxExclusive003_1071 tokoe:valid" result="pass"/><test-case name="27763float_maxExclusive003_1071.v tokoe:valid" result="pass"/><test-case name="27764float_minInclusive001_1072 tokoe:valid" result="pass"/><test-case name="27765float_minInclusive001_1072.v tokoe:valid" result="pass"/><test-case name="27766float_minInclusive002_1073 tokoe:valid" result="pass"/><test-case name="27767float_minInclusive002_1073.i tokoe:invalid" result="pass"/><test-case name="27768float_minInclusive003_1074 tokoe:valid" result="pass"/><test-case name="27769float_minInclusive003_1074.v tokoe:valid" result="pass"/><test-case name="27770float_minInclusive004_1075 tokoe:valid" result="pass"/><test-case name="27771float_minInclusive004_1075.v tokoe:valid" result="pass"/><test-case name="27772float_minInclusive005_1076 tokoe:valid" result="pass"/><test-case name="27773float_minInclusive005_1076.v tokoe:valid" result="pass"/><test-case name="27774float_minExclusive001_1077 tokoe:valid" result="pass"/><test-case name="27775float_minExclusive001_1077.i tokoe:invalid" result="pass"/><test-case name="27776float_minExclusive002_1078 tokoe:valid" result="pass"/><test-case name="27777float_minExclusive002_1078.i tokoe:invalid" result="pass"/><test-case name="27778float_minExclusive003_1079 tokoe:valid" result="pass"/><test-case name="27779float_minExclusive003_1079.v tokoe:valid" result="pass"/><test-case name="27780float_minExclusive004_1080 tokoe:valid" result="pass"/><test-case name="27781float_minExclusive004_1080.v tokoe:valid" result="pass"/><test-case name="27782float_minExclusive005_1081 tokoe:valid" result="pass"/><test-case name="27783float_minExclusive005_1081.v tokoe:valid" result="pass"/><test-case name="27784double_pattern001_1082 tokoe:valid" result="pass"/><test-case name="27785double_pattern001_1082.v tokoe:valid" result="pass"/><test-case name="27786double_enumeration001_1083 tokoe:valid" result="pass"/><test-case name="27787double_enumeration001_1083.i tokoe:invalid" result="pass"/><test-case name="27788double_enumeration002_1084 tokoe:valid" result="pass"/><test-case name="27789double_enumeration002_1084.v tokoe:valid" result="pass"/><test-case name="27790double_enumeration003_1085 tokoe:valid" result="pass"/><test-case name="27791double_enumeration003_1085.i tokoe:invalid" result="pass"/><test-case name="27792double_enumeration004_1086 tokoe:valid" result="pass"/><test-case name="27793double_enumeration004_1086.v tokoe:valid" result="pass"/><test-case name="27794double_maxInclusive001_1087 tokoe:valid" result="pass"/><test-case name="27795double_maxInclusive001_1087.v tokoe:valid" result="pass"/><test-case name="27796double_maxInclusive002_1088 tokoe:valid" result="pass"/><test-case name="27797double_maxInclusive002_1088.i tokoe:invalid" result="pass"/><test-case name="27798double_maxInclusive003_1089 tokoe:valid" result="pass"/><test-case name="27799double_maxInclusive003_1089.v tokoe:valid" result="pass"/><test-case name="27800double_maxExclusive001_1090 tokoe:valid" result="pass"/><test-case name="27801double_maxExclusive001_1090.i tokoe:invalid" result="pass"/><test-case name="27802double_maxExclusive002_1091 tokoe:valid" result="pass"/><test-case name="27803double_maxExclusive002_1091.i tokoe:invalid" result="pass"/><test-case name="27804double_maxExclusive003_1092 tokoe:valid" result="pass"/><test-case name="27805double_maxExclusive003_1092.v tokoe:valid" result="pass"/><test-case name="27806double_minInclusive001_1093 tokoe:valid" result="pass"/><test-case name="27807double_minInclusive001_1093.v tokoe:valid" result="pass"/><test-case name="27808double_minInclusive002_1094 tokoe:valid" result="pass"/><test-case name="27809double_minInclusive002_1094.i tokoe:invalid" result="pass"/><test-case name="27810double_minInclusive003_1095 tokoe:valid" result="pass"/><test-case name="27811double_minInclusive003_1095.v tokoe:valid" result="pass"/><test-case name="27812double_minInclusive004_1096 tokoe:valid" result="pass"/><test-case name="27813double_minInclusive004_1096.v tokoe:valid" result="pass"/><test-case name="27814double_minInclusive005_1097 tokoe:valid" result="pass"/><test-case name="27815double_minInclusive005_1097.v tokoe:valid" result="pass"/><test-case name="27816double_minExclusive001_1098 tokoe:valid" result="pass"/><test-case name="27817double_minExclusive001_1098.i tokoe:invalid" result="pass"/><test-case name="27818double_minExclusive002_1099 tokoe:valid" result="pass"/><test-case name="27819double_minExclusive002_1099.i tokoe:invalid" result="pass"/><test-case name="27820double_minExclusive003_1100 tokoe:valid" result="pass"/><test-case name="27821double_minExclusive003_1100.v tokoe:valid" result="pass"/><test-case name="27822double_minExclusive004_1101 tokoe:valid" result="pass"/><test-case name="27823double_minExclusive004_1101.v tokoe:valid" result="pass"/><test-case name="27824double_minExclusive005_1102 tokoe:valid" result="pass"/><test-case name="27825double_minExclusive005_1102.v tokoe:valid" result="pass"/><test-case name="27826duration_pattern001_1103 tokoe:valid" result="pass"/><test-case name="27827duration_pattern001_1103.v tokoe:valid" result="pass"/><test-case name="27828duration_enumeration001_1104 tokoe:valid" result="pass"/><test-case name="27829duration_enumeration001_1104.i tokoe:invalid" result="pass"/><test-case name="27830duration_enumeration002_1105 tokoe:valid" result="pass"/><test-case name="27831duration_enumeration002_1105.v tokoe:valid" result="pass"/><test-case name="27832duration_enumeration003_1106 tokoe:valid" result="pass"/><test-case name="27833duration_enumeration003_1106.i tokoe:invalid" result="pass"/><test-case name="27834duration_enumeration004_1107 tokoe:valid" result="pass"/><test-case name="27835duration_enumeration004_1107.v tokoe:valid" result="pass"/><test-case name="27836duration_maxInclusive001_1108 tokoe:valid" result="pass"/><test-case name="27837duration_maxInclusive001_1108.v tokoe:valid" result="pass"/><test-case name="27838duration_maxInclusive002_1109 tokoe:valid" result="pass"/><test-case name="27839duration_maxInclusive002_1109.i tokoe:invalid" result="pass"/><test-case name="27840duration_maxInclusive003_1110 tokoe:valid" result="pass"/><test-case name="27841duration_maxInclusive003_1110.v tokoe:valid" result="pass"/><test-case name="27842duration_maxExclusive001_1111 tokoe:valid" result="pass"/><test-case name="27843duration_maxExclusive001_1111.i tokoe:invalid" result="pass"/><test-case name="27844duration_maxExclusive002_1112 tokoe:valid" result="pass"/><test-case name="27845duration_maxExclusive002_1112.i tokoe:invalid" result="pass"/><test-case name="27846duration_maxExclusive003_1113 tokoe:valid" result="pass"/><test-case name="27847duration_maxExclusive003_1113.v tokoe:valid" result="pass"/><test-case name="27848duration_minInclusive001_1114 tokoe:valid" result="pass"/><test-case name="27849duration_minInclusive001_1114.v tokoe:valid" result="pass"/><test-case name="27850duration_minInclusive002_1115 tokoe:valid" result="pass"/><test-case name="27851duration_minInclusive002_1115.i tokoe:invalid" result="pass"/><test-case name="27852duration_minInclusive003_1116 tokoe:valid" result="pass"/><test-case name="27853duration_minInclusive003_1116.v tokoe:valid" result="pass"/><test-case name="27854duration_minInclusive004_1117 tokoe:valid" result="pass"/><test-case name="27855duration_minInclusive004_1117.v tokoe:valid" result="pass"/><test-case name="27856duration_minInclusive005_1118 tokoe:valid" result="pass"/><test-case name="27857duration_minInclusive005_1118.v tokoe:valid" result="pass"/><test-case name="27858duration_minExclusive001_1119 tokoe:valid" result="pass"/><test-case name="27859duration_minExclusive001_1119.i tokoe:invalid" result="pass"/><test-case name="27860duration_minExclusive002_1120 tokoe:valid" result="pass"/><test-case name="27861duration_minExclusive002_1120.i tokoe:invalid" result="pass"/><test-case name="27862duration_minExclusive003_1121 tokoe:valid" result="pass"/><test-case name="27863duration_minExclusive003_1121.v tokoe:valid" result="pass"/><test-case name="27864duration_minExclusive004_1122 tokoe:valid" result="pass"/><test-case name="27865duration_minExclusive004_1122.v tokoe:valid" result="pass"/><test-case name="27866duration_minExclusive005_1123 tokoe:valid" result="pass"/><test-case name="27867duration_minExclusive005_1123.v tokoe:valid" result="pass"/><test-case name="27868dateTime_pattern001_1124 tokoe:valid" result="pass"/><test-case name="27869dateTime_pattern001_1124.v tokoe:valid" result="pass"/><test-case name="27870dateTime_enumeration001_1125 tokoe:valid" result="pass"/><test-case name="27871dateTime_enumeration001_1125.i tokoe:invalid" result="pass"/><test-case name="27872dateTime_enumeration002_1126 tokoe:valid" result="pass"/><test-case name="27873dateTime_enumeration002_1126.v tokoe:valid" result="pass"/><test-case name="27874dateTime_enumeration003_1127 tokoe:valid" result="pass"/><test-case name="27875dateTime_enumeration003_1127.i tokoe:invalid" result="pass"/><test-case name="27876dateTime_enumeration004_1128 tokoe:valid" result="pass"/><test-case name="27877dateTime_enumeration004_1128.v tokoe:valid" result="pass"/><test-case name="27878dateTime_enumeration005a_1129 tokoe:valid" result="pass"/><test-case name="27879dateTime_enumeration005a_1129.v tokoe:valid" result="pass"/><test-case name="27880dateTime_enumeration005b_1130 tokoe:valid" result="pass"/><test-case name="27881dateTime_enumeration005b_1130.v tokoe:valid" result="pass"/><test-case name="27882dateTime_maxInclusive001_1131 tokoe:valid" result="pass"/><test-case name="27883dateTime_maxInclusive001_1131.v tokoe:valid" result="pass"/><test-case name="27884dateTime_maxInclusive002_1132 tokoe:valid" result="pass"/><test-case name="27885dateTime_maxInclusive002_1132.i tokoe:invalid" result="pass"/><test-case name="27886dateTime_maxInclusive003_1133 tokoe:valid" result="pass"/><test-case name="27887dateTime_maxInclusive003_1133.v tokoe:valid" result="pass"/><test-case name="27888dateTime_maxExclusive001_1134 tokoe:valid" result="pass"/><test-case name="27889dateTime_maxExclusive001_1134.i tokoe:invalid" result="pass"/><test-case name="27890dateTime_maxExclusive002_1135 tokoe:valid" result="pass"/><test-case name="27891dateTime_maxExclusive002_1135.i tokoe:invalid" result="pass"/><test-case name="27892dateTime_maxExclusive003_1136 tokoe:valid" result="pass"/><test-case name="27893dateTime_maxExclusive003_1136.v tokoe:valid" result="pass"/><test-case name="27894dateTime_minInclusive001_1137 tokoe:valid" result="pass"/><test-case name="27895dateTime_minInclusive001_1137.v tokoe:valid" result="pass"/><test-case name="27896dateTime_minInclusive002_1138 tokoe:valid" result="pass"/><test-case name="27897dateTime_minInclusive002_1138.i tokoe:invalid" result="pass"/><test-case name="27898dateTime_minInclusive003_1139 tokoe:valid" result="pass"/><test-case name="27899dateTime_minInclusive003_1139.v tokoe:valid" result="pass"/><test-case name="27900dateTime_minInclusive004_1140 tokoe:valid" result="pass"/><test-case name="27901dateTime_minInclusive004_1140.v tokoe:valid" result="pass"/><test-case name="27902dateTime_minInclusive005_1141 tokoe:valid" result="pass"/><test-case name="27903dateTime_minInclusive005_1141.v tokoe:valid" result="pass"/><test-case name="27904dateTime_minExclusive001_1142 tokoe:valid" result="pass"/><test-case name="27905dateTime_minExclusive001_1142.i tokoe:invalid" result="pass"/><test-case name="27906dateTime_minExclusive002_1143 tokoe:valid" result="pass"/><test-case name="27907dateTime_minExclusive002_1143.i tokoe:invalid" result="pass"/><test-case name="27908dateTime_minExclusive003_1144 tokoe:valid" result="pass"/><test-case name="27909dateTime_minExclusive003_1144.v tokoe:valid" result="pass"/><test-case name="27910dateTime_minExclusive004_1145 tokoe:valid" result="pass"/><test-case name="27911dateTime_minExclusive004_1145.v tokoe:valid" result="pass"/><test-case name="27912dateTime_minExclusive005_1146 tokoe:valid" result="pass"/><test-case name="27913dateTime_minExclusive005_1146.v tokoe:valid" result="pass"/><test-case name="27914time_pattern001_1147 tokoe:valid" result="pass"/><test-case name="27915time_pattern001_1147.v tokoe:valid" result="pass"/><test-case name="27916time_enumeration001_1148 tokoe:valid" result="pass"/><test-case name="27917time_enumeration001_1148.i tokoe:invalid" result="pass"/><test-case name="27918time_enumeration002_1149 tokoe:valid" result="pass"/><test-case name="27919time_enumeration002_1149.v tokoe:valid" result="pass"/><test-case name="27920time_enumeration003_1150 tokoe:valid" result="pass"/><test-case name="27921time_enumeration003_1150.i tokoe:invalid" result="pass"/><test-case name="27922time_enumeration004_1151 tokoe:valid" result="pass"/><test-case name="27923time_enumeration004_1151.v tokoe:valid" result="pass"/><test-case name="27924time_maxInclusive001_1152 tokoe:valid" result="pass"/><test-case name="27925time_maxInclusive001_1152.v tokoe:valid" result="pass"/><test-case name="27926time_maxInclusive002_1153 tokoe:valid" result="pass"/><test-case name="27927time_maxInclusive002_1153.i tokoe:invalid" result="pass"/><test-case name="27928time_maxInclusive003_1154 tokoe:valid" result="pass"/><test-case name="27929time_maxInclusive003_1154.v tokoe:valid" result="pass"/><test-case name="27930time_maxExclusive001_1155 tokoe:valid" result="pass"/><test-case name="27931time_maxExclusive001_1155.i tokoe:invalid" result="pass"/><test-case name="27932time_maxExclusive002_1156 tokoe:valid" result="pass"/><test-case name="27933time_maxExclusive002_1156.i tokoe:invalid" result="pass"/><test-case name="27934time_maxExclusive003_1157 tokoe:valid" result="pass"/><test-case name="27935time_maxExclusive003_1157.v tokoe:valid" result="pass"/><test-case name="27936time_minInclusive001_1158 tokoe:valid" result="pass"/><test-case name="27937time_minInclusive001_1158.v tokoe:valid" result="pass"/><test-case name="27938time_minInclusive002_1159 tokoe:valid" result="pass"/><test-case name="27939time_minInclusive002_1159.i tokoe:invalid" result="pass"/><test-case name="27940time_minInclusive003_1160 tokoe:valid" result="pass"/><test-case name="27941time_minInclusive003_1160.v tokoe:valid" result="pass"/><test-case name="27942time_minInclusive004_1161 tokoe:valid" result="pass"/><test-case name="27943time_minInclusive004_1161.v tokoe:valid" result="pass"/><test-case name="27944time_minInclusive005_1162 tokoe:valid" result="pass"/><test-case name="27945time_minInclusive005_1162.v tokoe:valid" result="pass"/><test-case name="27946time_minInclusive006_1163 tokoe:valid" result="pass"/><test-case name="27947time_minInclusive006_1163.i tokoe:invalid" result="pass"/><test-case name="27948time_minExclusive001_1164 tokoe:valid" result="pass"/><test-case name="27949time_minExclusive001_1164.i tokoe:invalid" result="pass"/><test-case name="27950time_minExclusive002_1165 tokoe:valid" result="pass"/><test-case name="27951time_minExclusive002_1165.i tokoe:invalid" result="pass"/><test-case name="27952time_minExclusive003_1166 tokoe:valid" result="pass"/><test-case name="27953time_minExclusive003_1166.v tokoe:valid" result="pass"/><test-case name="27954time_minExclusive004_1167 tokoe:valid" result="pass"/><test-case name="27955time_minExclusive004_1167.v tokoe:valid" result="pass"/><test-case name="27956time_minExclusive005_1168 tokoe:valid" result="pass"/><test-case name="27957time_minExclusive005_1168.v tokoe:valid" result="pass"/><test-case name="27958date_pattern001_1169 tokoe:valid" result="pass"/><test-case name="27959date_pattern001_1169.v tokoe:valid" result="pass"/><test-case name="27960date_enumeration001_1170 tokoe:valid" result="pass"/><test-case name="27961date_enumeration001_1170.i tokoe:invalid" result="pass"/><test-case name="27962date_enumeration002_1171 tokoe:valid" result="pass"/><test-case name="27963date_enumeration002_1171.v tokoe:valid" result="pass"/><test-case name="27964date_enumeration003_1172 tokoe:valid" result="pass"/><test-case name="27965date_enumeration003_1172.i tokoe:invalid" result="pass"/><test-case name="27966date_enumeration004_1173 tokoe:valid" result="pass"/><test-case name="27967date_enumeration004_1173.v tokoe:valid" result="pass"/><test-case name="27968date_maxInclusive001_1174 tokoe:valid" result="pass"/><test-case name="27969date_maxInclusive001_1174.v tokoe:valid" result="pass"/><test-case name="27970date_maxInclusive002_1175 tokoe:valid" result="pass"/><test-case name="27971date_maxInclusive002_1175.i tokoe:invalid" result="pass"/><test-case name="27972date_maxInclusive003_1176 tokoe:valid" result="pass"/><test-case name="27973date_maxInclusive003_1176.v tokoe:valid" result="pass"/><test-case name="27974date_maxExclusive001_1177 tokoe:valid" result="pass"/><test-case name="27975date_maxExclusive001_1177.i tokoe:invalid" result="pass"/><test-case name="27976date_maxExclusive002_1178 tokoe:valid" result="pass"/><test-case name="27977date_maxExclusive002_1178.i tokoe:invalid" result="pass"/><test-case name="27978date_maxExclusive003_1179 tokoe:valid" result="pass"/><test-case name="27979date_maxExclusive003_1179.v tokoe:valid" result="pass"/><test-case name="27980date_minInclusive001_1180 tokoe:valid" result="pass"/><test-case name="27981date_minInclusive001_1180.v tokoe:valid" result="pass"/><test-case name="27982date_minInclusive002_1181 tokoe:valid" result="pass"/><test-case name="27983date_minInclusive002_1181.i tokoe:invalid" result="pass"/><test-case name="27984date_minInclusive003_1182 tokoe:valid" result="pass"/><test-case name="27985date_minInclusive003_1182.v tokoe:valid" result="pass"/><test-case name="27986date_minInclusive004_1183 tokoe:valid" result="pass"/><test-case name="27987date_minInclusive004_1183.v tokoe:valid" result="pass"/><test-case name="27988date_minInclusive005_1184 tokoe:valid" result="pass"/><test-case name="27989date_minInclusive005_1184.v tokoe:valid" result="pass"/><test-case name="27990date_minExclusive001_1185 tokoe:valid" result="pass"/><test-case name="27991date_minExclusive001_1185.i tokoe:invalid" result="pass"/><test-case name="27992date_minExclusive002_1186 tokoe:valid" result="pass"/><test-case name="27993date_minExclusive002_1186.i tokoe:invalid" result="pass"/><test-case name="27994date_minExclusive003_1187 tokoe:valid" result="pass"/><test-case name="27995date_minExclusive003_1187.v tokoe:valid" result="pass"/><test-case name="27996date_minExclusive004_1188 tokoe:valid" result="pass"/><test-case name="27997date_minExclusive004_1188.v tokoe:valid" result="pass"/><test-case name="27998date_minExclusive005_1189 tokoe:valid" result="pass"/><test-case name="27999date_minExclusive005_1189.v tokoe:valid" result="pass"/><test-case name="28000gYearMonth_pattern001_1190 tokoe:valid" result="pass"/><test-case name="28001gYearMonth_pattern001_1190.v tokoe:valid" result="pass"/><test-case name="28002gYearMonth_enumeration001_1191 tokoe:valid" result="pass"/><test-case name="28003gYearMonth_enumeration001_1191.i tokoe:invalid" result="pass"/><test-case name="28004gYearMonth_enumeration002_1192 tokoe:valid" result="pass"/><test-case name="28005gYearMonth_enumeration002_1192.v tokoe:valid" result="pass"/><test-case name="28006gYearMonth_enumeration003_1193 tokoe:valid" result="pass"/><test-case name="28007gYearMonth_enumeration003_1193.i tokoe:invalid" result="pass"/><test-case name="28008gYearMonth_enumeration004_1194 tokoe:valid" result="pass"/><test-case name="28009gYearMonth_enumeration004_1194.v tokoe:valid" result="pass"/><test-case name="28010gYearMonth_maxInclusive001_1195 tokoe:valid" result="pass"/><test-case name="28011gYearMonth_maxInclusive001_1195.v tokoe:valid" result="pass"/><test-case name="28012gYearMonth_maxInclusive002_1196 tokoe:valid" result="pass"/><test-case name="28013gYearMonth_maxInclusive002_1196.i tokoe:invalid" result="pass"/><test-case name="28014gYearMonth_maxInclusive003_1197 tokoe:valid" result="pass"/><test-case name="28015gYearMonth_maxInclusive003_1197.v tokoe:valid" result="pass"/><test-case name="28016gYearMonth_maxExclusive001_1198 tokoe:valid" result="pass"/><test-case name="28017gYearMonth_maxExclusive001_1198.i tokoe:invalid" result="pass"/><test-case name="28018gYearMonth_maxExclusive002_1199 tokoe:valid" result="pass"/><test-case name="28019gYearMonth_maxExclusive002_1199.i tokoe:invalid" result="pass"/><test-case name="28020gYearMonth_maxExclusive003_1200 tokoe:valid" result="pass"/><test-case name="28021gYearMonth_maxExclusive003_1200.v tokoe:valid" result="pass"/><test-case name="28022gYearMonth_minInclusive001_1201 tokoe:valid" result="pass"/><test-case name="28023gYearMonth_minInclusive001_1201.v tokoe:valid" result="pass"/><test-case name="28024gYearMonth_minInclusive002_1202 tokoe:valid" result="pass"/><test-case name="28025gYearMonth_minInclusive002_1202.i tokoe:invalid" result="pass"/><test-case name="28026gYearMonth_minInclusive003_1203 tokoe:valid" result="pass"/><test-case name="28027gYearMonth_minInclusive003_1203.v tokoe:valid" result="pass"/><test-case name="28028gYearMonth_minInclusive004_1204 tokoe:valid" result="pass"/><test-case name="28029gYearMonth_minInclusive004_1204.v tokoe:valid" result="pass"/><test-case name="28030gYearMonth_minInclusive005_1205 tokoe:valid" result="pass"/><test-case name="28031gYearMonth_minInclusive005_1205.v tokoe:valid" result="pass"/><test-case name="28032gYearMonth_minExclusive001_1206 tokoe:valid" result="pass"/><test-case name="28033gYearMonth_minExclusive001_1206.i tokoe:invalid" result="pass"/><test-case name="28034gYearMonth_minExclusive002_1207 tokoe:valid" result="pass"/><test-case name="28035gYearMonth_minExclusive002_1207.i tokoe:invalid" result="pass"/><test-case name="28036gYearMonth_minExclusive003_1208 tokoe:valid" result="pass"/><test-case name="28037gYearMonth_minExclusive003_1208.v tokoe:valid" result="pass"/><test-case name="28038gYearMonth_minExclusive004_1209 tokoe:valid" result="pass"/><test-case name="28039gYearMonth_minExclusive004_1209.v tokoe:valid" result="pass"/><test-case name="28040gYearMonth_minExclusive005_1210 tokoe:valid" result="pass"/><test-case name="28041gYearMonth_minExclusive005_1210.v tokoe:valid" result="pass"/><test-case name="28042gYear_pattern001_1211 tokoe:valid" result="pass"/><test-case name="28043gYear_pattern001_1211.v tokoe:valid" result="pass"/><test-case name="28044gYear_enumeration001_1212 tokoe:valid" result="pass"/><test-case name="28045gYear_enumeration001_1212.i tokoe:invalid" result="pass"/><test-case name="28046gYear_enumeration002_1213 tokoe:valid" result="pass"/><test-case name="28047gYear_enumeration002_1213.v tokoe:valid" result="pass"/><test-case name="28048gYear_enumeration003_1214 tokoe:valid" result="pass"/><test-case name="28049gYear_enumeration003_1214.i tokoe:invalid" result="pass"/><test-case name="28050gYear_enumeration004_1215 tokoe:valid" result="pass"/><test-case name="28051gYear_enumeration004_1215.v tokoe:valid" result="pass"/><test-case name="28052gYear_maxInclusive001_1216 tokoe:valid" result="pass"/><test-case name="28053gYear_maxInclusive001_1216.v tokoe:valid" result="pass"/><test-case name="28054gYear_maxInclusive002_1217 tokoe:valid" result="pass"/><test-case name="28055gYear_maxInclusive002_1217.i tokoe:invalid" result="pass"/><test-case name="28056gYear_maxInclusive003_1218 tokoe:valid" result="pass"/><test-case name="28057gYear_maxInclusive003_1218.v tokoe:valid" result="pass"/><test-case name="28058gYear_maxExclusive001_1219 tokoe:valid" result="pass"/><test-case name="28059gYear_maxExclusive001_1219.i tokoe:invalid" result="pass"/><test-case name="28060gYear_maxExclusive002_1220 tokoe:valid" result="pass"/><test-case name="28061gYear_maxExclusive002_1220.i tokoe:invalid" result="pass"/><test-case name="28062gYear_maxExclusive003_1221 tokoe:valid" result="pass"/><test-case name="28063gYear_maxExclusive003_1221.v tokoe:valid" result="pass"/><test-case name="28064gYear_minInclusive001_1222 tokoe:valid" result="pass"/><test-case name="28065gYear_minInclusive001_1222.v tokoe:valid" result="pass"/><test-case name="28066gYear_minInclusive002_1223 tokoe:valid" result="pass"/><test-case name="28067gYear_minInclusive002_1223.i tokoe:invalid" result="pass"/><test-case name="28068gYear_minInclusive003_1224 tokoe:valid" result="pass"/><test-case name="28069gYear_minInclusive003_1224.v tokoe:valid" result="pass"/><test-case name="28070gYear_minInclusive004_1225 tokoe:valid" result="pass"/><test-case name="28071gYear_minInclusive004_1225.v tokoe:valid" result="pass"/><test-case name="28072gYear_minInclusive005_1226 tokoe:valid" result="pass"/><test-case name="28073gYear_minInclusive005_1226.v tokoe:valid" result="pass"/><test-case name="28074gYear_minExclusive001_1227 tokoe:valid" result="pass"/><test-case name="28075gYear_minExclusive001_1227.i tokoe:invalid" result="pass"/><test-case name="28076gYear_minExclusive002_1228 tokoe:valid" result="pass"/><test-case name="28077gYear_minExclusive002_1228.i tokoe:invalid" result="pass"/><test-case name="28078gYear_minExclusive003_1229 tokoe:valid" result="pass"/><test-case name="28079gYear_minExclusive003_1229.v tokoe:valid" result="pass"/><test-case name="28080gYear_minExclusive004_1230 tokoe:valid" result="pass"/><test-case name="28081gYear_minExclusive004_1230.v tokoe:valid" result="pass"/><test-case name="28082gYear_minExclusive005_1231 tokoe:valid" result="pass"/><test-case name="28083gYear_minExclusive005_1231.v tokoe:valid" result="pass"/><test-case name="28084gMonthDay_pattern001_1232 tokoe:valid" result="pass"/><test-case name="28085gMonthDay_pattern001_1232.v tokoe:valid" result="pass"/><test-case name="28086gMonthDay_enumeration001_1233 tokoe:valid" result="pass"/><test-case name="28087gMonthDay_enumeration001_1233.i tokoe:invalid" result="pass"/><test-case name="28088gMonthDay_enumeration002_1234 tokoe:valid" result="pass"/><test-case name="28089gMonthDay_enumeration002_1234.v tokoe:valid" result="pass"/><test-case name="28090gMonthDay_enumeration003_1235 tokoe:valid" result="pass"/><test-case name="28091gMonthDay_enumeration003_1235.i tokoe:invalid" result="pass"/><test-case name="28092gMonthDay_enumeration004_1236 tokoe:valid" result="pass"/><test-case name="28093gMonthDay_enumeration004_1236.v tokoe:valid" result="pass"/><test-case name="28094gMonthDay_maxInclusive001_1237 tokoe:valid" result="pass"/><test-case name="28095gMonthDay_maxInclusive001_1237.v tokoe:valid" result="pass"/><test-case name="28096gMonthDay_maxInclusive002_1238 tokoe:valid" result="pass"/><test-case name="28097gMonthDay_maxInclusive002_1238.i tokoe:invalid" result="pass"/><test-case name="28098gMonthDay_maxInclusive003_1239 tokoe:valid" result="pass"/><test-case name="28099gMonthDay_maxInclusive003_1239.v tokoe:valid" result="pass"/><test-case name="28100gMonthDay_maxExclusive001_1240 tokoe:valid" result="pass"/><test-case name="28101gMonthDay_maxExclusive001_1240.i tokoe:invalid" result="pass"/><test-case name="28102gMonthDay_maxExclusive002_1241 tokoe:valid" result="pass"/><test-case name="28103gMonthDay_maxExclusive002_1241.i tokoe:invalid" result="pass"/><test-case name="28104gMonthDay_maxExclusive003_1242 tokoe:valid" result="pass"/><test-case name="28105gMonthDay_maxExclusive003_1242.v tokoe:valid" result="pass"/><test-case name="28106gMonthDay_minInclusive001_1243 tokoe:valid" result="pass"/><test-case name="28107gMonthDay_minInclusive001_1243.v tokoe:valid" result="pass"/><test-case name="28108gMonthDay_minInclusive002_1244 tokoe:valid" result="pass"/><test-case name="28109gMonthDay_minInclusive002_1244.i tokoe:invalid" result="pass"/><test-case name="28110gMonthDay_minInclusive003_1245 tokoe:valid" result="pass"/><test-case name="28111gMonthDay_minInclusive003_1245.v tokoe:valid" result="pass"/><test-case name="28112gMonthDay_minInclusive004_1246 tokoe:valid" result="pass"/><test-case name="28113gMonthDay_minInclusive004_1246.v tokoe:valid" result="pass"/><test-case name="28114gMonthDay_minInclusive005_1247 tokoe:valid" result="pass"/><test-case name="28115gMonthDay_minInclusive005_1247.v tokoe:valid" result="pass"/><test-case name="28116gMonthDay_minExclusive001_1248 tokoe:valid" result="pass"/><test-case name="28117gMonthDay_minExclusive001_1248.i tokoe:invalid" result="pass"/><test-case name="28118gMonthDay_minExclusive002_1249 tokoe:valid" result="pass"/><test-case name="28119gMonthDay_minExclusive002_1249.i tokoe:invalid" result="pass"/><test-case name="28120gMonthDay_minExclusive003_1250 tokoe:valid" result="pass"/><test-case name="28121gMonthDay_minExclusive003_1250.v tokoe:valid" result="pass"/><test-case name="28122gMonthDay_minExclusive004_1251 tokoe:valid" result="pass"/><test-case name="28123gMonthDay_minExclusive004_1251.v tokoe:valid" result="pass"/><test-case name="28124gMonthDay_minExclusive005_1252 tokoe:valid" result="pass"/><test-case name="28125gMonthDay_minExclusive005_1252.v tokoe:valid" result="pass"/><test-case name="28126gDay_pattern001_1253 tokoe:valid" result="pass"/><test-case name="28127gDay_pattern001_1253.v tokoe:valid" result="pass"/><test-case name="28128gDay_enumeration001_1254 tokoe:valid" result="pass"/><test-case name="28129gDay_enumeration001_1254.i tokoe:invalid" result="pass"/><test-case name="28130gDay_enumeration002_1255 tokoe:valid" result="pass"/><test-case name="28131gDay_enumeration002_1255.v tokoe:valid" result="pass"/><test-case name="28132gDay_enumeration003_1256 tokoe:valid" result="pass"/><test-case name="28133gDay_enumeration003_1256.i tokoe:invalid" result="pass"/><test-case name="28134gDay_enumeration004_1257 tokoe:valid" result="pass"/><test-case name="28135gDay_enumeration004_1257.v tokoe:valid" result="pass"/><test-case name="28136gDay_maxInclusive001_1258 tokoe:valid" result="pass"/><test-case name="28137gDay_maxInclusive001_1258.v tokoe:valid" result="pass"/><test-case name="28138gDay_maxInclusive002_1259 tokoe:valid" result="pass"/><test-case name="28139gDay_maxInclusive002_1259.i tokoe:invalid" result="pass"/><test-case name="28140gDay_maxInclusive003_1260 tokoe:valid" result="pass"/><test-case name="28141gDay_maxInclusive003_1260.v tokoe:valid" result="pass"/><test-case name="28142gDay_maxExclusive001_1261 tokoe:valid" result="pass"/><test-case name="28143gDay_maxExclusive001_1261.i tokoe:invalid" result="pass"/><test-case name="28144gDay_maxExclusive002_1262 tokoe:valid" result="pass"/><test-case name="28145gDay_maxExclusive002_1262.i tokoe:invalid" result="pass"/><test-case name="28146gDay_maxExclusive003_1263 tokoe:valid" result="pass"/><test-case name="28147gDay_maxExclusive003_1263.v tokoe:valid" result="pass"/><test-case name="28148gDay_minInclusive001_1264 tokoe:valid" result="pass"/><test-case name="28149gDay_minInclusive001_1264.v tokoe:valid" result="pass"/><test-case name="28150gDay_minInclusive002_1265 tokoe:valid" result="pass"/><test-case name="28151gDay_minInclusive002_1265.i tokoe:invalid" result="pass"/><test-case name="28152gDay_minInclusive003_1266 tokoe:valid" result="pass"/><test-case name="28153gDay_minInclusive003_1266.v tokoe:valid" result="pass"/><test-case name="28154gDay_minInclusive004_1267 tokoe:valid" result="pass"/><test-case name="28155gDay_minInclusive004_1267.v tokoe:valid" result="pass"/><test-case name="28156gDay_minInclusive005_1268 tokoe:valid" result="pass"/><test-case name="28157gDay_minInclusive005_1268.v tokoe:valid" result="pass"/><test-case name="28158gDay_minExclusive001_1269 tokoe:valid" result="pass"/><test-case name="28159gDay_minExclusive001_1269.i tokoe:invalid" result="pass"/><test-case name="28160gDay_minExclusive002_1270 tokoe:valid" result="pass"/><test-case name="28161gDay_minExclusive002_1270.i tokoe:invalid" result="pass"/><test-case name="28162gDay_minExclusive003_1271 tokoe:valid" result="pass"/><test-case name="28163gDay_minExclusive003_1271.v tokoe:valid" result="pass"/><test-case name="28164gDay_minExclusive004_1272 tokoe:valid" result="pass"/><test-case name="28165gDay_minExclusive004_1272.v tokoe:valid" result="pass"/><test-case name="28166gDay_minExclusive005_1273 tokoe:valid" result="pass"/><test-case name="28167gDay_minExclusive005_1273.v tokoe:valid" result="pass"/><test-case name="28168gMonth_pattern001_1274 tokoe:valid" result="pass"/><test-case name="28169gMonth_pattern001_1274.v tokoe:valid" result="fail"/><test-case name="28170gMonth_enumeration001_1275 tokoe:valid" result="fail"/><test-case name="28171gMonth_enumeration001_1275.i tokoe:invalid" result="pass"/><test-case name="28172gMonth_enumeration002_1276 tokoe:valid" result="fail"/><test-case name="28173gMonth_enumeration002_1276.v tokoe:valid" result="fail"/><test-case name="28174gMonth_enumeration003_1277 tokoe:valid" result="fail"/><test-case name="28175gMonth_enumeration003_1277.i tokoe:invalid" result="pass"/><test-case name="28176gMonth_enumeration004_1278 tokoe:valid" result="fail"/><test-case name="28177gMonth_enumeration004_1278.v tokoe:valid" result="fail"/><test-case name="28178gMonth_maxInclusive001_1279 tokoe:valid" result="fail"/><test-case name="28179gMonth_maxInclusive001_1279.v tokoe:valid" result="fail"/><test-case name="28180gMonth_maxInclusive002_1280 tokoe:valid" result="fail"/><test-case name="28181gMonth_maxInclusive002_1280.i tokoe:invalid" result="pass"/><test-case name="28182gMonth_maxInclusive003_1281 tokoe:valid" result="fail"/><test-case name="28183gMonth_maxInclusive003_1281.v tokoe:valid" result="fail"/><test-case name="28184gMonth_maxExclusive001_1282 tokoe:valid" result="fail"/><test-case name="28185gMonth_maxExclusive001_1282.i tokoe:invalid" result="pass"/><test-case name="28186gMonth_maxExclusive002_1283 tokoe:valid" result="fail"/><test-case name="28187gMonth_maxExclusive002_1283.i tokoe:invalid" result="pass"/><test-case name="28188gMonth_maxExclusive003_1284 tokoe:valid" result="fail"/><test-case name="28189gMonth_maxExclusive003_1284.v tokoe:valid" result="fail"/><test-case name="28190gMonth_minInclusive001_1285 tokoe:valid" result="fail"/><test-case name="28191gMonth_minInclusive001_1285.v tokoe:valid" result="fail"/><test-case name="28192gMonth_minInclusive002_1286 tokoe:valid" result="fail"/><test-case name="28193gMonth_minInclusive002_1286.i tokoe:invalid" result="pass"/><test-case name="28194gMonth_minInclusive003_1287 tokoe:valid" result="fail"/><test-case name="28195gMonth_minInclusive003_1287.v tokoe:valid" result="fail"/><test-case name="28196gMonth_minInclusive004_1288 tokoe:valid" result="fail"/><test-case name="28197gMonth_minInclusive004_1288.v tokoe:valid" result="fail"/><test-case name="28198gMonth_minInclusive005_1289 tokoe:valid" result="fail"/><test-case name="28199gMonth_minInclusive005_1289.v tokoe:valid" result="fail"/><test-case name="28200gMonth_minExclusive001_1290 tokoe:valid" result="fail"/><test-case name="28201gMonth_minExclusive001_1290.i tokoe:invalid" result="pass"/><test-case name="28202gMonth_minExclusive002_1291 tokoe:valid" result="fail"/><test-case name="28203gMonth_minExclusive002_1291.i tokoe:invalid" result="pass"/><test-case name="28204gMonth_minExclusive003_1292 tokoe:valid" result="fail"/><test-case name="28205gMonth_minExclusive003_1292.v tokoe:valid" result="fail"/><test-case name="28206gMonth_minExclusive004_1293 tokoe:valid" result="fail"/><test-case name="28207gMonth_minExclusive004_1293.v tokoe:valid" result="fail"/><test-case name="28208gMonth_minExclusive005_1294 tokoe:valid" result="fail"/><test-case name="28209gMonth_minExclusive005_1294.v tokoe:valid" result="fail"/><test-case name="28210hexBinary_length001_1295 tokoe:valid" result="pass"/><test-case name="28211hexBinary_length001_1295.i tokoe:invalid" result="pass"/><test-case name="28212hexBinary_length002_1296 tokoe:valid" result="pass"/><test-case name="28213hexBinary_length002_1296.v tokoe:valid" result="pass"/><test-case name="28214hexBinary_length003_1297 tokoe:valid" result="pass"/><test-case name="28215hexBinary_length003_1297.i tokoe:invalid" result="pass"/><test-case name="28216hexBinary_minLength001_1298 tokoe:valid" result="pass"/><test-case name="28217hexBinary_minLength001_1298.v tokoe:valid" result="pass"/><test-case name="28218hexBinary_minLength002_1299 tokoe:valid" result="pass"/><test-case name="28219hexBinary_minLength002_1299.v tokoe:valid" result="pass"/><test-case name="28220hexBinary_minLength003_1300 tokoe:valid" result="pass"/><test-case name="28221hexBinary_minLength003_1300.i tokoe:invalid" result="pass"/><test-case name="28222hexBinary_minLength004_1301 tokoe:valid" result="pass"/><test-case name="28223hexBinary_minLength004_1301.v tokoe:valid" result="pass"/><test-case name="28224hexBinary_maxLength001_1302 tokoe:valid" result="pass"/><test-case name="28225hexBinary_maxLength001_1302.v tokoe:valid" result="pass"/><test-case name="28226hexBinary_maxLength002_1303 tokoe:valid" result="pass"/><test-case name="28227hexBinary_maxLength002_1303.v tokoe:valid" result="pass"/><test-case name="28228hexBinary_maxLength003_1304 tokoe:valid" result="pass"/><test-case name="28229hexBinary_maxLength003_1304.v tokoe:valid" result="pass"/><test-case name="28230hexBinary_enumeration001_1305 tokoe:valid" result="pass"/><test-case name="28231hexBinary_enumeration001_1305.i tokoe:invalid" result="pass"/><test-case name="28232hexBinary_enumeration002_1306 tokoe:valid" result="pass"/><test-case name="28233hexBinary_enumeration002_1306.v tokoe:valid" result="pass"/><test-case name="28234hexBinary_enumeration003_1307 tokoe:valid" result="pass"/><test-case name="28235hexBinary_enumeration003_1307.i tokoe:invalid" result="pass"/><test-case name="28236hexBinary_enumeration004_1308 tokoe:valid" result="pass"/><test-case name="28237hexBinary_enumeration004_1308.v tokoe:valid" result="pass"/><test-case name="28238base64Binary_length001_1309 tokoe:valid" result="pass"/><test-case name="28239base64Binary_length001_1309.i tokoe:invalid" result="pass"/><test-case name="28240base64Binary_length002_1310 tokoe:valid" result="pass"/><test-case name="28241base64Binary_length002_1310.v tokoe:valid" result="pass"/><test-case name="28242base64Binary_length003_1311 tokoe:valid" result="pass"/><test-case name="28243base64Binary_length003_1311.i tokoe:invalid" result="pass"/><test-case name="28244base64Binary_minLength001_1312 tokoe:valid" result="pass"/><test-case name="28245base64Binary_minLength001_1312.v tokoe:valid" result="pass"/><test-case name="28246base64Binary_minLength002_1313 tokoe:valid" result="pass"/><test-case name="28247base64Binary_minLength002_1313.v tokoe:valid" result="pass"/><test-case name="28248base64Binary_minLength003_1314 tokoe:valid" result="pass"/><test-case name="28249base64Binary_minLength003_1314.i tokoe:invalid" result="pass"/><test-case name="28250base64Binary_minLength004_1315 tokoe:valid" result="pass"/><test-case name="28251base64Binary_minLength004_1315.v tokoe:valid" result="pass"/><test-case name="28252base64Binary_maxLength001_1316 tokoe:valid" result="pass"/><test-case name="28253base64Binary_maxLength001_1316.i tokoe:invalid" result="pass"/><test-case name="28254base64Binary_maxLength002_1317 tokoe:valid" result="pass"/><test-case name="28255base64Binary_maxLength002_1317.i tokoe:invalid" result="pass"/><test-case name="28256base64Binary_maxLength003_1318 tokoe:valid" result="pass"/><test-case name="28257base64Binary_maxLength003_1318.i tokoe:invalid" result="pass"/><test-case name="28258base64Binary_enumeration001_1319 tokoe:valid" result="pass"/><test-case name="28259base64Binary_enumeration001_1319.i tokoe:invalid" result="pass"/><test-case name="28260base64Binary_enumeration002_1320 tokoe:valid" result="pass"/><test-case name="28261base64Binary_enumeration002_1320.v tokoe:valid" result="pass"/><test-case name="28262anyURI_length001_1322 tokoe:valid" result="pass"/><test-case name="28263anyURI_length001_1322.i tokoe:invalid" result="pass"/><test-case name="28264anyURI_length002_1323 tokoe:valid" result="pass"/><test-case name="28265anyURI_length002_1323.v tokoe:valid" result="pass"/><test-case name="28266anyURI_length003_1324 tokoe:valid" result="pass"/><test-case name="28267anyURI_length003_1324.i tokoe:invalid" result="pass"/><test-case name="28268anyURI_minLength001_1325 tokoe:valid" result="pass"/><test-case name="28269anyURI_minLength001_1325.v tokoe:valid" result="pass"/><test-case name="28270anyURI_minLength002_1326 tokoe:valid" result="pass"/><test-case name="28271anyURI_minLength002_1326.v tokoe:valid" result="pass"/><test-case name="28272anyURI_minLength003_1327 tokoe:valid" result="pass"/><test-case name="28273anyURI_minLength003_1327.i tokoe:invalid" result="pass"/><test-case name="28274anyURI_minLength004_1328 tokoe:valid" result="pass"/><test-case name="28275anyURI_minLength004_1328.v tokoe:valid" result="pass"/><test-case name="28276anyURI_maxLength001_1329 tokoe:valid" result="pass"/><test-case name="28277anyURI_maxLength001_1329.i tokoe:invalid" result="pass"/><test-case name="28278anyURI_maxLength002_1330 tokoe:valid" result="pass"/><test-case name="28279anyURI_maxLength002_1330.v tokoe:valid" result="pass"/><test-case name="28280anyURI_maxLength003_1331 tokoe:valid" result="pass"/><test-case name="28281anyURI_maxLength003_1331.v tokoe:valid" result="pass"/><test-case name="28282anyURI_enumeration001_1332 tokoe:valid" result="pass"/><test-case name="28283anyURI_enumeration001_1332.i tokoe:invalid" result="pass"/><test-case name="28284anyURI_enumeration002_1333 tokoe:valid" result="pass"/><test-case name="28285anyURI_enumeration002_1333.v tokoe:valid" result="pass"/><test-case name="28286anyURI_enumeration003_1334 tokoe:valid" result="pass"/><test-case name="28287anyURI_enumeration003_1334.i tokoe:invalid" result="pass"/><test-case name="28288anyURI_enumeration004_1335 tokoe:valid" result="pass"/><test-case name="28289anyURI_enumeration004_1335.v tokoe:valid" result="pass"/><test-case name="28290anyURI_a002_1337 tokoe:valid" result="pass"/><test-case name="28291anyURI_a002_1337.v tokoe:valid" result="pass"/><test-case name="28292anyURI_a005_1340 tokoe:valid" result="pass"/><test-case name="28293anyURI_a006_1341 tokoe:valid" result="pass"/><test-case name="28294anyURI_a007_1342 tokoe:valid" result="pass"/><test-case name="28295anyURI_a008_1343 tokoe:valid" result="pass"/><test-case name="28296anyURI_a009_1344 tokoe:valid" result="pass"/><test-case name="28297anyURI_a010_1345 tokoe:valid" result="pass"/><test-case name="28298anyURI_a011_1346 tokoe:valid" result="pass"/><test-case name="28299anyURI_a012_1347 tokoe:valid" result="pass"/><test-case name="28300anyURI_a013_1348 tokoe:valid" result="pass"/><test-case name="28301anyURI_a014_1349 tokoe:valid" result="pass"/><test-case name="28302anyURI_a015_1350 tokoe:valid" result="pass"/><test-case name="28303anyURI_a016_1351 tokoe:valid" result="pass"/><test-case name="28304anyURI_b001_1352 tokoe:valid" result="pass"/><test-case name="28305anyURI_b001_1352.i tokoe:invalid" result="pass"/><test-case name="28306anyURI_b002_1353 tokoe:valid" result="pass"/><test-case name="28307anyURI_b002_1353.v tokoe:valid" result="pass"/><test-case name="28308anyURI_b005_1355 tokoe:valid" result="pass"/><test-case name="28309anyURI_b005_1355.i tokoe:invalid" result="pass"/><test-case name="28310QName_length002_1358 tokoe:valid" result="pass"/><test-case name="28311QName_length002_1358.v tokoe:valid" result="pass"/><test-case name="28312QName_minLength001_1360 tokoe:valid" result="pass"/><test-case name="28313QName_minLength001_1360.v tokoe:valid" result="pass"/><test-case name="28314QName_minLength002_1361 tokoe:valid" result="pass"/><test-case name="28315QName_minLength002_1361.v tokoe:valid" result="pass"/><test-case name="28316QName_minLength004_1363 tokoe:valid" result="pass"/><test-case name="28317QName_minLength004_1363.v tokoe:valid" result="pass"/><test-case name="28318QName_maxLength002_1365 tokoe:valid" result="pass"/><test-case name="28319QName_maxLength002_1365.v tokoe:valid" result="pass"/><test-case name="28320QName_maxLength003_1366 tokoe:valid" result="pass"/><test-case name="28321QName_maxLength003_1366.v tokoe:valid" result="pass"/><test-case name="28322QName_pattern001_1367 tokoe:valid" result="pass"/><test-case name="28323QName_pattern001_1367.v tokoe:valid" result="pass"/><test-case name="28324QName_enumeration001_1368 tokoe:valid" result="pass"/><test-case name="28325QName_enumeration001_1368.i tokoe:invalid" result="pass"/><test-case name="28326QName_enumeration002_1369 tokoe:valid" result="pass"/><test-case name="28327QName_enumeration002_1369.v tokoe:valid" result="pass"/><test-case name="28328QName_enumeration003_1370 tokoe:valid" result="pass"/><test-case name="28329QName_enumeration003_1370.i tokoe:invalid" result="pass"/><test-case name="28330QName_enumeration004_1371 tokoe:valid" result="pass"/><test-case name="28331QName_enumeration004_1371.v tokoe:valid" result="pass"/><test-case name="28332NOTATION_length002_1373 tokoe:valid" result="pass"/><test-case name="28333NOTATION_length002_1373.v tokoe:valid" result="pass"/><test-case name="28334NOTATION_minLength001_1375 tokoe:valid" result="pass"/><test-case name="28335NOTATION_minLength001_1375.v tokoe:valid" result="pass"/><test-case name="28336NOTATION_minLength002_1376 tokoe:valid" result="pass"/><test-case name="28337NOTATION_minLength002_1376.v tokoe:valid" result="pass"/><test-case name="28338NOTATION_minLength004_1378 tokoe:valid" result="pass"/><test-case name="28339NOTATION_minLength004_1378.v tokoe:valid" result="pass"/><test-case name="28340NOTATION_maxLength002_1380 tokoe:valid" result="pass"/><test-case name="28341NOTATION_maxLength002_1380.v tokoe:valid" result="pass"/><test-case name="28342NOTATION_maxLength003_1381 tokoe:valid" result="pass"/><test-case name="28343NOTATION_maxLength003_1381.v tokoe:valid" result="pass"/><test-case name="28344NOTATION_pattern001_1382 tokoe:valid" result="pass"/><test-case name="28345NOTATION_pattern001_1382.v tokoe:valid" result="pass"/><test-case name="28346NOTATION_enumeration001_1383 tokoe:valid" result="pass"/><test-case name="28347NOTATION_enumeration001_1383.i tokoe:invalid" result="pass"/><test-case name="28348NOTATION_enumeration002_1384 tokoe:valid" result="pass"/><test-case name="28349NOTATION_enumeration002_1384.v tokoe:valid" result="pass"/><test-case name="28350NOTATION_enumeration003_1385 tokoe:valid" result="pass"/><test-case name="28351NOTATION_enumeration003_1385.i tokoe:invalid" result="pass"/><test-case name="28352NOTATION_enumeration004_1386 tokoe:valid" result="pass"/><test-case name="28353NOTATION_enumeration004_1386.v tokoe:valid" result="pass"/><test-case name="28354normalizedString_length001_1387 tokoe:valid" result="pass"/><test-case name="28355normalizedString_length001_1387.i tokoe:invalid" result="pass"/><test-case name="28356normalizedString_length002_1388 tokoe:valid" result="pass"/><test-case name="28357normalizedString_length002_1388.v tokoe:valid" result="pass"/><test-case name="28358normalizedString_length003_1389 tokoe:valid" result="pass"/><test-case name="28359normalizedString_length003_1389.i tokoe:invalid" result="pass"/><test-case name="28360normalizedString_minLength001_1390 tokoe:valid" result="pass"/><test-case name="28361normalizedString_minLength001_1390.v tokoe:valid" result="pass"/><test-case name="28362normalizedString_minLength002_1391 tokoe:valid" result="pass"/><test-case name="28363normalizedString_minLength002_1391.v tokoe:valid" result="pass"/><test-case name="28364normalizedString_minLength003_1392 tokoe:valid" result="pass"/><test-case name="28365normalizedString_minLength003_1392.i tokoe:invalid" result="pass"/><test-case name="28366normalizedString_minLength004_1393 tokoe:valid" result="pass"/><test-case name="28367normalizedString_minLength004_1393.v tokoe:valid" result="pass"/><test-case name="28368normalizedString_maxLength001_1394 tokoe:valid" result="pass"/><test-case name="28369normalizedString_maxLength001_1394.i tokoe:invalid" result="pass"/><test-case name="28370normalizedString_maxLength002_1395 tokoe:valid" result="pass"/><test-case name="28371normalizedString_maxLength002_1395.v tokoe:valid" result="pass"/><test-case name="28372normalizedString_maxLength003_1396 tokoe:valid" result="pass"/><test-case name="28373normalizedString_maxLength003_1396.v tokoe:valid" result="pass"/><test-case name="28374normalizedString_pattern001_1397 tokoe:valid" result="pass"/><test-case name="28375normalizedString_pattern001_1397.v tokoe:valid" result="pass"/><test-case name="28376normalizedString_enumeration001_1398 tokoe:valid" result="pass"/><test-case name="28377normalizedString_enumeration001_1398.i tokoe:invalid" result="pass"/><test-case name="28378normalizedString_enumeration002_1399 tokoe:valid" result="pass"/><test-case name="28379normalizedString_enumeration002_1399.v tokoe:valid" result="pass"/><test-case name="28380normalizedString_enumeration003_1400 tokoe:valid" result="pass"/><test-case name="28381normalizedString_enumeration003_1400.i tokoe:invalid" result="pass"/><test-case name="28382normalizedString_enumeration004_1401 tokoe:valid" result="pass"/><test-case name="28383normalizedString_enumeration004_1401.v tokoe:valid" result="pass"/><test-case name="28384token_length001_1402 tokoe:valid" result="pass"/><test-case name="28385token_length001_1402.i tokoe:invalid" result="pass"/><test-case name="28386token_length002_1403 tokoe:valid" result="pass"/><test-case name="28387token_length002_1403.v tokoe:valid" result="pass"/><test-case name="28388token_length003_1404 tokoe:valid" result="pass"/><test-case name="28389token_length003_1404.i tokoe:invalid" result="pass"/><test-case name="28390token_minLength001_1405 tokoe:valid" result="pass"/><test-case name="28391token_minLength001_1405.v tokoe:valid" result="pass"/><test-case name="28392token_minLength002_1406 tokoe:valid" result="pass"/><test-case name="28393token_minLength002_1406.v tokoe:valid" result="pass"/><test-case name="28394token_minLength003_1407 tokoe:valid" result="pass"/><test-case name="28395token_minLength003_1407.i tokoe:invalid" result="pass"/><test-case name="28396token_minLength004_1408 tokoe:valid" result="pass"/><test-case name="28397token_minLength004_1408.v tokoe:valid" result="pass"/><test-case name="28398token_maxLength001_1409 tokoe:valid" result="pass"/><test-case name="28399token_maxLength001_1409.i tokoe:invalid" result="pass"/><test-case name="28400token_maxLength002_1410 tokoe:valid" result="pass"/><test-case name="28401token_maxLength002_1410.v tokoe:valid" result="pass"/><test-case name="28402token_maxLength003_1411 tokoe:valid" result="pass"/><test-case name="28403token_maxLength003_1411.v tokoe:valid" result="pass"/><test-case name="28404token_pattern001_1412 tokoe:valid" result="pass"/><test-case name="28405token_pattern001_1412.v tokoe:valid" result="pass"/><test-case name="28406token_enumeration001_1413 tokoe:valid" result="pass"/><test-case name="28407token_enumeration001_1413.i tokoe:invalid" result="pass"/><test-case name="28408token_enumeration002_1414 tokoe:valid" result="pass"/><test-case name="28409token_enumeration002_1414.v tokoe:valid" result="pass"/><test-case name="28410token_enumeration003_1415 tokoe:valid" result="pass"/><test-case name="28411token_enumeration003_1415.i tokoe:invalid" result="pass"/><test-case name="28412token_enumeration004_1416 tokoe:valid" result="pass"/><test-case name="28413token_enumeration004_1416.v tokoe:valid" result="pass"/><test-case name="28414language_length001_1417 tokoe:valid" result="pass"/><test-case name="28415language_length001_1417.i tokoe:invalid" result="pass"/><test-case name="28416language_length002_1418 tokoe:valid" result="pass"/><test-case name="28417language_length002_1418.v tokoe:valid" result="pass"/><test-case name="28418language_length003_1419 tokoe:valid" result="pass"/><test-case name="28419language_length003_1419.i tokoe:invalid" result="pass"/><test-case name="28420language_minLength001_1420 tokoe:valid" result="pass"/><test-case name="28421language_minLength001_1420.v tokoe:valid" result="pass"/><test-case name="28422language_minLength002_1421 tokoe:valid" result="pass"/><test-case name="28423language_minLength002_1421.v tokoe:valid" result="pass"/><test-case name="28424language_minLength003_1422 tokoe:valid" result="pass"/><test-case name="28425language_minLength003_1422.i tokoe:invalid" result="pass"/><test-case name="28426language_minLength004_1423 tokoe:valid" result="pass"/><test-case name="28427language_minLength004_1423.v tokoe:valid" result="pass"/><test-case name="28428language_maxLength001_1424 tokoe:valid" result="pass"/><test-case name="28429language_maxLength001_1424.i tokoe:invalid" result="pass"/><test-case name="28430language_maxLength002_1425 tokoe:valid" result="pass"/><test-case name="28431language_maxLength002_1425.v tokoe:valid" result="pass"/><test-case name="28432language_maxLength003_1426 tokoe:valid" result="pass"/><test-case name="28433language_maxLength003_1426.v tokoe:valid" result="pass"/><test-case name="28434language_pattern001_1427 tokoe:valid" result="pass"/><test-case name="28435language_pattern001_1427.v tokoe:valid" result="pass"/><test-case name="28436language_enumeration001_1428 tokoe:valid" result="pass"/><test-case name="28437language_enumeration001_1428.i tokoe:invalid" result="pass"/><test-case name="28438language_enumeration002_1429 tokoe:valid" result="pass"/><test-case name="28439language_enumeration002_1429.v tokoe:valid" result="pass"/><test-case name="28440language_enumeration003_1430 tokoe:valid" result="pass"/><test-case name="28441language_enumeration003_1430.i tokoe:invalid" result="pass"/><test-case name="28442language_enumeration004_1431 tokoe:valid" result="pass"/><test-case name="28443language_enumeration004_1431.v tokoe:valid" result="pass"/><test-case name="28444IDREFS_length001_1432 tokoe:valid" result="pass"/><test-case name="28445IDREFS_length001_1432.i tokoe:invalid" result="pass"/><test-case name="28446IDREFS_length002_1433 tokoe:valid" result="pass"/><test-case name="28447IDREFS_length002_1433.v tokoe:valid" result="pass"/><test-case name="28448IDREFS_length003_1434 tokoe:valid" result="pass"/><test-case name="28449IDREFS_length003_1434.i tokoe:invalid" result="pass"/><test-case name="28450IDREFS_minLength001_1435 tokoe:valid" result="pass"/><test-case name="28451IDREFS_minLength001_1435.v tokoe:valid" result="pass"/><test-case name="28452IDREFS_minLength002_1436 tokoe:valid" result="pass"/><test-case name="28453IDREFS_minLength002_1436.v tokoe:valid" result="pass"/><test-case name="28454IDREFS_minLength003_1437 tokoe:valid" result="pass"/><test-case name="28455IDREFS_minLength003_1437.i tokoe:invalid" result="pass"/><test-case name="28456IDREFS_minLength004_1438 tokoe:valid" result="pass"/><test-case name="28457IDREFS_minLength004_1438.v tokoe:valid" result="pass"/><test-case name="28458IDREFS_maxLength001_1439 tokoe:valid" result="pass"/><test-case name="28459IDREFS_maxLength001_1439.i tokoe:invalid" result="pass"/><test-case name="28460IDREFS_maxLength002_1440 tokoe:valid" result="pass"/><test-case name="28461IDREFS_maxLength002_1440.v tokoe:valid" result="pass"/><test-case name="28462IDREFS_maxLength003_1441 tokoe:valid" result="pass"/><test-case name="28463IDREFS_maxLength003_1441.v tokoe:valid" result="pass"/><test-case name="28464IDREFS_enumeration001_1442 tokoe:valid" result="pass"/><test-case name="28465IDREFS_enumeration001_1442.i tokoe:invalid" result="pass"/><test-case name="28466IDREFS_enumeration002_1443 tokoe:valid" result="pass"/><test-case name="28467IDREFS_enumeration002_1443.v tokoe:valid" result="pass"/><test-case name="28468IDREFS_enumeration003_1444 tokoe:valid" result="pass"/><test-case name="28469IDREFS_enumeration003_1444.i tokoe:invalid" result="pass"/><test-case name="28470IDREFS_enumeration004_1445 tokoe:valid" result="pass"/><test-case name="28471IDREFS_enumeration004_1445.v tokoe:valid" result="pass"/><test-case name="28472NMTOKEN_length001_1446 tokoe:valid" result="pass"/><test-case name="28473NMTOKEN_length001_1446.i tokoe:invalid" result="pass"/><test-case name="28474NMTOKEN_length002_1447 tokoe:valid" result="pass"/><test-case name="28475NMTOKEN_length002_1447.v tokoe:valid" result="pass"/><test-case name="28476NMTOKEN_length003_1448 tokoe:valid" result="pass"/><test-case name="28477NMTOKEN_length003_1448.i tokoe:invalid" result="pass"/><test-case name="28478NMTOKEN_minLength001_1449 tokoe:valid" result="pass"/><test-case name="28479NMTOKEN_minLength001_1449.v tokoe:valid" result="pass"/><test-case name="28480NMTOKEN_minLength002_1450 tokoe:valid" result="pass"/><test-case name="28481NMTOKEN_minLength002_1450.v tokoe:valid" result="pass"/><test-case name="28482NMTOKEN_minLength003_1451 tokoe:valid" result="pass"/><test-case name="28483NMTOKEN_minLength003_1451.i tokoe:invalid" result="pass"/><test-case name="28484NMTOKEN_minLength004_1452 tokoe:valid" result="pass"/><test-case name="28485NMTOKEN_minLength004_1452.v tokoe:valid" result="pass"/><test-case name="28486NMTOKEN_maxLength001_1453 tokoe:valid" result="pass"/><test-case name="28487NMTOKEN_maxLength001_1453.i tokoe:invalid" result="pass"/><test-case name="28488NMTOKEN_maxLength002_1454 tokoe:valid" result="pass"/><test-case name="28489NMTOKEN_maxLength002_1454.v tokoe:valid" result="pass"/><test-case name="28490NMTOKEN_maxLength003_1455 tokoe:valid" result="pass"/><test-case name="28491NMTOKEN_maxLength003_1455.v tokoe:valid" result="pass"/><test-case name="28492NMTOKEN_pattern001_1456 tokoe:valid" result="pass"/><test-case name="28493NMTOKEN_pattern001_1456.v tokoe:valid" result="pass"/><test-case name="28494NMTOKEN_enumeration001_1457 tokoe:valid" result="pass"/><test-case name="28495NMTOKEN_enumeration001_1457.i tokoe:invalid" result="pass"/><test-case name="28496NMTOKEN_enumeration002_1458 tokoe:valid" result="pass"/><test-case name="28497NMTOKEN_enumeration002_1458.v tokoe:valid" result="pass"/><test-case name="28498NMTOKEN_enumeration003_1459 tokoe:valid" result="pass"/><test-case name="28499NMTOKEN_enumeration003_1459.i tokoe:invalid" result="pass"/><test-case name="28500NMTOKEN_enumeration004_1460 tokoe:valid" result="pass"/><test-case name="28501NMTOKEN_enumeration004_1460.v tokoe:valid" result="pass"/><test-case name="28502NMTOKENS_length001_1461 tokoe:valid" result="pass"/><test-case name="28503NMTOKENS_length001_1461.i tokoe:invalid" result="pass"/><test-case name="28504NMTOKENS_length002_1462 tokoe:valid" result="pass"/><test-case name="28505NMTOKENS_length002_1462.v tokoe:valid" result="pass"/><test-case name="28506NMTOKENS_length003_1463 tokoe:valid" result="pass"/><test-case name="28507NMTOKENS_length003_1463.i tokoe:invalid" result="pass"/><test-case name="28508NMTOKENS_minLength001_1464 tokoe:valid" result="fail"/><test-case name="28509NMTOKENS_minLength001_1464.v tokoe:valid" result="fail"/><test-case name="28510NMTOKENS_minLength002_1465 tokoe:valid" result="pass"/><test-case name="28511NMTOKENS_minLength002_1465.v tokoe:valid" result="pass"/><test-case name="28512NMTOKENS_minLength003_1466 tokoe:valid" result="pass"/><test-case name="28513NMTOKENS_minLength003_1466.i tokoe:invalid" result="pass"/><test-case name="28514NMTOKENS_minLength004_1467 tokoe:valid" result="fail"/><test-case name="28515NMTOKENS_minLength004_1467.v tokoe:valid" result="fail"/><test-case name="28516NMTOKENS_maxLength001_1468 tokoe:valid" result="pass"/><test-case name="28517NMTOKENS_maxLength001_1468.i tokoe:invalid" result="pass"/><test-case name="28518NMTOKENS_maxLength002_1469 tokoe:valid" result="pass"/><test-case name="28519NMTOKENS_maxLength002_1469.v tokoe:valid" result="pass"/><test-case name="28520NMTOKENS_maxLength003_1470 tokoe:valid" result="pass"/><test-case name="28521NMTOKENS_maxLength003_1470.v tokoe:valid" result="pass"/><test-case name="28522NMTOKENS_enumeration001_1471 tokoe:valid" result="pass"/><test-case name="28523NMTOKENS_enumeration001_1471.i tokoe:invalid" result="pass"/><test-case name="28524NMTOKENS_enumeration002_1472 tokoe:valid" result="pass"/><test-case name="28525NMTOKENS_enumeration002_1472.v tokoe:valid" result="pass"/><test-case name="28526NMTOKENS_enumeration003_1473 tokoe:valid" result="pass"/><test-case name="28527NMTOKENS_enumeration003_1473.i tokoe:invalid" result="pass"/><test-case name="28528NMTOKENS_enumeration004_1474 tokoe:valid" result="pass"/><test-case name="28529NMTOKENS_enumeration004_1474.v tokoe:valid" result="pass"/><test-case name="28530NMTOKENS_pattern001_1475 tokoe:valid" result="pass"/><test-case name="28531NMTOKENS_pattern001_1475.v tokoe:valid" result="pass"/><test-case name="28532NMTOKENS_pattern002_1476 tokoe:valid" result="pass"/><test-case name="28533NMTOKENS_pattern002_1476.i tokoe:invalid" result="pass"/><test-case name="28534Name_length001_1477 tokoe:valid" result="pass"/><test-case name="28535Name_length001_1477.i tokoe:invalid" result="pass"/><test-case name="28536Name_length002_1478 tokoe:valid" result="pass"/><test-case name="28537Name_length002_1478.v tokoe:valid" result="pass"/><test-case name="28538Name_length003_1479 tokoe:valid" result="pass"/><test-case name="28539Name_length003_1479.i tokoe:invalid" result="pass"/><test-case name="28540Name_minLength001_1480 tokoe:valid" result="pass"/><test-case name="28541Name_minLength001_1480.v tokoe:valid" result="pass"/><test-case name="28542Name_minLength002_1481 tokoe:valid" result="pass"/><test-case name="28543Name_minLength002_1481.v tokoe:valid" result="pass"/><test-case name="28544Name_minLength003_1482 tokoe:valid" result="pass"/><test-case name="28545Name_minLength003_1482.i tokoe:invalid" result="pass"/><test-case name="28546Name_minLength004_1483 tokoe:valid" result="pass"/><test-case name="28547Name_minLength004_1483.v tokoe:valid" result="pass"/><test-case name="28548Name_maxLength001_1484 tokoe:valid" result="pass"/><test-case name="28549Name_maxLength001_1484.i tokoe:invalid" result="pass"/><test-case name="28550Name_maxLength002_1485 tokoe:valid" result="pass"/><test-case name="28551Name_maxLength002_1485.v tokoe:valid" result="pass"/><test-case name="28552Name_maxLength003_1486 tokoe:valid" result="pass"/><test-case name="28553Name_maxLength003_1486.v tokoe:valid" result="pass"/><test-case name="28554Name_pattern001_1487 tokoe:valid" result="pass"/><test-case name="28555Name_pattern001_1487.v tokoe:valid" result="pass"/><test-case name="28556Name_enumeration001_1488 tokoe:valid" result="pass"/><test-case name="28557Name_enumeration001_1488.i tokoe:invalid" result="pass"/><test-case name="28558Name_enumeration002_1489 tokoe:valid" result="pass"/><test-case name="28559Name_enumeration002_1489.v tokoe:valid" result="pass"/><test-case name="28560Name_enumeration003_1490 tokoe:valid" result="pass"/><test-case name="28561Name_enumeration003_1490.i tokoe:invalid" result="pass"/><test-case name="28562Name_enumeration004_1491 tokoe:valid" result="pass"/><test-case name="28563Name_enumeration004_1491.v tokoe:valid" result="pass"/><test-case name="28564NCName_length001_1492 tokoe:valid" result="pass"/><test-case name="28565NCName_length001_1492.i tokoe:invalid" result="pass"/><test-case name="28566NCName_length002_1493 tokoe:valid" result="pass"/><test-case name="28567NCName_length002_1493.v tokoe:valid" result="pass"/><test-case name="28568NCName_length003_1494 tokoe:valid" result="pass"/><test-case name="28569NCName_length003_1494.i tokoe:invalid" result="pass"/><test-case name="28570NCName_minLength001_1495 tokoe:valid" result="pass"/><test-case name="28571NCName_minLength001_1495.v tokoe:valid" result="pass"/><test-case name="28572NCName_minLength002_1496 tokoe:valid" result="pass"/><test-case name="28573NCName_minLength002_1496.v tokoe:valid" result="pass"/><test-case name="28574NCName_minLength003_1497 tokoe:valid" result="pass"/><test-case name="28575NCName_minLength003_1497.i tokoe:invalid" result="pass"/><test-case name="28576NCName_minLength004_1498 tokoe:valid" result="pass"/><test-case name="28577NCName_minLength004_1498.v tokoe:valid" result="pass"/><test-case name="28578NCName_maxLength001_1499 tokoe:valid" result="pass"/><test-case name="28579NCName_maxLength001_1499.i tokoe:invalid" result="pass"/><test-case name="28580NCName_maxLength002_1500 tokoe:valid" result="pass"/><test-case name="28581NCName_maxLength002_1500.v tokoe:valid" result="pass"/><test-case name="28582NCName_maxLength003_1501 tokoe:valid" result="pass"/><test-case name="28583NCName_maxLength003_1501.v tokoe:valid" result="pass"/><test-case name="28584NCName_pattern001_1502 tokoe:valid" result="pass"/><test-case name="28585NCName_pattern001_1502.v tokoe:valid" result="pass"/><test-case name="28586NCName_enumeration001_1503 tokoe:valid" result="pass"/><test-case name="28587NCName_enumeration001_1503.i tokoe:invalid" result="pass"/><test-case name="28588NCName_enumeration002_1504 tokoe:valid" result="pass"/><test-case name="28589NCName_enumeration002_1504.v tokoe:valid" result="pass"/><test-case name="28590NCName_enumeration003_1505 tokoe:valid" result="pass"/><test-case name="28591NCName_enumeration003_1505.i tokoe:invalid" result="pass"/><test-case name="28592NCName_enumeration004_1506 tokoe:valid" result="pass"/><test-case name="28593NCName_enumeration004_1506.v tokoe:valid" result="pass"/><test-case name="28594ID_length001_1507 tokoe:valid" result="pass"/><test-case name="28595ID_length001_1507.i tokoe:invalid" result="pass"/><test-case name="28596ID_length002_1508 tokoe:valid" result="pass"/><test-case name="28597ID_length002_1508.v tokoe:valid" result="pass"/><test-case name="28598ID_length003_1509 tokoe:valid" result="pass"/><test-case name="28599ID_length003_1509.i tokoe:invalid" result="pass"/><test-case name="28600ID_minLength001_1510 tokoe:valid" result="pass"/><test-case name="28601ID_minLength001_1510.v tokoe:valid" result="pass"/><test-case name="28602ID_minLength002_1511 tokoe:valid" result="pass"/><test-case name="28603ID_minLength002_1511.v tokoe:valid" result="pass"/><test-case name="28604ID_minLength003_1512 tokoe:valid" result="pass"/><test-case name="28605ID_minLength003_1512.i tokoe:invalid" result="pass"/><test-case name="28606ID_minLength004_1513 tokoe:valid" result="pass"/><test-case name="28607ID_minLength004_1513.v tokoe:valid" result="pass"/><test-case name="28608ID_maxLength001_1514 tokoe:valid" result="pass"/><test-case name="28609ID_maxLength001_1514.i tokoe:invalid" result="pass"/><test-case name="28610ID_maxLength002_1515 tokoe:valid" result="pass"/><test-case name="28611ID_maxLength002_1515.v tokoe:valid" result="pass"/><test-case name="28612ID_maxLength003_1516 tokoe:valid" result="pass"/><test-case name="28613ID_maxLength003_1516.v tokoe:valid" result="pass"/><test-case name="28614ID_pattern001_1517 tokoe:valid" result="pass"/><test-case name="28615ID_pattern001_1517.v tokoe:valid" result="pass"/><test-case name="28616ID_enumeration001_1518 tokoe:valid" result="pass"/><test-case name="28617ID_enumeration001_1518.i tokoe:invalid" result="pass"/><test-case name="28618ID_enumeration002_1519 tokoe:valid" result="pass"/><test-case name="28619ID_enumeration002_1519.v tokoe:valid" result="pass"/><test-case name="28620ID_enumeration003_1520 tokoe:valid" result="pass"/><test-case name="28621ID_enumeration003_1520.i tokoe:invalid" result="pass"/><test-case name="28622ID_enumeration004_1521 tokoe:valid" result="pass"/><test-case name="28623ID_enumeration004_1521.v tokoe:valid" result="pass"/><test-case name="28624IDREF_length001_1522 tokoe:valid" result="pass"/><test-case name="28625IDREF_length001_1522.i tokoe:invalid" result="pass"/><test-case name="28626IDREF_length002_1523 tokoe:valid" result="pass"/><test-case name="28627IDREF_length002_1523.v tokoe:valid" result="pass"/><test-case name="28628IDREF_length003_1524 tokoe:valid" result="pass"/><test-case name="28629IDREF_length003_1524.i tokoe:invalid" result="pass"/><test-case name="28630IDREF_minLength001_1525 tokoe:valid" result="pass"/><test-case name="28631IDREF_minLength001_1525.v tokoe:valid" result="pass"/><test-case name="28632IDREF_minLength002_1526 tokoe:valid" result="pass"/><test-case name="28633IDREF_minLength002_1526.v tokoe:valid" result="pass"/><test-case name="28634IDREF_minLength003_1527 tokoe:valid" result="pass"/><test-case name="28635IDREF_minLength003_1527.i tokoe:invalid" result="pass"/><test-case name="28636IDREF_minLength004_1528 tokoe:valid" result="pass"/><test-case name="28637IDREF_minLength004_1528.v tokoe:valid" result="pass"/><test-case name="28638IDREF_maxLength001_1529 tokoe:valid" result="pass"/><test-case name="28639IDREF_maxLength001_1529.i tokoe:invalid" result="pass"/><test-case name="28640IDREF_maxLength002_1530 tokoe:valid" result="pass"/><test-case name="28641IDREF_maxLength002_1530.v tokoe:valid" result="pass"/><test-case name="28642IDREF_maxLength003_1531 tokoe:valid" result="pass"/><test-case name="28643IDREF_maxLength003_1531.v tokoe:valid" result="pass"/><test-case name="28644IDREF_pattern001_1532 tokoe:valid" result="pass"/><test-case name="28645IDREF_pattern001_1532.v tokoe:valid" result="pass"/><test-case name="28646IDREF_enumeration001_1533 tokoe:valid" result="pass"/><test-case name="28647IDREF_enumeration001_1533.i tokoe:invalid" result="pass"/><test-case name="28648IDREF_enumeration002_1534 tokoe:valid" result="pass"/><test-case name="28649IDREF_enumeration002_1534.v tokoe:valid" result="pass"/><test-case name="28650IDREF_enumeration003_1535 tokoe:valid" result="pass"/><test-case name="28651IDREF_enumeration003_1535.i tokoe:invalid" result="pass"/><test-case name="28652IDREF_enumeration004_1536 tokoe:valid" result="pass"/><test-case name="28653IDREF_enumeration004_1536.v tokoe:valid" result="pass"/><test-case name="28654integer_pattern001_1537 tokoe:valid" result="pass"/><test-case name="28655integer_pattern001_1537.v tokoe:valid" result="pass"/><test-case name="28656integer_enumeration001_1538 tokoe:valid" result="pass"/><test-case name="28657integer_enumeration001_1538.i tokoe:invalid" result="pass"/><test-case name="28658integer_enumeration002_1539 tokoe:valid" result="pass"/><test-case name="28659integer_enumeration002_1539.v tokoe:valid" result="pass"/><test-case name="28660integer_enumeration003_1540 tokoe:valid" result="pass"/><test-case name="28661integer_enumeration003_1540.i tokoe:invalid" result="pass"/><test-case name="28662integer_enumeration004_1541 tokoe:valid" result="pass"/><test-case name="28663integer_enumeration004_1541.v tokoe:valid" result="pass"/><test-case name="28664integer_maxInclusive001_1542 tokoe:valid" result="pass"/><test-case name="28665integer_maxInclusive001_1542.v tokoe:valid" result="pass"/><test-case name="28666integer_maxInclusive002_1543 tokoe:valid" result="pass"/><test-case name="28667integer_maxInclusive002_1543.i tokoe:invalid" result="pass"/><test-case name="28668integer_maxInclusive003_1544 tokoe:valid" result="pass"/><test-case name="28669integer_maxInclusive003_1544.v tokoe:valid" result="pass"/><test-case name="28670integer_maxExclusive001_1545 tokoe:valid" result="pass"/><test-case name="28671integer_maxExclusive001_1545.i tokoe:invalid" result="pass"/><test-case name="28672integer_maxExclusive002_1546 tokoe:valid" result="pass"/><test-case name="28673integer_maxExclusive002_1546.i tokoe:invalid" result="pass"/><test-case name="28674integer_maxExclusive003_1547 tokoe:valid" result="pass"/><test-case name="28675integer_maxExclusive003_1547.v tokoe:valid" result="pass"/><test-case name="28676integer_minInclusive001_1548 tokoe:valid" result="pass"/><test-case name="28677integer_minInclusive001_1548.v tokoe:valid" result="pass"/><test-case name="28678integer_minInclusive002_1549 tokoe:valid" result="pass"/><test-case name="28679integer_minInclusive002_1549.i tokoe:invalid" result="pass"/><test-case name="28680integer_minInclusive003_1550 tokoe:valid" result="pass"/><test-case name="28681integer_minInclusive003_1550.v tokoe:valid" result="pass"/><test-case name="28682integer_minInclusive004_1551 tokoe:valid" result="pass"/><test-case name="28683integer_minInclusive004_1551.v tokoe:valid" result="pass"/><test-case name="28684integer_minInclusive005_1552 tokoe:valid" result="pass"/><test-case name="28685integer_minInclusive005_1552.v tokoe:valid" result="pass"/><test-case name="28686integer_minExclusive001_1553 tokoe:valid" result="pass"/><test-case name="28687integer_minExclusive001_1553.i tokoe:invalid" result="pass"/><test-case name="28688integer_minExclusive002_1554 tokoe:valid" result="pass"/><test-case name="28689integer_minExclusive002_1554.i tokoe:invalid" result="pass"/><test-case name="28690integer_minExclusive003_1555 tokoe:valid" result="pass"/><test-case name="28691integer_minExclusive003_1555.v tokoe:valid" result="pass"/><test-case name="28692integer_minExclusive004_1556 tokoe:valid" result="pass"/><test-case name="28693integer_minExclusive004_1556.v tokoe:valid" result="pass"/><test-case name="28694integer_minExclusive005_1557 tokoe:valid" result="pass"/><test-case name="28695integer_minExclusive005_1557.v tokoe:valid" result="pass"/><test-case name="28696integer_totalDigits001_1558 tokoe:valid" result="pass"/><test-case name="28697integer_totalDigits001_1558.i tokoe:invalid" result="pass"/><test-case name="28698integer_totalDigits002_1559 tokoe:valid" result="pass"/><test-case name="28699integer_totalDigits002_1559.v tokoe:valid" result="pass"/><test-case name="28700integer_totalDigits003_1560 tokoe:valid" result="pass"/><test-case name="28701integer_totalDigits003_1560.v tokoe:valid" result="pass"/><test-case name="28702nonPositiveInteger_pattern001_1561 tokoe:valid" result="pass"/><test-case name="28703nonPositiveInteger_pattern001_1561.v tokoe:valid" result="pass"/><test-case name="28704nonPositiveInteger_enumeration001_1562 tokoe:valid" result="pass"/><test-case name="28705nonPositiveInteger_enumeration001_1562.i tokoe:invalid" result="pass"/><test-case name="28706nonPositiveInteger_enumeration002_1563 tokoe:valid" result="pass"/><test-case name="28707nonPositiveInteger_enumeration002_1563.v tokoe:valid" result="pass"/><test-case name="28708nonPositiveInteger_enumeration003_1564 tokoe:valid" result="pass"/><test-case name="28709nonPositiveInteger_enumeration003_1564.i tokoe:invalid" result="pass"/><test-case name="28710nonPositiveInteger_enumeration004_1565 tokoe:valid" result="pass"/><test-case name="28711nonPositiveInteger_enumeration004_1565.v tokoe:valid" result="pass"/><test-case name="28712nonPositiveInteger_maxInclusive001_1566 tokoe:valid" result="pass"/><test-case name="28713nonPositiveInteger_maxInclusive001_1566.v tokoe:valid" result="pass"/><test-case name="28714nonPositiveInteger_maxInclusive002_1567 tokoe:valid" result="pass"/><test-case name="28715nonPositiveInteger_maxInclusive002_1567.i tokoe:invalid" result="pass"/><test-case name="28716nonPositiveInteger_maxInclusive003_1568 tokoe:valid" result="pass"/><test-case name="28717nonPositiveInteger_maxInclusive003_1568.v tokoe:valid" result="pass"/><test-case name="28718nonPositiveInteger_maxExclusive001_1569 tokoe:valid" result="pass"/><test-case name="28719nonPositiveInteger_maxExclusive001_1569.i tokoe:invalid" result="pass"/><test-case name="28720nonPositiveInteger_maxExclusive002_1570 tokoe:valid" result="pass"/><test-case name="28721nonPositiveInteger_maxExclusive002_1570.i tokoe:invalid" result="pass"/><test-case name="28722nonPositiveInteger_maxExclusive003_1571 tokoe:valid" result="pass"/><test-case name="28723nonPositiveInteger_maxExclusive003_1571.v tokoe:valid" result="pass"/><test-case name="28724nonPositiveInteger_minInclusive001_1572 tokoe:valid" result="pass"/><test-case name="28725nonPositiveInteger_minInclusive001_1572.v tokoe:valid" result="pass"/><test-case name="28726nonPositiveInteger_minInclusive002_1573 tokoe:valid" result="pass"/><test-case name="28727nonPositiveInteger_minInclusive002_1573.i tokoe:invalid" result="pass"/><test-case name="28728nonPositiveInteger_minInclusive003_1574 tokoe:valid" result="pass"/><test-case name="28729nonPositiveInteger_minInclusive003_1574.v tokoe:valid" result="pass"/><test-case name="28730nonPositiveInteger_minInclusive004_1575 tokoe:valid" result="pass"/><test-case name="28731nonPositiveInteger_minInclusive004_1575.v tokoe:valid" result="pass"/><test-case name="28732nonPositiveInteger_minInclusive005_1576 tokoe:valid" result="pass"/><test-case name="28733nonPositiveInteger_minInclusive005_1576.v tokoe:valid" result="pass"/><test-case name="28734nonPositiveInteger_minExclusive001_1577 tokoe:valid" result="pass"/><test-case name="28735nonPositiveInteger_minExclusive001_1577.i tokoe:invalid" result="pass"/><test-case name="28736nonPositiveInteger_minExclusive002_1578 tokoe:valid" result="pass"/><test-case name="28737nonPositiveInteger_minExclusive002_1578.i tokoe:invalid" result="pass"/><test-case name="28738nonPositiveInteger_minExclusive003_1579 tokoe:valid" result="pass"/><test-case name="28739nonPositiveInteger_minExclusive003_1579.v tokoe:valid" result="pass"/><test-case name="28740nonPositiveInteger_minExclusive004_1580 tokoe:valid" result="pass"/><test-case name="28741nonPositiveInteger_minExclusive004_1580.v tokoe:valid" result="pass"/><test-case name="28742nonPositiveInteger_minExclusive005_1581 tokoe:valid" result="pass"/><test-case name="28743nonPositiveInteger_minExclusive005_1581.v tokoe:valid" result="pass"/><test-case name="28744nonPositiveInteger_totalDigits001_1582 tokoe:valid" result="pass"/><test-case name="28745nonPositiveInteger_totalDigits001_1582.i tokoe:invalid" result="pass"/><test-case name="28746nonPositiveInteger_totalDigits002_1583 tokoe:valid" result="pass"/><test-case name="28747nonPositiveInteger_totalDigits002_1583.v tokoe:valid" result="pass"/><test-case name="28748nonPositiveInteger_totalDigits003_1584 tokoe:valid" result="pass"/><test-case name="28749nonPositiveInteger_totalDigits003_1584.v tokoe:valid" result="pass"/><test-case name="28750negativeInteger_pattern001_1585 tokoe:valid" result="pass"/><test-case name="28751negativeInteger_pattern001_1585.v tokoe:valid" result="pass"/><test-case name="28752negativeInteger_enumeration001_1586 tokoe:valid" result="pass"/><test-case name="28753negativeInteger_enumeration001_1586.i tokoe:invalid" result="pass"/><test-case name="28754negativeInteger_enumeration002_1587 tokoe:valid" result="pass"/><test-case name="28755negativeInteger_enumeration002_1587.v tokoe:valid" result="pass"/><test-case name="28756negativeInteger_enumeration003_1588 tokoe:valid" result="pass"/><test-case name="28757negativeInteger_enumeration003_1588.i tokoe:invalid" result="pass"/><test-case name="28758negativeInteger_enumeration004_1589 tokoe:valid" result="pass"/><test-case name="28759negativeInteger_enumeration004_1589.v tokoe:valid" result="pass"/><test-case name="28760negativeInteger_maxInclusive001_1590 tokoe:valid" result="pass"/><test-case name="28761negativeInteger_maxInclusive001_1590.v tokoe:valid" result="pass"/><test-case name="28762negativeInteger_maxInclusive002_1591 tokoe:valid" result="pass"/><test-case name="28763negativeInteger_maxInclusive002_1591.i tokoe:invalid" result="pass"/><test-case name="28764negativeInteger_maxInclusive003_1592 tokoe:valid" result="pass"/><test-case name="28765negativeInteger_maxInclusive003_1592.v tokoe:valid" result="pass"/><test-case name="28766negativeInteger_maxExclusive001_1593 tokoe:valid" result="pass"/><test-case name="28767negativeInteger_maxExclusive001_1593.i tokoe:invalid" result="pass"/><test-case name="28768negativeInteger_maxExclusive002_1594 tokoe:valid" result="pass"/><test-case name="28769negativeInteger_maxExclusive002_1594.i tokoe:invalid" result="pass"/><test-case name="28770negativeInteger_maxExclusive003_1595 tokoe:valid" result="pass"/><test-case name="28771negativeInteger_maxExclusive003_1595.v tokoe:valid" result="pass"/><test-case name="28772negativeInteger_minInclusive001_1596 tokoe:valid" result="pass"/><test-case name="28773negativeInteger_minInclusive001_1596.v tokoe:valid" result="pass"/><test-case name="28774negativeInteger_minInclusive002_1597 tokoe:valid" result="pass"/><test-case name="28775negativeInteger_minInclusive002_1597.i tokoe:invalid" result="pass"/><test-case name="28776negativeInteger_minInclusive003_1598 tokoe:valid" result="pass"/><test-case name="28777negativeInteger_minInclusive003_1598.v tokoe:valid" result="pass"/><test-case name="28778negativeInteger_minInclusive004_1599 tokoe:valid" result="pass"/><test-case name="28779negativeInteger_minInclusive004_1599.v tokoe:valid" result="pass"/><test-case name="28780negativeInteger_minInclusive005_1600 tokoe:valid" result="pass"/><test-case name="28781negativeInteger_minInclusive005_1600.v tokoe:valid" result="pass"/><test-case name="28782negativeInteger_minExclusive001_1601 tokoe:valid" result="pass"/><test-case name="28783negativeInteger_minExclusive001_1601.i tokoe:invalid" result="pass"/><test-case name="28784negativeInteger_minExclusive002_1602 tokoe:valid" result="pass"/><test-case name="28785negativeInteger_minExclusive002_1602.i tokoe:invalid" result="pass"/><test-case name="28786negativeInteger_minExclusive003_1603 tokoe:valid" result="pass"/><test-case name="28787negativeInteger_minExclusive003_1603.v tokoe:valid" result="pass"/><test-case name="28788negativeInteger_minExclusive004_1604 tokoe:valid" result="pass"/><test-case name="28789negativeInteger_minExclusive004_1604.v tokoe:valid" result="pass"/><test-case name="28790negativeInteger_minExclusive005_1605 tokoe:valid" result="pass"/><test-case name="28791negativeInteger_minExclusive005_1605.v tokoe:valid" result="pass"/><test-case name="28792negativeInteger_totalDigits001_1606 tokoe:valid" result="pass"/><test-case name="28793negativeInteger_totalDigits001_1606.i tokoe:invalid" result="pass"/><test-case name="28794negativeInteger_totalDigits002_1607 tokoe:valid" result="pass"/><test-case name="28795negativeInteger_totalDigits002_1607.v tokoe:valid" result="pass"/><test-case name="28796negativeInteger_totalDigits003_1608 tokoe:valid" result="pass"/><test-case name="28797negativeInteger_totalDigits003_1608.v tokoe:valid" result="pass"/><test-case name="28798long_pattern001_1609 tokoe:valid" result="pass"/><test-case name="28799long_pattern001_1609.v tokoe:valid" result="pass"/><test-case name="28800long_enumeration001_1610 tokoe:valid" result="pass"/><test-case name="28801long_enumeration001_1610.i tokoe:invalid" result="pass"/><test-case name="28802long_enumeration002_1611 tokoe:valid" result="pass"/><test-case name="28803long_enumeration002_1611.v tokoe:valid" result="pass"/><test-case name="28804long_enumeration003_1612 tokoe:valid" result="pass"/><test-case name="28805long_enumeration003_1612.i tokoe:invalid" result="pass"/><test-case name="28806long_enumeration004_1613 tokoe:valid" result="pass"/><test-case name="28807long_enumeration004_1613.v tokoe:valid" result="pass"/><test-case name="28808long_maxInclusive001_1614 tokoe:valid" result="pass"/><test-case name="28809long_maxInclusive001_1614.v tokoe:valid" result="pass"/><test-case name="28810long_maxInclusive002_1615 tokoe:valid" result="pass"/><test-case name="28811long_maxInclusive002_1615.i tokoe:invalid" result="pass"/><test-case name="28812long_maxInclusive003_1616 tokoe:valid" result="pass"/><test-case name="28813long_maxInclusive003_1616.v tokoe:valid" result="pass"/><test-case name="28814long_maxExclusive001_1617 tokoe:valid" result="pass"/><test-case name="28815long_maxExclusive001_1617.i tokoe:invalid" result="pass"/><test-case name="28816long_maxExclusive002_1618 tokoe:valid" result="pass"/><test-case name="28817long_maxExclusive002_1618.i tokoe:invalid" result="pass"/><test-case name="28818long_maxExclusive003_1619 tokoe:valid" result="pass"/><test-case name="28819long_maxExclusive003_1619.v tokoe:valid" result="pass"/><test-case name="28820long_minInclusive001_1620 tokoe:valid" result="pass"/><test-case name="28821long_minInclusive001_1620.v tokoe:valid" result="pass"/><test-case name="28822long_minInclusive002_1621 tokoe:valid" result="pass"/><test-case name="28823long_minInclusive002_1621.i tokoe:invalid" result="pass"/><test-case name="28824long_minInclusive003_1622 tokoe:valid" result="pass"/><test-case name="28825long_minInclusive003_1622.v tokoe:valid" result="pass"/><test-case name="28826long_minInclusive004_1623 tokoe:valid" result="pass"/><test-case name="28827long_minInclusive004_1623.v tokoe:valid" result="pass"/><test-case name="28828long_minInclusive005_1624 tokoe:valid" result="pass"/><test-case name="28829long_minInclusive005_1624.v tokoe:valid" result="pass"/><test-case name="28830long_minExclusive001_1625 tokoe:valid" result="pass"/><test-case name="28831long_minExclusive001_1625.i tokoe:invalid" result="pass"/><test-case name="28832long_minExclusive002_1626 tokoe:valid" result="pass"/><test-case name="28833long_minExclusive002_1626.i tokoe:invalid" result="pass"/><test-case name="28834long_minExclusive003_1627 tokoe:valid" result="pass"/><test-case name="28835long_minExclusive003_1627.v tokoe:valid" result="pass"/><test-case name="28836long_minExclusive004_1628 tokoe:valid" result="pass"/><test-case name="28837long_minExclusive004_1628.v tokoe:valid" result="pass"/><test-case name="28838long_minExclusive005_1629 tokoe:valid" result="pass"/><test-case name="28839long_minExclusive005_1629.v tokoe:valid" result="pass"/><test-case name="28840long_totalDigits001_1630 tokoe:valid" result="pass"/><test-case name="28841long_totalDigits001_1630.i tokoe:invalid" result="pass"/><test-case name="28842long_totalDigits002_1631 tokoe:valid" result="pass"/><test-case name="28843long_totalDigits002_1631.v tokoe:valid" result="pass"/><test-case name="28844long_totalDigits003_1632 tokoe:valid" result="pass"/><test-case name="28845long_totalDigits003_1632.v tokoe:valid" result="pass"/><test-case name="28846int_pattern001_1633 tokoe:valid" result="pass"/><test-case name="28847int_pattern001_1633.v tokoe:valid" result="pass"/><test-case name="28848int_enumeration001_1634 tokoe:valid" result="pass"/><test-case name="28849int_enumeration001_1634.i tokoe:invalid" result="pass"/><test-case name="28850int_enumeration002_1635 tokoe:valid" result="pass"/><test-case name="28851int_enumeration002_1635.v tokoe:valid" result="pass"/><test-case name="28852int_enumeration003_1636 tokoe:valid" result="pass"/><test-case name="28853int_enumeration003_1636.i tokoe:invalid" result="pass"/><test-case name="28854int_enumeration004_1637 tokoe:valid" result="pass"/><test-case name="28855int_enumeration004_1637.v tokoe:valid" result="pass"/><test-case name="28856int_maxInclusive001_1638 tokoe:valid" result="pass"/><test-case name="28857int_maxInclusive001_1638.v tokoe:valid" result="pass"/><test-case name="28858int_maxInclusive002_1639 tokoe:valid" result="pass"/><test-case name="28859int_maxInclusive002_1639.i tokoe:invalid" result="pass"/><test-case name="28860int_maxInclusive003_1640 tokoe:valid" result="pass"/><test-case name="28861int_maxInclusive003_1640.v tokoe:valid" result="pass"/><test-case name="28862int_maxExclusive001_1641 tokoe:valid" result="pass"/><test-case name="28863int_maxExclusive001_1641.i tokoe:invalid" result="pass"/><test-case name="28864int_maxExclusive002_1642 tokoe:valid" result="pass"/><test-case name="28865int_maxExclusive002_1642.i tokoe:invalid" result="pass"/><test-case name="28866int_maxExclusive003_1643 tokoe:valid" result="pass"/><test-case name="28867int_maxExclusive003_1643.v tokoe:valid" result="pass"/><test-case name="28868int_minInclusive001_1644 tokoe:valid" result="pass"/><test-case name="28869int_minInclusive001_1644.v tokoe:valid" result="pass"/><test-case name="28870int_minInclusive002_1645 tokoe:valid" result="pass"/><test-case name="28871int_minInclusive002_1645.i tokoe:invalid" result="pass"/><test-case name="28872int_minInclusive003_1646 tokoe:valid" result="pass"/><test-case name="28873int_minInclusive003_1646.v tokoe:valid" result="pass"/><test-case name="28874int_minInclusive004_1647 tokoe:valid" result="pass"/><test-case name="28875int_minInclusive004_1647.v tokoe:valid" result="pass"/><test-case name="28876int_minInclusive005_1648 tokoe:valid" result="pass"/><test-case name="28877int_minInclusive005_1648.v tokoe:valid" result="pass"/><test-case name="28878int_minExclusive001_1649 tokoe:valid" result="pass"/><test-case name="28879int_minExclusive001_1649.i tokoe:invalid" result="pass"/><test-case name="28880int_minExclusive002_1650 tokoe:valid" result="pass"/><test-case name="28881int_minExclusive002_1650.i tokoe:invalid" result="pass"/><test-case name="28882int_minExclusive003_1651 tokoe:valid" result="pass"/><test-case name="28883int_minExclusive003_1651.v tokoe:valid" result="pass"/><test-case name="28884int_minExclusive004_1652 tokoe:valid" result="pass"/><test-case name="28885int_minExclusive004_1652.v tokoe:valid" result="pass"/><test-case name="28886int_minExclusive005_1653 tokoe:valid" result="pass"/><test-case name="28887int_minExclusive005_1653.v tokoe:valid" result="pass"/><test-case name="28888int_totalDigits001_1654 tokoe:valid" result="pass"/><test-case name="28889int_totalDigits001_1654.i tokoe:invalid" result="pass"/><test-case name="28890int_totalDigits002_1655 tokoe:valid" result="pass"/><test-case name="28891int_totalDigits002_1655.v tokoe:valid" result="pass"/><test-case name="28892int_totalDigits003_1656 tokoe:valid" result="pass"/><test-case name="28893int_totalDigits003_1656.v tokoe:valid" result="pass"/><test-case name="28894test111092_1657 tokoe:valid" result="pass"/><test-case name="28895test111092_1657.i tokoe:invalid" result="pass"/><test-case name="28896short_pattern001_1658 tokoe:valid" result="pass"/><test-case name="28897short_pattern001_1658.v tokoe:valid" result="pass"/><test-case name="28898short_enumeration001_1659 tokoe:valid" result="pass"/><test-case name="28899short_enumeration001_1659.i tokoe:invalid" result="pass"/><test-case name="28900short_enumeration002_1660 tokoe:valid" result="pass"/><test-case name="28901short_enumeration002_1660.v tokoe:valid" result="pass"/><test-case name="28902short_enumeration003_1661 tokoe:valid" result="pass"/><test-case name="28903short_enumeration003_1661.i tokoe:invalid" result="pass"/><test-case name="28904short_enumeration004_1662 tokoe:valid" result="pass"/><test-case name="28905short_enumeration004_1662.v tokoe:valid" result="pass"/><test-case name="28906short_maxInclusive001_1663 tokoe:valid" result="pass"/><test-case name="28907short_maxInclusive001_1663.v tokoe:valid" result="pass"/><test-case name="28908short_maxInclusive002_1664 tokoe:valid" result="pass"/><test-case name="28909short_maxInclusive002_1664.i tokoe:invalid" result="pass"/><test-case name="28910short_maxInclusive003_1665 tokoe:valid" result="pass"/><test-case name="28911short_maxInclusive003_1665.v tokoe:valid" result="pass"/><test-case name="28912short_maxExclusive001_1666 tokoe:valid" result="pass"/><test-case name="28913short_maxExclusive001_1666.i tokoe:invalid" result="pass"/><test-case name="28914short_maxExclusive002_1667 tokoe:valid" result="pass"/><test-case name="28915short_maxExclusive002_1667.i tokoe:invalid" result="pass"/><test-case name="28916short_maxExclusive003_1668 tokoe:valid" result="pass"/><test-case name="28917short_maxExclusive003_1668.v tokoe:valid" result="pass"/><test-case name="28918short_minInclusive001_1669 tokoe:valid" result="pass"/><test-case name="28919short_minInclusive001_1669.v tokoe:valid" result="pass"/><test-case name="28920short_minInclusive002_1670 tokoe:valid" result="pass"/><test-case name="28921short_minInclusive002_1670.i tokoe:invalid" result="pass"/><test-case name="28922short_minInclusive003_1671 tokoe:valid" result="pass"/><test-case name="28923short_minInclusive003_1671.v tokoe:valid" result="pass"/><test-case name="28924short_minInclusive004_1672 tokoe:valid" result="pass"/><test-case name="28925short_minInclusive004_1672.v tokoe:valid" result="pass"/><test-case name="28926short_minInclusive005_1673 tokoe:valid" result="pass"/><test-case name="28927short_minInclusive005_1673.v tokoe:valid" result="pass"/><test-case name="28928short_minExclusive001_1674 tokoe:valid" result="pass"/><test-case name="28929short_minExclusive001_1674.i tokoe:invalid" result="pass"/><test-case name="28930short_minExclusive002_1675 tokoe:valid" result="pass"/><test-case name="28931short_minExclusive002_1675.i tokoe:invalid" result="pass"/><test-case name="28932short_minExclusive003_1676 tokoe:valid" result="pass"/><test-case name="28933short_minExclusive003_1676.v tokoe:valid" result="pass"/><test-case name="28934short_minExclusive004_1677 tokoe:valid" result="pass"/><test-case name="28935short_minExclusive004_1677.v tokoe:valid" result="pass"/><test-case name="28936short_minExclusive005_1678 tokoe:valid" result="pass"/><test-case name="28937short_minExclusive005_1678.v tokoe:valid" result="pass"/><test-case name="28938short_totalDigits001_1679 tokoe:valid" result="pass"/><test-case name="28939short_totalDigits001_1679.i tokoe:invalid" result="pass"/><test-case name="28940short_totalDigits002_1680 tokoe:valid" result="pass"/><test-case name="28941short_totalDigits002_1680.v tokoe:valid" result="pass"/><test-case name="28942short_totalDigits003_1681 tokoe:valid" result="pass"/><test-case name="28943short_totalDigits003_1681.v tokoe:valid" result="pass"/><test-case name="28944byte_pattern001_1682 tokoe:valid" result="pass"/><test-case name="28945byte_pattern001_1682.v tokoe:valid" result="pass"/><test-case name="28946byte_enumeration001_1683 tokoe:valid" result="pass"/><test-case name="28947byte_enumeration001_1683.i tokoe:invalid" result="pass"/><test-case name="28948byte_enumeration002_1684 tokoe:valid" result="pass"/><test-case name="28949byte_enumeration002_1684.v tokoe:valid" result="pass"/><test-case name="28950byte_enumeration003_1685 tokoe:valid" result="pass"/><test-case name="28951byte_enumeration003_1685.i tokoe:invalid" result="pass"/><test-case name="28952byte_enumeration004_1686 tokoe:valid" result="pass"/><test-case name="28953byte_enumeration004_1686.v tokoe:valid" result="pass"/><test-case name="28954byte_maxInclusive001_1687 tokoe:valid" result="pass"/><test-case name="28955byte_maxInclusive001_1687.v tokoe:valid" result="pass"/><test-case name="28956byte_maxInclusive002_1688 tokoe:valid" result="pass"/><test-case name="28957byte_maxInclusive002_1688.i tokoe:invalid" result="pass"/><test-case name="28958byte_maxInclusive003_1689 tokoe:valid" result="pass"/><test-case name="28959byte_maxInclusive003_1689.v tokoe:valid" result="pass"/><test-case name="28960byte_maxExclusive001_1690 tokoe:valid" result="pass"/><test-case name="28961byte_maxExclusive001_1690.i tokoe:invalid" result="pass"/><test-case name="28962byte_maxExclusive002_1691 tokoe:valid" result="pass"/><test-case name="28963byte_maxExclusive002_1691.i tokoe:invalid" result="pass"/><test-case name="28964byte_maxExclusive003_1692 tokoe:valid" result="pass"/><test-case name="28965byte_maxExclusive003_1692.v tokoe:valid" result="pass"/><test-case name="28966byte_minInclusive001_1693 tokoe:valid" result="pass"/><test-case name="28967byte_minInclusive001_1693.v tokoe:valid" result="pass"/><test-case name="28968byte_minInclusive002_1694 tokoe:valid" result="pass"/><test-case name="28969byte_minInclusive002_1694.i tokoe:invalid" result="pass"/><test-case name="28970byte_minInclusive003_1695 tokoe:valid" result="pass"/><test-case name="28971byte_minInclusive003_1695.v tokoe:valid" result="pass"/><test-case name="28972byte_minInclusive004_1696 tokoe:valid" result="pass"/><test-case name="28973byte_minInclusive004_1696.v tokoe:valid" result="pass"/><test-case name="28974byte_minInclusive005_1697 tokoe:valid" result="pass"/><test-case name="28975byte_minInclusive005_1697.v tokoe:valid" result="pass"/><test-case name="28976byte_minExclusive001_1698 tokoe:valid" result="pass"/><test-case name="28977byte_minExclusive001_1698.i tokoe:invalid" result="pass"/><test-case name="28978byte_minExclusive002_1699 tokoe:valid" result="pass"/><test-case name="28979byte_minExclusive002_1699.i tokoe:invalid" result="pass"/><test-case name="28980byte_minExclusive003_1700 tokoe:valid" result="pass"/><test-case name="28981byte_minExclusive003_1700.v tokoe:valid" result="pass"/><test-case name="28982byte_minExclusive004_1701 tokoe:valid" result="pass"/><test-case name="28983byte_minExclusive004_1701.v tokoe:valid" result="pass"/><test-case name="28984byte_minExclusive005_1702 tokoe:valid" result="pass"/><test-case name="28985byte_minExclusive005_1702.v tokoe:valid" result="pass"/><test-case name="28986byte_totalDigits001_1703 tokoe:valid" result="pass"/><test-case name="28987byte_totalDigits001_1703.i tokoe:invalid" result="pass"/><test-case name="28988byte_totalDigits002_1704 tokoe:valid" result="pass"/><test-case name="28989byte_totalDigits002_1704.v tokoe:valid" result="pass"/><test-case name="28990byte_totalDigits003_1705 tokoe:valid" result="pass"/><test-case name="28991byte_totalDigits003_1705.v tokoe:valid" result="pass"/><test-case name="28992nonNegativeInteger_pattern001_1706 tokoe:valid" result="pass"/><test-case name="28993nonNegativeInteger_pattern001_1706.v tokoe:valid" result="pass"/><test-case name="28994nonNegativeInteger_enumeration001_1707 tokoe:valid" result="pass"/><test-case name="28995nonNegativeInteger_enumeration001_1707.i tokoe:invalid" result="pass"/><test-case name="28996nonNegativeInteger_enumeration002_1708 tokoe:valid" result="pass"/><test-case name="28997nonNegativeInteger_enumeration002_1708.v tokoe:valid" result="pass"/><test-case name="28998nonNegativeInteger_enumeration003_1709 tokoe:valid" result="pass"/><test-case name="28999nonNegativeInteger_enumeration003_1709.i tokoe:invalid" result="pass"/><test-case name="29000nonNegativeInteger_enumeration004_1710 tokoe:valid" result="pass"/><test-case name="29001nonNegativeInteger_enumeration004_1710.v tokoe:valid" result="pass"/><test-case name="29002nonNegativeInteger_maxInclusive001_1711 tokoe:valid" result="pass"/><test-case name="29003nonNegativeInteger_maxInclusive001_1711.v tokoe:valid" result="pass"/><test-case name="29004nonNegativeInteger_maxInclusive002_1712 tokoe:valid" result="pass"/><test-case name="29005nonNegativeInteger_maxInclusive002_1712.i tokoe:invalid" result="pass"/><test-case name="29006nonNegativeInteger_maxInclusive003_1713 tokoe:valid" result="pass"/><test-case name="29007nonNegativeInteger_maxInclusive003_1713.v tokoe:valid" result="pass"/><test-case name="29008nonNegativeInteger_maxExclusive001_1714 tokoe:valid" result="pass"/><test-case name="29009nonNegativeInteger_maxExclusive001_1714.i tokoe:invalid" result="pass"/><test-case name="29010nonNegativeInteger_maxExclusive002_1715 tokoe:valid" result="pass"/><test-case name="29011nonNegativeInteger_maxExclusive002_1715.i tokoe:invalid" result="pass"/><test-case name="29012nonNegativeInteger_maxExclusive003_1716 tokoe:valid" result="pass"/><test-case name="29013nonNegativeInteger_maxExclusive003_1716.v tokoe:valid" result="pass"/><test-case name="29014nonNegativeInteger_minInclusive001_1717 tokoe:valid" result="pass"/><test-case name="29015nonNegativeInteger_minInclusive001_1717.v tokoe:valid" result="pass"/><test-case name="29016nonNegativeInteger_minInclusive002_1718 tokoe:valid" result="pass"/><test-case name="29017nonNegativeInteger_minInclusive002_1718.i tokoe:invalid" result="pass"/><test-case name="29018nonNegativeInteger_minInclusive003_1719 tokoe:valid" result="pass"/><test-case name="29019nonNegativeInteger_minInclusive003_1719.v tokoe:valid" result="pass"/><test-case name="29020nonNegativeInteger_minInclusive004_1720 tokoe:valid" result="pass"/><test-case name="29021nonNegativeInteger_minInclusive004_1720.v tokoe:valid" result="pass"/><test-case name="29022nonNegativeInteger_minInclusive005_1721 tokoe:valid" result="pass"/><test-case name="29023nonNegativeInteger_minInclusive005_1721.v tokoe:valid" result="pass"/><test-case name="29024nonNegativeInteger_minExclusive001_1722 tokoe:valid" result="pass"/><test-case name="29025nonNegativeInteger_minExclusive001_1722.i tokoe:invalid" result="pass"/><test-case name="29026nonNegativeInteger_minExclusive002_1723 tokoe:valid" result="pass"/><test-case name="29027nonNegativeInteger_minExclusive002_1723.i tokoe:invalid" result="pass"/><test-case name="29028nonNegativeInteger_minExclusive003_1724 tokoe:valid" result="pass"/><test-case name="29029nonNegativeInteger_minExclusive003_1724.v tokoe:valid" result="pass"/><test-case name="29030nonNegativeInteger_minExclusive004_1725 tokoe:valid" result="pass"/><test-case name="29031nonNegativeInteger_minExclusive004_1725.v tokoe:valid" result="pass"/><test-case name="29032nonNegativeInteger_minExclusive005_1726 tokoe:valid" result="pass"/><test-case name="29033nonNegativeInteger_minExclusive005_1726.v tokoe:valid" result="pass"/><test-case name="29034nonNegativeInteger_totalDigits001_1727 tokoe:valid" result="pass"/><test-case name="29035nonNegativeInteger_totalDigits001_1727.i tokoe:invalid" result="pass"/><test-case name="29036nonNegativeInteger_totalDigits002_1728 tokoe:valid" result="pass"/><test-case name="29037nonNegativeInteger_totalDigits002_1728.v tokoe:valid" result="pass"/><test-case name="29038nonNegativeInteger_totalDigits003_1729 tokoe:valid" result="pass"/><test-case name="29039nonNegativeInteger_totalDigits003_1729.v tokoe:valid" result="pass"/><test-case name="29040unsignedLong_pattern001_1730 tokoe:valid" result="pass"/><test-case name="29041unsignedLong_pattern001_1730.v tokoe:valid" result="pass"/><test-case name="29042unsignedLong_enumeration001_1731 tokoe:valid" result="pass"/><test-case name="29043unsignedLong_enumeration001_1731.i tokoe:invalid" result="pass"/><test-case name="29044unsignedLong_enumeration002_1732 tokoe:valid" result="pass"/><test-case name="29045unsignedLong_enumeration002_1732.v tokoe:valid" result="pass"/><test-case name="29046unsignedLong_enumeration003_1733 tokoe:valid" result="pass"/><test-case name="29047unsignedLong_enumeration003_1733.i tokoe:invalid" result="pass"/><test-case name="29048unsignedLong_enumeration004_1734 tokoe:valid" result="pass"/><test-case name="29049unsignedLong_enumeration004_1734.v tokoe:valid" result="pass"/><test-case name="29050unsignedLong_maxInclusive001_1735 tokoe:valid" result="pass"/><test-case name="29051unsignedLong_maxInclusive001_1735.v tokoe:valid" result="pass"/><test-case name="29052unsignedLong_maxInclusive002_1736 tokoe:valid" result="pass"/><test-case name="29053unsignedLong_maxInclusive002_1736.i tokoe:invalid" result="pass"/><test-case name="29054unsignedLong_maxInclusive003_1737 tokoe:valid" result="pass"/><test-case name="29055unsignedLong_maxInclusive003_1737.v tokoe:valid" result="pass"/><test-case name="29056unsignedLong_maxExclusive001_1738 tokoe:valid" result="pass"/><test-case name="29057unsignedLong_maxExclusive001_1738.i tokoe:invalid" result="pass"/><test-case name="29058unsignedLong_maxExclusive002_1739 tokoe:valid" result="pass"/><test-case name="29059unsignedLong_maxExclusive002_1739.i tokoe:invalid" result="pass"/><test-case name="29060unsignedLong_maxExclusive003_1740 tokoe:valid" result="pass"/><test-case name="29061unsignedLong_maxExclusive003_1740.v tokoe:valid" result="pass"/><test-case name="29062unsignedLong_minInclusive001_1741 tokoe:valid" result="pass"/><test-case name="29063unsignedLong_minInclusive001_1741.v tokoe:valid" result="pass"/><test-case name="29064unsignedLong_minInclusive002_1742 tokoe:valid" result="pass"/><test-case name="29065unsignedLong_minInclusive002_1742.i tokoe:invalid" result="pass"/><test-case name="29066unsignedLong_minInclusive003_1743 tokoe:valid" result="pass"/><test-case name="29067unsignedLong_minInclusive003_1743.v tokoe:valid" result="pass"/><test-case name="29068unsignedLong_minInclusive004_1744 tokoe:valid" result="pass"/><test-case name="29069unsignedLong_minInclusive004_1744.v tokoe:valid" result="pass"/><test-case name="29070unsignedLong_minInclusive005_1745 tokoe:valid" result="pass"/><test-case name="29071unsignedLong_minInclusive005_1745.v tokoe:valid" result="pass"/><test-case name="29072unsignedLong_minExclusive001_1746 tokoe:valid" result="pass"/><test-case name="29073unsignedLong_minExclusive001_1746.i tokoe:invalid" result="pass"/><test-case name="29074unsignedLong_minExclusive002_1747 tokoe:valid" result="pass"/><test-case name="29075unsignedLong_minExclusive002_1747.i tokoe:invalid" result="pass"/><test-case name="29076unsignedLong_minExclusive003_1748 tokoe:valid" result="pass"/><test-case name="29077unsignedLong_minExclusive003_1748.v tokoe:valid" result="pass"/><test-case name="29078unsignedLong_minExclusive004_1749 tokoe:valid" result="pass"/><test-case name="29079unsignedLong_minExclusive004_1749.v tokoe:valid" result="pass"/><test-case name="29080unsignedLong_minExclusive005_1750 tokoe:valid" result="pass"/><test-case name="29081unsignedLong_minExclusive005_1750.v tokoe:valid" result="pass"/><test-case name="29082unsignedLong_totalDigits001_1751 tokoe:valid" result="pass"/><test-case name="29083unsignedLong_totalDigits001_1751.i tokoe:invalid" result="pass"/><test-case name="29084unsignedLong_totalDigits002_1752 tokoe:valid" result="pass"/><test-case name="29085unsignedLong_totalDigits002_1752.v tokoe:valid" result="pass"/><test-case name="29086unsignedLong_totalDigits003_1753 tokoe:valid" result="pass"/><test-case name="29087unsignedLong_totalDigits003_1753.v tokoe:valid" result="pass"/><test-case name="29088unsignedInt_pattern001_1754 tokoe:valid" result="pass"/><test-case name="29089unsignedInt_pattern001_1754.v tokoe:valid" result="pass"/><test-case name="29090unsignedInt_enumeration001_1755 tokoe:valid" result="pass"/><test-case name="29091unsignedInt_enumeration001_1755.i tokoe:invalid" result="pass"/><test-case name="29092unsignedInt_enumeration002_1756 tokoe:valid" result="pass"/><test-case name="29093unsignedInt_enumeration002_1756.v tokoe:valid" result="pass"/><test-case name="29094unsignedInt_enumeration003_1757 tokoe:valid" result="pass"/><test-case name="29095unsignedInt_enumeration003_1757.i tokoe:invalid" result="pass"/><test-case name="29096unsignedInt_enumeration004_1758 tokoe:valid" result="pass"/><test-case name="29097unsignedInt_enumeration004_1758.v tokoe:valid" result="pass"/><test-case name="29098unsignedInt_maxInclusive001_1759 tokoe:valid" result="pass"/><test-case name="29099unsignedInt_maxInclusive001_1759.v tokoe:valid" result="pass"/><test-case name="29100unsignedInt_maxInclusive002_1760 tokoe:valid" result="pass"/><test-case name="29101unsignedInt_maxInclusive002_1760.i tokoe:invalid" result="pass"/><test-case name="29102unsignedInt_maxInclusive003_1761 tokoe:valid" result="pass"/><test-case name="29103unsignedInt_maxInclusive003_1761.v tokoe:valid" result="pass"/><test-case name="29104unsignedInt_maxExclusive001_1762 tokoe:valid" result="pass"/><test-case name="29105unsignedInt_maxExclusive001_1762.i tokoe:invalid" result="pass"/><test-case name="29106unsignedInt_maxExclusive002_1763 tokoe:valid" result="pass"/><test-case name="29107unsignedInt_maxExclusive002_1763.i tokoe:invalid" result="pass"/><test-case name="29108unsignedInt_maxExclusive003_1764 tokoe:valid" result="pass"/><test-case name="29109unsignedInt_maxExclusive003_1764.v tokoe:valid" result="pass"/><test-case name="29110unsignedInt_minInclusive001_1765 tokoe:valid" result="pass"/><test-case name="29111unsignedInt_minInclusive001_1765.v tokoe:valid" result="pass"/><test-case name="29112unsignedInt_minInclusive002_1766 tokoe:valid" result="pass"/><test-case name="29113unsignedInt_minInclusive002_1766.i tokoe:invalid" result="pass"/><test-case name="29114unsignedInt_minInclusive003_1767 tokoe:valid" result="pass"/><test-case name="29115unsignedInt_minInclusive003_1767.v tokoe:valid" result="pass"/><test-case name="29116unsignedInt_minInclusive004_1768 tokoe:valid" result="pass"/><test-case name="29117unsignedInt_minInclusive004_1768.v tokoe:valid" result="pass"/><test-case name="29118unsignedInt_minInclusive005_1769 tokoe:valid" result="pass"/><test-case name="29119unsignedInt_minInclusive005_1769.v tokoe:valid" result="pass"/><test-case name="29120unsignedInt_minExclusive001_1770 tokoe:valid" result="pass"/><test-case name="29121unsignedInt_minExclusive001_1770.i tokoe:invalid" result="pass"/><test-case name="29122unsignedInt_minExclusive002_1771 tokoe:valid" result="pass"/><test-case name="29123unsignedInt_minExclusive002_1771.i tokoe:invalid" result="pass"/><test-case name="29124unsignedInt_minExclusive003_1772 tokoe:valid" result="pass"/><test-case name="29125unsignedInt_minExclusive003_1772.v tokoe:valid" result="pass"/><test-case name="29126unsignedInt_minExclusive004_1773 tokoe:valid" result="pass"/><test-case name="29127unsignedInt_minExclusive004_1773.v tokoe:valid" result="pass"/><test-case name="29128unsignedInt_minExclusive005_1774 tokoe:valid" result="pass"/><test-case name="29129unsignedInt_minExclusive005_1774.v tokoe:valid" result="pass"/><test-case name="29130unsignedInt_totalDigits001_1775 tokoe:valid" result="pass"/><test-case name="29131unsignedInt_totalDigits001_1775.i tokoe:invalid" result="pass"/><test-case name="29132unsignedInt_totalDigits002_1776 tokoe:valid" result="pass"/><test-case name="29133unsignedInt_totalDigits002_1776.v tokoe:valid" result="pass"/><test-case name="29134unsignedInt_totalDigits003_1777 tokoe:valid" result="pass"/><test-case name="29135unsignedInt_totalDigits003_1777.v tokoe:valid" result="pass"/><test-case name="29136unsignedShort_pattern001_1778 tokoe:valid" result="pass"/><test-case name="29137unsignedShort_pattern001_1778.v tokoe:valid" result="pass"/><test-case name="29138unsignedShort_enumeration001_1779 tokoe:valid" result="pass"/><test-case name="29139unsignedShort_enumeration001_1779.i tokoe:invalid" result="pass"/><test-case name="29140unsignedShort_enumeration002_1780 tokoe:valid" result="pass"/><test-case name="29141unsignedShort_enumeration002_1780.v tokoe:valid" result="pass"/><test-case name="29142unsignedShort_enumeration003_1781 tokoe:valid" result="pass"/><test-case name="29143unsignedShort_enumeration003_1781.i tokoe:invalid" result="pass"/><test-case name="29144unsignedShort_enumeration004_1782 tokoe:valid" result="pass"/><test-case name="29145unsignedShort_enumeration004_1782.v tokoe:valid" result="pass"/><test-case name="29146unsignedShort_maxInclusive001_1783 tokoe:valid" result="pass"/><test-case name="29147unsignedShort_maxInclusive001_1783.v tokoe:valid" result="pass"/><test-case name="29148unsignedShort_maxInclusive002_1784 tokoe:valid" result="pass"/><test-case name="29149unsignedShort_maxInclusive002_1784.i tokoe:invalid" result="pass"/><test-case name="29150unsignedShort_maxInclusive003_1785 tokoe:valid" result="pass"/><test-case name="29151unsignedShort_maxInclusive003_1785.v tokoe:valid" result="pass"/><test-case name="29152unsignedShort_maxExclusive001_1786 tokoe:valid" result="pass"/><test-case name="29153unsignedShort_maxExclusive001_1786.i tokoe:invalid" result="pass"/><test-case name="29154unsignedShort_maxExclusive002_1787 tokoe:valid" result="pass"/><test-case name="29155unsignedShort_maxExclusive002_1787.i tokoe:invalid" result="pass"/><test-case name="29156unsignedShort_maxExclusive003_1788 tokoe:valid" result="pass"/><test-case name="29157unsignedShort_maxExclusive003_1788.v tokoe:valid" result="pass"/><test-case name="29158unsignedShort_minInclusive001_1789 tokoe:valid" result="pass"/><test-case name="29159unsignedShort_minInclusive001_1789.v tokoe:valid" result="pass"/><test-case name="29160unsignedShort_minInclusive002_1790 tokoe:valid" result="pass"/><test-case name="29161unsignedShort_minInclusive002_1790.i tokoe:invalid" result="pass"/><test-case name="29162unsignedShort_minInclusive003_1791 tokoe:valid" result="pass"/><test-case name="29163unsignedShort_minInclusive003_1791.v tokoe:valid" result="pass"/><test-case name="29164unsignedShort_minInclusive004_1792 tokoe:valid" result="pass"/><test-case name="29165unsignedShort_minInclusive004_1792.v tokoe:valid" result="pass"/><test-case name="29166unsignedShort_minInclusive005_1793 tokoe:valid" result="pass"/><test-case name="29167unsignedShort_minInclusive005_1793.v tokoe:valid" result="pass"/><test-case name="29168unsignedShort_minExclusive001_1794 tokoe:valid" result="pass"/><test-case name="29169unsignedShort_minExclusive001_1794.i tokoe:invalid" result="pass"/><test-case name="29170unsignedShort_minExclusive002_1795 tokoe:valid" result="pass"/><test-case name="29171unsignedShort_minExclusive002_1795.i tokoe:invalid" result="pass"/><test-case name="29172unsignedShort_minExclusive003_1796 tokoe:valid" result="pass"/><test-case name="29173unsignedShort_minExclusive003_1796.v tokoe:valid" result="pass"/><test-case name="29174unsignedShort_minExclusive004_1797 tokoe:valid" result="pass"/><test-case name="29175unsignedShort_minExclusive004_1797.v tokoe:valid" result="pass"/><test-case name="29176unsignedShort_minExclusive005_1798 tokoe:valid" result="pass"/><test-case name="29177unsignedShort_minExclusive005_1798.v tokoe:valid" result="pass"/><test-case name="29178unsignedShort_totalDigits001_1799 tokoe:valid" result="pass"/><test-case name="29179unsignedShort_totalDigits001_1799.i tokoe:invalid" result="pass"/><test-case name="29180unsignedShort_totalDigits002_1800 tokoe:valid" result="pass"/><test-case name="29181unsignedShort_totalDigits002_1800.v tokoe:valid" result="pass"/><test-case name="29182unsignedShort_totalDigits003_1801 tokoe:valid" result="pass"/><test-case name="29183unsignedShort_totalDigits003_1801.v tokoe:valid" result="pass"/><test-case name="29184unsignedByte_pattern001_1802 tokoe:valid" result="pass"/><test-case name="29185unsignedByte_pattern001_1802.v tokoe:valid" result="pass"/><test-case name="29186unsignedByte_enumeration001_1803 tokoe:valid" result="pass"/><test-case name="29187unsignedByte_enumeration001_1803.i tokoe:invalid" result="pass"/><test-case name="29188unsignedByte_enumeration002_1804 tokoe:valid" result="pass"/><test-case name="29189unsignedByte_enumeration002_1804.v tokoe:valid" result="pass"/><test-case name="29190unsignedByte_enumeration003_1805 tokoe:valid" result="pass"/><test-case name="29191unsignedByte_enumeration003_1805.i tokoe:invalid" result="pass"/><test-case name="29192unsignedByte_enumeration004_1806 tokoe:valid" result="pass"/><test-case name="29193unsignedByte_enumeration004_1806.v tokoe:valid" result="pass"/><test-case name="29194unsignedByte_maxInclusive001_1807 tokoe:valid" result="pass"/><test-case name="29195unsignedByte_maxInclusive001_1807.v tokoe:valid" result="pass"/><test-case name="29196unsignedByte_maxInclusive002_1808 tokoe:valid" result="pass"/><test-case name="29197unsignedByte_maxInclusive002_1808.i tokoe:invalid" result="pass"/><test-case name="29198unsignedByte_maxInclusive003_1809 tokoe:valid" result="pass"/><test-case name="29199unsignedByte_maxInclusive003_1809.v tokoe:valid" result="pass"/><test-case name="29200unsignedByte_maxExclusive001_1810 tokoe:valid" result="pass"/><test-case name="29201unsignedByte_maxExclusive001_1810.i tokoe:invalid" result="pass"/><test-case name="29202unsignedByte_maxExclusive002_1811 tokoe:valid" result="pass"/><test-case name="29203unsignedByte_maxExclusive002_1811.i tokoe:invalid" result="pass"/><test-case name="29204unsignedByte_maxExclusive003_1812 tokoe:valid" result="pass"/><test-case name="29205unsignedByte_maxExclusive003_1812.v tokoe:valid" result="pass"/><test-case name="29206unsignedByte_minInclusive001_1813 tokoe:valid" result="pass"/><test-case name="29207unsignedByte_minInclusive001_1813.v tokoe:valid" result="pass"/><test-case name="29208unsignedByte_minInclusive002_1814 tokoe:valid" result="pass"/><test-case name="29209unsignedByte_minInclusive002_1814.i tokoe:invalid" result="pass"/><test-case name="29210unsignedByte_minInclusive003_1815 tokoe:valid" result="pass"/><test-case name="29211unsignedByte_minInclusive003_1815.v tokoe:valid" result="pass"/><test-case name="29212unsignedByte_minInclusive004_1816 tokoe:valid" result="pass"/><test-case name="29213unsignedByte_minInclusive004_1816.v tokoe:valid" result="pass"/><test-case name="29214unsignedByte_minInclusive005_1817 tokoe:valid" result="pass"/><test-case name="29215unsignedByte_minInclusive005_1817.v tokoe:valid" result="pass"/><test-case name="29216unsignedByte_minExclusive001_1818 tokoe:valid" result="pass"/><test-case name="29217unsignedByte_minExclusive001_1818.i tokoe:invalid" result="pass"/><test-case name="29218unsignedByte_minExclusive002_1819 tokoe:valid" result="pass"/><test-case name="29219unsignedByte_minExclusive002_1819.i tokoe:invalid" result="pass"/><test-case name="29220unsignedByte_minExclusive003_1820 tokoe:valid" result="pass"/><test-case name="29221unsignedByte_minExclusive003_1820.v tokoe:valid" result="pass"/><test-case name="29222unsignedByte_minExclusive004_1821 tokoe:valid" result="pass"/><test-case name="29223unsignedByte_minExclusive004_1821.v tokoe:valid" result="pass"/><test-case name="29224unsignedByte_minExclusive005_1822 tokoe:valid" result="pass"/><test-case name="29225unsignedByte_minExclusive005_1822.v tokoe:valid" result="pass"/><test-case name="29226unsignedByte_totalDigits001_1823 tokoe:valid" result="pass"/><test-case name="29227unsignedByte_totalDigits001_1823.i tokoe:invalid" result="pass"/><test-case name="29228unsignedByte_totalDigits002_1824 tokoe:valid" result="pass"/><test-case name="29229unsignedByte_totalDigits002_1824.v tokoe:valid" result="pass"/><test-case name="29230unsignedByte_totalDigits003_1825 tokoe:valid" result="pass"/><test-case name="29231unsignedByte_totalDigits003_1825.v tokoe:valid" result="pass"/><test-case name="29232positiveInteger_pattern001_1826 tokoe:valid" result="pass"/><test-case name="29233positiveInteger_pattern001_1826.v tokoe:valid" result="pass"/><test-case name="29234positiveInteger_enumeration001_1827 tokoe:valid" result="pass"/><test-case name="29235positiveInteger_enumeration001_1827.i tokoe:invalid" result="pass"/><test-case name="29236positiveInteger_enumeration002_1828 tokoe:valid" result="pass"/><test-case name="29237positiveInteger_enumeration002_1828.v tokoe:valid" result="pass"/><test-case name="29238positiveInteger_enumeration003_1829 tokoe:valid" result="pass"/><test-case name="29239positiveInteger_enumeration003_1829.i tokoe:invalid" result="pass"/><test-case name="29240positiveInteger_enumeration004_1830 tokoe:valid" result="pass"/><test-case name="29241positiveInteger_enumeration004_1830.v tokoe:valid" result="pass"/><test-case name="29242positiveInteger_maxInclusive001_1831 tokoe:valid" result="pass"/><test-case name="29243positiveInteger_maxInclusive001_1831.v tokoe:valid" result="pass"/><test-case name="29244positiveInteger_maxInclusive002_1832 tokoe:valid" result="pass"/><test-case name="29245positiveInteger_maxInclusive002_1832.i tokoe:invalid" result="pass"/><test-case name="29246positiveInteger_maxInclusive003_1833 tokoe:valid" result="pass"/><test-case name="29247positiveInteger_maxInclusive003_1833.v tokoe:valid" result="pass"/><test-case name="29248positiveInteger_maxExclusive001_1834 tokoe:valid" result="fail"/><test-case name="29249positiveInteger_maxExclusive001_1834.i tokoe:invalid" result="pass"/><test-case name="29250positiveInteger_maxExclusive002_1835 tokoe:valid" result="fail"/><test-case name="29251positiveInteger_maxExclusive002_1835.i tokoe:invalid" result="pass"/><test-case name="29252positiveInteger_maxExclusive003_1836 tokoe:valid" result="pass"/><test-case name="29253positiveInteger_maxExclusive003_1836.v tokoe:valid" result="pass"/><test-case name="29254positiveInteger_minInclusive001_1837 tokoe:valid" result="pass"/><test-case name="29255positiveInteger_minInclusive001_1837.v tokoe:valid" result="pass"/><test-case name="29256positiveInteger_minInclusive002_1838 tokoe:valid" result="pass"/><test-case name="29257positiveInteger_minInclusive002_1838.i tokoe:invalid" result="pass"/><test-case name="29258positiveInteger_minInclusive003_1839 tokoe:valid" result="pass"/><test-case name="29259positiveInteger_minInclusive003_1839.v tokoe:valid" result="pass"/><test-case name="29260positiveInteger_minInclusive004_1840 tokoe:valid" result="pass"/><test-case name="29261positiveInteger_minInclusive004_1840.v tokoe:valid" result="pass"/><test-case name="29262positiveInteger_minInclusive005_1841 tokoe:valid" result="pass"/><test-case name="29263positiveInteger_minInclusive005_1841.v tokoe:valid" result="pass"/><test-case name="29264positiveInteger_minExclusive001_1842 tokoe:valid" result="pass"/><test-case name="29265positiveInteger_minExclusive001_1842.i tokoe:invalid" result="pass"/><test-case name="29266positiveInteger_minExclusive002_1843 tokoe:valid" result="pass"/><test-case name="29267positiveInteger_minExclusive002_1843.i tokoe:invalid" result="pass"/><test-case name="29268positiveInteger_minExclusive003_1844 tokoe:valid" result="pass"/><test-case name="29269positiveInteger_minExclusive003_1844.v tokoe:valid" result="pass"/><test-case name="29270positiveInteger_minExclusive004_1845 tokoe:valid" result="pass"/><test-case name="29271positiveInteger_minExclusive004_1845.v tokoe:valid" result="pass"/><test-case name="29272positiveInteger_minExclusive005_1846 tokoe:valid" result="pass"/><test-case name="29273positiveInteger_minExclusive005_1846.v tokoe:valid" result="pass"/><test-case name="29274positiveInteger_totalDigits001_1847 tokoe:valid" result="pass"/><test-case name="29275positiveInteger_totalDigits001_1847.i tokoe:invalid" result="pass"/><test-case name="29276positiveInteger_totalDigits002_1848 tokoe:valid" result="pass"/><test-case name="29277positiveInteger_totalDigits002_1848.v tokoe:valid" result="pass"/><test-case name="29278positiveInteger_totalDigits003_1849 tokoe:valid" result="pass"/><test-case name="29279positiveInteger_totalDigits003_1849.v tokoe:valid" result="pass"/><test-case name="29280list_minInclusive_1850 tokoe:invalid" result="pass"/><test-case name="29281string001_1851 tokoe:valid" result="pass"/><test-case name="29282string001_1851.v tokoe:valid" result="pass"/><test-case name="29283string002_1852 tokoe:valid" result="pass"/><test-case name="29284string002_1852.v tokoe:valid" result="pass"/><test-case name="29285string003_1853 tokoe:valid" result="pass"/><test-case name="29286string003_1853.v tokoe:valid" result="pass"/><test-case name="29287string004_1854 tokoe:valid" result="pass"/><test-case name="29288string004_1854.v tokoe:valid" result="pass"/><test-case name="29289string005_1855 tokoe:valid" result="pass"/><test-case name="29290string005_1855.v tokoe:valid" result="pass"/><test-case name="29291string006_1856 tokoe:valid" result="pass"/><test-case name="29292string006_1856.v tokoe:valid" result="pass"/><test-case name="29293boolean001_1857 tokoe:valid" result="pass"/><test-case name="29294boolean001_1857.i tokoe:invalid" result="pass"/><test-case name="29295boolean002_1858 tokoe:valid" result="pass"/><test-case name="29296boolean002_1858.v tokoe:valid" result="pass"/><test-case name="29297boolean003_1859 tokoe:valid" result="pass"/><test-case name="29298boolean003_1859.v tokoe:valid" result="pass"/><test-case name="29299boolean004_1860 tokoe:valid" result="pass"/><test-case name="29300boolean004_1860.v tokoe:valid" result="pass"/><test-case name="29301boolean005_1861 tokoe:valid" result="pass"/><test-case name="29302boolean005_1861.v tokoe:valid" result="pass"/><test-case name="29303boolean006_1862 tokoe:valid" result="pass"/><test-case name="29304boolean006_1862.i tokoe:invalid" result="pass"/><test-case name="29305boolean007_1863 tokoe:valid" result="pass"/><test-case name="29306boolean007_1863.i tokoe:invalid" result="pass"/><test-case name="29307boolean008_1864 tokoe:valid" result="pass"/><test-case name="29308boolean008_1864.i tokoe:invalid" result="pass"/><test-case name="29309boolean009_1865 tokoe:valid" result="pass"/><test-case name="29310boolean009_1865.i tokoe:invalid" result="pass"/><test-case name="29311boolean010_1866 tokoe:valid" result="pass"/><test-case name="29312boolean010_1866.i tokoe:invalid" result="pass"/><test-case name="29313boolean011_1867 tokoe:valid" result="pass"/><test-case name="29314boolean011_1867.i tokoe:invalid" result="pass"/><test-case name="29315boolean012_1868 tokoe:valid" result="pass"/><test-case name="29316boolean012_1868.i tokoe:invalid" result="pass"/><test-case name="29317boolean013_1869 tokoe:valid" result="pass"/><test-case name="29318boolean013_1869.i tokoe:invalid" result="pass"/><test-case name="29319boolean014_1870 tokoe:valid" result="pass"/><test-case name="29320boolean014_1870.i tokoe:invalid" result="pass"/><test-case name="29321boolean015_1871 tokoe:valid" result="pass"/><test-case name="29322boolean015_1871.i tokoe:invalid" result="pass"/><test-case name="29323boolean016_1872 tokoe:valid" result="pass"/><test-case name="29324boolean016_1872.i tokoe:invalid" result="pass"/><test-case name="29325boolean017_1873 tokoe:valid" result="pass"/><test-case name="29326boolean017_1873.i tokoe:invalid" result="pass"/><test-case name="29327boolean018_1874 tokoe:valid" result="pass"/><test-case name="29328boolean018_1874.v tokoe:valid" result="pass"/><test-case name="29329decimal001_1875 tokoe:valid" result="pass"/><test-case name="29330decimal001_1875.i tokoe:invalid" result="pass"/><test-case name="29331decimal002_1876 tokoe:valid" result="pass"/><test-case name="29332decimal002_1876.v tokoe:valid" result="pass"/><test-case name="29333decimal003_1877 tokoe:valid" result="pass"/><test-case name="29334decimal003_1877.v tokoe:valid" result="pass"/><test-case name="29335decimal004_1878 tokoe:valid" result="pass"/><test-case name="29336decimal004_1878.v tokoe:valid" result="pass"/><test-case name="29337decimal005_1879 tokoe:valid" result="pass"/><test-case name="29338decimal005_1879.v tokoe:valid" result="pass"/><test-case name="29339decimal006_1880 tokoe:valid" result="pass"/><test-case name="29340decimal006_1880.v tokoe:valid" result="pass"/><test-case name="29341decimal007_1881 tokoe:valid" result="pass"/><test-case name="29342decimal007_1881.v tokoe:valid" result="pass"/><test-case name="29343decimal008_1882 tokoe:valid" result="pass"/><test-case name="29344decimal008_1882.v tokoe:valid" result="pass"/><test-case name="29345decimal009_1883 tokoe:valid" result="pass"/><test-case name="29346decimal009_1883.v tokoe:valid" result="pass"/><test-case name="29347decimal010_1884 tokoe:valid" result="pass"/><test-case name="29348decimal010_1884.v tokoe:valid" result="pass"/><test-case name="29349decimal011_1885 tokoe:valid" result="pass"/><test-case name="29350decimal011_1885.v tokoe:valid" result="pass"/><test-case name="29351decimal012_1886 tokoe:valid" result="pass"/><test-case name="29352decimal012_1886.v tokoe:valid" result="pass"/><test-case name="29353decimal013_1887 tokoe:valid" result="pass"/><test-case name="29354decimal013_1887.v tokoe:valid" result="pass"/><test-case name="29355decimal014_1888 tokoe:valid" result="pass"/><test-case name="29356decimal014_1888.v tokoe:valid" result="pass"/><test-case name="29357decimal015_1889 tokoe:valid" result="pass"/><test-case name="29358decimal015_1889.v tokoe:valid" result="pass"/><test-case name="29359decimal016_1890 tokoe:valid" result="pass"/><test-case name="29360decimal016_1890.v tokoe:valid" result="pass"/><test-case name="29361decimal017_1891 tokoe:valid" result="pass"/><test-case name="29362decimal017_1891.i tokoe:invalid" result="pass"/><test-case name="29363decimal018_1892 tokoe:valid" result="pass"/><test-case name="29364decimal018_1892.i tokoe:invalid" result="pass"/><test-case name="29365decimal019_1893 tokoe:valid" result="pass"/><test-case name="29366decimal019_1893.i tokoe:invalid" result="pass"/><test-case name="29367decimal020_1894 tokoe:valid" result="pass"/><test-case name="29368decimal020_1894.i tokoe:invalid" result="pass"/><test-case name="29369decimal021_1895 tokoe:valid" result="pass"/><test-case name="29370decimal021_1895.i tokoe:invalid" result="pass"/><test-case name="29371decimal022_1896 tokoe:valid" result="pass"/><test-case name="29372decimal022_1896.i tokoe:invalid" result="pass"/><test-case name="29373decimal023_1897 tokoe:valid" result="pass"/><test-case name="29374decimal023_1897.i tokoe:invalid" result="pass"/><test-case name="29375decimal024_1898 tokoe:valid" result="pass"/><test-case name="29376decimal024_1898.i tokoe:invalid" result="pass"/><test-case name="29377decimal025_1899 tokoe:valid" result="pass"/><test-case name="29378decimal025_1899.i tokoe:invalid" result="pass"/><test-case name="29379float001_1900 tokoe:valid" result="pass"/><test-case name="29380float001_1900.i tokoe:invalid" result="pass"/><test-case name="29381float002_1901 tokoe:valid" result="pass"/><test-case name="29382float002_1901.v tokoe:valid" result="pass"/><test-case name="29383float003_1902 tokoe:valid" result="pass"/><test-case name="29384float003_1902.v tokoe:valid" result="pass"/><test-case name="29385float004_1903 tokoe:valid" result="pass"/><test-case name="29386float004_1903.v tokoe:valid" result="pass"/><test-case name="29387float005_1904 tokoe:valid" result="pass"/><test-case name="29388float005_1904.v tokoe:valid" result="pass"/><test-case name="29389float006_1905 tokoe:valid" result="pass"/><test-case name="29390float006_1905.v tokoe:valid" result="pass"/><test-case name="29391float007_1906 tokoe:valid" result="pass"/><test-case name="29392float007_1906.v tokoe:valid" result="pass"/><test-case name="29393float008_1907 tokoe:valid" result="pass"/><test-case name="29394float008_1907.v tokoe:valid" result="pass"/><test-case name="29395float009_1908 tokoe:valid" result="pass"/><test-case name="29396float009_1908.v tokoe:valid" result="pass"/><test-case name="29397float010_1909 tokoe:valid" result="pass"/><test-case name="29398float010_1909.v tokoe:valid" result="pass"/><test-case name="29399float011_1910 tokoe:valid" result="pass"/><test-case name="29400float011_1910.v tokoe:valid" result="pass"/><test-case name="29401float012_1911 tokoe:valid" result="pass"/><test-case name="29402float012_1911.v tokoe:valid" result="pass"/><test-case name="29403float013_1912 tokoe:valid" result="pass"/><test-case name="29404float013_1912.v tokoe:valid" result="pass"/><test-case name="29405float014_1913 tokoe:valid" result="pass"/><test-case name="29406float014_1913.v tokoe:valid" result="pass"/><test-case name="29407float015_1914 tokoe:valid" result="pass"/><test-case name="29408float015_1914.i tokoe:invalid" result="pass"/><test-case name="29409float016_1915 tokoe:valid" result="pass"/><test-case name="29410float016_1915.i tokoe:invalid" result="pass"/><test-case name="29411float017_1916 tokoe:valid" result="pass"/><test-case name="29412float017_1916.v tokoe:valid" result="pass"/><test-case name="29413float018_1917 tokoe:valid" result="pass"/><test-case name="29414float018_1917.i tokoe:invalid" result="pass"/><test-case name="29415float019_1918 tokoe:valid" result="pass"/><test-case name="29416float019_1918.v tokoe:valid" result="pass"/><test-case name="29417float020_1919 tokoe:valid" result="pass"/><test-case name="29418float020_1919.v tokoe:valid" result="pass"/><test-case name="29419float021_1920 tokoe:valid" result="pass"/><test-case name="29420float021_1920.v tokoe:valid" result="pass"/><test-case name="29421float022_1921 tokoe:valid" result="pass"/><test-case name="29422float022_1921.i tokoe:invalid" result="pass"/><test-case name="29423float023_1922 tokoe:valid" result="pass"/><test-case name="29424float023_1922.i tokoe:invalid" result="pass"/><test-case name="29425float024_1923 tokoe:valid" result="pass"/><test-case name="29426float024_1923.i tokoe:invalid" result="pass"/><test-case name="29427float025_1924 tokoe:valid" result="pass"/><test-case name="29428float025_1924.i tokoe:invalid" result="pass"/><test-case name="29429float026_1925 tokoe:valid" result="pass"/><test-case name="29430float026_1925.i tokoe:invalid" result="pass"/><test-case name="29431float027_1926 tokoe:valid" result="pass"/><test-case name="29432float027_1926.i tokoe:invalid" result="pass"/><test-case name="29433float028_1927 tokoe:valid" result="pass"/><test-case name="29434float028_1927.v tokoe:valid" result="pass"/><test-case name="29435float029_1928 tokoe:valid" result="pass"/><test-case name="29436float029_1928.v tokoe:valid" result="pass"/><test-case name="29437float030_1929 tokoe:valid" result="pass"/><test-case name="29438float030_1929.v tokoe:valid" result="pass"/><test-case name="29439float031_1930 tokoe:valid" result="pass"/><test-case name="29440float031_1930.v tokoe:valid" result="pass"/><test-case name="29441float032_1931 tokoe:valid" result="pass"/><test-case name="29442float032_1931.v tokoe:valid" result="pass"/><test-case name="29443float033_1932 tokoe:valid" result="pass"/><test-case name="29444float033_1932.v tokoe:valid" result="pass"/><test-case name="29445float034_1933 tokoe:valid" result="pass"/><test-case name="29446float034_1933.v tokoe:valid" result="pass"/><test-case name="29447float035_1934 tokoe:valid" result="pass"/><test-case name="29448float035_1934.i tokoe:invalid" result="pass"/><test-case name="29449float036_1935 tokoe:valid" result="pass"/><test-case name="29450float036_1935.i tokoe:invalid" result="pass"/><test-case name="29451float037_1936 tokoe:valid" result="pass"/><test-case name="29452float037_1936.i tokoe:invalid" result="pass"/><test-case name="29453float038_1937 tokoe:valid" result="pass"/><test-case name="29454float038_1937.v tokoe:valid" result="pass"/><test-case name="29455float039_1938 tokoe:valid" result="pass"/><test-case name="29456float039_1938.v tokoe:valid" result="pass"/><test-case name="29457double001_1939 tokoe:valid" result="pass"/><test-case name="29458double001_1939.i tokoe:invalid" result="pass"/><test-case name="29459double002_1940 tokoe:valid" result="pass"/><test-case name="29460double002_1940.v tokoe:valid" result="pass"/><test-case name="29461double003_1941 tokoe:valid" result="pass"/><test-case name="29462double003_1941.v tokoe:valid" result="pass"/><test-case name="29463double004_1942 tokoe:valid" result="pass"/><test-case name="29464double004_1942.v tokoe:valid" result="pass"/><test-case name="29465double005_1943 tokoe:valid" result="pass"/><test-case name="29466double005_1943.v tokoe:valid" result="pass"/><test-case name="29467double006_1944 tokoe:valid" result="pass"/><test-case name="29468double006_1944.v tokoe:valid" result="pass"/><test-case name="29469double007_1945 tokoe:valid" result="pass"/><test-case name="29470double007_1945.v tokoe:valid" result="pass"/><test-case name="29471double008_1946 tokoe:valid" result="pass"/><test-case name="29472double008_1946.v tokoe:valid" result="pass"/><test-case name="29473double009_1947 tokoe:valid" result="pass"/><test-case name="29474double009_1947.v tokoe:valid" result="pass"/><test-case name="29475double010_1948 tokoe:valid" result="pass"/><test-case name="29476double010_1948.v tokoe:valid" result="pass"/><test-case name="29477double011_1949 tokoe:valid" result="pass"/><test-case name="29478double011_1949.v tokoe:valid" result="pass"/><test-case name="29479double012_1950 tokoe:valid" result="pass"/><test-case name="29480double012_1950.v tokoe:valid" result="pass"/><test-case name="29481double013_1951 tokoe:valid" result="pass"/><test-case name="29482double013_1951.v tokoe:valid" result="pass"/><test-case name="29483double014_1952 tokoe:valid" result="pass"/><test-case name="29484double014_1952.v tokoe:valid" result="pass"/><test-case name="29485double015_1953 tokoe:valid" result="pass"/><test-case name="29486double015_1953.i tokoe:invalid" result="pass"/><test-case name="29487double016_1954 tokoe:valid" result="pass"/><test-case name="29488double016_1954.i tokoe:invalid" result="pass"/><test-case name="29489double017_1955 tokoe:valid" result="pass"/><test-case name="29490double017_1955.v tokoe:valid" result="pass"/><test-case name="29491double018_1956 tokoe:valid" result="pass"/><test-case name="29492double018_1956.i tokoe:invalid" result="pass"/><test-case name="29493double019_1957 tokoe:valid" result="pass"/><test-case name="29494double019_1957.v tokoe:valid" result="pass"/><test-case name="29495double020_1958 tokoe:valid" result="pass"/><test-case name="29496double020_1958.v tokoe:valid" result="pass"/><test-case name="29497double021_1959 tokoe:valid" result="pass"/><test-case name="29498double021_1959.v tokoe:valid" result="pass"/><test-case name="29499double022_1960 tokoe:valid" result="pass"/><test-case name="29500double022_1960.i tokoe:invalid" result="pass"/><test-case name="29501double023_1961 tokoe:valid" result="pass"/><test-case name="29502double023_1961.i tokoe:invalid" result="pass"/><test-case name="29503double024_1962 tokoe:valid" result="pass"/><test-case name="29504double024_1962.i tokoe:invalid" result="pass"/><test-case name="29505double025_1963 tokoe:valid" result="pass"/><test-case name="29506double025_1963.i tokoe:invalid" result="pass"/><test-case name="29507double026_1964 tokoe:valid" result="pass"/><test-case name="29508double026_1964.i tokoe:invalid" result="pass"/><test-case name="29509double027_1965 tokoe:valid" result="pass"/><test-case name="29510double027_1965.v tokoe:valid" result="pass"/><test-case name="29511double028_1966 tokoe:valid" result="pass"/><test-case name="29512double028_1966.v tokoe:valid" result="pass"/><test-case name="29513double029_1967 tokoe:valid" result="pass"/><test-case name="29514double029_1967.i tokoe:invalid" result="pass"/><test-case name="29515double030_1968 tokoe:valid" result="pass"/><test-case name="29516double030_1968.v tokoe:valid" result="pass"/><test-case name="29517duration001_1969 tokoe:valid" result="pass"/><test-case name="29518duration001_1969.i tokoe:invalid" result="pass"/><test-case name="29519duration002_1970 tokoe:valid" result="pass"/><test-case name="29520duration002_1970.v tokoe:valid" result="pass"/><test-case name="29521duration003_1971 tokoe:valid" result="pass"/><test-case name="29522duration003_1971.v tokoe:valid" result="pass"/><test-case name="29523duration004_1972 tokoe:valid" result="pass"/><test-case name="29524duration004_1972.v tokoe:valid" result="pass"/><test-case name="29525duration005_1973 tokoe:valid" result="pass"/><test-case name="29526duration005_1973.v tokoe:valid" result="pass"/><test-case name="29527duration006_1974 tokoe:valid" result="pass"/><test-case name="29528duration006_1974.v tokoe:valid" result="pass"/><test-case name="29529duration007_1975 tokoe:valid" result="pass"/><test-case name="29530duration007_1975.v tokoe:valid" result="pass"/><test-case name="29531duration008_1976 tokoe:valid" result="pass"/><test-case name="29532duration008_1976.i tokoe:invalid" result="pass"/><test-case name="29533duration009_1977 tokoe:valid" result="pass"/><test-case name="29534duration009_1977.v tokoe:valid" result="pass"/><test-case name="29535duration010_1978 tokoe:valid" result="pass"/><test-case name="29536duration010_1978.i tokoe:invalid" result="pass"/><test-case name="29537duration011_1979 tokoe:valid" result="pass"/><test-case name="29538duration011_1979.i tokoe:invalid" result="pass"/><test-case name="29539duration012_1980 tokoe:valid" result="pass"/><test-case name="29540duration012_1980.v tokoe:valid" result="pass"/><test-case name="29541duration013_1981 tokoe:valid" result="pass"/><test-case name="29542duration013_1981.i tokoe:invalid" result="pass"/><test-case name="29543duration014_1982 tokoe:valid" result="pass"/><test-case name="29544duration014_1982.v tokoe:valid" result="pass"/><test-case name="29545duration015_1983 tokoe:valid" result="pass"/><test-case name="29546duration015_1983.i tokoe:invalid" result="pass"/><test-case name="29547duration016_1984 tokoe:valid" result="pass"/><test-case name="29548duration016_1984.v tokoe:valid" result="pass"/><test-case name="29549duration017_1985 tokoe:valid" result="pass"/><test-case name="29550duration017_1985.v tokoe:valid" result="pass"/><test-case name="29551duration018_1986 tokoe:valid" result="pass"/><test-case name="29552duration018_1986.v tokoe:valid" result="pass"/><test-case name="29553duration019_1987 tokoe:valid" result="pass"/><test-case name="29554duration019_1987.v tokoe:valid" result="pass"/><test-case name="29555duration020_1988 tokoe:valid" result="pass"/><test-case name="29556duration020_1988.v tokoe:valid" result="pass"/><test-case name="29557duration021_1989 tokoe:valid" result="pass"/><test-case name="29558duration021_1989.i tokoe:invalid" result="pass"/><test-case name="29559duration022_1990 tokoe:valid" result="pass"/><test-case name="29560duration022_1990.v tokoe:valid" result="pass"/><test-case name="29561duration023_1991 tokoe:valid" result="pass"/><test-case name="29562duration023_1991.v tokoe:valid" result="pass"/><test-case name="29563duration024_1992 tokoe:valid" result="pass"/><test-case name="29564duration024_1992.v tokoe:valid" result="pass"/><test-case name="29565duration025_1993 tokoe:valid" result="pass"/><test-case name="29566duration025_1993.v tokoe:valid" result="pass"/><test-case name="29567duration026_1994 tokoe:valid" result="pass"/><test-case name="29568duration026_1994.v tokoe:valid" result="pass"/><test-case name="29569duration027_1995 tokoe:valid" result="pass"/><test-case name="29570duration027_1995.v tokoe:valid" result="pass"/><test-case name="29571duration028_1996 tokoe:valid" result="pass"/><test-case name="29572duration028_1996.i tokoe:invalid" result="pass"/><test-case name="29573duration029_1997 tokoe:valid" result="pass"/><test-case name="29574duration029_1997.i tokoe:invalid" result="pass"/><test-case name="29575duration030_1998 tokoe:valid" result="pass"/><test-case name="29576duration030_1998.i tokoe:invalid" result="pass"/><test-case name="29577dateTime001_1999 tokoe:valid" result="pass"/><test-case name="29578dateTime001_1999.i tokoe:invalid" result="pass"/><test-case name="29579dateTime002_2000 tokoe:valid" result="pass"/><test-case name="29580dateTime002_2000.v tokoe:valid" result="pass"/><test-case name="29581dateTime003_2001 tokoe:valid" result="pass"/><test-case name="29582dateTime003_2001.v tokoe:valid" result="pass"/><test-case name="29583dateTime004_2002 tokoe:valid" result="pass"/><test-case name="29584dateTime004_2002.i tokoe:invalid" result="pass"/><test-case name="29585dateTime005_2003 tokoe:valid" result="pass"/><test-case name="29586dateTime005_2003.v tokoe:valid" result="pass"/><test-case name="29587dateTime006_2004 tokoe:valid" result="pass"/><test-case name="29588dateTime006_2004.v tokoe:valid" result="pass"/><test-case name="29589dateTime007_2005 tokoe:valid" result="pass"/><test-case name="29590dateTime007_2005.v tokoe:valid" result="pass"/><test-case name="29591dateTime008_2006 tokoe:valid" result="pass"/><test-case name="29592dateTime008_2006.v tokoe:valid" result="pass"/><test-case name="29593dateTime010_2007 tokoe:valid" result="pass"/><test-case name="29594dateTime010_2007.v tokoe:valid" result="pass"/><test-case name="29595dateTime011_2008 tokoe:valid" result="pass"/><test-case name="29596dateTime011_2008.i tokoe:invalid" result="pass"/><test-case name="29597dateTime013_2009 tokoe:valid" result="pass"/><test-case name="29598dateTime013_2009.i tokoe:invalid" result="pass"/><test-case name="29599time001_2010 tokoe:valid" result="pass"/><test-case name="29600time001_2010.i tokoe:invalid" result="pass"/><test-case name="29601time002_2011 tokoe:valid" result="pass"/><test-case name="29602time002_2011.i tokoe:invalid" result="pass"/><test-case name="29603time003_2012 tokoe:valid" result="pass"/><test-case name="29604time003_2012.i tokoe:invalid" result="pass"/><test-case name="29605time004_2013 tokoe:valid" result="pass"/><test-case name="29606time004_2013.v tokoe:valid" result="pass"/><test-case name="29607time005_2014 tokoe:valid" result="pass"/><test-case name="29608time005_2014.v tokoe:valid" result="pass"/><test-case name="29609time006_2015 tokoe:valid" result="pass"/><test-case name="29610time006_2015.v tokoe:valid" result="pass"/><test-case name="29611time007_2016 tokoe:valid" result="pass"/><test-case name="29612time007_2016.v tokoe:valid" result="pass"/><test-case name="29613time008_2017 tokoe:valid" result="pass"/><test-case name="29614time008_2017.v tokoe:valid" result="pass"/><test-case name="29615time009_2018 tokoe:valid" result="pass"/><test-case name="29616time009_2018.v tokoe:valid" result="pass"/><test-case name="29617time011_2019 tokoe:valid" result="pass"/><test-case name="29618time011_2019.v tokoe:valid" result="pass"/><test-case name="29619time012_2020 tokoe:valid" result="pass"/><test-case name="29620time012_2020.v tokoe:valid" result="pass"/><test-case name="29621time013_2021 tokoe:valid" result="pass"/><test-case name="29622time013_2021.v tokoe:valid" result="pass"/><test-case name="29623time014_2022 tokoe:valid" result="pass"/><test-case name="29624time014_2022.i tokoe:invalid" result="pass"/><test-case name="29625time015_2023 tokoe:valid" result="pass"/><test-case name="29626time015_2023.i tokoe:invalid" result="pass"/><test-case name="29627time016_2024 tokoe:valid" result="pass"/><test-case name="29628time016_2024.i tokoe:invalid" result="pass"/><test-case name="29629time017_2025 tokoe:valid" result="pass"/><test-case name="29630time017_2025.i tokoe:invalid" result="pass"/><test-case name="29631time018_2026 tokoe:valid" result="pass"/><test-case name="29632time018_2026.i tokoe:invalid" result="pass"/><test-case name="29633time019_2027 tokoe:valid" result="pass"/><test-case name="29634time019_2027.i tokoe:invalid" result="pass"/><test-case name="29635time020_2028 tokoe:valid" result="pass"/><test-case name="29636time020_2028.i tokoe:invalid" result="pass"/><test-case name="29637time021_2029 tokoe:valid" result="pass"/><test-case name="29638time021_2029.i tokoe:invalid" result="pass"/><test-case name="29639time022_2030 tokoe:valid" result="pass"/><test-case name="29640time022_2030.i tokoe:invalid" result="pass"/><test-case name="29641date001_2031 tokoe:valid" result="pass"/><test-case name="29642date001_2031.i tokoe:invalid" result="pass"/><test-case name="29643date002_2032 tokoe:valid" result="pass"/><test-case name="29644date002_2032.v tokoe:valid" result="pass"/><test-case name="29645date003_2033 tokoe:valid" result="pass"/><test-case name="29646date003_2033.i tokoe:invalid" result="pass"/><test-case name="29647date004_2034 tokoe:valid" result="pass"/><test-case name="29648date004_2034.i tokoe:invalid" result="pass"/><test-case name="29649date005_2035 tokoe:valid" result="pass"/><test-case name="29650date005_2035.v tokoe:valid" result="pass"/><test-case name="29651date006_2036 tokoe:valid" result="pass"/><test-case name="29652date006_2036.i tokoe:invalid" result="pass"/><test-case name="29653date009_2037 tokoe:valid" result="pass"/><test-case name="29654date009_2037.i tokoe:invalid" result="pass"/><test-case name="29655date010_2038 tokoe:valid" result="pass"/><test-case name="29656date010_2038.v tokoe:valid" result="pass"/><test-case name="29657date011_2039 tokoe:valid" result="pass"/><test-case name="29658date011_2039.i tokoe:invalid" result="pass"/><test-case name="29659gYearMonth001_2040 tokoe:valid" result="pass"/><test-case name="29660gYearMonth001_2040.i tokoe:invalid" result="pass"/><test-case name="29661gYearMonth002_2041 tokoe:valid" result="pass"/><test-case name="29662gYearMonth002_2041.v tokoe:valid" result="pass"/><test-case name="29663gYearMonth003_2042 tokoe:valid" result="pass"/><test-case name="29664gYearMonth003_2042.v tokoe:valid" result="pass"/><test-case name="29665gYearMonth004_2043 tokoe:valid" result="pass"/><test-case name="29666gYearMonth004_2043.i tokoe:invalid" result="pass"/><test-case name="29667gYearMonth006_2044 tokoe:valid" result="pass"/><test-case name="29668gYearMonth006_2044.i tokoe:invalid" result="pass"/><test-case name="29669gYear001_2045 tokoe:valid" result="pass"/><test-case name="29670gYear001_2045.i tokoe:invalid" result="pass"/><test-case name="29671gYear002_2046 tokoe:valid" result="pass"/><test-case name="29672gYear002_2046.v tokoe:valid" result="pass"/><test-case name="29673gYear005_2047 tokoe:valid" result="pass"/><test-case name="29674gYear005_2047.i tokoe:invalid" result="pass"/><test-case name="29675gYear006_2048 tokoe:valid" result="pass"/><test-case name="29676gYear006_2048.v tokoe:valid" result="pass"/><test-case name="29677gMonthDay001_2049 tokoe:valid" result="pass"/><test-case name="29678gMonthDay001_2049.i tokoe:invalid" result="pass"/><test-case name="29679gMonthDay002_2050 tokoe:valid" result="pass"/><test-case name="29680gMonthDay002_2050.v tokoe:valid" result="pass"/><test-case name="29681gMonthDay003_2051 tokoe:valid" result="pass"/><test-case name="29682gMonthDay003_2051.v tokoe:valid" result="pass"/><test-case name="29683gMonthDay004_2052 tokoe:valid" result="pass"/><test-case name="29684gMonthDay004_2052.v tokoe:valid" result="pass"/><test-case name="29685gMonthDay005_2053 tokoe:valid" result="pass"/><test-case name="29686gMonthDay005_2053.i tokoe:invalid" result="pass"/><test-case name="29687gMonthDay006_2054 tokoe:valid" result="pass"/><test-case name="29688gMonthDay006_2054.i tokoe:invalid" result="pass"/><test-case name="29689gDay001_2055 tokoe:valid" result="pass"/><test-case name="29690gDay001_2055.v tokoe:valid" result="pass"/><test-case name="29691gDay002_2056 tokoe:valid" result="pass"/><test-case name="29692gDay002_2056.v tokoe:valid" result="pass"/><test-case name="29693gDay003_2057 tokoe:valid" result="pass"/><test-case name="29694gDay003_2057.v tokoe:valid" result="pass"/><test-case name="29695gDay004_2058 tokoe:valid" result="pass"/><test-case name="29696gDay004_2058.i tokoe:invalid" result="pass"/><test-case name="29697gDay005_2059 tokoe:valid" result="pass"/><test-case name="29698gDay005_2059.i tokoe:invalid" result="pass"/><test-case name="29699gMonth001_2060 tokoe:valid" result="pass"/><test-case name="29700gMonth001_2060.i tokoe:invalid" result="pass"/><test-case name="29701gMonth002_2061 tokoe:valid" result="pass"/><test-case name="29702gMonth002_2061.v tokoe:valid" result="fail"/><test-case name="29703gMonth003_2062 tokoe:valid" result="pass"/><test-case name="29704gMonth003_2062.i tokoe:invalid" result="pass"/><test-case name="29705gMonth004_2063 tokoe:valid" result="pass"/><test-case name="29706gMonth004_2063.v tokoe:valid" result="fail"/><test-case name="29707gMonth005_2064 tokoe:valid" result="pass"/><test-case name="29708gMonth005_2064.i tokoe:invalid" result="pass"/><test-case name="29709gMonth006_2065 tokoe:valid" result="pass"/><test-case name="29710gMonth006_2065.i tokoe:invalid" result="pass"/><test-case name="29711gMonth007_2066 tokoe:valid" result="pass"/><test-case name="29712gMonth007_2066.i tokoe:invalid" result="pass"/><test-case name="29713hexBinary001_2067 tokoe:valid" result="pass"/><test-case name="29714hexBinary001_2067.v tokoe:valid" result="pass"/><test-case name="29715hexBinary002_2068 tokoe:valid" result="pass"/><test-case name="29716hexBinary002_2068.v tokoe:valid" result="pass"/><test-case name="29717hexBinary004_2070 tokoe:valid" result="pass"/><test-case name="29718hexBinary004_2070.i tokoe:invalid" result="pass"/><test-case name="29719base64Binary001_2071 tokoe:valid" result="pass"/><test-case name="29720base64Binary001_2071.v tokoe:valid" result="pass"/><test-case name="29721base64Binary002_2072 tokoe:valid" result="pass"/><test-case name="29722base64Binary002_2072.v tokoe:valid" result="pass"/><test-case name="29723anyURI001_2073 tokoe:valid" result="pass"/><test-case name="29724anyURI001_2073.v tokoe:valid" result="pass"/><test-case name="29725anyURI002_2074 tokoe:valid" result="pass"/><test-case name="29726anyURI002_2074.v tokoe:valid" result="pass"/><test-case name="29727anyURI003_2075 tokoe:valid" result="pass"/><test-case name="29728anyURI003_2075.v tokoe:valid" result="pass"/><test-case name="29729anyURI004_2076 tokoe:valid" result="pass"/><test-case name="29730anyURI004_2076.v tokoe:valid" result="pass"/><test-case name="29731anyURI005_2077 tokoe:valid" result="pass"/><test-case name="29732anyURI005_2077.v tokoe:valid" result="pass"/><test-case name="29733anyURI006_2078 tokoe:valid" result="pass"/><test-case name="29734anyURI006_2078.v tokoe:valid" result="pass"/><test-case name="29735anyURI007_2079 tokoe:valid" result="pass"/><test-case name="29736anyURI007_2079.v tokoe:valid" result="pass"/><test-case name="29737anyURI008_2080 tokoe:valid" result="pass"/><test-case name="29738anyURI008_2080.v tokoe:valid" result="pass"/><test-case name="29739anyURI009_2081 tokoe:valid" result="pass"/><test-case name="29740anyURI009_2081.v tokoe:valid" result="pass"/><test-case name="29741anyURI010_2082 tokoe:valid" result="pass"/><test-case name="29742anyURI010_2082.v tokoe:valid" result="pass"/><test-case name="29743anyURI011_2083 tokoe:valid" result="pass"/><test-case name="29744anyURI011_2083.v tokoe:valid" result="pass"/><test-case name="29745QName001_2084 tokoe:valid" result="pass"/><test-case name="29746QName001_2084.i tokoe:invalid" result="pass"/><test-case name="29747QName002_2085 tokoe:valid" result="pass"/><test-case name="29748QName002_2085.v tokoe:valid" result="pass"/><test-case name="29749QName003_2086 tokoe:valid" result="pass"/><test-case name="29750QName003_2086.v tokoe:valid" result="pass"/><test-case name="29751QName004_2087 tokoe:valid" result="pass"/><test-case name="29752QName004_2087.i tokoe:invalid" result="pass"/><test-case name="29753QName005_2088 tokoe:valid" result="pass"/><test-case name="29754QName005_2088.i tokoe:invalid" result="pass"/><test-case name="29755QName006_2089 tokoe:valid" result="pass"/><test-case name="29756QName006_2089.v tokoe:valid" result="pass"/><test-case name="29757QName007_2090 tokoe:valid" result="pass"/><test-case name="29758QName007_2090.i tokoe:invalid" result="pass"/><test-case name="29759QName008_2091 tokoe:valid" result="pass"/><test-case name="29760QName008_2091.i tokoe:invalid" result="pass"/><test-case name="29761QName010_2093 tokoe:valid" result="pass"/><test-case name="29762QName010_2093.i tokoe:invalid" result="pass"/><test-case name="29763QName011_2094 tokoe:valid" result="pass"/><test-case name="29764QName011_2094.i tokoe:invalid" result="pass"/><test-case name="29765normalizedString001_2095 tokoe:valid" result="pass"/><test-case name="29766normalizedString001_2095.v tokoe:valid" result="pass"/><test-case name="29767normalizedString002_2096 tokoe:valid" result="pass"/><test-case name="29768normalizedString002_2096.v tokoe:valid" result="pass"/><test-case name="29769normalizedString003_2097 tokoe:valid" result="pass"/><test-case name="29770normalizedString003_2097.v tokoe:valid" result="pass"/><test-case name="29771token001_2098 tokoe:valid" result="pass"/><test-case name="29772token001_2098.v tokoe:valid" result="pass"/><test-case name="29773token002_2099 tokoe:valid" result="pass"/><test-case name="29774token002_2099.v tokoe:valid" result="pass"/><test-case name="29775token003_2100 tokoe:valid" result="pass"/><test-case name="29776token003_2100.v tokoe:valid" result="pass"/><test-case name="29777token004_2101 tokoe:valid" result="pass"/><test-case name="29778token004_2101.v tokoe:valid" result="pass"/><test-case name="29779language001_2102 tokoe:valid" result="pass"/><test-case name="29780language001_2102.i tokoe:invalid" result="pass"/><test-case name="29781language002_2103 tokoe:valid" result="pass"/><test-case name="29782language002_2103.v tokoe:valid" result="pass"/><test-case name="29783language003_2104 tokoe:valid" result="pass"/><test-case name="29784language003_2104.v tokoe:valid" result="pass"/><test-case name="29785language004_2105 tokoe:valid" result="pass"/><test-case name="29786language004_2105.v tokoe:valid" result="pass"/><test-case name="29787language005_2106 tokoe:valid" result="pass"/><test-case name="29788language005_2106.v tokoe:valid" result="pass"/><test-case name="29789language006_2107 tokoe:valid" result="pass"/><test-case name="29790language006_2107.v tokoe:valid" result="pass"/><test-case name="29791language007_2108 tokoe:valid" result="pass"/><test-case name="29792language007_2108.v tokoe:valid" result="pass"/><test-case name="29793language008_2109 tokoe:valid" result="pass"/><test-case name="29794language008_2109.i tokoe:invalid" result="pass"/><test-case name="29795language009_2110 tokoe:valid" result="pass"/><test-case name="29796language009_2110.v tokoe:valid" result="pass"/><test-case name="29797language010_2111 tokoe:valid" result="pass"/><test-case name="29798language010_2111.i tokoe:invalid" result="pass"/><test-case name="29799Name001_2112 tokoe:valid" result="pass"/><test-case name="29800Name001_2112.i tokoe:invalid" result="pass"/><test-case name="29801Name002_2113 tokoe:valid" result="pass"/><test-case name="29802Name002_2113.v tokoe:valid" result="pass"/><test-case name="29803Name003_2114 tokoe:valid" result="pass"/><test-case name="29804Name003_2114.v tokoe:valid" result="pass"/><test-case name="29805Name004_2115 tokoe:valid" result="pass"/><test-case name="29806Name004_2115.i tokoe:invalid" result="pass"/><test-case name="29807Name005_2116 tokoe:valid" result="pass"/><test-case name="29808Name005_2116.i tokoe:invalid" result="pass"/><test-case name="29809Name006_2117 tokoe:valid" result="pass"/><test-case name="29810Name006_2117.i tokoe:invalid" result="pass"/><test-case name="29811Name007_2118 tokoe:valid" result="pass"/><test-case name="29812Name007_2118.v tokoe:valid" result="pass"/><test-case name="29813Name008_2119 tokoe:valid" result="pass"/><test-case name="29814Name008_2119.v tokoe:valid" result="pass"/><test-case name="29815Name009_2120 tokoe:valid" result="pass"/><test-case name="29816Name009_2120.v tokoe:valid" result="pass"/><test-case name="29817Name010_2121 tokoe:valid" result="pass"/><test-case name="29818Name010_2121.v tokoe:valid" result="pass"/><test-case name="29819Name011_2122 tokoe:valid" result="pass"/><test-case name="29820Name011_2122.v tokoe:valid" result="pass"/><test-case name="29821Name012_2123 tokoe:valid" result="pass"/><test-case name="29822Name012_2123.v tokoe:valid" result="pass"/><test-case name="29823Name013_2124 tokoe:valid" result="pass"/><test-case name="29824Name013_2124.v tokoe:valid" result="pass"/><test-case name="29825Name014_2125 tokoe:valid" result="pass"/><test-case name="29826Name014_2125.i tokoe:invalid" result="pass"/><test-case name="29827Name015_2126 tokoe:valid" result="pass"/><test-case name="29828Name015_2126.v tokoe:valid" result="pass"/><test-case name="29829Name016_2127 tokoe:valid" result="pass"/><test-case name="29830Name016_2127.v tokoe:valid" result="pass"/><test-case name="29831Name017_2128 tokoe:valid" result="pass"/><test-case name="29832Name017_2128.i tokoe:invalid" result="pass"/><test-case name="29833Name018_2129 tokoe:valid" result="pass"/><test-case name="29834Name018_2129.i tokoe:invalid" result="pass"/><test-case name="29835NCName001_2130 tokoe:valid" result="pass"/><test-case name="29836NCName001_2130.i tokoe:invalid" result="pass"/><test-case name="29837NCName002_2131 tokoe:valid" result="pass"/><test-case name="29838NCName002_2131.v tokoe:valid" result="pass"/><test-case name="29839NCName003_2132 tokoe:valid" result="pass"/><test-case name="29840NCName003_2132.v tokoe:valid" result="pass"/><test-case name="29841NCName004_2133 tokoe:valid" result="pass"/><test-case name="29842NCName004_2133.i tokoe:invalid" result="pass"/><test-case name="29843NCName005_2134 tokoe:valid" result="pass"/><test-case name="29844NCName005_2134.i tokoe:invalid" result="pass"/><test-case name="29845NCName006_2135 tokoe:valid" result="pass"/><test-case name="29846NCName006_2135.i tokoe:invalid" result="pass"/><test-case name="29847NCName007_2136 tokoe:valid" result="pass"/><test-case name="29848NCName007_2136.v tokoe:valid" result="pass"/><test-case name="29849NCName008_2137 tokoe:valid" result="pass"/><test-case name="29850NCName008_2137.i tokoe:invalid" result="pass"/><test-case name="29851NCName009_2138 tokoe:valid" result="pass"/><test-case name="29852NCName009_2138.i tokoe:invalid" result="pass"/><test-case name="29853NCName010_2139 tokoe:valid" result="pass"/><test-case name="29854NCName010_2139.i tokoe:invalid" result="pass"/><test-case name="29855NCName011_2140 tokoe:valid" result="pass"/><test-case name="29856NCName011_2140.i tokoe:invalid" result="pass"/><test-case name="29857integer001_2141 tokoe:valid" result="pass"/><test-case name="29858integer001_2141.i tokoe:invalid" result="pass"/><test-case name="29859integer002_2142 tokoe:valid" result="pass"/><test-case name="29860integer002_2142.i tokoe:invalid" result="pass"/><test-case name="29861integer003_2143 tokoe:valid" result="pass"/><test-case name="29862integer003_2143.i tokoe:invalid" result="pass"/><test-case name="29863integer004_2144 tokoe:valid" result="pass"/><test-case name="29864integer004_2144.v tokoe:valid" result="pass"/><test-case name="29865integer005_2145 tokoe:valid" result="pass"/><test-case name="29866integer005_2145.v tokoe:valid" result="pass"/><test-case name="29867integer006_2146 tokoe:valid" result="pass"/><test-case name="29868integer006_2146.i tokoe:invalid" result="pass"/><test-case name="29869integer007_2147 tokoe:valid" result="pass"/><test-case name="29870integer007_2147.v tokoe:valid" result="pass"/><test-case name="29871integer008_2148 tokoe:valid" result="pass"/><test-case name="29872integer008_2148.v tokoe:valid" result="pass"/><test-case name="29873integer009_2149 tokoe:valid" result="pass"/><test-case name="29874integer009_2149.v tokoe:valid" result="pass"/><test-case name="29875integer010_2150 tokoe:valid" result="pass"/><test-case name="29876integer010_2150.v tokoe:valid" result="pass"/><test-case name="29877integer011_2151 tokoe:valid" result="pass"/><test-case name="29878integer011_2151.v tokoe:valid" result="fail"/><test-case name="29879integer012_2152 tokoe:valid" result="pass"/><test-case name="29880integer012_2152.i tokoe:invalid" result="pass"/><test-case name="29881integer013_2153 tokoe:valid" result="pass"/><test-case name="29882integer013_2153.i tokoe:invalid" result="pass"/><test-case name="29883integer014_2154 tokoe:valid" result="pass"/><test-case name="29884integer014_2154.i tokoe:invalid" result="pass"/><test-case name="29885integer015_2155 tokoe:valid" result="pass"/><test-case name="29886integer015_2155.i tokoe:invalid" result="pass"/><test-case name="29887integer016_2156 tokoe:valid" result="pass"/><test-case name="29888integer016_2156.i tokoe:invalid" result="pass"/><test-case name="29889nonPositiveInteger001_2157 tokoe:valid" result="pass"/><test-case name="29890nonPositiveInteger001_2157.i tokoe:invalid" result="pass"/><test-case name="29891nonPositiveInteger002_2158 tokoe:valid" result="pass"/><test-case name="29892nonPositiveInteger002_2158.v tokoe:valid" result="pass"/><test-case name="29893nonPositiveInteger003_2159 tokoe:valid" result="pass"/><test-case name="29894nonPositiveInteger003_2159.v tokoe:valid" result="pass"/><test-case name="29895nonPositiveInteger004_2160 tokoe:valid" result="pass"/><test-case name="29896nonPositiveInteger004_2160.i tokoe:invalid" result="pass"/><test-case name="29897nonPositiveInteger005_2161 tokoe:valid" result="pass"/><test-case name="29898nonPositiveInteger005_2161.v tokoe:valid" result="fail"/><test-case name="29899negativeInteger001_2162 tokoe:valid" result="pass"/><test-case name="29900negativeInteger001_2162.i tokoe:invalid" result="pass"/><test-case name="29901negativeInteger002_2163 tokoe:valid" result="pass"/><test-case name="29902negativeInteger002_2163.v tokoe:valid" result="pass"/><test-case name="29903negativeInteger003_2164 tokoe:valid" result="pass"/><test-case name="29904negativeInteger003_2164.i tokoe:invalid" result="pass"/><test-case name="29905negativeInteger004_2165 tokoe:valid" result="pass"/><test-case name="29906negativeInteger004_2165.i tokoe:invalid" result="pass"/><test-case name="29907negativeInteger005_2166 tokoe:valid" result="pass"/><test-case name="29908negativeInteger005_2166.v tokoe:valid" result="fail"/><test-case name="29909long001_2167 tokoe:valid" result="pass"/><test-case name="29910long001_2167.i tokoe:invalid" result="pass"/><test-case name="29911long002_2168 tokoe:valid" result="pass"/><test-case name="29912long002_2168.v tokoe:valid" result="pass"/><test-case name="29913long003_2169 tokoe:valid" result="pass"/><test-case name="29914long003_2169.v tokoe:valid" result="pass"/><test-case name="29915long004_2170 tokoe:valid" result="pass"/><test-case name="29916long004_2170.v tokoe:valid" result="pass"/><test-case name="29917long005_2171 tokoe:valid" result="pass"/><test-case name="29918long005_2171.v tokoe:valid" result="pass"/><test-case name="29919long006_2172 tokoe:valid" result="pass"/><test-case name="29920long006_2172.i tokoe:invalid" result="pass"/><test-case name="29921long007_2173 tokoe:valid" result="pass"/><test-case name="29922long007_2173.v tokoe:valid" result="pass"/><test-case name="29923long008_2174 tokoe:valid" result="pass"/><test-case name="29924long008_2174.i tokoe:invalid" result="pass"/><test-case name="29925long009_2175 tokoe:valid" result="pass"/><test-case name="29926long009_2175.v tokoe:valid" result="pass"/><test-case name="29927int001_2176 tokoe:valid" result="pass"/><test-case name="29928int001_2176.i tokoe:invalid" result="pass"/><test-case name="29929int002_2177 tokoe:valid" result="pass"/><test-case name="29930int002_2177.v tokoe:valid" result="pass"/><test-case name="29931int003_2178 tokoe:valid" result="pass"/><test-case name="29932int003_2178.v tokoe:valid" result="pass"/><test-case name="29933int004_2179 tokoe:valid" result="pass"/><test-case name="29934int004_2179.v tokoe:valid" result="pass"/><test-case name="29935int005_2180 tokoe:valid" result="pass"/><test-case name="29936int005_2180.v tokoe:valid" result="pass"/><test-case name="29937int006_2181 tokoe:valid" result="pass"/><test-case name="29938int006_2181.i tokoe:invalid" result="pass"/><test-case name="29939int007_2182 tokoe:valid" result="pass"/><test-case name="29940int007_2182.v tokoe:valid" result="pass"/><test-case name="29941int008_2183 tokoe:valid" result="pass"/><test-case name="29942int008_2183.i tokoe:invalid" result="pass"/><test-case name="29943short001_2184 tokoe:valid" result="pass"/><test-case name="29944short001_2184.i tokoe:invalid" result="pass"/><test-case name="29945short002_2185 tokoe:valid" result="pass"/><test-case name="29946short002_2185.v tokoe:valid" result="pass"/><test-case name="29947short003_2186 tokoe:valid" result="pass"/><test-case name="29948short003_2186.v tokoe:valid" result="pass"/><test-case name="29949short004_2187 tokoe:valid" result="pass"/><test-case name="29950short004_2187.v tokoe:valid" result="pass"/><test-case name="29951short005_2188 tokoe:valid" result="pass"/><test-case name="29952short005_2188.v tokoe:valid" result="pass"/><test-case name="29953short006_2189 tokoe:valid" result="pass"/><test-case name="29954short006_2189.i tokoe:invalid" result="pass"/><test-case name="29955short007_2190 tokoe:valid" result="pass"/><test-case name="29956short007_2190.v tokoe:valid" result="pass"/><test-case name="29957short008_2191 tokoe:valid" result="pass"/><test-case name="29958short008_2191.i tokoe:invalid" result="pass"/><test-case name="29959short009_2192 tokoe:valid" result="pass"/><test-case name="29960short009_2192.v tokoe:valid" result="pass"/><test-case name="29961byte001_2193 tokoe:valid" result="pass"/><test-case name="29962byte001_2193.i tokoe:invalid" result="pass"/><test-case name="29963byte002_2194 tokoe:valid" result="pass"/><test-case name="29964byte002_2194.v tokoe:valid" result="pass"/><test-case name="29965byte003_2195 tokoe:valid" result="pass"/><test-case name="29966byte003_2195.v tokoe:valid" result="pass"/><test-case name="29967byte004_2196 tokoe:valid" result="pass"/><test-case name="29968byte004_2196.v tokoe:valid" result="pass"/><test-case name="29969byte005_2197 tokoe:valid" result="pass"/><test-case name="29970byte005_2197.v tokoe:valid" result="pass"/><test-case name="29971byte006_2198 tokoe:valid" result="pass"/><test-case name="29972byte006_2198.i tokoe:invalid" result="pass"/><test-case name="29973byte007_2199 tokoe:valid" result="pass"/><test-case name="29974byte007_2199.v tokoe:valid" result="pass"/><test-case name="29975byte008_2200 tokoe:valid" result="pass"/><test-case name="29976byte008_2200.i tokoe:invalid" result="pass"/><test-case name="29977byte009_2201 tokoe:valid" result="pass"/><test-case name="29978byte009_2201.v tokoe:valid" result="pass"/><test-case name="29979nonNegativeInteger001_2202 tokoe:valid" result="pass"/><test-case name="29980nonNegativeInteger001_2202.i tokoe:invalid" result="pass"/><test-case name="29981nonNegativeInteger002_2203 tokoe:valid" result="pass"/><test-case name="29982nonNegativeInteger002_2203.i tokoe:invalid" result="pass"/><test-case name="29983nonNegativeInteger003_2204 tokoe:valid" result="pass"/><test-case name="29984nonNegativeInteger003_2204.v tokoe:valid" result="pass"/><test-case name="29985nonNegativeInteger004_2205 tokoe:valid" result="pass"/><test-case name="29986nonNegativeInteger004_2205.v tokoe:valid" result="pass"/><test-case name="29987nonNegativeInteger005_2206 tokoe:valid" result="pass"/><test-case name="29988nonNegativeInteger005_2206.v tokoe:valid" result="fail"/><test-case name="29989unsignedLong001_2207 tokoe:valid" result="pass"/><test-case name="29990unsignedLong001_2207.i tokoe:invalid" result="pass"/><test-case name="29991unsignedLong002_2208 tokoe:valid" result="pass"/><test-case name="29992unsignedLong002_2208.i tokoe:invalid" result="pass"/><test-case name="29993unsignedLong003_2209 tokoe:valid" result="pass"/><test-case name="29994unsignedLong003_2209.v tokoe:valid" result="pass"/><test-case name="29995unsignedLong004_2210 tokoe:valid" result="pass"/><test-case name="29996unsignedLong004_2210.v tokoe:valid" result="pass"/><test-case name="29997unsignedLong005_2211 tokoe:valid" result="pass"/><test-case name="29998unsignedLong005_2211.v tokoe:valid" result="pass"/><test-case name="29999unsignedLong006_2212 tokoe:valid" result="pass"/><test-case name="30000unsignedLong006_2212.i tokoe:invalid" result="pass"/><test-case name="30001unsignedLong007_2213 tokoe:valid" result="pass"/><test-case name="30002unsignedLong007_2213.v tokoe:valid" result="pass"/><test-case name="30003unsignedInt001_2214 tokoe:valid" result="pass"/><test-case name="30004unsignedInt001_2214.i tokoe:invalid" result="pass"/><test-case name="30005unsignedInt002_2215 tokoe:valid" result="pass"/><test-case name="30006unsignedInt002_2215.i tokoe:invalid" result="pass"/><test-case name="30007unsignedInt003_2216 tokoe:valid" result="pass"/><test-case name="30008unsignedInt003_2216.v tokoe:valid" result="pass"/><test-case name="30009unsignedInt004_2217 tokoe:valid" result="pass"/><test-case name="30010unsignedInt004_2217.v tokoe:valid" result="pass"/><test-case name="30011unsignedInt005_2218 tokoe:valid" result="pass"/><test-case name="30012unsignedInt005_2218.v tokoe:valid" result="pass"/><test-case name="30013unsignedInt006_2219 tokoe:valid" result="pass"/><test-case name="30014unsignedInt006_2219.i tokoe:invalid" result="pass"/><test-case name="30015unsignedInt007_2220 tokoe:valid" result="pass"/><test-case name="30016unsignedInt007_2220.v tokoe:valid" result="pass"/><test-case name="30017unsignedShort001_2221 tokoe:valid" result="pass"/><test-case name="30018unsignedShort001_2221.i tokoe:invalid" result="pass"/><test-case name="30019unsignedShort002_2222 tokoe:valid" result="pass"/><test-case name="30020unsignedShort002_2222.i tokoe:invalid" result="pass"/><test-case name="30021unsignedShort003_2223 tokoe:valid" result="pass"/><test-case name="30022unsignedShort003_2223.v tokoe:valid" result="pass"/><test-case name="30023unsignedShort004_2224 tokoe:valid" result="pass"/><test-case name="30024unsignedShort004_2224.v tokoe:valid" result="pass"/><test-case name="30025unsignedShort005_2225 tokoe:valid" result="pass"/><test-case name="30026unsignedShort005_2225.v tokoe:valid" result="pass"/><test-case name="30027unsignedShort006_2226 tokoe:valid" result="pass"/><test-case name="30028unsignedShort006_2226.i tokoe:invalid" result="pass"/><test-case name="30029unsignedShort007_2227 tokoe:valid" result="pass"/><test-case name="30030unsignedShort007_2227.v tokoe:valid" result="pass"/><test-case name="30031unsignedByte001_2228 tokoe:valid" result="pass"/><test-case name="30032unsignedByte001_2228.i tokoe:invalid" result="pass"/><test-case name="30033unsignedByte002_2229 tokoe:valid" result="pass"/><test-case name="30034unsignedByte002_2229.i tokoe:invalid" result="pass"/><test-case name="30035unsignedByte003_2230 tokoe:valid" result="pass"/><test-case name="30036unsignedByte003_2230.v tokoe:valid" result="pass"/><test-case name="30037unsignedByte004_2231 tokoe:valid" result="pass"/><test-case name="30038unsignedByte004_2231.v tokoe:valid" result="pass"/><test-case name="30039unsignedByte005_2232 tokoe:valid" result="pass"/><test-case name="30040unsignedByte005_2232.v tokoe:valid" result="pass"/><test-case name="30041unsignedByte006_2233 tokoe:valid" result="pass"/><test-case name="30042unsignedByte006_2233.i tokoe:invalid" result="pass"/><test-case name="30043unsignedByte007_2234 tokoe:valid" result="pass"/><test-case name="30044unsignedByte007_2234.v tokoe:valid" result="pass"/><test-case name="30045positiveInteger001_2235 tokoe:valid" result="pass"/><test-case name="30046positiveInteger001_2235.i tokoe:invalid" result="pass"/><test-case name="30047positiveInteger002_2236 tokoe:valid" result="pass"/><test-case name="30048positiveInteger002_2236.i tokoe:invalid" result="pass"/><test-case name="30049positiveInteger003_2237 tokoe:valid" result="pass"/><test-case name="30050positiveInteger003_2237.i tokoe:invalid" result="pass"/><test-case name="30051positiveInteger004_2238 tokoe:valid" result="pass"/><test-case name="30052positiveInteger004_2238.v tokoe:valid" result="pass"/><test-case name="30053positiveInteger005_2239 tokoe:valid" result="pass"/><test-case name="30054positiveInteger005_2239.v tokoe:valid" result="fail"/><test-case name="30055ID_test64335_2240 tokoe:valid" result="pass"/><test-case name="30056ID_test64335_2240.v tokoe:valid" result="pass"/><test-case name="30057ID_test70681_2241 tokoe:valid" result="pass"/><test-case name="30058ID_test70681_2241.v tokoe:valid" result="pass"/><test-case name="30059dtZ100507_2242 tokoe:valid" result="pass"/><test-case name="30060dtZ100507_2242.i tokoe:invalid" result="pass"/><test-case name="30061dtZ107447_2243 tokoe:valid" result="pass"/><test-case name="30062dtZ107447_2243.v tokoe:valid" result="pass"/><test-case name="30063dtZ107447_1_2244 tokoe:valid" result="pass"/><test-case name="30064dtZ107447_1_2244.v tokoe:valid" result="pass"/><test-case name="30065dtZ86723_2246 tokoe:valid" result="pass"/><test-case name="30066dtZ86723_2246.i tokoe:invalid" result="pass"/><test-case name="30067elemA001 tokoe:invalid" result="pass"/><test-case name="30068elemA002 tokoe:valid" result="pass"/><test-case name="30069elemA003 tokoe:valid" result="pass"/><test-case name="30070elemA004 tokoe:valid" result="pass"/><test-case name="30071elemA005 tokoe:valid" result="pass"/><test-case name="30072elemA006 tokoe:invalid" result="pass"/><test-case name="30073elemA007 tokoe:valid" result="pass"/><test-case name="30074elemA009 tokoe:invalid" result="pass"/><test-case name="30075elemA010 tokoe:invalid" result="pass"/><test-case name="30076elemA011 tokoe:invalid" result="pass"/><test-case name="30077elemA012 tokoe:invalid" result="pass"/><test-case name="30078elemA013 tokoe:invalid" result="pass"/><test-case name="30079elemA014 tokoe:invalid" result="pass"/><test-case name="30080elemA015 tokoe:valid" result="pass"/><test-case name="30081elemA016 tokoe:valid" result="pass"/><test-case name="30082elemA017 tokoe:valid" result="pass"/><test-case name="30083elemB001 tokoe:valid" result="pass"/><test-case name="30084elemB002 tokoe:valid" result="pass"/><test-case name="30085elemB003 tokoe:invalid" result="pass"/><test-case name="30086elemB004 tokoe:invalid" result="pass"/><test-case name="30087elemB005 tokoe:invalid" result="pass"/><test-case name="30088elemB006 tokoe:invalid" result="pass"/><test-case name="30089elemB007 tokoe:valid" result="pass"/><test-case name="30090elemB008 tokoe:valid" result="pass"/><test-case name="30091elemB009 tokoe:invalid" result="pass"/><test-case name="30092elemB010 tokoe:invalid" result="pass"/><test-case name="30093elemC001 tokoe:valid" result="pass"/><test-case name="30094elemC002 tokoe:valid" result="pass"/><test-case name="30095elemC003 tokoe:valid" result="pass"/><test-case name="30096elemC004 tokoe:valid" result="pass"/><test-case name="30097elemC005 tokoe:valid" result="pass"/><test-case name="30098elemC006 tokoe:valid" result="pass"/><test-case name="30099elemC007 tokoe:valid" result="pass"/><test-case name="30100elemC008 tokoe:valid" result="pass"/><test-case name="30101elemC009 tokoe:invalid" result="pass"/><test-case name="30102elemC010 tokoe:invalid" result="pass"/><test-case name="30103elemC011 tokoe:invalid" result="pass"/><test-case name="30104elemC012 tokoe:invalid" result="pass"/><test-case name="30105elemC013 tokoe:invalid" result="pass"/><test-case name="30106elemC014 tokoe:invalid" result="pass"/><test-case name="30107elemC015 tokoe:invalid" result="pass"/><test-case name="30108elemC016 tokoe:invalid" result="pass"/><test-case name="30109elemC017 tokoe:invalid" result="pass"/><test-case name="30110elemC018 tokoe:valid" result="pass"/><test-case name="30111elemC020 tokoe:valid" result="pass"/><test-case name="30112elemD001 tokoe:valid" result="pass"/><test-case name="30113elemD002 tokoe:valid" result="pass"/><test-case name="30114elemD003 tokoe:invalid" result="pass"/><test-case name="30115elemD004 tokoe:invalid" result="pass"/><test-case name="30116elemD005 tokoe:invalid" result="pass"/><test-case name="30117elemD006 tokoe:valid" result="pass"/><test-case name="30118elemE006 tokoe:invalid" result="pass"/><test-case name="30119elemE007 tokoe:invalid" result="pass"/><test-case name="30120elemE008 tokoe:invalid" result="pass"/><test-case name="30121elemE009 tokoe:invalid" result="pass"/><test-case name="30122elemF001 tokoe:valid" result="pass"/><test-case name="30123elemF002 tokoe:valid" result="pass"/><test-case name="30124elemF003 tokoe:valid" result="pass"/><test-case name="30125elemF004 tokoe:invalid" result="pass"/><test-case name="30126elemF005 tokoe:valid" result="pass"/><test-case name="30127elemF006 tokoe:invalid" result="pass"/><test-case name="30128elemF007 tokoe:invalid" result="pass"/><test-case name="30129elemF008 tokoe:invalid" result="pass"/><test-case name="30130elemF009 tokoe:invalid" result="pass"/><test-case name="30131elemF010 tokoe:invalid" result="pass"/><test-case name="30132elemF011 tokoe:invalid" result="pass"/><test-case name="30133elemF012 tokoe:invalid" result="pass"/><test-case name="30134elemF013 tokoe:invalid" result="pass"/><test-case name="30135elemF014 tokoe:invalid" result="pass"/><test-case name="30136elemF015 tokoe:invalid" result="pass"/><test-case name="30137elemF016 tokoe:invalid" result="pass"/><test-case name="30138elemF017 tokoe:invalid" result="pass"/><test-case name="30139elemF018 tokoe:valid" result="pass"/><test-case name="30140elemG001 tokoe:valid" result="pass"/><test-case name="30141elemG002 tokoe:valid" result="pass"/><test-case name="30142elemG003 tokoe:invalid" result="pass"/><test-case name="30143elemG004 tokoe:invalid" result="pass"/><test-case name="30144elemG005 tokoe:valid" result="pass"/><test-case name="30145elemH001 tokoe:valid" result="pass"/><test-case name="30146elemH002 tokoe:valid" result="pass"/><test-case name="30147elemH003 tokoe:invalid" result="pass"/><test-case name="30148elemH004 tokoe:invalid" result="pass"/><test-case name="30149elemH005 tokoe:invalid" result="pass"/><test-case name="30150elemH006 tokoe:invalid" result="pass"/><test-case name="30151elemI001 tokoe:valid" result="pass"/><test-case name="30152elemI002 tokoe:valid" result="pass"/><test-case name="30153elemI003 tokoe:invalid" result="pass"/><test-case name="30154elemI004 tokoe:invalid" result="pass"/><test-case name="30155elemI005 tokoe:invalid" result="pass"/><test-case name="30156elemJ002 tokoe:valid" result="pass"/><test-case name="30157elemJ004 tokoe:valid" result="pass"/><test-case name="30158elemJ005 tokoe:valid" result="pass"/><test-case name="30159elemJ006 tokoe:invalid" result="pass"/><test-case name="30160elemJ007 tokoe:invalid" result="pass"/><test-case name="30161elemJ008 tokoe:invalid" result="pass"/><test-case name="30162elemJ009 tokoe:valid" result="pass"/><test-case name="30163elemJ010 tokoe:valid" result="pass"/><test-case name="30164elemJ012 tokoe:invalid" result="pass"/><test-case name="30165elemJ013 tokoe:valid" result="pass"/><test-case name="30166elemJ014 tokoe:invalid" result="pass"/><test-case name="30167elemJ015 tokoe:invalid" result="pass"/><test-case name="30168elemJ016 tokoe:invalid" result="pass"/><test-case name="30169elemJ017 tokoe:valid" result="pass"/><test-case name="30170elemJ018 tokoe:valid" result="pass"/><test-case name="30171elemJ019 tokoe:invalid" result="pass"/><test-case name="30172elemJ020 tokoe:invalid" result="pass"/><test-case name="30173elemJ021 tokoe:valid" result="pass"/><test-case name="30174elemK001 tokoe:valid" result="pass"/><test-case name="30175elemK002 tokoe:valid" result="pass"/><test-case name="30176elemK003 tokoe:invalid" result="pass"/><test-case name="30177elemK004 tokoe:invalid" result="pass"/><test-case name="30178elemK005 tokoe:invalid" result="pass"/><test-case name="30179elemK006 tokoe:invalid" result="pass"/><test-case name="30180elemK007 tokoe:invalid" result="pass"/><test-case name="30181elemL001 tokoe:valid" result="pass"/><test-case name="30182elemL002 tokoe:invalid" result="pass"/><test-case name="30183elemL003 tokoe:invalid" result="pass"/><test-case name="30184elemL004 tokoe:valid" result="pass"/><test-case name="30185elemL005 tokoe:valid" result="pass"/><test-case name="30186elemM001 tokoe:valid" result="pass"/><test-case name="30187elemM002 tokoe:invalid" result="pass"/><test-case name="30188elemM003 tokoe:invalid" result="pass"/><test-case name="30189elemM004 tokoe:valid" result="pass"/><test-case name="30190elemM005 tokoe:invalid" result="pass"/><test-case name="30191elemN001 tokoe:valid" result="pass"/><test-case name="30192elemN002 tokoe:valid" result="pass"/><test-case name="30193elemN003 tokoe:valid" result="pass"/><test-case name="30194elemN004 tokoe:valid" result="pass"/><test-case name="30195elemN005 tokoe:valid" result="pass"/><test-case name="30196elemN006 tokoe:invalid" result="pass"/><test-case name="30197elemO001 tokoe:valid" result="pass"/><test-case name="30198elemO001.i tokoe:invalid" result="pass"/><test-case name="30199elemO002 tokoe:valid" result="pass"/><test-case name="30200elemO002.v tokoe:valid" result="pass"/><test-case name="30201elemO003 tokoe:valid" result="pass"/><test-case name="30202elemO003.v tokoe:valid" result="pass"/><test-case name="30203elemO004 tokoe:valid" result="pass"/><test-case name="30204elemO004.v tokoe:valid" result="pass"/><test-case name="30205elemO005 tokoe:valid" result="pass"/><test-case name="30206elemO005.v tokoe:valid" result="pass"/><test-case name="30207elemO006 tokoe:valid" result="pass"/><test-case name="30208elemO006.v tokoe:valid" result="pass"/><test-case name="30209elemO007 tokoe:valid" result="pass"/><test-case name="30210elemO007.i tokoe:invalid" result="pass"/><test-case name="30211elemO008 tokoe:valid" result="pass"/><test-case name="30212elemO008.v tokoe:valid" result="pass"/><test-case name="30213elemO009 tokoe:valid" result="pass"/><test-case name="30214elemO009.v tokoe:valid" result="pass"/><test-case name="30215elemO010 tokoe:valid" result="pass"/><test-case name="30216elemO010.i tokoe:invalid" result="pass"/><test-case name="30217elemO011 tokoe:valid" result="pass"/><test-case name="30218elemO011.i tokoe:invalid" result="pass"/><test-case name="30219elemO012 tokoe:valid" result="pass"/><test-case name="30220elemO012.v tokoe:valid" result="pass"/><test-case name="30221elemP001 tokoe:invalid" result="pass"/><test-case name="30222elemP002 tokoe:invalid" result="pass"/><test-case name="30223elemP003 tokoe:valid" result="pass"/><test-case name="30224elemP004 tokoe:valid" result="pass"/><test-case name="30225elemP005 tokoe:invalid" result="pass"/><test-case name="30226elemP006 tokoe:invalid" result="pass"/><test-case name="30227elemP007 tokoe:invalid" result="pass"/><test-case name="30228elemP008 tokoe:invalid" result="pass"/><test-case name="30229elemP009 tokoe:invalid" result="pass"/><test-case name="30230elemQ001 tokoe:valid" result="pass"/><test-case name="30231elemQ002 tokoe:valid" result="pass"/><test-case name="30232elemQ003 tokoe:valid" result="pass"/><test-case name="30233elemQ004 tokoe:invalid" result="pass"/><test-case name="30234elemQ005 tokoe:valid" result="pass"/><test-case name="30235elemQ006 tokoe:invalid" result="pass"/><test-case name="30236elemQ007 tokoe:valid" result="pass"/><test-case name="30237elemQ007.i tokoe:invalid" result="pass"/><test-case name="30238elemQ008 tokoe:valid" result="pass"/><test-case name="30239elemQ008.v tokoe:valid" result="pass"/><test-case name="30240elemQ009 tokoe:valid" result="pass"/><test-case name="30241elemQ009.i tokoe:invalid" result="pass"/><test-case name="30242elemQ010 tokoe:valid" result="pass"/><test-case name="30243elemQ010.i tokoe:invalid" result="pass"/><test-case name="30244elemQ011 tokoe:valid" result="pass"/><test-case name="30245elemQ011.v tokoe:valid" result="pass"/><test-case name="30246elemQ012 tokoe:valid" result="pass"/><test-case name="30247elemQ012.i tokoe:invalid" result="pass"/><test-case name="30248elemQ013 tokoe:valid" result="pass"/><test-case name="30249elemQ013.v tokoe:valid" result="pass"/><test-case name="30250elemQ014 tokoe:valid" result="pass"/><test-case name="30251elemQ014.i tokoe:invalid" result="pass"/><test-case name="30252elemQ015 tokoe:valid" result="pass"/><test-case name="30253elemQ015.v tokoe:valid" result="pass"/><test-case name="30254elemQ016 tokoe:valid" result="pass"/><test-case name="30255elemQ017 tokoe:valid" result="pass"/><test-case name="30256elemQ017.v tokoe:valid" result="pass"/><test-case name="30257elemQ018 tokoe:valid" result="pass"/><test-case name="30258elemQ018.i tokoe:invalid" result="pass"/><test-case name="30259elemQ019 tokoe:valid" result="pass"/><test-case name="30260elemQ019.v tokoe:valid" result="pass"/><test-case name="30261elemQ020 tokoe:valid" result="pass"/><test-case name="30262elemQ020.v tokoe:valid" result="pass"/><test-case name="30263elemQ021 tokoe:valid" result="pass"/><test-case name="30264elemQ021.v tokoe:valid" result="pass"/><test-case name="30265elemQ022 tokoe:valid" result="pass"/><test-case name="30266elemQ022.v tokoe:valid" result="pass"/><test-case name="30267elemR001 tokoe:valid" result="pass"/><test-case name="30268elemR001.v tokoe:valid" result="pass"/><test-case name="30269elemR002 tokoe:valid" result="pass"/><test-case name="30270elemR002.v tokoe:valid" result="pass"/><test-case name="30271elemR003 tokoe:invalid" result="pass"/><test-case name="30272elemR004 tokoe:valid" result="pass"/><test-case name="30273elemR004.v tokoe:valid" result="pass"/><test-case name="30274elemR005 tokoe:valid" result="pass"/><test-case name="30275elemR005.v tokoe:valid" result="pass"/><test-case name="30276elemR006 tokoe:invalid" result="pass"/><test-case name="30277elemS001 tokoe:invalid" result="pass"/><test-case name="30278elemS002 tokoe:valid" result="pass"/><test-case name="30279elemS002.v tokoe:valid" result="pass"/><test-case name="30280elemS003 tokoe:valid" result="pass"/><test-case name="30281elemS003.v tokoe:valid" result="pass"/><test-case name="30282elemS004 tokoe:invalid" result="pass"/><test-case name="30283elemS005 tokoe:invalid" result="pass"/><test-case name="30284elemS006 tokoe:invalid" result="pass"/><test-case name="30285elemS007 tokoe:valid" result="pass"/><test-case name="30286elemS007.v tokoe:valid" result="pass"/><test-case name="30287elemS008 tokoe:valid" result="pass"/><test-case name="30288elemS008.v tokoe:valid" result="pass"/><test-case name="30289elemT001 tokoe:valid" result="pass"/><test-case name="30290elemT001.i tokoe:invalid" result="pass"/><test-case name="30291elemT002 tokoe:valid" result="pass"/><test-case name="30292elemT002.v tokoe:valid" result="pass"/><test-case name="30293elemT003 tokoe:valid" result="pass"/><test-case name="30294elemT003.v tokoe:valid" result="pass"/><test-case name="30295elemT004 tokoe:valid" result="pass"/><test-case name="30296elemT004.i tokoe:invalid" result="pass"/><test-case name="30297elemT005 tokoe:valid" result="pass"/><test-case name="30298elemT005.i tokoe:invalid" result="pass"/><test-case name="30299elemT006 tokoe:valid" result="pass"/><test-case name="30300elemT006.i tokoe:invalid" result="pass"/><test-case name="30301elemT007 tokoe:valid" result="pass"/><test-case name="30302elemT007.v tokoe:valid" result="pass"/><test-case name="30303elemT008 tokoe:valid" result="pass"/><test-case name="30304elemT008.v tokoe:valid" result="pass"/><test-case name="30305elemT009 tokoe:invalid" result="pass"/><test-case name="30306elemT010 tokoe:invalid" result="pass"/><test-case name="30307elemT011 tokoe:valid" result="pass"/><test-case name="30308elemT011.i tokoe:invalid" result="pass"/><test-case name="30309elemT012 tokoe:valid" result="pass"/><test-case name="30310elemT012.i tokoe:invalid" result="pass"/><test-case name="30311elemT013 tokoe:valid" result="pass"/><test-case name="30312elemT013.i tokoe:invalid" result="pass"/><test-case name="30313elemT014 tokoe:valid" result="pass"/><test-case name="30314elemT014.v tokoe:valid" result="pass"/><test-case name="30315elemT015 tokoe:valid" result="pass"/><test-case name="30316elemT015.v tokoe:valid" result="pass"/><test-case name="30317elemT016 tokoe:valid" result="pass"/><test-case name="30318elemT016.v tokoe:valid" result="pass"/><test-case name="30319elemT017 tokoe:valid" result="pass"/><test-case name="30320elemT017.i tokoe:invalid" result="pass"/><test-case name="30321elemT018 tokoe:valid" result="pass"/><test-case name="30322elemT018.i tokoe:invalid" result="pass"/><test-case name="30323elemT019 tokoe:valid" result="pass"/><test-case name="30324elemT019.i tokoe:invalid" result="pass"/><test-case name="30325elemT020 tokoe:valid" result="pass"/><test-case name="30326elemT020.i tokoe:invalid" result="pass"/><test-case name="30327elemT021 tokoe:valid" result="pass"/><test-case name="30328elemT021.i tokoe:invalid" result="pass"/><test-case name="30329elemT022 tokoe:valid" result="pass"/><test-case name="30330elemT022.i tokoe:invalid" result="pass"/><test-case name="30331elemT023 tokoe:valid" result="pass"/><test-case name="30332elemT023.i tokoe:invalid" result="pass"/><test-case name="30333elemT024 tokoe:valid" result="pass"/><test-case name="30334elemT024.i tokoe:invalid" result="pass"/><test-case name="30335elemT025 tokoe:valid" result="pass"/><test-case name="30336elemT025.v tokoe:valid" result="pass"/><test-case name="30337elemT030 tokoe:valid" result="pass"/><test-case name="30338elemT030.v tokoe:valid" result="pass"/><test-case name="30339elemT031 tokoe:valid" result="pass"/><test-case name="30340elemT031.i tokoe:invalid" result="pass"/><test-case name="30341elemT032 tokoe:valid" result="pass"/><test-case name="30342elemT032.v tokoe:valid" result="pass"/><test-case name="30343elemT033 tokoe:valid" result="pass"/><test-case name="30344elemT033.i tokoe:invalid" result="pass"/><test-case name="30345elemT034 tokoe:valid" result="pass"/><test-case name="30346elemT034.i tokoe:invalid" result="pass"/><test-case name="30347elemT035 tokoe:valid" result="pass"/><test-case name="30348elemT035.i tokoe:invalid" result="pass"/><test-case name="30349elemT036 tokoe:valid" result="pass"/><test-case name="30350elemT036.i tokoe:invalid" result="pass"/><test-case name="30351elemT037 tokoe:valid" result="pass"/><test-case name="30352elemT037.i tokoe:invalid" result="pass"/><test-case name="30353elemT038 tokoe:valid" result="pass"/><test-case name="30354elemT038.v tokoe:valid" result="pass"/><test-case name="30355elemT039 tokoe:valid" result="pass"/><test-case name="30356elemT039.i tokoe:invalid" result="pass"/><test-case name="30357elemT040 tokoe:valid" result="pass"/><test-case name="30358elemT040.v tokoe:valid" result="pass"/><test-case name="30359elemT041 tokoe:valid" result="pass"/><test-case name="30360elemT041.v tokoe:valid" result="pass"/><test-case name="30361elemT042 tokoe:valid" result="pass"/><test-case name="30362elemT042.v tokoe:valid" result="pass"/><test-case name="30363elemT043 tokoe:valid" result="pass"/><test-case name="30364elemT043.v tokoe:valid" result="pass"/><test-case name="30365elemT044 tokoe:valid" result="pass"/><test-case name="30366elemT044.v tokoe:valid" result="pass"/><test-case name="30367elemT045 tokoe:valid" result="pass"/><test-case name="30368elemT045.i tokoe:invalid" result="pass"/><test-case name="30369elemT046 tokoe:valid" result="pass"/><test-case name="30370elemT046.i tokoe:invalid" result="pass"/><test-case name="30371elemT047 tokoe:valid" result="pass"/><test-case name="30372elemT047.i tokoe:invalid" result="pass"/><test-case name="30373elemT048 tokoe:valid" result="pass"/><test-case name="30374elemT048.i tokoe:invalid" result="pass"/><test-case name="30375elemT049 tokoe:valid" result="pass"/><test-case name="30376elemT049.i tokoe:invalid" result="pass"/><test-case name="30377elemT050 tokoe:valid" result="pass"/><test-case name="30378elemT050.i tokoe:invalid" result="pass"/><test-case name="30379elemT051 tokoe:valid" result="pass"/><test-case name="30380elemT051.i tokoe:invalid" result="pass"/><test-case name="30381elemT052 tokoe:valid" result="pass"/><test-case name="30382elemT052.i tokoe:invalid" result="pass"/><test-case name="30383elemT053 tokoe:valid" result="pass"/><test-case name="30384elemT053.i tokoe:invalid" result="pass"/><test-case name="30385elemT058 tokoe:valid" result="pass"/><test-case name="30386elemT058.v tokoe:valid" result="pass"/><test-case name="30387elemT059 tokoe:valid" result="pass"/><test-case name="30388elemT059.i tokoe:invalid" result="pass"/><test-case name="30389elemT060 tokoe:valid" result="pass"/><test-case name="30390elemT060.i tokoe:invalid" result="pass"/><test-case name="30391elemT061 tokoe:valid" result="pass"/><test-case name="30392elemT061.i tokoe:invalid" result="pass"/><test-case name="30393elemT062 tokoe:valid" result="pass"/><test-case name="30394elemT062.v tokoe:valid" result="pass"/><test-case name="30395elemT063 tokoe:valid" result="pass"/><test-case name="30396elemT063.i tokoe:invalid" result="pass"/><test-case name="30397elemT064 tokoe:valid" result="pass"/><test-case name="30398elemT064.v tokoe:valid" result="pass"/><test-case name="30399elemT065 tokoe:valid" result="pass"/><test-case name="30400elemT065.i tokoe:invalid" result="pass"/><test-case name="30401elemT066 tokoe:valid" result="pass"/><test-case name="30402elemT066.v tokoe:valid" result="pass"/><test-case name="30403elemT067 tokoe:valid" result="pass"/><test-case name="30404elemT067.v tokoe:valid" result="pass"/><test-case name="30405elemT068 tokoe:valid" result="pass"/><test-case name="30406elemT068.i tokoe:invalid" result="pass"/><test-case name="30407elemT069 tokoe:valid" result="pass"/><test-case name="30408elemT069.i tokoe:invalid" result="pass"/><test-case name="30409elemT070 tokoe:valid" result="pass"/><test-case name="30410elemT070.i tokoe:invalid" result="pass"/><test-case name="30411elemT071 tokoe:valid" result="pass"/><test-case name="30412elemT071.v tokoe:valid" result="pass"/><test-case name="30413elemT072 tokoe:valid" result="pass"/><test-case name="30414elemT072.v tokoe:valid" result="pass"/><test-case name="30415elemT073 tokoe:valid" result="pass"/><test-case name="30416elemT073.v tokoe:valid" result="pass"/><test-case name="30417elemT074 tokoe:valid" result="pass"/><test-case name="30418elemT074.i tokoe:invalid" result="pass"/><test-case name="30419elemU001 tokoe:valid" result="pass"/><test-case name="30420elemU001.v tokoe:valid" result="pass"/><test-case name="30421elemU002 tokoe:valid" result="pass"/><test-case name="30422elemU002.v tokoe:valid" result="pass"/><test-case name="30423elemU003 tokoe:valid" result="pass"/><test-case name="30424elemU003.v tokoe:valid" result="pass"/><test-case name="30425elemU004 tokoe:valid" result="pass"/><test-case name="30426elemU004.v tokoe:valid" result="pass"/><test-case name="30427elemU005 tokoe:valid" result="pass"/><test-case name="30428elemU005.v tokoe:valid" result="pass"/><test-case name="30429elemU006 tokoe:valid" result="pass"/><test-case name="30430elemU006.v tokoe:valid" result="pass"/><test-case name="30431elemU007 tokoe:valid" result="pass"/><test-case name="30432elemU007.v tokoe:valid" result="pass"/><test-case name="30433elemU008 tokoe:valid" result="pass"/><test-case name="30434elemU008.v tokoe:valid" result="pass"/><test-case name="30435elemU009 tokoe:valid" result="pass"/><test-case name="30436elemU009.v tokoe:valid" result="pass"/><test-case name="30437elemU010 tokoe:valid" result="pass"/><test-case name="30438elemU010.v tokoe:valid" result="pass"/><test-case name="30439elemU011 tokoe:valid" result="pass"/><test-case name="30440elemU011.v tokoe:valid" result="pass"/><test-case name="30441elemU012 tokoe:valid" result="pass"/><test-case name="30442elemU012.v tokoe:valid" result="pass"/><test-case name="30443elemU013 tokoe:valid" result="pass"/><test-case name="30444elemU013.v tokoe:valid" result="pass"/><test-case name="30445elemU014 tokoe:valid" result="pass"/><test-case name="30446elemU014.v tokoe:valid" result="pass"/><test-case name="30447elemU015 tokoe:valid" result="pass"/><test-case name="30448elemU015.v tokoe:valid" result="pass"/><test-case name="30449elemU017 tokoe:valid" result="pass"/><test-case name="30450elemU017.v tokoe:valid" result="pass"/><test-case name="30451elemU018 tokoe:valid" result="pass"/><test-case name="30452elemU018.v tokoe:valid" result="pass"/><test-case name="30453elemU019 tokoe:valid" result="pass"/><test-case name="30454elemU019.v tokoe:valid" result="pass"/><test-case name="30455elemU020 tokoe:valid" result="pass"/><test-case name="30456elemU020.v tokoe:valid" result="pass"/><test-case name="30457elemU021 tokoe:valid" result="pass"/><test-case name="30458elemU021.v tokoe:valid" result="pass"/><test-case name="30459elemU022 tokoe:valid" result="pass"/><test-case name="30460elemU022.v tokoe:valid" result="pass"/><test-case name="30461elemU023 tokoe:valid" result="pass"/><test-case name="30462elemU023.v tokoe:valid" result="pass"/><test-case name="30463elemU024 tokoe:valid" result="pass"/><test-case name="30464elemU024.v tokoe:valid" result="pass"/><test-case name="30465elemU025 tokoe:valid" result="pass"/><test-case name="30466elemU025.i tokoe:invalid" result="pass"/><test-case name="30467elemZ001 tokoe:valid" result="pass"/><test-case name="30468elemZ001.v tokoe:valid" result="pass"/><test-case name="30469elemZ002 tokoe:valid" result="pass"/><test-case name="30470elemZ002.v tokoe:valid" result="pass"/><test-case name="30471elemZ003 tokoe:valid" result="pass"/><test-case name="30472elemZ003.v tokoe:valid" result="pass"/><test-case name="30473elemZ005 tokoe:valid" result="pass"/><test-case name="30474elemZ008 tokoe:valid" result="pass"/><test-case name="30475elemZ009 tokoe:valid" result="pass"/><test-case name="30476elemZ009.v tokoe:valid" result="pass"/><test-case name="30477elemZ010 tokoe:valid" result="pass"/><test-case name="30478elemZ010.v tokoe:valid" result="pass"/><test-case name="30479elemZ011 tokoe:valid" result="pass"/><test-case name="30480elemZ012 tokoe:invalid" result="pass"/><test-case name="30481elemZ014 tokoe:valid" result="pass"/><test-case name="30482elemZ014.v tokoe:valid" result="pass"/><test-case name="30483elemZ015 tokoe:valid" result="pass"/><test-case name="30484elemZ015.i tokoe:invalid" result="pass"/><test-case name="30485elemZ016 tokoe:valid" result="pass"/><test-case name="30486elemZ016.i tokoe:invalid" result="pass"/><test-case name="30487elemZ017.v tokoe:valid" result="pass"/><test-case name="30488elemZ018 tokoe:valid" result="pass"/><test-case name="30489elemZ018.v tokoe:valid" result="pass"/><test-case name="30490elemZ019 tokoe:valid" result="pass"/><test-case name="30491elemZ019.v tokoe:valid" result="pass"/><test-case name="30492elemZ021a tokoe:valid" result="pass"/><test-case name="30493elemZ021a.v tokoe:valid" result="pass"/><test-case name="30494elemZ021b tokoe:valid" result="pass"/><test-case name="30495elemZ021b.i tokoe:invalid" result="pass"/><test-case name="30496elemZ021c tokoe:valid" result="pass"/><test-case name="30497elemZ021c.v tokoe:valid" result="pass"/><test-case name="30498elemZ021d tokoe:valid" result="pass"/><test-case name="30499elemZ021d.v tokoe:valid" result="pass"/><test-case name="30500elemZ021e tokoe:valid" result="pass"/><test-case name="30501elemZ021e.v tokoe:valid" result="pass"/><test-case name="30502elemZ021f tokoe:valid" result="pass"/><test-case name="30503elemZ021f.i tokoe:invalid" result="pass"/><test-case name="30504elemZ021g tokoe:valid" result="pass"/><test-case name="30505elemZ021g.i tokoe:invalid" result="pass"/><test-case name="30506elemZ022a tokoe:valid" result="pass"/><test-case name="30507elemZ022a.i tokoe:invalid" result="pass"/><test-case name="30508elemZ022b tokoe:valid" result="pass"/><test-case name="30509elemZ022b.v tokoe:valid" result="pass"/><test-case name="30510elemZ023 tokoe:valid" result="pass"/><test-case name="30511elemZ023.i tokoe:invalid" result="pass"/><test-case name="30512QFE1700a1 tokoe:valid" result="pass"/><test-case name="30513QFE1700a1.v tokoe:valid" result="pass"/><test-case name="30514QFE1700a2 tokoe:valid" result="pass"/><test-case name="30515QFE1700a2.v tokoe:valid" result="pass"/><test-case name="30516QFE1700a3 tokoe:valid" result="pass"/><test-case name="30517QFE1700a3.v tokoe:valid" result="pass"/><test-case name="30518QFE1700b1 tokoe:valid" result="pass"/><test-case name="30519QFE1700b1.v tokoe:valid" result="pass"/><test-case name="30520QFE1700b2 tokoe:valid" result="pass"/><test-case name="30521QFE1700b2.v tokoe:valid" result="pass"/><test-case name="30522QFE1700c1 tokoe:valid" result="pass"/><test-case name="30523QFE1700c1.i tokoe:invalid" result="pass"/><test-case name="30524QFE1700c2 tokoe:valid" result="pass"/><test-case name="30525QFE1700c2.v tokoe:valid" result="pass"/><test-case name="30526QFE1700d1 tokoe:valid" result="pass"/><test-case name="30527QFE1700d1.i tokoe:invalid" result="pass"/><test-case name="30528QFE1700e1 tokoe:valid" result="pass"/><test-case name="30529QFE1700e1.v tokoe:valid" result="pass"/><test-case name="30530QFE1700e2 tokoe:valid" result="pass"/><test-case name="30531QFE1700e2.v tokoe:valid" result="pass"/><test-case name="30532QFE1700e3 tokoe:valid" result="pass"/><test-case name="30533QFE1700e3.i tokoe:invalid" result="pass"/><test-case name="30534QFE1700f1 tokoe:valid" result="pass"/><test-case name="30535QFE1700f1.v tokoe:valid" result="pass"/><test-case name="30536QFE1700f2 tokoe:valid" result="pass"/><test-case name="30537QFE1700f2.v tokoe:valid" result="pass"/><test-case name="30538QFE1700f3 tokoe:valid" result="pass"/><test-case name="30539QFE1700f3.i tokoe:invalid" result="pass"/><test-case name="30540QFE1700g1 tokoe:valid" result="pass"/><test-case name="30541QFE1700g1.i tokoe:invalid" result="pass"/><test-case name="30542QFE1700g2 tokoe:valid" result="pass"/><test-case name="30543QFE1700g2.v tokoe:valid" result="pass"/><test-case name="30544elemZ025 tokoe:valid" result="pass"/><test-case name="30545elemZ027_a tokoe:valid" result="pass"/><test-case name="30546elemZ027_b tokoe:valid" result="pass"/><test-case name="30547elemZ027_e tokoe:valid" result="pass"/><test-case name="30548elemZ027_f tokoe:valid" result="pass"/><test-case name="30549elemZ028a tokoe:valid" result="pass"/><test-case name="30550elemZ028b tokoe:invalid" result="pass"/><test-case name="30551elemZ028e tokoe:invalid" result="pass"/><test-case name="30552elemZ029 tokoe:valid" result="pass"/><test-case name="30553elemZ029.v tokoe:valid" result="pass"/><test-case name="30554elemZ030 tokoe:invalid" result="pass"/><test-case name="30555elemZ032a tokoe:invalid" result="pass"/><test-case name="30556elemZ032b tokoe:invalid" result="pass"/><test-case name="30557elemZ033b.v tokoe:valid" result="pass"/><test-case name="30558errA001 tokoe:valid" result="pass"/><test-case name="30559errA001.v tokoe:valid" result="pass"/><test-case name="30560errA002 tokoe:valid" result="pass"/><test-case name="30561errA002.i tokoe:invalid" result="pass"/><test-case name="30562errA003 tokoe:valid" result="pass"/><test-case name="30563errA003.v tokoe:valid" result="pass"/><test-case name="30564errC001 tokoe:valid" result="pass"/><test-case name="30565errC001.v tokoe:valid" result="pass"/><test-case name="30566errC002 tokoe:valid" result="pass"/><test-case name="30567errC003 tokoe:valid" result="pass"/><test-case name="30568errC004 tokoe:valid" result="pass"/><test-case name="30569errC005 tokoe:invalid" result="pass"/><test-case name="30570errC006 tokoe:invalid" result="pass"/><test-case name="30571errC007 tokoe:valid" result="pass"/><test-case name="30572errC007.v tokoe:valid" result="pass"/><test-case name="30573errC008 tokoe:invalid" result="pass"/><test-case name="30574errC009 tokoe:invalid" result="pass"/><test-case name="30575errE001 tokoe:valid" result="pass"/><test-case name="30576errE001.v tokoe:valid" result="pass"/><test-case name="30577errE002 tokoe:valid" result="pass"/><test-case name="30578errE002.v tokoe:valid" result="pass"/><test-case name="30579errE003 tokoe:valid" result="pass"/><test-case name="30580errE003.v tokoe:valid" result="pass"/><test-case name="30581errE004 tokoe:valid" result="pass"/><test-case name="30582errE004.i tokoe:invalid" result="pass"/><test-case name="30583errE006 tokoe:valid" result="pass"/><test-case name="30584errE006.v tokoe:valid" result="fail"/><test-case name="30585errE008 tokoe:valid" result="pass"/><test-case name="30586errE008.v tokoe:valid" result="pass"/><test-case name="30587groupA001 tokoe:valid" result="pass"/><test-case name="30588groupA002 tokoe:valid" result="pass"/><test-case name="30589groupA003 tokoe:invalid" result="pass"/><test-case name="30590groupA004 tokoe:invalid" result="pass"/><test-case name="30591groupA005 tokoe:invalid" result="pass"/><test-case name="30592groupA006 tokoe:valid" result="pass"/><test-case name="30593groupA007 tokoe:valid" result="pass"/><test-case name="30594groupA008 tokoe:invalid" result="pass"/><test-case name="30595groupA009 tokoe:invalid" result="pass"/><test-case name="30596groupA010 tokoe:invalid" result="pass"/><test-case name="30597groupA011 tokoe:valid" result="pass"/><test-case name="30598groupA012 tokoe:invalid" result="pass"/><test-case name="30599groupB001 tokoe:invalid" result="pass"/><test-case name="30600groupB002v tokoe:valid" result="pass"/><test-case name="30601groupB002v.v tokoe:valid" result="pass"/><test-case name="30602groupB003v tokoe:valid" result="pass"/><test-case name="30603groupB003v.v tokoe:valid" result="pass"/><test-case name="30604groupB004v tokoe:valid" result="pass"/><test-case name="30605groupB004v.v tokoe:valid" result="pass"/><test-case name="30606groupB005v tokoe:valid" result="pass"/><test-case name="30607groupB005v.v tokoe:valid" result="pass"/><test-case name="30608groupB006v tokoe:valid" result="pass"/><test-case name="30609groupB006v.v tokoe:valid" result="pass"/><test-case name="30610groupB007 tokoe:invalid" result="pass"/><test-case name="30611groupB008 tokoe:invalid" result="pass"/><test-case name="30612groupB009v tokoe:valid" result="pass"/><test-case name="30613groupB009v.v tokoe:valid" result="pass"/><test-case name="30614groupB010v tokoe:valid" result="pass"/><test-case name="30615groupB010v.v tokoe:valid" result="pass"/><test-case name="30616groupB011 tokoe:invalid" result="pass"/><test-case name="30617groupB012 tokoe:invalid" result="pass"/><test-case name="30618groupB013 tokoe:invalid" result="pass"/><test-case name="30619groupB014 tokoe:invalid" result="pass"/><test-case name="30620groupB015 tokoe:invalid" result="pass"/><test-case name="30621groupB016 tokoe:invalid" result="pass"/><test-case name="30622groupB017 tokoe:valid" result="pass"/><test-case name="30623groupB018 tokoe:valid" result="pass"/><test-case name="30624groupC001 tokoe:invalid" result="pass"/><test-case name="30625groupC002 tokoe:invalid" result="pass"/><test-case name="30626groupC003 tokoe:invalid" result="pass"/><test-case name="30627groupC004 tokoe:invalid" result="pass"/><test-case name="30628groupC005 tokoe:invalid" result="pass"/><test-case name="30629groupC006 tokoe:invalid" result="pass"/><test-case name="30630groupC007 tokoe:invalid" result="pass"/><test-case name="30631groupC008 tokoe:invalid" result="pass"/><test-case name="30632groupC009 tokoe:invalid" result="pass"/><test-case name="30633groupC010 tokoe:invalid" result="pass"/><test-case name="30634groupC011 tokoe:valid" result="pass"/><test-case name="30635groupC012 tokoe:invalid" result="pass"/><test-case name="30636groupD001 tokoe:invalid" result="pass"/><test-case name="30637groupD002 tokoe:invalid" result="pass"/><test-case name="30638groupD003 tokoe:invalid" result="pass"/><test-case name="30639groupD004 tokoe:invalid" result="pass"/><test-case name="30640groupE002 tokoe:invalid" result="pass"/><test-case name="30641groupE003v tokoe:valid" result="pass"/><test-case name="30642groupE003v.i tokoe:invalid" result="pass"/><test-case name="30643groupE004v tokoe:valid" result="pass"/><test-case name="30644groupE004v.v tokoe:valid" result="pass"/><test-case name="30645groupE005v tokoe:valid" result="pass"/><test-case name="30646groupE005v.i tokoe:invalid" result="pass"/><test-case name="30647groupF001v tokoe:valid" result="pass"/><test-case name="30648groupF001v.v tokoe:valid" result="pass"/><test-case name="30649groupF002v tokoe:valid" result="pass"/><test-case name="30650groupF002v.v tokoe:valid" result="pass"/><test-case name="30651groupF003v tokoe:valid" result="pass"/><test-case name="30652groupF003v.i tokoe:invalid" result="pass"/><test-case name="30653groupF004v tokoe:valid" result="pass"/><test-case name="30654groupF004v.v tokoe:valid" result="pass"/><test-case name="30655groupF005v tokoe:valid" result="pass"/><test-case name="30656groupF005v.v tokoe:valid" result="pass"/><test-case name="30657groupF006v tokoe:valid" result="pass"/><test-case name="30658groupF006v.i tokoe:invalid" result="pass"/><test-case name="30659groupF007v tokoe:valid" result="pass"/><test-case name="30660groupF007v.v tokoe:valid" result="pass"/><test-case name="30661groupF008v tokoe:valid" result="pass"/><test-case name="30662groupF008v.i tokoe:invalid" result="pass"/><test-case name="30663groupF009v tokoe:valid" result="pass"/><test-case name="30664groupF009v.v tokoe:valid" result="fail"/><test-case name="30665groupF010v tokoe:valid" result="pass"/><test-case name="30666groupF010v.i tokoe:invalid" result="pass"/><test-case name="30667groupF011v tokoe:valid" result="pass"/><test-case name="30668groupF011v.v tokoe:valid" result="pass"/><test-case name="30669groupF012v tokoe:valid" result="pass"/><test-case name="30670groupF012v.i tokoe:invalid" result="pass"/><test-case name="30671groupF013v tokoe:valid" result="pass"/><test-case name="30672groupF013v.i tokoe:invalid" result="pass"/><test-case name="30673groupF014v tokoe:valid" result="pass"/><test-case name="30674groupF014v.v tokoe:valid" result="pass"/><test-case name="30675groupF015v tokoe:valid" result="pass"/><test-case name="30676groupF015v.i tokoe:invalid" result="pass"/><test-case name="30677groupF016v tokoe:valid" result="pass"/><test-case name="30678groupF016v.i tokoe:invalid" result="pass"/><test-case name="30679groupF017v tokoe:valid" result="pass"/><test-case name="30680groupF017v.v tokoe:valid" result="pass"/><test-case name="30681groupF018v tokoe:valid" result="pass"/><test-case name="30682groupF018v.v tokoe:valid" result="pass"/><test-case name="30683groupF019v tokoe:valid" result="pass"/><test-case name="30684groupF019v.i tokoe:invalid" result="pass"/><test-case name="30685groupF020 tokoe:invalid" result="pass"/><test-case name="30686groupF021v tokoe:valid" result="pass"/><test-case name="30687groupF021v.v tokoe:valid" result="pass"/><test-case name="30688groupF022 tokoe:invalid" result="pass"/><test-case name="30689groupF023 tokoe:invalid" result="pass"/><test-case name="30690groupF024 tokoe:invalid" result="pass"/><test-case name="30691groupF025 tokoe:invalid" result="pass"/><test-case name="30692groupG002 tokoe:invalid" result="pass"/><test-case name="30693groupG003v tokoe:valid" result="pass"/><test-case name="30694groupG003v.i tokoe:invalid" result="pass"/><test-case name="30695groupG004v tokoe:valid" result="pass"/><test-case name="30696groupG004v.v tokoe:valid" result="pass"/><test-case name="30697groupG005v tokoe:valid" result="pass"/><test-case name="30698groupG005v.i tokoe:invalid" result="pass"/><test-case name="30699groupH001v tokoe:valid" result="pass"/><test-case name="30700groupH001v.v tokoe:valid" result="pass"/><test-case name="30701groupH002v tokoe:valid" result="pass"/><test-case name="30702groupH002v.v tokoe:valid" result="pass"/><test-case name="30703groupH003v tokoe:valid" result="pass"/><test-case name="30704groupH003v.i tokoe:invalid" result="pass"/><test-case name="30705groupH004v tokoe:valid" result="pass"/><test-case name="30706groupH004v.v tokoe:valid" result="pass"/><test-case name="30707groupH005v tokoe:valid" result="pass"/><test-case name="30708groupH005v.v tokoe:valid" result="pass"/><test-case name="30709groupH006v tokoe:valid" result="pass"/><test-case name="30710groupH006v.i tokoe:invalid" result="pass"/><test-case name="30711groupH007v tokoe:invalid" result="pass"/><test-case name="30712groupH008v tokoe:valid" result="pass"/><test-case name="30713groupH008v.i tokoe:invalid" result="pass"/><test-case name="30714groupH009v tokoe:valid" result="pass"/><test-case name="30715groupH009v.v tokoe:valid" result="pass"/><test-case name="30716groupH010v tokoe:valid" result="pass"/><test-case name="30717groupH010v.i tokoe:invalid" result="pass"/><test-case name="30718groupH011v tokoe:valid" result="pass"/><test-case name="30719groupH011v.v tokoe:valid" result="pass"/><test-case name="30720groupH012v tokoe:valid" result="pass"/><test-case name="30721groupH012v.i tokoe:invalid" result="pass"/><test-case name="30722groupH013v tokoe:valid" result="pass"/><test-case name="30723groupH013v.i tokoe:invalid" result="pass"/><test-case name="30724groupH014v tokoe:valid" result="pass"/><test-case name="30725groupH014v.v tokoe:valid" result="pass"/><test-case name="30726groupH015v tokoe:valid" result="pass"/><test-case name="30727groupH015v.i tokoe:invalid" result="pass"/><test-case name="30728groupH016v tokoe:valid" result="pass"/><test-case name="30729groupH016v.i tokoe:invalid" result="pass"/><test-case name="30730groupH017v tokoe:valid" result="pass"/><test-case name="30731groupH017v.v tokoe:valid" result="pass"/><test-case name="30732groupH018v tokoe:valid" result="pass"/><test-case name="30733groupH018v.v tokoe:valid" result="pass"/><test-case name="30734groupH019v tokoe:valid" result="pass"/><test-case name="30735groupH019v.i tokoe:invalid" result="pass"/><test-case name="30736groupH020 tokoe:invalid" result="pass"/><test-case name="30737groupH022 tokoe:invalid" result="pass"/><test-case name="30738groupH023 tokoe:invalid" result="pass"/><test-case name="30739groupH024 tokoe:invalid" result="pass"/><test-case name="30740groupH025 tokoe:invalid" result="pass"/><test-case name="30741groupI002 tokoe:invalid" result="pass"/><test-case name="30742groupI003v tokoe:valid" result="pass"/><test-case name="30743groupI003v.i tokoe:invalid" result="pass"/><test-case name="30744groupI004v tokoe:valid" result="pass"/><test-case name="30745groupI004v.v tokoe:valid" result="pass"/><test-case name="30746groupI005v tokoe:valid" result="pass"/><test-case name="30747groupI005v.i tokoe:invalid" result="pass"/><test-case name="30748groupJ001v tokoe:valid" result="pass"/><test-case name="30749groupJ001v.v tokoe:valid" result="pass"/><test-case name="30750groupJ002v tokoe:valid" result="pass"/><test-case name="30751groupJ002v.v tokoe:valid" result="pass"/><test-case name="30752groupJ003v tokoe:valid" result="pass"/><test-case name="30753groupJ003v.i tokoe:invalid" result="pass"/><test-case name="30754groupJ004v tokoe:valid" result="pass"/><test-case name="30755groupJ004v.v tokoe:valid" result="pass"/><test-case name="30756groupJ005v tokoe:valid" result="pass"/><test-case name="30757groupJ005v.v tokoe:valid" result="pass"/><test-case name="30758groupJ006v tokoe:valid" result="pass"/><test-case name="30759groupJ006v.i tokoe:invalid" result="pass"/><test-case name="30760groupJ007v tokoe:valid" result="pass"/><test-case name="30761groupJ007v.v tokoe:valid" result="pass"/><test-case name="30762groupJ008v tokoe:valid" result="pass"/><test-case name="30763groupJ008v.i tokoe:invalid" result="pass"/><test-case name="30764groupJ010v tokoe:valid" result="pass"/><test-case name="30765groupJ010v.i tokoe:invalid" result="pass"/><test-case name="30766groupJ011v tokoe:valid" result="pass"/><test-case name="30767groupJ011v.v tokoe:valid" result="pass"/><test-case name="30768groupJ012v tokoe:valid" result="pass"/><test-case name="30769groupJ012v.i tokoe:invalid" result="pass"/><test-case name="30770groupJ013v tokoe:valid" result="pass"/><test-case name="30771groupJ013v.i tokoe:invalid" result="pass"/><test-case name="30772groupJ014v tokoe:valid" result="pass"/><test-case name="30773groupJ014v.v tokoe:valid" result="pass"/><test-case name="30774groupJ015v tokoe:valid" result="pass"/><test-case name="30775groupJ015v.i tokoe:invalid" result="pass"/><test-case name="30776groupJ016v tokoe:valid" result="pass"/><test-case name="30777groupJ016v.i tokoe:invalid" result="pass"/><test-case name="30778groupJ017v tokoe:valid" result="pass"/><test-case name="30779groupJ017v.v tokoe:valid" result="pass"/><test-case name="30780groupJ018v tokoe:valid" result="pass"/><test-case name="30781groupJ018v.v tokoe:valid" result="pass"/><test-case name="30782groupJ019v tokoe:valid" result="pass"/><test-case name="30783groupJ019v.i tokoe:invalid" result="pass"/><test-case name="30784groupJ020 tokoe:invalid" result="pass"/><test-case name="30785groupJ021v tokoe:valid" result="pass"/><test-case name="30786groupJ021v.v tokoe:valid" result="pass"/><test-case name="30787groupJ022 tokoe:invalid" result="pass"/><test-case name="30788groupJ023 tokoe:invalid" result="pass"/><test-case name="30789groupJ024 tokoe:invalid" result="pass"/><test-case name="30790groupJ025 tokoe:invalid" result="pass"/><test-case name="30791groupK002 tokoe:invalid" result="pass"/><test-case name="30792groupK003v tokoe:valid" result="pass"/><test-case name="30793groupK003v.i tokoe:invalid" result="pass"/><test-case name="30794groupK004v tokoe:valid" result="pass"/><test-case name="30795groupK004v.v tokoe:valid" result="pass"/><test-case name="30796groupK005v tokoe:valid" result="pass"/><test-case name="30797groupK005v.i tokoe:invalid" result="pass"/><test-case name="30798groupL001v tokoe:valid" result="pass"/><test-case name="30799groupL001v.v tokoe:valid" result="pass"/><test-case name="30800groupL002v tokoe:valid" result="pass"/><test-case name="30801groupL002v.v tokoe:valid" result="pass"/><test-case name="30802groupL003v tokoe:valid" result="pass"/><test-case name="30803groupL003v.i tokoe:invalid" result="pass"/><test-case name="30804groupL004v tokoe:valid" result="pass"/><test-case name="30805groupL004v.v tokoe:valid" result="pass"/><test-case name="30806groupL005v tokoe:valid" result="pass"/><test-case name="30807groupL005v.v tokoe:valid" result="pass"/><test-case name="30808groupL006v tokoe:valid" result="pass"/><test-case name="30809groupL006v.i tokoe:invalid" result="pass"/><test-case name="30810groupL007 tokoe:valid" result="pass"/><test-case name="30811groupL007.v tokoe:valid" result="pass"/><test-case name="30812groupL008v tokoe:valid" result="pass"/><test-case name="30813groupL008v.i tokoe:invalid" result="pass"/><test-case name="30814groupL009v tokoe:valid" result="pass"/><test-case name="30815groupL009v.v tokoe:valid" result="pass"/><test-case name="30816groupL010v tokoe:valid" result="pass"/><test-case name="30817groupL010v.i tokoe:invalid" result="pass"/><test-case name="30818groupL011v tokoe:valid" result="pass"/><test-case name="30819groupL011v.v tokoe:valid" result="pass"/><test-case name="30820groupL012v tokoe:valid" result="pass"/><test-case name="30821groupL012v.i tokoe:invalid" result="pass"/><test-case name="30822groupL013v tokoe:valid" result="pass"/><test-case name="30823groupL013v.i tokoe:invalid" result="pass"/><test-case name="30824groupL014v tokoe:valid" result="pass"/><test-case name="30825groupL014v.v tokoe:valid" result="pass"/><test-case name="30826groupL015v tokoe:valid" result="pass"/><test-case name="30827groupL015v.i tokoe:invalid" result="pass"/><test-case name="30828groupL016v tokoe:valid" result="pass"/><test-case name="30829groupL016v.i tokoe:invalid" result="pass"/><test-case name="30830groupL017v tokoe:valid" result="pass"/><test-case name="30831groupL017v.v tokoe:valid" result="pass"/><test-case name="30832groupL018v tokoe:valid" result="pass"/><test-case name="30833groupL018v.v tokoe:valid" result="pass"/><test-case name="30834groupL019v tokoe:valid" result="pass"/><test-case name="30835groupL019v.i tokoe:invalid" result="pass"/><test-case name="30836groupL020 tokoe:invalid" result="pass"/><test-case name="30837groupL021v tokoe:valid" result="pass"/><test-case name="30838groupL021v.v tokoe:valid" result="pass"/><test-case name="30839groupL022 tokoe:invalid" result="pass"/><test-case name="30840groupL023 tokoe:invalid" result="pass"/><test-case name="30841groupL024 tokoe:invalid" result="pass"/><test-case name="30842groupL025 tokoe:invalid" result="pass"/><test-case name="30843groupM002 tokoe:invalid" result="pass"/><test-case name="30844groupM003v tokoe:valid" result="pass"/><test-case name="30845groupM003v.i tokoe:invalid" result="pass"/><test-case name="30846groupM004v tokoe:valid" result="pass"/><test-case name="30847groupM004v.v tokoe:valid" result="pass"/><test-case name="30848groupM005v tokoe:valid" result="pass"/><test-case name="30849groupM005v.i tokoe:invalid" result="pass"/><test-case name="30850groupN001v tokoe:valid" result="pass"/><test-case name="30851groupN001v.v tokoe:valid" result="pass"/><test-case name="30852groupN002v tokoe:valid" result="pass"/><test-case name="30853groupN002v.v tokoe:valid" result="pass"/><test-case name="30854groupN003v tokoe:valid" result="pass"/><test-case name="30855groupN003v.i tokoe:invalid" result="pass"/><test-case name="30856groupN004v tokoe:valid" result="pass"/><test-case name="30857groupN004v.v tokoe:valid" result="pass"/><test-case name="30858groupN005v tokoe:valid" result="pass"/><test-case name="30859groupN005v.v tokoe:valid" result="pass"/><test-case name="30860groupN006v tokoe:valid" result="pass"/><test-case name="30861groupN006v.i tokoe:invalid" result="pass"/><test-case name="30862groupN007v tokoe:valid" result="pass"/><test-case name="30863groupN007v.v tokoe:valid" result="pass"/><test-case name="30864groupN008v tokoe:valid" result="pass"/><test-case name="30865groupN008v.i tokoe:invalid" result="pass"/><test-case name="30866groupN009v tokoe:valid" result="pass"/><test-case name="30867groupN009v.v tokoe:valid" result="pass"/><test-case name="30868groupN010v tokoe:valid" result="pass"/><test-case name="30869groupN010v.i tokoe:invalid" result="pass"/><test-case name="30870groupN011v tokoe:valid" result="pass"/><test-case name="30871groupN011v.v tokoe:valid" result="pass"/><test-case name="30872groupN012v tokoe:valid" result="pass"/><test-case name="30873groupN012v.i tokoe:invalid" result="pass"/><test-case name="30874groupN013v tokoe:valid" result="pass"/><test-case name="30875groupN013v.i tokoe:invalid" result="pass"/><test-case name="30876groupN014v tokoe:valid" result="pass"/><test-case name="30877groupN014v.v tokoe:valid" result="pass"/><test-case name="30878groupN015v tokoe:valid" result="pass"/><test-case name="30879groupN015v.i tokoe:invalid" result="pass"/><test-case name="30880groupN016v tokoe:valid" result="pass"/><test-case name="30881groupN016v.i tokoe:invalid" result="pass"/><test-case name="30882groupN017v tokoe:valid" result="pass"/><test-case name="30883groupN017v.v tokoe:valid" result="pass"/><test-case name="30884groupN018v tokoe:valid" result="pass"/><test-case name="30885groupN018v.v tokoe:valid" result="pass"/><test-case name="30886groupN019v tokoe:valid" result="pass"/><test-case name="30887groupN019v.i tokoe:invalid" result="pass"/><test-case name="30888groupN020 tokoe:invalid" result="pass"/><test-case name="30889groupN021v tokoe:valid" result="pass"/><test-case name="30890groupN021v.v tokoe:valid" result="pass"/><test-case name="30891groupN022 tokoe:invalid" result="pass"/><test-case name="30892groupN023 tokoe:invalid" result="pass"/><test-case name="30893groupN024 tokoe:invalid" result="pass"/><test-case name="30894groupN025 tokoe:invalid" result="pass"/><test-case name="30895groupO001 tokoe:valid" result="pass"/><test-case name="30896groupO002 tokoe:invalid" result="pass"/><test-case name="30897groupO003 tokoe:invalid" result="pass"/><test-case name="30898groupO004v tokoe:valid" result="pass"/><test-case name="30899groupO004v.v tokoe:valid" result="pass"/><test-case name="30900groupO005v tokoe:valid" result="pass"/><test-case name="30901groupO005v.i tokoe:invalid" result="pass"/><test-case name="30902groupO006v tokoe:valid" result="pass"/><test-case name="30903groupO006v.v tokoe:valid" result="pass"/><test-case name="30904groupO007v tokoe:valid" result="pass"/><test-case name="30905groupO007v.i tokoe:invalid" result="pass"/><test-case name="30906groupO008v tokoe:valid" result="pass"/><test-case name="30907groupO008v.v tokoe:valid" result="pass"/><test-case name="30908groupO009v tokoe:valid" result="pass"/><test-case name="30909groupO009v.i tokoe:invalid" result="pass"/><test-case name="30910groupO010 tokoe:invalid" result="pass"/><test-case name="30911groupO011 tokoe:invalid" result="pass"/><test-case name="30912groupO012 tokoe:invalid" result="pass"/><test-case name="30913groupO013 tokoe:invalid" result="pass"/><test-case name="30914groupO014 tokoe:valid" result="pass"/><test-case name="30915groupO015 tokoe:invalid" result="pass"/><test-case name="30916groupO016 tokoe:invalid" result="pass"/><test-case name="30917groupO017 tokoe:invalid" result="pass"/><test-case name="30918groupO018 tokoe:invalid" result="pass"/><test-case name="30919groupO019 tokoe:invalid" result="pass"/><test-case name="30920groupO020 tokoe:invalid" result="pass"/><test-case name="30921groupO021 tokoe:invalid" result="pass"/><test-case name="30922groupO022 tokoe:invalid" result="pass"/><test-case name="30923groupO023 tokoe:invalid" result="pass"/><test-case name="30924groupO024 tokoe:invalid" result="pass"/><test-case name="30925groupO025 tokoe:invalid" result="pass"/><test-case name="30926groupO026 tokoe:invalid" result="pass"/><test-case name="30927groupO027 tokoe:invalid" result="pass"/><test-case name="30928idA001 tokoe:valid" result="pass"/><test-case name="30929idA002 tokoe:invalid" result="pass"/><test-case name="30930idA003 tokoe:valid" result="pass"/><test-case name="30931idA004 tokoe:valid" result="pass"/><test-case name="30932idA005 tokoe:valid" result="pass"/><test-case name="30933idA006 tokoe:invalid" result="pass"/><test-case name="30934idA007 tokoe:invalid" result="pass"/><test-case name="30935idA008 tokoe:valid" result="pass"/><test-case name="30936idA009 tokoe:valid" result="pass"/><test-case name="30937idA010 tokoe:valid" result="pass"/><test-case name="30938idA011 tokoe:valid" result="pass"/><test-case name="30939idA012 tokoe:valid" result="pass"/><test-case name="30940idA013 tokoe:valid" result="pass"/><test-case name="30941idA014 tokoe:valid" result="pass"/><test-case name="30942idA015 tokoe:valid" result="pass"/><test-case name="30943idA016 tokoe:invalid" result="pass"/><test-case name="30944idA017 tokoe:valid" result="pass"/><test-case name="30945idA018 tokoe:invalid" result="pass"/><test-case name="30946idA019 tokoe:invalid" result="pass"/><test-case name="30947idA020 tokoe:invalid" result="pass"/><test-case name="30948idA021 tokoe:invalid" result="pass"/><test-case name="30949idA022 tokoe:valid" result="pass"/><test-case name="30950idA023 tokoe:invalid" result="pass"/><test-case name="30951idA024 tokoe:invalid" result="pass"/><test-case name="30952idA025 tokoe:invalid" result="pass"/><test-case name="30953idA026 tokoe:invalid" result="pass"/><test-case name="30954idA027 tokoe:invalid" result="pass"/><test-case name="30955idA028 tokoe:invalid" result="pass"/><test-case name="30956idA029 tokoe:invalid" result="pass"/><test-case name="30957idA030 tokoe:invalid" result="pass"/><test-case name="30958idA031 tokoe:invalid" result="pass"/><test-case name="30959idA032 tokoe:invalid" result="pass"/><test-case name="30960idA033 tokoe:valid" result="pass"/><test-case name="30961idA034 tokoe:valid" result="pass"/><test-case name="30962idA035 tokoe:invalid" result="pass"/><test-case name="30963idA036 tokoe:valid" result="pass"/><test-case name="30964idA037 tokoe:invalid" result="pass"/><test-case name="30965idA038 tokoe:invalid" result="pass"/><test-case name="30966idA039 tokoe:invalid" result="pass"/><test-case name="30967idA040 tokoe:valid" result="pass"/><test-case name="30968idA041 tokoe:valid" result="pass"/><test-case name="30969idA042 tokoe:invalid" result="pass"/><test-case name="30970idA043 tokoe:invalid" result="pass"/><test-case name="30971idA044 tokoe:invalid" result="pass"/><test-case name="30972idA045 tokoe:valid" result="pass"/><test-case name="30973idA046 tokoe:invalid" result="pass"/><test-case name="30974idA047 tokoe:invalid" result="pass"/><test-case name="30975idA048 tokoe:invalid" result="pass"/><test-case name="30976idA049 tokoe:invalid" result="pass"/><test-case name="30977idA050 tokoe:invalid" result="pass"/><test-case name="30978idA051 tokoe:invalid" result="pass"/><test-case name="30979idA052 tokoe:invalid" result="pass"/><test-case name="30980idA053 tokoe:invalid" result="pass"/><test-case name="30981idA054 tokoe:invalid" result="pass"/><test-case name="30982idA055 tokoe:invalid" result="pass"/><test-case name="30983idA056 tokoe:invalid" result="pass"/><test-case name="30984idA057 tokoe:invalid" result="pass"/><test-case name="30985idA058 tokoe:invalid" result="pass"/><test-case name="30986idA059 tokoe:invalid" result="pass"/><test-case name="30987idA060 tokoe:invalid" result="pass"/><test-case name="30988idB001 tokoe:valid" result="pass"/><test-case name="30989idB002 tokoe:invalid" result="pass"/><test-case name="30990idB003 tokoe:valid" result="pass"/><test-case name="30991idB004 tokoe:valid" result="pass"/><test-case name="30992idB005 tokoe:invalid" result="pass"/><test-case name="30993idB006 tokoe:invalid" result="pass"/><test-case name="30994idB007 tokoe:invalid" result="pass"/><test-case name="30995idB008 tokoe:valid" result="pass"/><test-case name="30996idB009 tokoe:valid" result="pass"/><test-case name="30997idB010 tokoe:valid" result="pass"/><test-case name="30998idB011 tokoe:valid" result="pass"/><test-case name="30999idB012 tokoe:valid" result="pass"/><test-case name="31000idB013 tokoe:valid" result="pass"/><test-case name="31001idB014 tokoe:valid" result="pass"/><test-case name="31002idB015 tokoe:valid" result="pass"/><test-case name="31003idB016 tokoe:invalid" result="pass"/><test-case name="31004idB017 tokoe:invalid" result="pass"/><test-case name="31005idB018 tokoe:valid" result="pass"/><test-case name="31006idB019 tokoe:invalid" result="pass"/><test-case name="31007idB020 tokoe:invalid" result="pass"/><test-case name="31008idB021 tokoe:invalid" result="pass"/><test-case name="31009idB022 tokoe:valid" result="pass"/><test-case name="31010idB023 tokoe:invalid" result="pass"/><test-case name="31011idB024 tokoe:invalid" result="pass"/><test-case name="31012idB025 tokoe:invalid" result="pass"/><test-case name="31013idB026 tokoe:invalid" result="pass"/><test-case name="31014idB027 tokoe:invalid" result="pass"/><test-case name="31015idB028 tokoe:invalid" result="pass"/><test-case name="31016idB029 tokoe:invalid" result="pass"/><test-case name="31017idB030 tokoe:invalid" result="pass"/><test-case name="31018idB031 tokoe:invalid" result="pass"/><test-case name="31019idB032 tokoe:invalid" result="pass"/><test-case name="31020idB033 tokoe:valid" result="pass"/><test-case name="31021idB034 tokoe:valid" result="pass"/><test-case name="31022idB035 tokoe:invalid" result="pass"/><test-case name="31023idB036 tokoe:valid" result="pass"/><test-case name="31024idB037 tokoe:invalid" result="pass"/><test-case name="31025idB038 tokoe:invalid" result="pass"/><test-case name="31026idB039 tokoe:invalid" result="pass"/><test-case name="31027idB040 tokoe:valid" result="pass"/><test-case name="31028idB041 tokoe:valid" result="pass"/><test-case name="31029idB042 tokoe:invalid" result="pass"/><test-case name="31030idB043 tokoe:invalid" result="pass"/><test-case name="31031idB044 tokoe:invalid" result="pass"/><test-case name="31032idB045 tokoe:valid" result="pass"/><test-case name="31033idB046 tokoe:invalid" result="pass"/><test-case name="31034idB047 tokoe:invalid" result="pass"/><test-case name="31035idB048 tokoe:invalid" result="pass"/><test-case name="31036idB049 tokoe:invalid" result="pass"/><test-case name="31037idB050 tokoe:invalid" result="pass"/><test-case name="31038idB051 tokoe:invalid" result="pass"/><test-case name="31039idB052 tokoe:invalid" result="pass"/><test-case name="31040idB053 tokoe:invalid" result="pass"/><test-case name="31041idB054 tokoe:invalid" result="pass"/><test-case name="31042idB055 tokoe:invalid" result="pass"/><test-case name="31043idB056 tokoe:invalid" result="pass"/><test-case name="31044idB057 tokoe:invalid" result="pass"/><test-case name="31045idB058 tokoe:invalid" result="pass"/><test-case name="31046idB059 tokoe:invalid" result="pass"/><test-case name="31047idB060 tokoe:invalid" result="pass"/><test-case name="31048idC001 tokoe:valid" result="pass"/><test-case name="31049idC002 tokoe:invalid" result="pass"/><test-case name="31050idC003 tokoe:valid" result="pass"/><test-case name="31051idC004 tokoe:valid" result="pass"/><test-case name="31052idC005 tokoe:valid" result="pass"/><test-case name="31053idC006 tokoe:invalid" result="pass"/><test-case name="31054idC007 tokoe:invalid" result="pass"/><test-case name="31055idC008 tokoe:valid" result="pass"/><test-case name="31056idC009 tokoe:valid" result="pass"/><test-case name="31057idC010 tokoe:valid" result="pass"/><test-case name="31058idC011 tokoe:valid" result="pass"/><test-case name="31059idC012 tokoe:valid" result="pass"/><test-case name="31060idC013 tokoe:valid" result="pass"/><test-case name="31061idC014 tokoe:valid" result="pass"/><test-case name="31062idC015 tokoe:valid" result="pass"/><test-case name="31063idC016 tokoe:invalid" result="pass"/><test-case name="31064idC017 tokoe:invalid" result="pass"/><test-case name="31065idC018 tokoe:invalid" result="pass"/><test-case name="31066idC020 tokoe:invalid" result="pass"/><test-case name="31067idC021 tokoe:invalid" result="pass"/><test-case name="31068idC022 tokoe:valid" result="pass"/><test-case name="31069idC023 tokoe:invalid" result="pass"/><test-case name="31070idC024 tokoe:invalid" result="pass"/><test-case name="31071idC025 tokoe:invalid" result="pass"/><test-case name="31072idC026 tokoe:invalid" result="pass"/><test-case name="31073idC027 tokoe:invalid" result="pass"/><test-case name="31074idC028 tokoe:invalid" result="pass"/><test-case name="31075idC029 tokoe:invalid" result="pass"/><test-case name="31076idC030 tokoe:invalid" result="pass"/><test-case name="31077idC031 tokoe:invalid" result="pass"/><test-case name="31078idC032 tokoe:invalid" result="pass"/><test-case name="31079idC033 tokoe:valid" result="pass"/><test-case name="31080idC034 tokoe:valid" result="pass"/><test-case name="31081idC035 tokoe:valid" result="pass"/><test-case name="31082idC036 tokoe:valid" result="pass"/><test-case name="31083idC038 tokoe:invalid" result="pass"/><test-case name="31084idC039 tokoe:valid" result="pass"/><test-case name="31085idC040 tokoe:invalid" result="pass"/><test-case name="31086idC041 tokoe:invalid" result="pass"/><test-case name="31087idC042 tokoe:invalid" result="pass"/><test-case name="31088idC043 tokoe:valid" result="pass"/><test-case name="31089idC044 tokoe:valid" result="pass"/><test-case name="31090idC045 tokoe:invalid" result="pass"/><test-case name="31091idC046 tokoe:invalid" result="pass"/><test-case name="31092idC047 tokoe:invalid" result="pass"/><test-case name="31093idC048 tokoe:valid" result="pass"/><test-case name="31094idC049 tokoe:invalid" result="pass"/><test-case name="31095idC050 tokoe:invalid" result="pass"/><test-case name="31096idC051 tokoe:invalid" result="pass"/><test-case name="31097idC052 tokoe:invalid" result="pass"/><test-case name="31098idC053 tokoe:invalid" result="pass"/><test-case name="31099idC054 tokoe:invalid" result="pass"/><test-case name="31100idC055 tokoe:invalid" result="pass"/><test-case name="31101idC056 tokoe:invalid" result="pass"/><test-case name="31102idC057 tokoe:invalid" result="pass"/><test-case name="31103idC058 tokoe:invalid" result="pass"/><test-case name="31104idC059 tokoe:invalid" result="pass"/><test-case name="31105idC060 tokoe:invalid" result="pass"/><test-case name="31106idC061 tokoe:invalid" result="pass"/><test-case name="31107idC062 tokoe:invalid" result="pass"/><test-case name="31108idC063 tokoe:invalid" result="pass"/><test-case name="31109idD001 tokoe:valid" result="pass"/><test-case name="31110idD002 tokoe:invalid" result="pass"/><test-case name="31111idD003 tokoe:valid" result="pass"/><test-case name="31112idD004 tokoe:invalid" result="pass"/><test-case name="31113idD005 tokoe:invalid" result="pass"/><test-case name="31114idD006 tokoe:invalid" result="pass"/><test-case name="31115idD007 tokoe:invalid" result="pass"/><test-case name="31116idD008 tokoe:valid" result="pass"/><test-case name="31117idD009 tokoe:valid" result="pass"/><test-case name="31118idD010 tokoe:valid" result="pass"/><test-case name="31119idD011 tokoe:invalid" result="pass"/><test-case name="31120idD012 tokoe:invalid" result="pass"/><test-case name="31121idD013 tokoe:valid" result="pass"/><test-case name="31122idD014 tokoe:invalid" result="pass"/><test-case name="31123idD015 tokoe:valid" result="pass"/><test-case name="31124idD016 tokoe:valid" result="pass"/><test-case name="31125idD017 tokoe:invalid" result="pass"/><test-case name="31126idD018 tokoe:invalid" result="pass"/><test-case name="31127idD019 tokoe:invalid" result="pass"/><test-case name="31128idD020 tokoe:invalid" result="pass"/><test-case name="31129idD021 tokoe:invalid" result="pass"/><test-case name="31130idD022 tokoe:invalid" result="pass"/><test-case name="31131idD023 tokoe:invalid" result="pass"/><test-case name="31132idD024 tokoe:invalid" result="pass"/><test-case name="31133idD025 tokoe:invalid" result="pass"/><test-case name="31134idD026 tokoe:invalid" result="pass"/><test-case name="31135idD027 tokoe:invalid" result="pass"/><test-case name="31136idD028 tokoe:invalid" result="pass"/><test-case name="31137idD029 tokoe:invalid" result="pass"/><test-case name="31138idD030 tokoe:invalid" result="pass"/><test-case name="31139idD031 tokoe:invalid" result="pass"/><test-case name="31140idD032 tokoe:invalid" result="pass"/><test-case name="31141idD033 tokoe:invalid" result="pass"/><test-case name="31142idE001 tokoe:valid" result="pass"/><test-case name="31143idE002 tokoe:invalid" result="pass"/><test-case name="31144idE003 tokoe:valid" result="pass"/><test-case name="31145idE004 tokoe:invalid" result="pass"/><test-case name="31146idE005 tokoe:invalid" result="pass"/><test-case name="31147idE006 tokoe:invalid" result="pass"/><test-case name="31148idE007 tokoe:invalid" result="pass"/><test-case name="31149idE008 tokoe:valid" result="pass"/><test-case name="31150idE009 tokoe:valid" result="pass"/><test-case name="31151idE010 tokoe:valid" result="pass"/><test-case name="31152idE011 tokoe:invalid" result="pass"/><test-case name="31153idE012 tokoe:invalid" result="pass"/><test-case name="31154idE013 tokoe:valid" result="pass"/><test-case name="31155idE014 tokoe:invalid" result="pass"/><test-case name="31156idE015 tokoe:valid" result="pass"/><test-case name="31157idE016 tokoe:valid" result="pass"/><test-case name="31158idE017 tokoe:invalid" result="pass"/><test-case name="31159idE018 tokoe:invalid" result="pass"/><test-case name="31160idE019 tokoe:invalid" result="pass"/><test-case name="31161idE020 tokoe:invalid" result="pass"/><test-case name="31162idE021 tokoe:invalid" result="pass"/><test-case name="31163idE022 tokoe:invalid" result="pass"/><test-case name="31164idE023 tokoe:invalid" result="pass"/><test-case name="31165idE024 tokoe:invalid" result="pass"/><test-case name="31166idE025 tokoe:invalid" result="pass"/><test-case name="31167idE026 tokoe:invalid" result="pass"/><test-case name="31168idE027 tokoe:invalid" result="pass"/><test-case name="31169idE028 tokoe:invalid" result="pass"/><test-case name="31170idE029 tokoe:invalid" result="pass"/><test-case name="31171idE030 tokoe:invalid" result="pass"/><test-case name="31172idE031 tokoe:invalid" result="pass"/><test-case name="31173idE032 tokoe:invalid" result="pass"/><test-case name="31174idE033 tokoe:invalid" result="pass"/><test-case name="31175idF001 tokoe:valid" result="pass"/><test-case name="31176idF001.v tokoe:valid" result="pass"/><test-case name="31177idF003 tokoe:valid" result="pass"/><test-case name="31178idF003.v tokoe:valid" result="pass"/><test-case name="31179idF004 tokoe:valid" result="pass"/><test-case name="31180idF004.v tokoe:valid" result="pass"/><test-case name="31181idF005 tokoe:valid" result="pass"/><test-case name="31182idF005.i tokoe:invalid" result="pass"/><test-case name="31183idF006 tokoe:valid" result="pass"/><test-case name="31184idF006.i tokoe:invalid" result="pass"/><test-case name="31185idF007 tokoe:valid" result="pass"/><test-case name="31186idF007.v tokoe:valid" result="pass"/><test-case name="31187idF008 tokoe:valid" result="pass"/><test-case name="31188idF008.i tokoe:invalid" result="pass"/><test-case name="31189idF009 tokoe:valid" result="pass"/><test-case name="31190idF009.v tokoe:valid" result="pass"/><test-case name="31191idF010 tokoe:valid" result="pass"/><test-case name="31192idF010.i tokoe:invalid" result="pass"/><test-case name="31193idF011 tokoe:valid" result="pass"/><test-case name="31194idF011.v tokoe:valid" result="pass"/><test-case name="31195idF012 tokoe:valid" result="pass"/><test-case name="31196idF012.v tokoe:valid" result="pass"/><test-case name="31197idF013 tokoe:valid" result="pass"/><test-case name="31198idF013.v tokoe:valid" result="pass"/><test-case name="31199idF014 tokoe:valid" result="pass"/><test-case name="31200idF014.v tokoe:valid" result="pass"/><test-case name="31201idF015 tokoe:valid" result="pass"/><test-case name="31202idF015.i tokoe:invalid" result="fail"/><test-case name="31203idF016 tokoe:valid" result="pass"/><test-case name="31204idF016.i tokoe:invalid" result="fail"/><test-case name="31205idF017 tokoe:valid" result="pass"/><test-case name="31206idF017.i tokoe:invalid" result="fail"/><test-case name="31207idF018 tokoe:valid" result="pass"/><test-case name="31208idF018.i tokoe:invalid" result="pass"/><test-case name="31209idF019 tokoe:valid" result="pass"/><test-case name="31210idF019.v tokoe:valid" result="pass"/><test-case name="31211idF020 tokoe:valid" result="pass"/><test-case name="31212idF020.v tokoe:valid" result="pass"/><test-case name="31213idF021 tokoe:valid" result="pass"/><test-case name="31214idF021.v tokoe:valid" result="pass"/><test-case name="31215idF022 tokoe:valid" result="pass"/><test-case name="31216idF022.v tokoe:valid" result="pass"/><test-case name="31217idF023 tokoe:valid" result="pass"/><test-case name="31218idF023.v tokoe:valid" result="pass"/><test-case name="31219idF024 tokoe:valid" result="pass"/><test-case name="31220idF024.v tokoe:valid" result="pass"/><test-case name="31221idF025 tokoe:valid" result="pass"/><test-case name="31222idF025.v tokoe:valid" result="pass"/><test-case name="31223idF026 tokoe:valid" result="pass"/><test-case name="31224idF026.v tokoe:valid" result="pass"/><test-case name="31225idF027 tokoe:valid" result="pass"/><test-case name="31226idF027.v tokoe:valid" result="pass"/><test-case name="31227idF028 tokoe:valid" result="pass"/><test-case name="31228idF028.v tokoe:valid" result="pass"/><test-case name="31229idF029 tokoe:valid" result="pass"/><test-case name="31230idF029.v tokoe:valid" result="pass"/><test-case name="31231idF030 tokoe:valid" result="pass"/><test-case name="31232idF030.v tokoe:valid" result="pass"/><test-case name="31233idF031 tokoe:valid" result="pass"/><test-case name="31234idF031.v tokoe:valid" result="pass"/><test-case name="31235idF032 tokoe:valid" result="pass"/><test-case name="31236idF032.v tokoe:valid" result="pass"/><test-case name="31237idF033 tokoe:valid" result="pass"/><test-case name="31238idF033.v tokoe:valid" result="pass"/><test-case name="31239idF034 tokoe:valid" result="pass"/><test-case name="31240idF034.v tokoe:valid" result="pass"/><test-case name="31241idF035 tokoe:valid" result="pass"/><test-case name="31242idF035.v tokoe:valid" result="pass"/><test-case name="31243idF036 tokoe:valid" result="pass"/><test-case name="31244idF036.v tokoe:valid" result="pass"/><test-case name="31245idG001 tokoe:valid" result="pass"/><test-case name="31246idG001.v tokoe:valid" result="pass"/><test-case name="31247idG003 tokoe:valid" result="pass"/><test-case name="31248idG003.i tokoe:invalid" result="pass"/><test-case name="31249idG004 tokoe:valid" result="pass"/><test-case name="31250idG004.v tokoe:valid" result="pass"/><test-case name="31251idG005 tokoe:valid" result="pass"/><test-case name="31252idG005.i tokoe:invalid" result="pass"/><test-case name="31253idG006 tokoe:valid" result="pass"/><test-case name="31254idG006.i tokoe:invalid" result="pass"/><test-case name="31255idG007 tokoe:valid" result="pass"/><test-case name="31256idG007.v tokoe:valid" result="pass"/><test-case name="31257idG008 tokoe:valid" result="pass"/><test-case name="31258idG008.i tokoe:invalid" result="pass"/><test-case name="31259idG009 tokoe:valid" result="pass"/><test-case name="31260idG009.i tokoe:invalid" result="pass"/><test-case name="31261idG010 tokoe:valid" result="pass"/><test-case name="31262idG010.i tokoe:invalid" result="pass"/><test-case name="31263idG011 tokoe:valid" result="pass"/><test-case name="31264idG011.i tokoe:invalid" result="fail"/><test-case name="31265idG012 tokoe:valid" result="pass"/><test-case name="31266idG012.i tokoe:invalid" result="fail"/><test-case name="31267idG013 tokoe:valid" result="pass"/><test-case name="31268idG013.v tokoe:valid" result="pass"/><test-case name="31269idG014 tokoe:valid" result="pass"/><test-case name="31270idG014.v tokoe:valid" result="pass"/><test-case name="31271idG015 tokoe:valid" result="pass"/><test-case name="31272idG015.v tokoe:valid" result="pass"/><test-case name="31273idG016 tokoe:valid" result="pass"/><test-case name="31274idG016.v tokoe:valid" result="pass"/><test-case name="31275idG017 tokoe:valid" result="pass"/><test-case name="31276idG017.v tokoe:valid" result="pass"/><test-case name="31277idG018 tokoe:valid" result="pass"/><test-case name="31278idG018.v tokoe:valid" result="pass"/><test-case name="31279idG019 tokoe:valid" result="pass"/><test-case name="31280idG019.v tokoe:valid" result="pass"/><test-case name="31281idG020 tokoe:valid" result="pass"/><test-case name="31282idG020.i tokoe:invalid" result="pass"/><test-case name="31283idG021 tokoe:valid" result="pass"/><test-case name="31284idG021.v tokoe:valid" result="pass"/><test-case name="31285idG022 tokoe:valid" result="pass"/><test-case name="31286idG022.v tokoe:valid" result="pass"/><test-case name="31287idG023 tokoe:valid" result="pass"/><test-case name="31288idG023.v tokoe:valid" result="pass"/><test-case name="31289idG024 tokoe:valid" result="pass"/><test-case name="31290idG024.v tokoe:valid" result="pass"/><test-case name="31291idG025 tokoe:valid" result="pass"/><test-case name="31292idG025.i tokoe:invalid" result="pass"/><test-case name="31293idG026 tokoe:valid" result="pass"/><test-case name="31294idG026.v tokoe:valid" result="pass"/><test-case name="31295idG027 tokoe:valid" result="pass"/><test-case name="31296idG027.v tokoe:valid" result="pass"/><test-case name="31297idG028 tokoe:valid" result="pass"/><test-case name="31298idG028.v tokoe:valid" result="pass"/><test-case name="31299idG029 tokoe:valid" result="pass"/><test-case name="31300idG029.v tokoe:valid" result="pass"/><test-case name="31301idG030 tokoe:valid" result="pass"/><test-case name="31302idG030.v tokoe:valid" result="pass"/><test-case name="31303idH001 tokoe:valid" result="pass"/><test-case name="31304idH001.v tokoe:valid" result="pass"/><test-case name="31305idH003 tokoe:valid" result="pass"/><test-case name="31306idH003.v tokoe:valid" result="pass"/><test-case name="31307idH004 tokoe:valid" result="pass"/><test-case name="31308idH004.v tokoe:valid" result="pass"/><test-case name="31309idH005 tokoe:valid" result="pass"/><test-case name="31310idH005.i tokoe:invalid" result="pass"/><test-case name="31311idH006 tokoe:valid" result="pass"/><test-case name="31312idH006.i tokoe:invalid" result="pass"/><test-case name="31313idH007 tokoe:valid" result="pass"/><test-case name="31314idH007.v tokoe:valid" result="pass"/><test-case name="31315idH008 tokoe:valid" result="pass"/><test-case name="31316idH008.v tokoe:valid" result="pass"/><test-case name="31317idH009 tokoe:valid" result="pass"/><test-case name="31318idH009.v tokoe:valid" result="pass"/><test-case name="31319idH010 tokoe:valid" result="pass"/><test-case name="31320idH010.i tokoe:invalid" result="pass"/><test-case name="31321idH011 tokoe:invalid" result="pass"/><test-case name="31322idH012 tokoe:valid" result="pass"/><test-case name="31323idH012.i tokoe:invalid" result="pass"/><test-case name="31324idH013 tokoe:invalid" result="pass"/><test-case name="31325idH014 tokoe:invalid" result="pass"/><test-case name="31326idH015 tokoe:valid" result="pass"/><test-case name="31327idH015.v tokoe:valid" result="pass"/><test-case name="31328idH016 tokoe:valid" result="pass"/><test-case name="31329idH016.v tokoe:valid" result="pass"/><test-case name="31330idH017 tokoe:valid" result="pass"/><test-case name="31331idH017.v tokoe:valid" result="pass"/><test-case name="31332idH018 tokoe:valid" result="pass"/><test-case name="31333idH018.v tokoe:valid" result="pass"/><test-case name="31334idH019 tokoe:valid" result="pass"/><test-case name="31335idH019.v tokoe:valid" result="pass"/><test-case name="31336idH020 tokoe:valid" result="pass"/><test-case name="31337idH020.v tokoe:valid" result="pass"/><test-case name="31338idH021 tokoe:valid" result="pass"/><test-case name="31339idH021.v tokoe:valid" result="pass"/><test-case name="31340idH022 tokoe:valid" result="pass"/><test-case name="31341idH022.v tokoe:valid" result="pass"/><test-case name="31342idH023 tokoe:valid" result="pass"/><test-case name="31343idH023.v tokoe:valid" result="pass"/><test-case name="31344idH024 tokoe:valid" result="pass"/><test-case name="31345idH024.v tokoe:valid" result="pass"/><test-case name="31346idH025 tokoe:valid" result="pass"/><test-case name="31347idH025.v tokoe:valid" result="pass"/><test-case name="31348idH026 tokoe:valid" result="pass"/><test-case name="31349idH026.v tokoe:valid" result="pass"/><test-case name="31350idH027 tokoe:valid" result="pass"/><test-case name="31351idH027.v tokoe:valid" result="pass"/><test-case name="31352idH028 tokoe:valid" result="pass"/><test-case name="31353idH028.v tokoe:valid" result="pass"/><test-case name="31354idH029 tokoe:valid" result="pass"/><test-case name="31355idH029.v tokoe:valid" result="pass"/><test-case name="31356idH030 tokoe:valid" result="pass"/><test-case name="31357idH030.v tokoe:valid" result="pass"/><test-case name="31358idH031 tokoe:valid" result="pass"/><test-case name="31359idH031.v tokoe:valid" result="pass"/><test-case name="31360idH032 tokoe:valid" result="pass"/><test-case name="31361idH032.v tokoe:valid" result="pass"/><test-case name="31362idH034 tokoe:valid" result="pass"/><test-case name="31363idH034.v tokoe:valid" result="pass"/><test-case name="31364idH035 tokoe:invalid" result="pass"/><test-case name="31365idI001 tokoe:invalid" result="pass"/><test-case name="31366idI002 tokoe:valid" result="pass"/><test-case name="31367idI003 tokoe:invalid" result="pass"/><test-case name="31368idI004 tokoe:invalid" result="pass"/><test-case name="31369idI005 tokoe:invalid" result="pass"/><test-case name="31370idI006 tokoe:invalid" result="pass"/><test-case name="31371idI007 tokoe:invalid" result="pass"/><test-case name="31372idI008 tokoe:valid" result="pass"/><test-case name="31373idI009 tokoe:valid" result="pass"/><test-case name="31374idI010 tokoe:invalid" result="pass"/><test-case name="31375idI011 tokoe:valid" result="pass"/><test-case name="31376idI012 tokoe:valid" result="pass"/><test-case name="31377idI013 tokoe:valid" result="pass"/><test-case name="31378idI014 tokoe:invalid" result="pass"/><test-case name="31379idI015 tokoe:invalid" result="pass"/><test-case name="31380idI016 tokoe:invalid" result="pass"/><test-case name="31381idI017 tokoe:valid" result="pass"/><test-case name="31382idI018 tokoe:invalid" result="pass"/><test-case name="31383idI019 tokoe:valid" result="pass"/><test-case name="31384idI020 tokoe:valid" result="pass"/><test-case name="31385idI021 tokoe:valid" result="pass"/><test-case name="31386idI022 tokoe:invalid" result="pass"/><test-case name="31387idI023 tokoe:invalid" result="pass"/><test-case name="31388idI024 tokoe:valid" result="pass"/><test-case name="31389idI025 tokoe:valid" result="pass"/><test-case name="31390idI026 tokoe:valid" result="pass"/><test-case name="31391idI027 tokoe:valid" result="pass"/><test-case name="31392idI028 tokoe:invalid" result="fail"/><test-case name="31393idI029 tokoe:valid" result="pass"/><test-case name="31394idI030 tokoe:valid" result="pass"/><test-case name="31395idI031 tokoe:valid" result="pass"/><test-case name="31396idI032 tokoe:valid" result="pass"/><test-case name="31397idI033 tokoe:valid" result="pass"/><test-case name="31398idI034 tokoe:valid" result="pass"/><test-case name="31399idI035 tokoe:valid" result="pass"/><test-case name="31400idI036 tokoe:valid" result="pass"/><test-case name="31401idI037 tokoe:valid" result="pass"/><test-case name="31402idI038 tokoe:invalid" result="fail"/><test-case name="31403idI039 tokoe:valid" result="pass"/><test-case name="31404idI040 tokoe:valid" result="pass"/><test-case name="31405idI041 tokoe:valid" result="pass"/><test-case name="31406idI042 tokoe:valid" result="pass"/><test-case name="31407idI043 tokoe:valid" result="pass"/><test-case name="31408idI044 tokoe:valid" result="pass"/><test-case name="31409idI045 tokoe:valid" result="pass"/><test-case name="31410idI046 tokoe:valid" result="pass"/><test-case name="31411idI047 tokoe:valid" result="pass"/><test-case name="31412idI048 tokoe:valid" result="pass"/><test-case name="31413idI049 tokoe:valid" result="pass"/><test-case name="31414idI050 tokoe:valid" result="pass"/><test-case name="31415idI051 tokoe:valid" result="pass"/><test-case name="31416idI052 tokoe:valid" result="pass"/><test-case name="31417idI053 tokoe:valid" result="pass"/><test-case name="31418idI054 tokoe:valid" result="pass"/><test-case name="31419idI055 tokoe:valid" result="pass"/><test-case name="31420idI056 tokoe:valid" result="pass"/><test-case name="31421idI057 tokoe:valid" result="pass"/><test-case name="31422idI058 tokoe:valid" result="pass"/><test-case name="31423idI059 tokoe:valid" result="pass"/><test-case name="31424idI060 tokoe:valid" result="pass"/><test-case name="31425idI061 tokoe:valid" result="pass"/><test-case name="31426idI062 tokoe:valid" result="pass"/><test-case name="31427idI063 tokoe:valid" result="pass"/><test-case name="31428idI064 tokoe:valid" result="pass"/><test-case name="31429idI065 tokoe:valid" result="pass"/><test-case name="31430idI066 tokoe:valid" result="pass"/><test-case name="31431idI067 tokoe:valid" result="pass"/><test-case name="31432idI068 tokoe:valid" result="pass"/><test-case name="31433idI069 tokoe:valid" result="pass"/><test-case name="31434idI070 tokoe:valid" result="pass"/><test-case name="31435idI071 tokoe:valid" result="pass"/><test-case name="31436idI072 tokoe:valid" result="pass"/><test-case name="31437idI073 tokoe:valid" result="pass"/><test-case name="31438idI074 tokoe:valid" result="pass"/><test-case name="31439idI075 tokoe:valid" result="pass"/><test-case name="31440idI076 tokoe:valid" result="pass"/><test-case name="31441idI077 tokoe:valid" result="pass"/><test-case name="31442idI078 tokoe:valid" result="pass"/><test-case name="31443idI079 tokoe:valid" result="pass"/><test-case name="31444idI080 tokoe:valid" result="pass"/><test-case name="31445idI081 tokoe:valid" result="pass"/><test-case name="31446idI082 tokoe:valid" result="pass"/><test-case name="31447idI083 tokoe:valid" result="pass"/><test-case name="31448idI084 tokoe:valid" result="pass"/><test-case name="31449idI085 tokoe:valid" result="pass"/><test-case name="31450idI086 tokoe:valid" result="pass"/><test-case name="31451idI087 tokoe:valid" result="pass"/><test-case name="31452idI088 tokoe:valid" result="pass"/><test-case name="31453idI089 tokoe:valid" result="pass"/><test-case name="31454idI090 tokoe:valid" result="pass"/><test-case name="31455idI091 tokoe:valid" result="pass"/><test-case name="31456idI092 tokoe:valid" result="pass"/><test-case name="31457idI093 tokoe:valid" result="pass"/><test-case name="31458idI094 tokoe:valid" result="pass"/><test-case name="31459idI095 tokoe:valid" result="pass"/><test-case name="31460idI096 tokoe:valid" result="pass"/><test-case name="31461idI097 tokoe:valid" result="pass"/><test-case name="31462idI098 tokoe:valid" result="pass"/><test-case name="31463idI099 tokoe:valid" result="pass"/><test-case name="31464idI100 tokoe:valid" result="pass"/><test-case name="31465idI101 tokoe:valid" result="pass"/><test-case name="31466idI102 tokoe:valid" result="pass"/><test-case name="31467idI103 tokoe:valid" result="pass"/><test-case name="31468idI104 tokoe:valid" result="pass"/><test-case name="31469idI105 tokoe:valid" result="pass"/><test-case name="31470idI106 tokoe:valid" result="pass"/><test-case name="31471idI107 tokoe:valid" result="pass"/><test-case name="31472idI108 tokoe:valid" result="pass"/><test-case name="31473idI109 tokoe:valid" result="pass"/><test-case name="31474idI110 tokoe:valid" result="pass"/><test-case name="31475idI111 tokoe:valid" result="pass"/><test-case name="31476idI112 tokoe:valid" result="pass"/><test-case name="31477idI113 tokoe:valid" result="pass"/><test-case name="31478idI114 tokoe:valid" result="pass"/><test-case name="31479idI115 tokoe:valid" result="pass"/><test-case name="31480idI116 tokoe:valid" result="pass"/><test-case name="31481idI117 tokoe:valid" result="pass"/><test-case name="31482idI118 tokoe:valid" result="pass"/><test-case name="31483idI119 tokoe:valid" result="pass"/><test-case name="31484idI120 tokoe:valid" result="pass"/><test-case name="31485idI121 tokoe:valid" result="pass"/><test-case name="31486idI122 tokoe:valid" result="pass"/><test-case name="31487idI123 tokoe:valid" result="pass"/><test-case name="31488idI124 tokoe:valid" result="pass"/><test-case name="31489idI125 tokoe:valid" result="pass"/><test-case name="31490idI126 tokoe:valid" result="pass"/><test-case name="31491idI127 tokoe:valid" result="pass"/><test-case name="31492idI128 tokoe:valid" result="pass"/><test-case name="31493idI129 tokoe:valid" result="pass"/><test-case name="31494idI130 tokoe:valid" result="pass"/><test-case name="31495idI131 tokoe:valid" result="pass"/><test-case name="31496idI132 tokoe:valid" result="pass"/><test-case name="31497idI133 tokoe:valid" result="pass"/><test-case name="31498idI134 tokoe:valid" result="pass"/><test-case name="31499idI135 tokoe:valid" result="pass"/><test-case name="31500idI136 tokoe:valid" result="pass"/><test-case name="31501idI137 tokoe:valid" result="pass"/><test-case name="31502idI138 tokoe:valid" result="pass"/><test-case name="31503idI139 tokoe:valid" result="pass"/><test-case name="31504idI140 tokoe:valid" result="pass"/><test-case name="31505idI141 tokoe:valid" result="pass"/><test-case name="31506idI142 tokoe:valid" result="pass"/><test-case name="31507idI143 tokoe:valid" result="pass"/><test-case name="31508idI144 tokoe:valid" result="pass"/><test-case name="31509idI145 tokoe:invalid" result="pass"/><test-case name="31510idI146 tokoe:invalid" result="pass"/><test-case name="31511idI147 tokoe:invalid" result="pass"/><test-case name="31512idI148 tokoe:invalid" result="pass"/><test-case name="31513idI149 tokoe:invalid" result="pass"/><test-case name="31514idI150 tokoe:invalid" result="pass"/><test-case name="31515idI151 tokoe:invalid" result="pass"/><test-case name="31516idI152 tokoe:invalid" result="fail"/><test-case name="31517idJ001 tokoe:invalid" result="pass"/><test-case name="31518idJ002 tokoe:invalid" result="pass"/><test-case name="31519idJ003 tokoe:invalid" result="pass"/><test-case name="31520idJ004 tokoe:valid" result="pass"/><test-case name="31521idJ005 tokoe:invalid" result="pass"/><test-case name="31522idJ006 tokoe:invalid" result="pass"/><test-case name="31523idJ007 tokoe:invalid" result="pass"/><test-case name="31524idJ008 tokoe:invalid" result="pass"/><test-case name="31525idJ009 tokoe:valid" result="pass"/><test-case name="31526idJ010 tokoe:valid" result="pass"/><test-case name="31527idJ011 tokoe:invalid" result="pass"/><test-case name="31528idJ012 tokoe:valid" result="pass"/><test-case name="31529idJ013 tokoe:valid" result="pass"/><test-case name="31530idJ014 tokoe:valid" result="pass"/><test-case name="31531idJ015 tokoe:invalid" result="pass"/><test-case name="31532idJ016 tokoe:invalid" result="pass"/><test-case name="31533idJ017 tokoe:invalid" result="pass"/><test-case name="31534idJ018 tokoe:valid" result="pass"/><test-case name="31535idJ019 tokoe:valid" result="pass"/><test-case name="31536idJ020 tokoe:valid" result="pass"/><test-case name="31537idJ021 tokoe:valid" result="pass"/><test-case name="31538idJ022 tokoe:valid" result="pass"/><test-case name="31539idJ023 tokoe:valid" result="pass"/><test-case name="31540idJ024 tokoe:valid" result="pass"/><test-case name="31541idJ025 tokoe:invalid" result="pass"/><test-case name="31542idJ026 tokoe:invalid" result="pass"/><test-case name="31543idJ027 tokoe:valid" result="pass"/><test-case name="31544idJ028 tokoe:valid" result="pass"/><test-case name="31545idJ029 tokoe:valid" result="pass"/><test-case name="31546idJ030 tokoe:invalid" result="pass"/><test-case name="31547idJ031 tokoe:valid" result="pass"/><test-case name="31548idJ032 tokoe:invalid" result="pass"/><test-case name="31549idJ033 tokoe:valid" result="pass"/><test-case name="31550idJ034 tokoe:valid" result="pass"/><test-case name="31551idJ035 tokoe:valid" result="pass"/><test-case name="31552idJ036 tokoe:invalid" result="fail"/><test-case name="31553idJ037 tokoe:valid" result="pass"/><test-case name="31554idJ038 tokoe:valid" result="pass"/><test-case name="31555idJ039 tokoe:valid" result="pass"/><test-case name="31556idJ040 tokoe:valid" result="pass"/><test-case name="31557idJ041 tokoe:valid" result="pass"/><test-case name="31558idJ042 tokoe:valid" result="pass"/><test-case name="31559idJ043 tokoe:valid" result="pass"/><test-case name="31560idJ044 tokoe:valid" result="pass"/><test-case name="31561idJ045 tokoe:valid" result="pass"/><test-case name="31562idJ046 tokoe:valid" result="pass"/><test-case name="31563idJ047 tokoe:valid" result="pass"/><test-case name="31564idJ048 tokoe:valid" result="pass"/><test-case name="31565idJ049 tokoe:valid" result="pass"/><test-case name="31566idJ050 tokoe:valid" result="pass"/><test-case name="31567idJ051 tokoe:valid" result="pass"/><test-case name="31568idJ052 tokoe:invalid" result="fail"/><test-case name="31569idJ053 tokoe:valid" result="pass"/><test-case name="31570idJ054 tokoe:valid" result="pass"/><test-case name="31571idJ055 tokoe:valid" result="pass"/><test-case name="31572idJ056 tokoe:invalid" result="fail"/><test-case name="31573idJ057 tokoe:valid" result="pass"/><test-case name="31574idJ058 tokoe:valid" result="pass"/><test-case name="31575idJ059 tokoe:valid" result="pass"/><test-case name="31576idJ060 tokoe:valid" result="pass"/><test-case name="31577idJ061 tokoe:valid" result="pass"/><test-case name="31578idJ062 tokoe:valid" result="pass"/><test-case name="31579idJ063 tokoe:valid" result="pass"/><test-case name="31580idJ064 tokoe:valid" result="pass"/><test-case name="31581idJ065 tokoe:valid" result="pass"/><test-case name="31582idJ066 tokoe:valid" result="pass"/><test-case name="31583idJ067 tokoe:valid" result="pass"/><test-case name="31584idJ068 tokoe:valid" result="pass"/><test-case name="31585idJ069 tokoe:valid" result="pass"/><test-case name="31586idJ070 tokoe:valid" result="pass"/><test-case name="31587idJ071 tokoe:valid" result="pass"/><test-case name="31588idJ072 tokoe:valid" result="pass"/><test-case name="31589idJ073 tokoe:valid" result="pass"/><test-case name="31590idJ074 tokoe:valid" result="pass"/><test-case name="31591idJ075 tokoe:valid" result="pass"/><test-case name="31592idJ076 tokoe:valid" result="pass"/><test-case name="31593idJ077 tokoe:valid" result="pass"/><test-case name="31594idJ078 tokoe:valid" result="pass"/><test-case name="31595idJ079 tokoe:valid" result="pass"/><test-case name="31596idJ080 tokoe:valid" result="pass"/><test-case name="31597idJ081 tokoe:valid" result="pass"/><test-case name="31598idJ082 tokoe:valid" result="pass"/><test-case name="31599idJ083 tokoe:valid" result="pass"/><test-case name="31600idJ084 tokoe:valid" result="pass"/><test-case name="31601idJ085 tokoe:valid" result="pass"/><test-case name="31602idJ086 tokoe:valid" result="pass"/><test-case name="31603idJ087 tokoe:valid" result="pass"/><test-case name="31604idJ088 tokoe:valid" result="pass"/><test-case name="31605idJ089 tokoe:valid" result="pass"/><test-case name="31606idJ090 tokoe:valid" result="pass"/><test-case name="31607idJ091 tokoe:valid" result="pass"/><test-case name="31608idJ092 tokoe:valid" result="pass"/><test-case name="31609idJ093 tokoe:valid" result="pass"/><test-case name="31610idJ094 tokoe:valid" result="pass"/><test-case name="31611idJ095 tokoe:valid" result="pass"/><test-case name="31612idJ096 tokoe:valid" result="pass"/><test-case name="31613idJ097 tokoe:valid" result="pass"/><test-case name="31614idJ098 tokoe:valid" result="pass"/><test-case name="31615idJ099 tokoe:valid" result="pass"/><test-case name="31616idJ100 tokoe:valid" result="pass"/><test-case name="31617idJ101 tokoe:valid" result="pass"/><test-case name="31618idJ102 tokoe:valid" result="pass"/><test-case name="31619idJ103 tokoe:valid" result="pass"/><test-case name="31620idJ104 tokoe:valid" result="pass"/><test-case name="31621idJ105 tokoe:valid" result="pass"/><test-case name="31622idJ106 tokoe:valid" result="pass"/><test-case name="31623idJ107 tokoe:valid" result="pass"/><test-case name="31624idJ108 tokoe:valid" result="pass"/><test-case name="31625idJ109 tokoe:valid" result="pass"/><test-case name="31626idJ110 tokoe:valid" result="pass"/><test-case name="31627idJ111 tokoe:valid" result="pass"/><test-case name="31628idJ112 tokoe:valid" result="pass"/><test-case name="31629idJ113 tokoe:valid" result="pass"/><test-case name="31630idJ114 tokoe:valid" result="pass"/><test-case name="31631idJ115 tokoe:valid" result="pass"/><test-case name="31632idJ116 tokoe:valid" result="pass"/><test-case name="31633idJ117 tokoe:valid" result="pass"/><test-case name="31634idJ118 tokoe:valid" result="pass"/><test-case name="31635idJ119 tokoe:valid" result="pass"/><test-case name="31636idJ120 tokoe:valid" result="pass"/><test-case name="31637idJ121 tokoe:valid" result="pass"/><test-case name="31638idJ122 tokoe:valid" result="pass"/><test-case name="31639idJ123 tokoe:valid" result="pass"/><test-case name="31640idJ124 tokoe:valid" result="pass"/><test-case name="31641idJ125 tokoe:valid" result="pass"/><test-case name="31642idJ126 tokoe:valid" result="pass"/><test-case name="31643idJ127 tokoe:valid" result="pass"/><test-case name="31644idJ128 tokoe:valid" result="pass"/><test-case name="31645idJ129 tokoe:valid" result="pass"/><test-case name="31646idJ130 tokoe:valid" result="pass"/><test-case name="31647idJ131 tokoe:valid" result="pass"/><test-case name="31648idJ132 tokoe:valid" result="pass"/><test-case name="31649idJ133 tokoe:valid" result="pass"/><test-case name="31650idJ134 tokoe:valid" result="pass"/><test-case name="31651idJ135 tokoe:valid" result="pass"/><test-case name="31652idJ136 tokoe:valid" result="pass"/><test-case name="31653idJ137 tokoe:valid" result="pass"/><test-case name="31654idJ138 tokoe:valid" result="pass"/><test-case name="31655idJ139 tokoe:valid" result="pass"/><test-case name="31656idJ140 tokoe:valid" result="pass"/><test-case name="31657idJ141 tokoe:valid" result="pass"/><test-case name="31658idJ142 tokoe:valid" result="pass"/><test-case name="31659idJ143 tokoe:valid" result="pass"/><test-case name="31660idJ144 tokoe:valid" result="pass"/><test-case name="31661idJ145 tokoe:valid" result="pass"/><test-case name="31662idJ146 tokoe:valid" result="pass"/><test-case name="31663idJ147 tokoe:valid" result="pass"/><test-case name="31664idJ148 tokoe:valid" result="pass"/><test-case name="31665idJ149 tokoe:valid" result="pass"/><test-case name="31666idJ150 tokoe:valid" result="pass"/><test-case name="31667idJ151 tokoe:valid" result="pass"/><test-case name="31668idJ152 tokoe:valid" result="pass"/><test-case name="31669idJ153 tokoe:valid" result="pass"/><test-case name="31670idJ154 tokoe:valid" result="pass"/><test-case name="31671idJ155 tokoe:valid" result="pass"/><test-case name="31672idJ156 tokoe:valid" result="pass"/><test-case name="31673idJ157 tokoe:valid" result="pass"/><test-case name="31674idJ158 tokoe:valid" result="pass"/><test-case name="31675idJ159 tokoe:valid" result="pass"/><test-case name="31676idJ160 tokoe:valid" result="pass"/><test-case name="31677idJ161 tokoe:valid" result="pass"/><test-case name="31678idJ162 tokoe:valid" result="pass"/><test-case name="31679idJ163 tokoe:valid" result="pass"/><test-case name="31680idJ164 tokoe:valid" result="pass"/><test-case name="31681idJ165 tokoe:valid" result="pass"/><test-case name="31682idJ166 tokoe:valid" result="pass"/><test-case name="31683idJ167 tokoe:valid" result="pass"/><test-case name="31684idJ168 tokoe:valid" result="pass"/><test-case name="31685idJ169 tokoe:valid" result="pass"/><test-case name="31686idJ170 tokoe:valid" result="pass"/><test-case name="31687idJ171 tokoe:valid" result="pass"/><test-case name="31688idJ172 tokoe:valid" result="pass"/><test-case name="31689idJ173 tokoe:valid" result="pass"/><test-case name="31690idJ174 tokoe:valid" result="pass"/><test-case name="31691idJ175 tokoe:valid" result="pass"/><test-case name="31692idJ176 tokoe:valid" result="pass"/><test-case name="31693idJ177 tokoe:valid" result="pass"/><test-case name="31694idJ178 tokoe:valid" result="pass"/><test-case name="31695idJ179 tokoe:valid" result="pass"/><test-case name="31696idJ180 tokoe:valid" result="pass"/><test-case name="31697idJ181 tokoe:valid" result="pass"/><test-case name="31698idJ182 tokoe:valid" result="pass"/><test-case name="31699idJ183 tokoe:valid" result="pass"/><test-case name="31700idJ184 tokoe:valid" result="pass"/><test-case name="31701idJ185 tokoe:valid" result="pass"/><test-case name="31702idJ186 tokoe:valid" result="pass"/><test-case name="31703idJ187 tokoe:valid" result="pass"/><test-case name="31704idJ188 tokoe:valid" result="pass"/><test-case name="31705idJ189 tokoe:valid" result="pass"/><test-case name="31706idJ190 tokoe:valid" result="pass"/><test-case name="31707idJ191 tokoe:valid" result="pass"/><test-case name="31708idJ192 tokoe:valid" result="pass"/><test-case name="31709idJ193 tokoe:valid" result="pass"/><test-case name="31710idJ194 tokoe:valid" result="pass"/><test-case name="31711idJ195 tokoe:valid" result="pass"/><test-case name="31712idJ196 tokoe:valid" result="pass"/><test-case name="31713idJ197 tokoe:valid" result="pass"/><test-case name="31714idJ198 tokoe:valid" result="pass"/><test-case name="31715idJ199 tokoe:valid" result="pass"/><test-case name="31716idJ200 tokoe:valid" result="pass"/><test-case name="31717idJ201 tokoe:valid" result="pass"/><test-case name="31718idJ202 tokoe:valid" result="pass"/><test-case name="31719idJ203 tokoe:valid" result="pass"/><test-case name="31720idJ204 tokoe:valid" result="pass"/><test-case name="31721idJ205 tokoe:invalid" result="pass"/><test-case name="31722idJ206 tokoe:invalid" result="pass"/><test-case name="31723idJ207 tokoe:invalid" result="pass"/><test-case name="31724idJ208 tokoe:invalid" result="pass"/><test-case name="31725idJ209 tokoe:invalid" result="pass"/><test-case name="31726idJ210 tokoe:invalid" result="fail"/><test-case name="31727idK001 tokoe:valid" result="pass"/><test-case name="31728idK001.v tokoe:valid" result="pass"/><test-case name="31729idK002 tokoe:valid" result="pass"/><test-case name="31730idK002.v tokoe:valid" result="pass"/><test-case name="31731idK003 tokoe:valid" result="pass"/><test-case name="31732idK003.i tokoe:invalid" result="pass"/><test-case name="31733idK004 tokoe:valid" result="pass"/><test-case name="31734idK004.v tokoe:valid" result="pass"/><test-case name="31735idK005 tokoe:valid" result="pass"/><test-case name="31736idK005.v tokoe:valid" result="pass"/><test-case name="31737idK006 tokoe:valid" result="pass"/><test-case name="31738idK006.v tokoe:valid" result="pass"/><test-case name="31739idK007 tokoe:valid" result="pass"/><test-case name="31740idK007.v tokoe:valid" result="pass"/><test-case name="31741idK008 tokoe:valid" result="pass"/><test-case name="31742idK008.v tokoe:valid" result="pass"/><test-case name="31743idK009 tokoe:valid" result="pass"/><test-case name="31744idK009.v tokoe:valid" result="pass"/><test-case name="31745idK010 tokoe:valid" result="pass"/><test-case name="31746idK010.v tokoe:valid" result="pass"/><test-case name="31747idK011 tokoe:valid" result="pass"/><test-case name="31748idK011.v tokoe:valid" result="pass"/><test-case name="31749idK012 tokoe:valid" result="pass"/><test-case name="31750idK012.i tokoe:invalid" result="pass"/><test-case name="31751idK013 tokoe:valid" result="pass"/><test-case name="31752idK013.v tokoe:valid" result="pass"/><test-case name="31753idK014 tokoe:valid" result="pass"/><test-case name="31754idK014.v tokoe:valid" result="pass"/><test-case name="31755idK015 tokoe:valid" result="pass"/><test-case name="31756idK015.v tokoe:valid" result="pass"/><test-case name="31757idK016 tokoe:invalid" result="pass"/><test-case name="31758idK017 tokoe:valid" result="pass"/><test-case name="31759idK017.v tokoe:valid" result="pass"/><test-case name="31760idL001 tokoe:valid" result="pass"/><test-case name="31761idL001.v tokoe:valid" result="pass"/><test-case name="31762idL002 tokoe:valid" result="pass"/><test-case name="31763idL002.i tokoe:invalid" result="pass"/><test-case name="31764idL003 tokoe:valid" result="pass"/><test-case name="31765idL003.v tokoe:valid" result="pass"/><test-case name="31766idL004 tokoe:valid" result="pass"/><test-case name="31767idL004.v tokoe:valid" result="pass"/><test-case name="31768idL005 tokoe:valid" result="pass"/><test-case name="31769idL005.v tokoe:valid" result="pass"/><test-case name="31770idL006 tokoe:valid" result="pass"/><test-case name="31771idL006.i tokoe:invalid" result="pass"/><test-case name="31772idL007 tokoe:valid" result="pass"/><test-case name="31773idL007.i tokoe:invalid" result="pass"/><test-case name="31774idL008 tokoe:valid" result="pass"/><test-case name="31775idL008.v tokoe:valid" result="pass"/><test-case name="31776idL009 tokoe:valid" result="pass"/><test-case name="31777idL009.v tokoe:valid" result="pass"/><test-case name="31778idL010 tokoe:valid" result="pass"/><test-case name="31779idL010.v tokoe:valid" result="pass"/><test-case name="31780idL011 tokoe:valid" result="pass"/><test-case name="31781idL011.i tokoe:invalid" result="pass"/><test-case name="31782idL012 tokoe:valid" result="pass"/><test-case name="31783idL012.i tokoe:invalid" result="pass"/><test-case name="31784idL013 tokoe:valid" result="pass"/><test-case name="31785idL013.v tokoe:valid" result="pass"/><test-case name="31786idL014 tokoe:valid" result="pass"/><test-case name="31787idL014.v tokoe:valid" result="pass"/><test-case name="31788idL015 tokoe:valid" result="pass"/><test-case name="31789idL015.i tokoe:invalid" result="pass"/><test-case name="31790idL016 tokoe:valid" result="pass"/><test-case name="31791idL016.v tokoe:valid" result="pass"/><test-case name="31792idL017 tokoe:valid" result="pass"/><test-case name="31793idL017.v tokoe:valid" result="pass"/><test-case name="31794idL018 tokoe:valid" result="pass"/><test-case name="31795idL018.v tokoe:valid" result="pass"/><test-case name="31796idL019 tokoe:valid" result="pass"/><test-case name="31797idL019.i tokoe:invalid" result="pass"/><test-case name="31798idL020 tokoe:valid" result="pass"/><test-case name="31799idL020.v tokoe:valid" result="pass"/><test-case name="31800idL021 tokoe:valid" result="pass"/><test-case name="31801idL021.v tokoe:valid" result="pass"/><test-case name="31802idL022 tokoe:valid" result="pass"/><test-case name="31803idL022.i tokoe:invalid" result="pass"/><test-case name="31804idL023 tokoe:valid" result="pass"/><test-case name="31805idL023.v tokoe:valid" result="pass"/><test-case name="31806idL024 tokoe:valid" result="pass"/><test-case name="31807idL024.v tokoe:valid" result="pass"/><test-case name="31808idL025 tokoe:valid" result="pass"/><test-case name="31809idL025.i tokoe:invalid" result="pass"/><test-case name="31810idL026 tokoe:valid" result="pass"/><test-case name="31811idL026.v tokoe:valid" result="pass"/><test-case name="31812idL027 tokoe:valid" result="pass"/><test-case name="31813idL027.i tokoe:invalid" result="pass"/><test-case name="31814idL028 tokoe:valid" result="pass"/><test-case name="31815idL028.v tokoe:valid" result="pass"/><test-case name="31816idL029 tokoe:valid" result="pass"/><test-case name="31817idL029.v tokoe:valid" result="pass"/><test-case name="31818idL030 tokoe:valid" result="pass"/><test-case name="31819idL030.v tokoe:valid" result="pass"/><test-case name="31820idL031 tokoe:valid" result="pass"/><test-case name="31821idL031.i tokoe:invalid" result="pass"/><test-case name="31822idL032 tokoe:valid" result="pass"/><test-case name="31823idL032.i tokoe:invalid" result="pass"/><test-case name="31824idL033 tokoe:valid" result="pass"/><test-case name="31825idL033.v tokoe:valid" result="pass"/><test-case name="31826idL034 tokoe:valid" result="pass"/><test-case name="31827idL034.v tokoe:valid" result="pass"/><test-case name="31828idL035 tokoe:valid" result="pass"/><test-case name="31829idL035.v tokoe:valid" result="pass"/><test-case name="31830idL036 tokoe:valid" result="pass"/><test-case name="31831idL036.i tokoe:invalid" result="pass"/><test-case name="31832idL037 tokoe:valid" result="pass"/><test-case name="31833idL037.i tokoe:invalid" result="pass"/><test-case name="31834idL038 tokoe:valid" result="pass"/><test-case name="31835idL038.v tokoe:valid" result="pass"/><test-case name="31836idL039 tokoe:valid" result="pass"/><test-case name="31837idL039.v tokoe:valid" result="pass"/><test-case name="31838idL040 tokoe:valid" result="pass"/><test-case name="31839idL040.i tokoe:invalid" result="pass"/><test-case name="31840idL041 tokoe:valid" result="pass"/><test-case name="31841idL041.v tokoe:valid" result="pass"/><test-case name="31842idL042 tokoe:valid" result="pass"/><test-case name="31843idL042.v tokoe:valid" result="pass"/><test-case name="31844idL043 tokoe:valid" result="pass"/><test-case name="31845idL043.v tokoe:valid" result="pass"/><test-case name="31846idL044 tokoe:valid" result="pass"/><test-case name="31847idL044.i tokoe:invalid" result="pass"/><test-case name="31848idL045 tokoe:valid" result="pass"/><test-case name="31849idL045.v tokoe:valid" result="pass"/><test-case name="31850idL046 tokoe:valid" result="pass"/><test-case name="31851idL046.v tokoe:valid" result="pass"/><test-case name="31852idL047 tokoe:valid" result="pass"/><test-case name="31853idL047.i tokoe:invalid" result="pass"/><test-case name="31854idL048 tokoe:valid" result="pass"/><test-case name="31855idL048.v tokoe:valid" result="pass"/><test-case name="31856idL049 tokoe:valid" result="pass"/><test-case name="31857idL049.v tokoe:valid" result="pass"/><test-case name="31858idL050 tokoe:valid" result="pass"/><test-case name="31859idL050.i tokoe:invalid" result="pass"/><test-case name="31860idL051 tokoe:valid" result="pass"/><test-case name="31861idL051.v tokoe:valid" result="pass"/><test-case name="31862idL052 tokoe:valid" result="pass"/><test-case name="31863idL052.i tokoe:invalid" result="pass"/><test-case name="31864idL053 tokoe:valid" result="pass"/><test-case name="31865idL053.v tokoe:valid" result="pass"/><test-case name="31866idL054 tokoe:valid" result="pass"/><test-case name="31867idL054.v tokoe:valid" result="pass"/><test-case name="31868idL055 tokoe:valid" result="pass"/><test-case name="31869idL055.v tokoe:valid" result="pass"/><test-case name="31870idL056 tokoe:valid" result="pass"/><test-case name="31871idL056.i tokoe:invalid" result="pass"/><test-case name="31872idL057 tokoe:valid" result="pass"/><test-case name="31873idL057.i tokoe:invalid" result="pass"/><test-case name="31874idL058 tokoe:valid" result="pass"/><test-case name="31875idL058.v tokoe:valid" result="pass"/><test-case name="31876idL059 tokoe:valid" result="pass"/><test-case name="31877idL059.v tokoe:valid" result="pass"/><test-case name="31878idL060 tokoe:valid" result="pass"/><test-case name="31879idL060.v tokoe:valid" result="pass"/><test-case name="31880idL061 tokoe:valid" result="pass"/><test-case name="31881idL061.i tokoe:invalid" result="pass"/><test-case name="31882idL062 tokoe:valid" result="pass"/><test-case name="31883idL062.i tokoe:invalid" result="pass"/><test-case name="31884idL063 tokoe:valid" result="pass"/><test-case name="31885idL063.v tokoe:valid" result="pass"/><test-case name="31886idL064 tokoe:valid" result="pass"/><test-case name="31887idL064.v tokoe:valid" result="pass"/><test-case name="31888idL065 tokoe:valid" result="pass"/><test-case name="31889idL065.i tokoe:invalid" result="pass"/><test-case name="31890idL066 tokoe:valid" result="pass"/><test-case name="31891idL066.v tokoe:valid" result="pass"/><test-case name="31892idL067 tokoe:valid" result="pass"/><test-case name="31893idL067.v tokoe:valid" result="pass"/><test-case name="31894idL068 tokoe:valid" result="pass"/><test-case name="31895idL068.v tokoe:valid" result="pass"/><test-case name="31896idL069 tokoe:valid" result="pass"/><test-case name="31897idL069.i tokoe:invalid" result="pass"/><test-case name="31898idL070 tokoe:valid" result="pass"/><test-case name="31899idL070.v tokoe:valid" result="pass"/><test-case name="31900idL071 tokoe:valid" result="pass"/><test-case name="31901idL071.v tokoe:valid" result="pass"/><test-case name="31902idL072 tokoe:valid" result="pass"/><test-case name="31903idL072.i tokoe:invalid" result="pass"/><test-case name="31904idL073 tokoe:valid" result="pass"/><test-case name="31905idL073.v tokoe:valid" result="pass"/><test-case name="31906idL074 tokoe:valid" result="pass"/><test-case name="31907idL074.v tokoe:valid" result="pass"/><test-case name="31908idL075 tokoe:valid" result="pass"/><test-case name="31909idL075.i tokoe:invalid" result="pass"/><test-case name="31910idL076 tokoe:valid" result="pass"/><test-case name="31911idL076.v tokoe:valid" result="pass"/><test-case name="31912idL077 tokoe:valid" result="pass"/><test-case name="31913idL077.v tokoe:valid" result="pass"/><test-case name="31914idL078 tokoe:valid" result="pass"/><test-case name="31915idL078.v tokoe:valid" result="pass"/><test-case name="31916idL079 tokoe:valid" result="pass"/><test-case name="31917idL079.i tokoe:invalid" result="pass"/><test-case name="31918idL080 tokoe:valid" result="pass"/><test-case name="31919idL080.i tokoe:invalid" result="pass"/><test-case name="31920idL081 tokoe:valid" result="pass"/><test-case name="31921idL081.i tokoe:invalid" result="pass"/><test-case name="31922idL082 tokoe:valid" result="pass"/><test-case name="31923idL082.v tokoe:valid" result="pass"/><test-case name="31924idL083 tokoe:valid" result="pass"/><test-case name="31925idL083.i tokoe:invalid" result="pass"/><test-case name="31926idL084 tokoe:valid" result="pass"/><test-case name="31927idL084.v tokoe:valid" result="pass"/><test-case name="31928idL085 tokoe:valid" result="pass"/><test-case name="31929idL085.i tokoe:invalid" result="pass"/><test-case name="31930idL086 tokoe:valid" result="pass"/><test-case name="31931idL086.v tokoe:valid" result="pass"/><test-case name="31932idL087 tokoe:valid" result="pass"/><test-case name="31933idL087.i tokoe:invalid" result="pass"/><test-case name="31934idL088 tokoe:valid" result="pass"/><test-case name="31935idL088.v tokoe:valid" result="pass"/><test-case name="31936idL089 tokoe:valid" result="pass"/><test-case name="31937idL089.i tokoe:invalid" result="pass"/><test-case name="31938idL090 tokoe:valid" result="pass"/><test-case name="31939idL090.v tokoe:valid" result="pass"/><test-case name="31940idL091 tokoe:valid" result="pass"/><test-case name="31941idL091.i tokoe:invalid" result="pass"/><test-case name="31942idL092 tokoe:valid" result="pass"/><test-case name="31943idL092.v tokoe:valid" result="pass"/><test-case name="31944idL093 tokoe:valid" result="pass"/><test-case name="31945idL093.i tokoe:invalid" result="pass"/><test-case name="31946idL094 tokoe:valid" result="pass"/><test-case name="31947idL094.v tokoe:valid" result="pass"/><test-case name="31948idL095 tokoe:valid" result="pass"/><test-case name="31949idL095.i tokoe:invalid" result="pass"/><test-case name="31950idL096 tokoe:valid" result="pass"/><test-case name="31951idL096.v tokoe:valid" result="pass"/><test-case name="31952idL097 tokoe:valid" result="pass"/><test-case name="31953idL097.i tokoe:invalid" result="pass"/><test-case name="31954idL098 tokoe:valid" result="pass"/><test-case name="31955idL098.v tokoe:valid" result="pass"/><test-case name="31956idL099 tokoe:valid" result="pass"/><test-case name="31957idL099.i tokoe:invalid" result="pass"/><test-case name="31958idL101 tokoe:valid" result="pass"/><test-case name="31959idL101.i tokoe:invalid" result="pass"/><test-case name="31960idL102 tokoe:valid" result="pass"/><test-case name="31961idL102.v tokoe:valid" result="pass"/><test-case name="31962idL103 tokoe:valid" result="pass"/><test-case name="31963idL103.i tokoe:invalid" result="pass"/><test-case name="31964idZ001 tokoe:valid" result="pass"/><test-case name="31965idZ001.i tokoe:invalid" result="pass"/><test-case name="31966idZ002 tokoe:valid" result="pass"/><test-case name="31967idZ002.i tokoe:invalid" result="pass"/><test-case name="31968idZ003 tokoe:invalid" result="pass"/><test-case name="31969idZ004 tokoe:valid" result="pass"/><test-case name="31970idZ004.i tokoe:invalid" result="pass"/><test-case name="31971idZ005 tokoe:valid" result="pass"/><test-case name="31972idZ005.v tokoe:valid" result="pass"/><test-case name="31973idZ006 tokoe:valid" result="pass"/><test-case name="31974idZ006.v tokoe:valid" result="pass"/><test-case name="31975idZ007 tokoe:valid" result="pass"/><test-case name="31976idZ007.v tokoe:valid" result="pass"/><test-case name="31977idZ008 tokoe:valid" result="pass"/><test-case name="31978idZ008.i tokoe:invalid" result="pass"/><test-case name="31979idZ010 tokoe:valid" result="pass"/><test-case name="31980idZ010.i tokoe:invalid" result="pass"/><test-case name="31981idZ011_a tokoe:valid" result="pass"/><test-case name="31982idZ011_a.i tokoe:invalid" result="fail"/><test-case name="31983idZ012 tokoe:valid" result="pass"/><test-case name="31984idZ012.i tokoe:invalid" result="fail"/><test-case name="31985mgA001 tokoe:valid" result="pass"/><test-case name="31986mgA001.v tokoe:valid" result="pass"/><test-case name="31987mgA002 tokoe:invalid" result="pass"/><test-case name="31988mgA003 tokoe:invalid" result="pass"/><test-case name="31989mgA004 tokoe:invalid" result="pass"/><test-case name="31990mgA005 tokoe:invalid" result="pass"/><test-case name="31991mgA006 tokoe:invalid" result="pass"/><test-case name="31992mgA007 tokoe:invalid" result="pass"/><test-case name="31993mgA008 tokoe:invalid" result="pass"/><test-case name="31994mgA009 tokoe:invalid" result="pass"/><test-case name="31995mgA010 tokoe:invalid" result="pass"/><test-case name="31996mgA011 tokoe:invalid" result="pass"/><test-case name="31997mgA012 tokoe:invalid" result="pass"/><test-case name="31998mgA013 tokoe:invalid" result="pass"/><test-case name="31999mgA014 tokoe:valid" result="pass"/><test-case name="32000mgA014.v tokoe:valid" result="pass"/><test-case name="32001mgA015 tokoe:valid" result="pass"/><test-case name="32002mgA015.v tokoe:valid" result="pass"/><test-case name="32003mgA016 tokoe:invalid" result="pass"/><test-case name="32004mgA017 tokoe:valid" result="pass"/><test-case name="32005mgA017.v tokoe:valid" result="pass"/><test-case name="32006mgA018 tokoe:invalid" result="pass"/><test-case name="32007mgA019 tokoe:invalid" result="pass"/><test-case name="32008mgA020 tokoe:invalid" result="pass"/><test-case name="32009mgAa001 tokoe:invalid" result="pass"/><test-case name="32010mgAa002 tokoe:invalid" result="pass"/><test-case name="32011mgAa003 tokoe:valid" result="pass"/><test-case name="32012mgAa003.v tokoe:valid" result="pass"/><test-case name="32013mgAa004 tokoe:invalid" result="pass"/><test-case name="32014mgAa005 tokoe:invalid" result="pass"/><test-case name="32015mgAa006 tokoe:invalid" result="pass"/><test-case name="32016mgAa007 tokoe:invalid" result="pass"/><test-case name="32017mgAa008 tokoe:invalid" result="pass"/><test-case name="32018mgAa009 tokoe:invalid" result="pass"/><test-case name="32019mgAb001 tokoe:invalid" result="pass"/><test-case name="32020mgAb002 tokoe:invalid" result="pass"/><test-case name="32021mgAb003 tokoe:invalid" result="pass"/><test-case name="32022mgAb004 tokoe:invalid" result="pass"/><test-case name="32023mgAb005 tokoe:invalid" result="pass"/><test-case name="32024mgAb006 tokoe:invalid" result="pass"/><test-case name="32025mgAb007 tokoe:invalid" result="pass"/><test-case name="32026mgAb008 tokoe:invalid" result="pass"/><test-case name="32027mgAb009 tokoe:invalid" result="pass"/><test-case name="32028mgB001 tokoe:valid" result="pass"/><test-case name="32029mgB001.v tokoe:valid" result="pass"/><test-case name="32030mgB002 tokoe:valid" result="pass"/><test-case name="32031mgB002.v tokoe:valid" result="pass"/><test-case name="32032mgB003 tokoe:invalid" result="pass"/><test-case name="32033mgB004 tokoe:valid" result="pass"/><test-case name="32034mgB004.v tokoe:valid" result="pass"/><test-case name="32035mgB006 tokoe:valid" result="pass"/><test-case name="32036mgB006.v tokoe:valid" result="pass"/><test-case name="32037mgB007 tokoe:invalid" result="pass"/><test-case name="32038mgB008 tokoe:invalid" result="pass"/><test-case name="32039mgB009 tokoe:invalid" result="pass"/><test-case name="32040mgB010 tokoe:invalid" result="pass"/><test-case name="32041mgC001 tokoe:valid" result="pass"/><test-case name="32042mgC001.i tokoe:invalid" result="pass"/><test-case name="32043mgC002 tokoe:valid" result="pass"/><test-case name="32044mgC002.v tokoe:valid" result="pass"/><test-case name="32045mgC003 tokoe:valid" result="pass"/><test-case name="32046mgC003.i tokoe:invalid" result="pass"/><test-case name="32047mgC004 tokoe:valid" result="pass"/><test-case name="32048mgC004.v tokoe:valid" result="pass"/><test-case name="32049mgC005 tokoe:valid" result="pass"/><test-case name="32050mgC005.i tokoe:invalid" result="pass"/><test-case name="32051mgC006 tokoe:valid" result="pass"/><test-case name="32052mgC006.v tokoe:valid" result="pass"/><test-case name="32053mgC007 tokoe:valid" result="pass"/><test-case name="32054mgC007.i tokoe:invalid" result="pass"/><test-case name="32055mgC008 tokoe:invalid" result="pass"/><test-case name="32056mgC009 tokoe:invalid" result="pass"/><test-case name="32057mgC010 tokoe:valid" result="pass"/><test-case name="32058mgC010.i tokoe:invalid" result="pass"/><test-case name="32059mgC011 tokoe:valid" result="pass"/><test-case name="32060mgC011.v tokoe:valid" result="pass"/><test-case name="32061mgC012 tokoe:valid" result="pass"/><test-case name="32062mgC012.i tokoe:invalid" result="pass"/><test-case name="32063mgC013 tokoe:invalid" result="pass"/><test-case name="32064mgC014 tokoe:valid" result="pass"/><test-case name="32065mgC014.v tokoe:valid" result="pass"/><test-case name="32066mgD001 tokoe:valid" result="pass"/><test-case name="32067mgD001.v tokoe:valid" result="pass"/><test-case name="32068mgD005 tokoe:valid" result="pass"/><test-case name="32069mgD005.v tokoe:valid" result="pass"/><test-case name="32070mgD009 tokoe:valid" result="pass"/><test-case name="32071mgD009.v tokoe:valid" result="pass"/><test-case name="32072mgD013 tokoe:valid" result="pass"/><test-case name="32073mgD013.v tokoe:valid" result="pass"/><test-case name="32074mgE001 tokoe:valid" result="pass"/><test-case name="32075mgE001.v tokoe:valid" result="pass"/><test-case name="32076mgE002 tokoe:invalid" result="pass"/><test-case name="32077mgE003 tokoe:invalid" result="pass"/><test-case name="32078mgE004 tokoe:invalid" result="pass"/><test-case name="32079mgE005 tokoe:invalid" result="pass"/><test-case name="32080mgE006 tokoe:invalid" result="pass"/><test-case name="32081mgE007 tokoe:invalid" result="pass"/><test-case name="32082mgE008 tokoe:invalid" result="pass"/><test-case name="32083mgE009 tokoe:invalid" result="pass"/><test-case name="32084mgE010 tokoe:invalid" result="pass"/><test-case name="32085mgE011 tokoe:invalid" result="pass"/><test-case name="32086mgE012 tokoe:invalid" result="pass"/><test-case name="32087mgE013 tokoe:valid" result="pass"/><test-case name="32088mgE013.v tokoe:valid" result="pass"/><test-case name="32089mgE014 tokoe:valid" result="pass"/><test-case name="32090mgE014.v tokoe:valid" result="pass"/><test-case name="32091mgE015 tokoe:valid" result="pass"/><test-case name="32092mgE015.v tokoe:valid" result="pass"/><test-case name="32093mgE016 tokoe:valid" result="pass"/><test-case name="32094mgE016.v tokoe:valid" result="pass"/><test-case name="32095mgE017 tokoe:valid" result="pass"/><test-case name="32096mgE017.v tokoe:valid" result="pass"/><test-case name="32097mgE018 tokoe:valid" result="pass"/><test-case name="32098mgE018.v tokoe:valid" result="pass"/><test-case name="32099mgEa001 tokoe:invalid" result="pass"/><test-case name="32100mgEa002 tokoe:invalid" result="pass"/><test-case name="32101mgEa003 tokoe:invalid" result="pass"/><test-case name="32102mgEa004 tokoe:invalid" result="pass"/><test-case name="32103mgEa005 tokoe:invalid" result="pass"/><test-case name="32104mgEa006 tokoe:invalid" result="pass"/><test-case name="32105mgEa007 tokoe:invalid" result="pass"/><test-case name="32106mgEa008 tokoe:invalid" result="pass"/><test-case name="32107mgEb001 tokoe:invalid" result="pass"/><test-case name="32108mgEb002 tokoe:invalid" result="pass"/><test-case name="32109mgEb003 tokoe:invalid" result="pass"/><test-case name="32110mgEb004 tokoe:valid" result="pass"/><test-case name="32111mgEb004.v tokoe:valid" result="pass"/><test-case name="32112mgEb005 tokoe:valid" result="pass"/><test-case name="32113mgEb005.v tokoe:valid" result="pass"/><test-case name="32114mgEb006 tokoe:invalid" result="pass"/><test-case name="32115mgEb007 tokoe:invalid" result="pass"/><test-case name="32116mgEb008 tokoe:invalid" result="pass"/><test-case name="32117mgF001 tokoe:valid" result="pass"/><test-case name="32118mgF001.v tokoe:valid" result="pass"/><test-case name="32119mgF002 tokoe:valid" result="pass"/><test-case name="32120mgF002.v tokoe:valid" result="pass"/><test-case name="32121mgF003 tokoe:invalid" result="pass"/><test-case name="32122mgF004 tokoe:valid" result="pass"/><test-case name="32123mgF004.v tokoe:valid" result="pass"/><test-case name="32124mgF005 tokoe:valid" result="pass"/><test-case name="32125mgF005.v tokoe:valid" result="pass"/><test-case name="32126mgF006 tokoe:valid" result="pass"/><test-case name="32127mgF006.v tokoe:valid" result="pass"/><test-case name="32128mgF007 tokoe:valid" result="pass"/><test-case name="32129mgF007.v tokoe:valid" result="pass"/><test-case name="32130mgF008 tokoe:valid" result="pass"/><test-case name="32131mgF008.v tokoe:valid" result="pass"/><test-case name="32132mgF009 tokoe:valid" result="pass"/><test-case name="32133mgF009.v tokoe:valid" result="pass"/><test-case name="32134mgF010 tokoe:valid" result="pass"/><test-case name="32135mgF010.v tokoe:valid" result="pass"/><test-case name="32136mgF011 tokoe:valid" result="pass"/><test-case name="32137mgF011.v tokoe:valid" result="pass"/><test-case name="32138mgF012 tokoe:valid" result="pass"/><test-case name="32139mgF012.v tokoe:valid" result="pass"/><test-case name="32140mgF013 tokoe:valid" result="pass"/><test-case name="32141mgF013.v tokoe:valid" result="pass"/><test-case name="32142mgF014 tokoe:valid" result="pass"/><test-case name="32143mgF014.v tokoe:valid" result="pass"/><test-case name="32144mgF015 tokoe:valid" result="pass"/><test-case name="32145mgF015.v tokoe:valid" result="pass"/><test-case name="32146mgF016 tokoe:valid" result="pass"/><test-case name="32147mgF016.v tokoe:valid" result="pass"/><test-case name="32148mgF017 tokoe:valid" result="pass"/><test-case name="32149mgF017.v tokoe:valid" result="pass"/><test-case name="32150mgF018 tokoe:valid" result="pass"/><test-case name="32151mgF018.v tokoe:valid" result="pass"/><test-case name="32152mgF019 tokoe:valid" result="pass"/><test-case name="32153mgF019.v tokoe:valid" result="pass"/><test-case name="32154mgF020 tokoe:invalid" result="pass"/><test-case name="32155mgF021 tokoe:invalid" result="pass"/><test-case name="32156mgF022 tokoe:invalid" result="pass"/><test-case name="32157mgF023 tokoe:invalid" result="pass"/><test-case name="32158mgG002 tokoe:invalid" result="pass"/><test-case name="32159mgG003 tokoe:valid" result="pass"/><test-case name="32160mgG003.i tokoe:invalid" result="pass"/><test-case name="32161mgG004 tokoe:valid" result="pass"/><test-case name="32162mgG004.v tokoe:valid" result="pass"/><test-case name="32163mgG005 tokoe:valid" result="pass"/><test-case name="32164mgG005.i tokoe:invalid" result="pass"/><test-case name="32165mgG006 tokoe:valid" result="pass"/><test-case name="32166mgG006.v tokoe:valid" result="pass"/><test-case name="32167mgG007 tokoe:valid" result="pass"/><test-case name="32168mgG007.v tokoe:valid" result="pass"/><test-case name="32169mgG008 tokoe:valid" result="pass"/><test-case name="32170mgG008.i tokoe:invalid" result="pass"/><test-case name="32171mgG009 tokoe:valid" result="pass"/><test-case name="32172mgG009.v tokoe:valid" result="pass"/><test-case name="32173mgG010 tokoe:valid" result="pass"/><test-case name="32174mgG010.v tokoe:valid" result="pass"/><test-case name="32175mgG011 tokoe:valid" result="pass"/><test-case name="32176mgG011.i tokoe:invalid" result="pass"/><test-case name="32177mgG012 tokoe:valid" result="pass"/><test-case name="32178mgG012.v tokoe:valid" result="pass"/><test-case name="32179mgG013 tokoe:valid" result="pass"/><test-case name="32180mgG013.i tokoe:invalid" result="pass"/><test-case name="32181mgG014 tokoe:valid" result="pass"/><test-case name="32182mgG014.v tokoe:valid" result="pass"/><test-case name="32183mgG015 tokoe:valid" result="pass"/><test-case name="32184mgG015.i tokoe:invalid" result="pass"/><test-case name="32185mgG016 tokoe:valid" result="pass"/><test-case name="32186mgG016.v tokoe:valid" result="pass"/><test-case name="32187mgG017 tokoe:valid" result="pass"/><test-case name="32188mgG017.i tokoe:invalid" result="pass"/><test-case name="32189mgG018 tokoe:valid" result="pass"/><test-case name="32190mgG018.i tokoe:invalid" result="pass"/><test-case name="32191mgG019 tokoe:valid" result="pass"/><test-case name="32192mgG019.v tokoe:valid" result="pass"/><test-case name="32193mgG020 tokoe:valid" result="pass"/><test-case name="32194mgG020.i tokoe:invalid" result="pass"/><test-case name="32195mgG021 tokoe:valid" result="pass"/><test-case name="32196mgG021.i tokoe:invalid" result="pass"/><test-case name="32197mgG022 tokoe:valid" result="pass"/><test-case name="32198mgG022.v tokoe:valid" result="pass"/><test-case name="32199mgG023 tokoe:valid" result="pass"/><test-case name="32200mgG023.v tokoe:valid" result="pass"/><test-case name="32201mgG024 tokoe:valid" result="pass"/><test-case name="32202mgG024.i tokoe:invalid" result="pass"/><test-case name="32203mgG025 tokoe:invalid" result="pass"/><test-case name="32204mgG026 tokoe:valid" result="pass"/><test-case name="32205mgG026.v tokoe:valid" result="pass"/><test-case name="32206mgG027 tokoe:invalid" result="pass"/><test-case name="32207mgG028 tokoe:invalid" result="pass"/><test-case name="32208mgG029 tokoe:invalid" result="pass"/><test-case name="32209mgG030 tokoe:invalid" result="pass"/><test-case name="32210mgH001 tokoe:valid" result="pass"/><test-case name="32211mgH001.v tokoe:valid" result="pass"/><test-case name="32212mgH002 tokoe:invalid" result="pass"/><test-case name="32213mgH003 tokoe:invalid" result="pass"/><test-case name="32214mgH004 tokoe:invalid" result="pass"/><test-case name="32215mgH005 tokoe:invalid" result="pass"/><test-case name="32216mgH006 tokoe:invalid" result="pass"/><test-case name="32217mgH007 tokoe:invalid" result="pass"/><test-case name="32218mgH008 tokoe:invalid" result="pass"/><test-case name="32219mgH009 tokoe:invalid" result="pass"/><test-case name="32220mgH010 tokoe:invalid" result="pass"/><test-case name="32221mgH011 tokoe:invalid" result="pass"/><test-case name="32222mgH012 tokoe:invalid" result="pass"/><test-case name="32223mgH013 tokoe:valid" result="pass"/><test-case name="32224mgH013.v tokoe:valid" result="pass"/><test-case name="32225mgH014 tokoe:valid" result="pass"/><test-case name="32226mgH014.v tokoe:valid" result="pass"/><test-case name="32227mgH015 tokoe:valid" result="pass"/><test-case name="32228mgH015.v tokoe:valid" result="pass"/><test-case name="32229mgH016 tokoe:valid" result="pass"/><test-case name="32230mgH016.v tokoe:valid" result="pass"/><test-case name="32231mgH017 tokoe:valid" result="pass"/><test-case name="32232mgH017.v tokoe:valid" result="pass"/><test-case name="32233mgH018 tokoe:valid" result="pass"/><test-case name="32234mgH018.v tokoe:valid" result="pass"/><test-case name="32235mgHa001 tokoe:invalid" result="pass"/><test-case name="32236mgHa002 tokoe:invalid" result="pass"/><test-case name="32237mgHa003 tokoe:invalid" result="pass"/><test-case name="32238mgHa004 tokoe:invalid" result="pass"/><test-case name="32239mgHa005 tokoe:invalid" result="pass"/><test-case name="32240mgHa006 tokoe:invalid" result="pass"/><test-case name="32241mgHa007 tokoe:invalid" result="pass"/><test-case name="32242mgHa008 tokoe:invalid" result="pass"/><test-case name="32243mgHb001 tokoe:invalid" result="pass"/><test-case name="32244mgHb002 tokoe:invalid" result="pass"/><test-case name="32245mgHb003 tokoe:invalid" result="pass"/><test-case name="32246mgHb004 tokoe:valid" result="pass"/><test-case name="32247mgHb004.v tokoe:valid" result="pass"/><test-case name="32248mgHb005 tokoe:valid" result="pass"/><test-case name="32249mgHb005.v tokoe:valid" result="pass"/><test-case name="32250mgHb006 tokoe:invalid" result="pass"/><test-case name="32251mgHb007 tokoe:invalid" result="pass"/><test-case name="32252mgHb008 tokoe:invalid" result="pass"/><test-case name="32253mgI001 tokoe:valid" result="pass"/><test-case name="32254mgI001.v tokoe:valid" result="pass"/><test-case name="32255mgI002 tokoe:valid" result="pass"/><test-case name="32256mgI002.v tokoe:valid" result="pass"/><test-case name="32257mgI003 tokoe:invalid" result="pass"/><test-case name="32258mgI004 tokoe:valid" result="pass"/><test-case name="32259mgI004.v tokoe:valid" result="pass"/><test-case name="32260mgI005 tokoe:valid" result="pass"/><test-case name="32261mgI005.v tokoe:valid" result="pass"/><test-case name="32262mgI006 tokoe:valid" result="pass"/><test-case name="32263mgI006.v tokoe:valid" result="pass"/><test-case name="32264mgI007 tokoe:valid" result="pass"/><test-case name="32265mgI007.v tokoe:valid" result="pass"/><test-case name="32266mgI008 tokoe:valid" result="pass"/><test-case name="32267mgI008.v tokoe:valid" result="pass"/><test-case name="32268mgI009 tokoe:valid" result="pass"/><test-case name="32269mgI009.v tokoe:valid" result="pass"/><test-case name="32270mgI010 tokoe:valid" result="pass"/><test-case name="32271mgI010.v tokoe:valid" result="pass"/><test-case name="32272mgI011 tokoe:valid" result="pass"/><test-case name="32273mgI011.v tokoe:valid" result="pass"/><test-case name="32274mgI012 tokoe:valid" result="pass"/><test-case name="32275mgI012.v tokoe:valid" result="pass"/><test-case name="32276mgI013 tokoe:valid" result="pass"/><test-case name="32277mgI013.v tokoe:valid" result="pass"/><test-case name="32278mgI014 tokoe:valid" result="pass"/><test-case name="32279mgI014.v tokoe:valid" result="pass"/><test-case name="32280mgI015 tokoe:valid" result="pass"/><test-case name="32281mgI015.v tokoe:valid" result="pass"/><test-case name="32282mgI016 tokoe:valid" result="pass"/><test-case name="32283mgI016.v tokoe:valid" result="pass"/><test-case name="32284mgI017 tokoe:valid" result="pass"/><test-case name="32285mgI017.v tokoe:valid" result="pass"/><test-case name="32286mgI018 tokoe:valid" result="pass"/><test-case name="32287mgI018.v tokoe:valid" result="pass"/><test-case name="32288mgI019 tokoe:valid" result="pass"/><test-case name="32289mgI019.v tokoe:valid" result="pass"/><test-case name="32290mgI020 tokoe:invalid" result="pass"/><test-case name="32291mgI021 tokoe:invalid" result="pass"/><test-case name="32292mgI022 tokoe:invalid" result="pass"/><test-case name="32293mgI023 tokoe:invalid" result="pass"/><test-case name="32294mgJ002 tokoe:invalid" result="pass"/><test-case name="32295mgJ003 tokoe:valid" result="pass"/><test-case name="32296mgJ003.i tokoe:invalid" result="pass"/><test-case name="32297mgJ004 tokoe:valid" result="pass"/><test-case name="32298mgJ004.v tokoe:valid" result="pass"/><test-case name="32299mgJ005 tokoe:valid" result="pass"/><test-case name="32300mgJ005.i tokoe:invalid" result="pass"/><test-case name="32301mgJ006 tokoe:valid" result="pass"/><test-case name="32302mgJ006.v tokoe:valid" result="pass"/><test-case name="32303mgJ007 tokoe:valid" result="pass"/><test-case name="32304mgJ007.v tokoe:valid" result="pass"/><test-case name="32305mgJ008 tokoe:valid" result="pass"/><test-case name="32306mgJ008.i tokoe:invalid" result="pass"/><test-case name="32307mgJ009 tokoe:valid" result="pass"/><test-case name="32308mgJ009.v tokoe:valid" result="pass"/><test-case name="32309mgJ010 tokoe:valid" result="pass"/><test-case name="32310mgJ010.v tokoe:valid" result="pass"/><test-case name="32311mgJ011 tokoe:valid" result="pass"/><test-case name="32312mgJ011.i tokoe:invalid" result="pass"/><test-case name="32313mgJ012 tokoe:valid" result="pass"/><test-case name="32314mgJ012.v tokoe:valid" result="pass"/><test-case name="32315mgJ013 tokoe:valid" result="pass"/><test-case name="32316mgJ013.i tokoe:invalid" result="pass"/><test-case name="32317mgJ014 tokoe:valid" result="pass"/><test-case name="32318mgJ014.v tokoe:valid" result="pass"/><test-case name="32319mgJ015 tokoe:valid" result="pass"/><test-case name="32320mgJ015.i tokoe:invalid" result="pass"/><test-case name="32321mgJ016 tokoe:valid" result="pass"/><test-case name="32322mgJ016.v tokoe:valid" result="pass"/><test-case name="32323mgJ017 tokoe:valid" result="pass"/><test-case name="32324mgJ017.i tokoe:invalid" result="pass"/><test-case name="32325mgJ018 tokoe:valid" result="pass"/><test-case name="32326mgJ018.i tokoe:invalid" result="pass"/><test-case name="32327mgJ019 tokoe:valid" result="pass"/><test-case name="32328mgJ019.v tokoe:valid" result="pass"/><test-case name="32329mgJ020 tokoe:valid" result="pass"/><test-case name="32330mgJ020.i tokoe:invalid" result="pass"/><test-case name="32331mgJ021 tokoe:valid" result="pass"/><test-case name="32332mgJ021.i tokoe:invalid" result="pass"/><test-case name="32333mgJ022 tokoe:valid" result="pass"/><test-case name="32334mgJ022.v tokoe:valid" result="pass"/><test-case name="32335mgJ023 tokoe:valid" result="pass"/><test-case name="32336mgJ023.v tokoe:valid" result="pass"/><test-case name="32337mgJ024 tokoe:valid" result="pass"/><test-case name="32338mgJ024.i tokoe:invalid" result="pass"/><test-case name="32339mgJ025 tokoe:invalid" result="pass"/><test-case name="32340mgJ026 tokoe:valid" result="pass"/><test-case name="32341mgJ026.v tokoe:valid" result="pass"/><test-case name="32342mgJ027 tokoe:invalid" result="pass"/><test-case name="32343mgJ028 tokoe:invalid" result="pass"/><test-case name="32344mgJ029 tokoe:invalid" result="pass"/><test-case name="32345mgJ030 tokoe:invalid" result="pass"/><test-case name="32346mgK001 tokoe:valid" result="pass"/><test-case name="32347mgK001.v tokoe:valid" result="pass"/><test-case name="32348mgK002 tokoe:valid" result="pass"/><test-case name="32349mgK002.i tokoe:invalid" result="pass"/><test-case name="32350mgK003 tokoe:valid" result="pass"/><test-case name="32351mgK003.i tokoe:invalid" result="pass"/><test-case name="32352mgK004 tokoe:valid" result="pass"/><test-case name="32353mgK004.v tokoe:valid" result="pass"/><test-case name="32354mgK005 tokoe:valid" result="pass"/><test-case name="32355mgK005.i tokoe:invalid" result="pass"/><test-case name="32356mgK006 tokoe:valid" result="pass"/><test-case name="32357mgK006.i tokoe:invalid" result="pass"/><test-case name="32358mgK007 tokoe:valid" result="pass"/><test-case name="32359mgK007.i tokoe:invalid" result="pass"/><test-case name="32360mgK008 tokoe:valid" result="pass"/><test-case name="32361mgK008.i tokoe:invalid" result="pass"/><test-case name="32362mgK009 tokoe:valid" result="pass"/><test-case name="32363mgK009.v tokoe:valid" result="pass"/><test-case name="32364mgK010 tokoe:valid" result="pass"/><test-case name="32365mgK010.i tokoe:invalid" result="pass"/><test-case name="32366mgL001 tokoe:valid" result="pass"/><test-case name="32367mgL001.v tokoe:valid" result="pass"/><test-case name="32368mgL002 tokoe:valid" result="pass"/><test-case name="32369mgL002.i tokoe:invalid" result="pass"/><test-case name="32370mgL003 tokoe:valid" result="pass"/><test-case name="32371mgL003.i tokoe:invalid" result="pass"/><test-case name="32372mgL004 tokoe:valid" result="pass"/><test-case name="32373mgL004.v tokoe:valid" result="pass"/><test-case name="32374mgL005 tokoe:valid" result="pass"/><test-case name="32375mgL005.i tokoe:invalid" result="pass"/><test-case name="32376mgL006 tokoe:valid" result="pass"/><test-case name="32377mgL006.v tokoe:valid" result="pass"/><test-case name="32378mgL007 tokoe:valid" result="pass"/><test-case name="32379mgL007.i tokoe:invalid" result="pass"/><test-case name="32380mgL008 tokoe:valid" result="pass"/><test-case name="32381mgL008.v tokoe:valid" result="pass"/><test-case name="32382mgL009 tokoe:valid" result="pass"/><test-case name="32383mgL009.v tokoe:valid" result="pass"/><test-case name="32384mgL010 tokoe:valid" result="pass"/><test-case name="32385mgL010.i tokoe:invalid" result="pass"/><test-case name="32386mgM002 tokoe:valid" result="pass"/><test-case name="32387mgM002.i tokoe:invalid" result="pass"/><test-case name="32388mgM003 tokoe:valid" result="pass"/><test-case name="32389mgM003.i tokoe:invalid" result="pass"/><test-case name="32390mgM004 tokoe:valid" result="pass"/><test-case name="32391mgM004.v tokoe:valid" result="pass"/><test-case name="32392mgM005 tokoe:valid" result="pass"/><test-case name="32393mgM005.i tokoe:invalid" result="pass"/><test-case name="32394mgM006 tokoe:valid" result="pass"/><test-case name="32395mgM006.i tokoe:invalid" result="pass"/><test-case name="32396mgM007 tokoe:valid" result="pass"/><test-case name="32397mgM007.i tokoe:invalid" result="pass"/><test-case name="32398mgM008 tokoe:valid" result="pass"/><test-case name="32399mgM008.v tokoe:valid" result="pass"/><test-case name="32400mgM009 tokoe:valid" result="pass"/><test-case name="32401mgM009.v tokoe:valid" result="pass"/><test-case name="32402mgM010 tokoe:valid" result="pass"/><test-case name="32403mgM010.i tokoe:invalid" result="pass"/><test-case name="32404mgM011 tokoe:valid" result="pass"/><test-case name="32405mgM011.v tokoe:valid" result="pass"/><test-case name="32406mgM012 tokoe:valid" result="pass"/><test-case name="32407mgM012.i tokoe:invalid" result="pass"/><test-case name="32408mgM013 tokoe:valid" result="pass"/><test-case name="32409mgM013.v tokoe:valid" result="pass"/><test-case name="32410mgM014 tokoe:valid" result="pass"/><test-case name="32411mgM014.i tokoe:invalid" result="pass"/><test-case name="32412mgN001 tokoe:valid" result="pass"/><test-case name="32413mgN001.v tokoe:valid" result="pass"/><test-case name="32414mgN002 tokoe:valid" result="pass"/><test-case name="32415mgN002.i tokoe:invalid" result="pass"/><test-case name="32416mgN003 tokoe:valid" result="pass"/><test-case name="32417mgN003.i tokoe:invalid" result="pass"/><test-case name="32418mgN004 tokoe:valid" result="pass"/><test-case name="32419mgN004.i tokoe:invalid" result="pass"/><test-case name="32420mgN005 tokoe:valid" result="pass"/><test-case name="32421mgN005.v tokoe:valid" result="pass"/><test-case name="32422mgN006 tokoe:valid" result="pass"/><test-case name="32423mgN006.i tokoe:invalid" result="pass"/><test-case name="32424mgN007 tokoe:valid" result="pass"/><test-case name="32425mgN007.i tokoe:invalid" result="pass"/><test-case name="32426mgN008 tokoe:valid" result="pass"/><test-case name="32427mgN008.i tokoe:invalid" result="pass"/><test-case name="32428mgN009 tokoe:valid" result="pass"/><test-case name="32429mgN009.i tokoe:invalid" result="pass"/><test-case name="32430mgN010 tokoe:valid" result="pass"/><test-case name="32431mgN010.i tokoe:invalid" result="pass"/><test-case name="32432mgN011 tokoe:valid" result="pass"/><test-case name="32433mgN011.i tokoe:invalid" result="pass"/><test-case name="32434mgN012 tokoe:valid" result="pass"/><test-case name="32435mgN012.v tokoe:valid" result="pass"/><test-case name="32436mgN013 tokoe:valid" result="pass"/><test-case name="32437mgN013.i tokoe:invalid" result="pass"/><test-case name="32438mgN014 tokoe:valid" result="pass"/><test-case name="32439mgN014.i tokoe:invalid" result="pass"/><test-case name="32440mgN015 tokoe:valid" result="pass"/><test-case name="32441mgN015.i tokoe:invalid" result="pass"/><test-case name="32442mgN016 tokoe:valid" result="pass"/><test-case name="32443mgN016.i tokoe:invalid" result="pass"/><test-case name="32444mgO001 tokoe:invalid" result="pass"/><test-case name="32445mgO002 tokoe:valid" result="pass"/><test-case name="32446mgO002.v tokoe:valid" result="pass"/><test-case name="32447mgO003 tokoe:invalid" result="pass"/><test-case name="32448mgO004 tokoe:valid" result="pass"/><test-case name="32449mgO004.v tokoe:valid" result="pass"/><test-case name="32450mgO005 tokoe:valid" result="pass"/><test-case name="32451mgO005.v tokoe:valid" result="pass"/><test-case name="32452mgO006 tokoe:valid" result="pass"/><test-case name="32453mgO006.v tokoe:valid" result="pass"/><test-case name="32454mgO007 tokoe:valid" result="pass"/><test-case name="32455mgO008 tokoe:valid" result="pass"/><test-case name="32456mgO008.v tokoe:valid" result="pass"/><test-case name="32457mgO009 tokoe:valid" result="pass"/><test-case name="32458mgO009.v tokoe:valid" result="pass"/><test-case name="32459mgO010 tokoe:valid" result="pass"/><test-case name="32460mgO010.v tokoe:valid" result="pass"/><test-case name="32461mgO011 tokoe:valid" result="pass"/><test-case name="32462mgO011.v tokoe:valid" result="pass"/><test-case name="32463mgO012 tokoe:invalid" result="pass"/><test-case name="32464mgO014 tokoe:valid" result="pass"/><test-case name="32465mgO015 tokoe:valid" result="pass"/><test-case name="32466mgO015.v tokoe:valid" result="pass"/><test-case name="32467mgO016 tokoe:valid" result="pass"/><test-case name="32468mgO016.v tokoe:valid" result="pass"/><test-case name="32469mgO017 tokoe:valid" result="pass"/><test-case name="32470mgO017.v tokoe:valid" result="pass"/><test-case name="32471mgO018 tokoe:invalid" result="pass"/><test-case name="32472mgO019 tokoe:invalid" result="pass"/><test-case name="32473mgO020 tokoe:invalid" result="pass"/><test-case name="32474mgO021 tokoe:invalid" result="pass"/><test-case name="32475mgO022 tokoe:invalid" result="pass"/><test-case name="32476mgO023 tokoe:invalid" result="pass"/><test-case name="32477mgO024 tokoe:invalid" result="pass"/><test-case name="32478mgO025 tokoe:invalid" result="pass"/><test-case name="32479mgO026 tokoe:invalid" result="pass"/><test-case name="32480mgO027 tokoe:invalid" result="pass"/><test-case name="32481mgO028 tokoe:valid" result="pass"/><test-case name="32482mgO029 tokoe:valid" result="pass"/><test-case name="32483mgO029.v tokoe:valid" result="pass"/><test-case name="32484mgO030 tokoe:valid" result="pass"/><test-case name="32485mgO030.v tokoe:valid" result="pass"/><test-case name="32486mgO031 tokoe:valid" result="pass"/><test-case name="32487mgO031.v tokoe:valid" result="pass"/><test-case name="32488mgO032 tokoe:invalid" result="pass"/><test-case name="32489mgO033 tokoe:invalid" result="pass"/><test-case name="32490mgO034 tokoe:valid" result="pass"/><test-case name="32491mgO034.v tokoe:valid" result="pass"/><test-case name="32492mgO035 tokoe:valid" result="pass"/><test-case name="32493mgO036 tokoe:valid" result="pass"/><test-case name="32494mgO036.v tokoe:valid" result="pass"/><test-case name="32495mgO037 tokoe:valid" result="pass"/><test-case name="32496mgO037.v tokoe:valid" result="pass"/><test-case name="32497mgO038 tokoe:valid" result="pass"/><test-case name="32498mgO038.v tokoe:valid" result="pass"/><test-case name="32499mgP039 tokoe:invalid" result="pass"/><test-case name="32500mgP040 tokoe:invalid" result="pass"/><test-case name="32501mgP041 tokoe:invalid" result="pass"/><test-case name="32502mgP042 tokoe:invalid" result="pass"/><test-case name="32503mgP043 tokoe:invalid" result="pass"/><test-case name="32504mgP049 tokoe:invalid" result="pass"/><test-case name="32505mgP050 tokoe:invalid" result="pass"/><test-case name="32506mgP055 tokoe:invalid" result="pass"/><test-case name="32507mgP056 tokoe:invalid" result="pass"/><test-case name="32508mgP057 tokoe:invalid" result="pass"/><test-case name="32509mgP058 tokoe:invalid" result="pass"/><test-case name="32510mgP059 tokoe:invalid" result="pass"/><test-case name="32511mgP060 tokoe:invalid" result="pass"/><test-case name="32512mgP061 tokoe:invalid" result="pass"/><test-case name="32513mgP062 tokoe:invalid" result="pass"/><test-case name="32514mgQ001 tokoe:invalid" result="pass"/><test-case name="32515mgQ002 tokoe:valid" result="pass"/><test-case name="32516mgQ002.v tokoe:valid" result="pass"/><test-case name="32517mgQ003 tokoe:valid" result="pass"/><test-case name="32518mgQ003.v tokoe:valid" result="pass"/><test-case name="32519mgQ004 tokoe:invalid" result="pass"/><test-case name="32520mgQ005 tokoe:invalid" result="pass"/><test-case name="32521mgQ006 tokoe:valid" result="pass"/><test-case name="32522mgQ006.v tokoe:valid" result="pass"/><test-case name="32523mgQ007 tokoe:valid" result="pass"/><test-case name="32524mgQ007.v tokoe:valid" result="pass"/><test-case name="32525mgQ008 tokoe:valid" result="pass"/><test-case name="32526mgQ008.v tokoe:valid" result="pass"/><test-case name="32527mgQ009 tokoe:valid" result="pass"/><test-case name="32528mgQ009.v tokoe:valid" result="pass"/><test-case name="32529mgQ010 tokoe:invalid" result="pass"/><test-case name="32530mgQ011 tokoe:invalid" result="pass"/><test-case name="32531mgQ012 tokoe:invalid" result="pass"/><test-case name="32532mgQ013 tokoe:invalid" result="pass"/><test-case name="32533mgQ014 tokoe:valid" result="pass"/><test-case name="32534mgQ014.v tokoe:valid" result="pass"/><test-case name="32535mgQ015 tokoe:valid" result="pass"/><test-case name="32536mgQ015.v tokoe:valid" result="pass"/><test-case name="32537mgQ016 tokoe:valid" result="pass"/><test-case name="32538mgQ016.v tokoe:valid" result="pass"/><test-case name="32539mgQ017 tokoe:valid" result="pass"/><test-case name="32540mgQ017.v tokoe:valid" result="pass"/><test-case name="32541mgQ018 tokoe:valid" result="pass"/><test-case name="32542mgQ018.v tokoe:valid" result="pass"/><test-case name="32543mgQ019 tokoe:valid" result="pass"/><test-case name="32544mgQ019.v tokoe:valid" result="pass"/><test-case name="32545mgQ020 tokoe:valid" result="pass"/><test-case name="32546mgQ020.v tokoe:valid" result="pass"/><test-case name="32547mgQ021 tokoe:invalid" result="pass"/><test-case name="32548mgR001 tokoe:invalid" result="pass"/><test-case name="32549mgR002 tokoe:invalid" result="pass"/><test-case name="32550mgR003 tokoe:invalid" result="pass"/><test-case name="32551mgR004 tokoe:invalid" result="pass"/><test-case name="32552mgR005 tokoe:invalid" result="pass"/><test-case name="32553mgR006 tokoe:invalid" result="pass"/><test-case name="32554mgR007 tokoe:invalid" result="pass"/><test-case name="32555mgR008 tokoe:invalid" result="pass"/><test-case name="32556mgR009 tokoe:invalid" result="pass"/><test-case name="32557mgR010 tokoe:invalid" result="pass"/><test-case name="32558mgR011 tokoe:invalid" result="pass"/><test-case name="32559mgR012 tokoe:invalid" result="pass"/><test-case name="32560mgR013 tokoe:invalid" result="pass"/><test-case name="32561mgR014 tokoe:invalid" result="pass"/><test-case name="32562mgR015 tokoe:invalid" result="pass"/><test-case name="32563mgR016 tokoe:invalid" result="pass"/><test-case name="32564mgR017 tokoe:invalid" result="pass"/><test-case name="32565mgR018 tokoe:invalid" result="pass"/><test-case name="32566mgR019 tokoe:invalid" result="pass"/><test-case name="32567mgR020 tokoe:invalid" result="pass"/><test-case name="32568mgR021 tokoe:invalid" result="pass"/><test-case name="32569mgR022 tokoe:invalid" result="pass"/><test-case name="32570mgS002 tokoe:invalid" result="pass"/><test-case name="32571mgS003 tokoe:invalid" result="pass"/><test-case name="32572mgS004 tokoe:invalid" result="pass"/><test-case name="32573mgS005 tokoe:invalid" result="pass"/><test-case name="32574mgZ001 tokoe:valid" result="pass"/><test-case name="32575mgZ001.i tokoe:invalid" result="pass"/><test-case name="32576mgZ002 tokoe:valid" result="pass"/><test-case name="32577mgZ003 tokoe:valid" result="pass"/><test-case name="32578mgZ003.v tokoe:valid" result="pass"/><test-case name="32579mgZ004 tokoe:valid" result="pass"/><test-case name="32580mgZ004.v tokoe:valid" result="pass"/><test-case name="32581mgZ005 tokoe:valid" result="pass"/><test-case name="32582notatA001 tokoe:valid" result="pass"/><test-case name="32583notatA002 tokoe:invalid" result="pass"/><test-case name="32584notatA003 tokoe:valid" result="pass"/><test-case name="32585notatA004 tokoe:valid" result="pass"/><test-case name="32586notatA005 tokoe:invalid" result="pass"/><test-case name="32587notatA006 tokoe:invalid" result="pass"/><test-case name="32588notatA007 tokoe:invalid" result="pass"/><test-case name="32589notatB001 tokoe:invalid" result="pass"/><test-case name="32590notatB002 tokoe:valid" result="pass"/><test-case name="32591notatB003 tokoe:valid" result="pass"/><test-case name="32592notatB004 tokoe:valid" result="pass"/><test-case name="32593notatB005 tokoe:invalid" result="pass"/><test-case name="32594notatB006 tokoe:valid" result="pass"/><test-case name="32595notatB008 tokoe:invalid" result="pass"/><test-case name="32596notatB009 tokoe:invalid" result="pass"/><test-case name="32597notatB010 tokoe:invalid" result="pass"/><test-case name="32598notatB011 tokoe:invalid" result="pass"/><test-case name="32599notatB012 tokoe:invalid" result="pass"/><test-case name="32600notatB013 tokoe:invalid" result="pass"/><test-case name="32601notatB014 tokoe:valid" result="pass"/><test-case name="32602notatB015 tokoe:valid" result="pass"/><test-case name="32603notatB016 tokoe:valid" result="pass"/><test-case name="32604notatC001 tokoe:valid" result="pass"/><test-case name="32605notatC003 tokoe:valid" result="pass"/><test-case name="32606notatC004 tokoe:valid" result="pass"/><test-case name="32607notatC005 tokoe:valid" result="pass"/><test-case name="32608notatC006 tokoe:valid" result="pass"/><test-case name="32609notatD001 tokoe:valid" result="pass"/><test-case name="32610notatD004 tokoe:valid" result="pass"/><test-case name="32611notatD005 tokoe:valid" result="pass"/><test-case name="32612notatD006 tokoe:valid" result="pass"/><test-case name="32613notatD007 tokoe:valid" result="pass"/><test-case name="32614notatE001 tokoe:valid" result="pass"/><test-case name="32615notatE002 tokoe:invalid" result="pass"/><test-case name="32616notatE003 tokoe:invalid" result="pass"/><test-case name="32617notatE004 tokoe:valid" result="pass"/><test-case name="32618notatF001 tokoe:invalid" result="pass"/><test-case name="32619notatF002 tokoe:invalid" result="pass"/><test-case name="32620notatF003 tokoe:invalid" result="pass"/><test-case name="32621notatF004 tokoe:valid" result="pass"/><test-case name="32622notatF005 tokoe:invalid" result="pass"/><test-case name="32623notatF006 tokoe:invalid" result="pass"/><test-case name="32624notatF007 tokoe:invalid" result="pass"/><test-case name="32625notatF008 tokoe:invalid" result="pass"/><test-case name="32626notatF009 tokoe:valid" result="pass"/><test-case name="32627notatF010 tokoe:invalid" result="pass"/><test-case name="32628notatF011 tokoe:invalid" result="pass"/><test-case name="32629notatF012 tokoe:invalid" result="pass"/><test-case name="32630notatF013 tokoe:invalid" result="pass"/><test-case name="32631notatF014 tokoe:invalid" result="pass"/><test-case name="32632notatF015 tokoe:invalid" result="pass"/><test-case name="32633notatF016 tokoe:invalid" result="pass"/><test-case name="32634notatF017 tokoe:invalid" result="pass"/><test-case name="32635notatF018 tokoe:invalid" result="pass"/><test-case name="32636notatF019 tokoe:invalid" result="pass"/><test-case name="32637notatF020 tokoe:invalid" result="pass"/><test-case name="32638notatF021 tokoe:valid" result="pass"/><test-case name="32639notatF022 tokoe:invalid" result="pass"/><test-case name="32640notatF023 tokoe:invalid" result="pass"/><test-case name="32641notatF024 tokoe:invalid" result="pass"/><test-case name="32642notatF025 tokoe:invalid" result="pass"/><test-case name="32643notatF026 tokoe:invalid" result="pass"/><test-case name="32644notatF027 tokoe:invalid" result="pass"/><test-case name="32645notatF028 tokoe:invalid" result="pass"/><test-case name="32646notatF029 tokoe:invalid" result="pass"/><test-case name="32647notatF030 tokoe:invalid" result="pass"/><test-case name="32648notatF031 tokoe:invalid" result="pass"/><test-case name="32649notatF032 tokoe:invalid" result="pass"/><test-case name="32650notatF033 tokoe:invalid" result="pass"/><test-case name="32651notatF034 tokoe:invalid" result="pass"/><test-case name="32652notatF035 tokoe:invalid" result="pass"/><test-case name="32653notatF036 tokoe:invalid" result="pass"/><test-case name="32654notatF037 tokoe:invalid" result="pass"/><test-case name="32655notatF038 tokoe:invalid" result="pass"/><test-case name="32656notatF039 tokoe:invalid" result="pass"/><test-case name="32657notatF040 tokoe:invalid" result="pass"/><test-case name="32658notatF041 tokoe:invalid" result="pass"/><test-case name="32659notatF042 tokoe:invalid" result="pass"/><test-case name="32660notatF043 tokoe:invalid" result="pass"/><test-case name="32661notatF044 tokoe:invalid" result="pass"/><test-case name="32662notatF045 tokoe:invalid" result="pass"/><test-case name="32663notatF046 tokoe:invalid" result="pass"/><test-case name="32664notatF047 tokoe:invalid" result="pass"/><test-case name="32665notatF048 tokoe:invalid" result="pass"/><test-case name="32666notatF049 tokoe:invalid" result="pass"/><test-case name="32667notatF050 tokoe:invalid" result="pass"/><test-case name="32668notatF051 tokoe:invalid" result="pass"/><test-case name="32669notatF052 tokoe:invalid" result="pass"/><test-case name="32670notatF053 tokoe:invalid" result="pass"/><test-case name="32671notatF054 tokoe:invalid" result="pass"/><test-case name="32672notatF055 tokoe:invalid" result="pass"/><test-case name="32673notatF056 tokoe:invalid" result="pass"/><test-case name="32674notatF057 tokoe:invalid" result="pass"/><test-case name="32675notatF058 tokoe:invalid" result="pass"/><test-case name="32676notatF059 tokoe:valid" result="pass"/><test-case name="32677notatF060 tokoe:invalid" result="pass"/><test-case name="32678notatF061 tokoe:invalid" result="pass"/><test-case name="32679notatF062 tokoe:invalid" result="pass"/><test-case name="32680notatF063 tokoe:invalid" result="pass"/><test-case name="32681notatF064 tokoe:invalid" result="pass"/><test-case name="32682notatF065 tokoe:invalid" result="pass"/><test-case name="32683notatF066 tokoe:invalid" result="pass"/><test-case name="32684notatF067 tokoe:invalid" result="pass"/><test-case name="32685notatF068 tokoe:invalid" result="pass"/><test-case name="32686notatF069 tokoe:invalid" result="pass"/><test-case name="32687notatF070 tokoe:invalid" result="pass"/><test-case name="32688notatF071 tokoe:invalid" result="pass"/><test-case name="32689notatF072 tokoe:invalid" result="pass"/><test-case name="32690notatG001 tokoe:invalid" result="pass"/><test-case name="32691notatG002 tokoe:invalid" result="pass"/><test-case name="32692notatG003 tokoe:invalid" result="pass"/><test-case name="32693notatG005 tokoe:valid" result="pass"/><test-case name="32694notatG006 tokoe:invalid" result="pass"/><test-case name="32695notatH001v tokoe:valid" result="pass"/><test-case name="32696notatH001v.v tokoe:valid" result="pass"/><test-case name="32697notatH002v tokoe:valid" result="pass"/><test-case name="32698notatH002v.i tokoe:invalid" result="pass"/><test-case name="32699notatH003 tokoe:valid" result="pass"/><test-case name="32700notatH003.i tokoe:invalid" result="pass"/><test-case name="32701particlesA001 tokoe:valid" result="pass"/><test-case name="32702particlesA001.i tokoe:invalid" result="pass"/><test-case name="32703particlesA002 tokoe:valid" result="pass"/><test-case name="32704particlesA002.v tokoe:valid" result="pass"/><test-case name="32705particlesA003 tokoe:valid" result="pass"/><test-case name="32706particlesA003.i tokoe:invalid" result="pass"/><test-case name="32707particlesA004 tokoe:valid" result="pass"/><test-case name="32708particlesA004.i tokoe:invalid" result="pass"/><test-case name="32709particlesA005 tokoe:valid" result="pass"/><test-case name="32710particlesA005.i tokoe:invalid" result="pass"/><test-case name="32711particlesA006 tokoe:valid" result="pass"/><test-case name="32712particlesA006.v tokoe:valid" result="pass"/><test-case name="32713particlesA007 tokoe:valid" result="pass"/><test-case name="32714particlesA007.v tokoe:valid" result="pass"/><test-case name="32715particlesA008 tokoe:valid" result="pass"/><test-case name="32716particlesA008.i tokoe:invalid" result="pass"/><test-case name="32717particlesA009 tokoe:valid" result="pass"/><test-case name="32718particlesA009.i tokoe:invalid" result="pass"/><test-case name="32719particlesA010 tokoe:valid" result="pass"/><test-case name="32720particlesA010.v tokoe:valid" result="pass"/><test-case name="32721particlesA011 tokoe:valid" result="pass"/><test-case name="32722particlesA011.v tokoe:valid" result="pass"/><test-case name="32723particlesB001 tokoe:valid" result="pass"/><test-case name="32724particlesB001.i tokoe:invalid" result="pass"/><test-case name="32725particlesB002 tokoe:valid" result="pass"/><test-case name="32726particlesB002.v tokoe:valid" result="pass"/><test-case name="32727particlesB003 tokoe:valid" result="pass"/><test-case name="32728particlesB003.i tokoe:invalid" result="pass"/><test-case name="32729particlesB004 tokoe:valid" result="pass"/><test-case name="32730particlesB004.i tokoe:invalid" result="pass"/><test-case name="32731particlesB005 tokoe:valid" result="pass"/><test-case name="32732particlesB005.v tokoe:valid" result="pass"/><test-case name="32733particlesB006 tokoe:valid" result="pass"/><test-case name="32734particlesB006.v tokoe:valid" result="pass"/><test-case name="32735particlesB007 tokoe:valid" result="pass"/><test-case name="32736particlesB007.i tokoe:invalid" result="pass"/><test-case name="32737particlesB008 tokoe:valid" result="pass"/><test-case name="32738particlesB008.i tokoe:invalid" result="pass"/><test-case name="32739particlesB009 tokoe:valid" result="pass"/><test-case name="32740particlesB009.v tokoe:valid" result="pass"/><test-case name="32741particlesB010 tokoe:valid" result="pass"/><test-case name="32742particlesB010.v tokoe:valid" result="pass"/><test-case name="32743particlesB011 tokoe:valid" result="pass"/><test-case name="32744particlesB011.i tokoe:invalid" result="pass"/><test-case name="32745particlesB012 tokoe:valid" result="pass"/><test-case name="32746particlesB012.i tokoe:invalid" result="pass"/><test-case name="32747particlesB013 tokoe:valid" result="pass"/><test-case name="32748particlesB013.v tokoe:valid" result="pass"/><test-case name="32749particlesB014 tokoe:valid" result="pass"/><test-case name="32750particlesB014.v tokoe:valid" result="pass"/><test-case name="32751particlesB015 tokoe:valid" result="pass"/><test-case name="32752particlesB015.i tokoe:invalid" result="pass"/><test-case name="32753particlesC001 tokoe:valid" result="pass"/><test-case name="32754particlesC001.v tokoe:valid" result="pass"/><test-case name="32755particlesC002 tokoe:valid" result="pass"/><test-case name="32756particlesC002.v tokoe:valid" result="pass"/><test-case name="32757particlesC003 tokoe:valid" result="pass"/><test-case name="32758particlesC003.v tokoe:valid" result="pass"/><test-case name="32759particlesC004 tokoe:valid" result="pass"/><test-case name="32760particlesC004.v tokoe:valid" result="pass"/><test-case name="32761particlesC005 tokoe:valid" result="pass"/><test-case name="32762particlesC005.v tokoe:valid" result="pass"/><test-case name="32763particlesC006 tokoe:valid" result="pass"/><test-case name="32764particlesC006.v tokoe:valid" result="pass"/><test-case name="32765particlesC007 tokoe:valid" result="pass"/><test-case name="32766particlesC007.i tokoe:invalid" result="pass"/><test-case name="32767particlesC008 tokoe:valid" result="pass"/><test-case name="32768particlesC008.v tokoe:valid" result="pass"/><test-case name="32769particlesC009 tokoe:valid" result="pass"/><test-case name="32770particlesC009.i tokoe:invalid" result="pass"/><test-case name="32771particlesC010 tokoe:valid" result="pass"/><test-case name="32772particlesC010.i tokoe:invalid" result="pass"/><test-case name="32773particlesC011 tokoe:valid" result="pass"/><test-case name="32774particlesC011.v tokoe:valid" result="pass"/><test-case name="32775particlesC012 tokoe:valid" result="pass"/><test-case name="32776particlesC012.i tokoe:invalid" result="pass"/><test-case name="32777particlesC013 tokoe:valid" result="pass"/><test-case name="32778particlesC013.i tokoe:invalid" result="pass"/><test-case name="32779particlesC014 tokoe:valid" result="pass"/><test-case name="32780particlesC014.i tokoe:invalid" result="pass"/><test-case name="32781particlesC015 tokoe:valid" result="pass"/><test-case name="32782particlesC015.v tokoe:valid" result="pass"/><test-case name="32783particlesC016 tokoe:valid" result="pass"/><test-case name="32784particlesC016.v tokoe:valid" result="pass"/><test-case name="32785particlesC017 tokoe:valid" result="pass"/><test-case name="32786particlesC017.i tokoe:invalid" result="pass"/><test-case name="32787particlesC018 tokoe:valid" result="pass"/><test-case name="32788particlesC018.i tokoe:invalid" result="pass"/><test-case name="32789particlesC019 tokoe:valid" result="pass"/><test-case name="32790particlesC019.i tokoe:invalid" result="pass"/><test-case name="32791particlesC020 tokoe:valid" result="pass"/><test-case name="32792particlesC020.i tokoe:invalid" result="pass"/><test-case name="32793particlesC021 tokoe:valid" result="pass"/><test-case name="32794particlesC021.v tokoe:valid" result="pass"/><test-case name="32795particlesC022 tokoe:valid" result="pass"/><test-case name="32796particlesC022.i tokoe:invalid" result="pass"/><test-case name="32797particlesC023 tokoe:valid" result="pass"/><test-case name="32798particlesC023.i tokoe:invalid" result="pass"/><test-case name="32799particlesC024 tokoe:valid" result="pass"/><test-case name="32800particlesC024.i tokoe:invalid" result="pass"/><test-case name="32801particlesC025 tokoe:valid" result="pass"/><test-case name="32802particlesC025.i tokoe:invalid" result="pass"/><test-case name="32803particlesC026 tokoe:valid" result="pass"/><test-case name="32804particlesC026.i tokoe:invalid" result="pass"/><test-case name="32805particlesC027 tokoe:valid" result="pass"/><test-case name="32806particlesC027.v tokoe:valid" result="pass"/><test-case name="32807particlesC028 tokoe:valid" result="pass"/><test-case name="32808particlesC028.v tokoe:valid" result="pass"/><test-case name="32809particlesC029 tokoe:valid" result="pass"/><test-case name="32810particlesC029.v tokoe:valid" result="pass"/><test-case name="32811particlesC030 tokoe:valid" result="pass"/><test-case name="32812particlesC030.v tokoe:valid" result="pass"/><test-case name="32813particlesC031 tokoe:valid" result="pass"/><test-case name="32814particlesC031.i tokoe:invalid" result="pass"/><test-case name="32815particlesC032 tokoe:valid" result="pass"/><test-case name="32816particlesC032.i tokoe:invalid" result="pass"/><test-case name="32817particlesC033 tokoe:valid" result="pass"/><test-case name="32818particlesC033.i tokoe:invalid" result="pass"/><test-case name="32819particlesC034 tokoe:valid" result="pass"/><test-case name="32820particlesC034.v tokoe:valid" result="pass"/><test-case name="32821particlesC035 tokoe:valid" result="pass"/><test-case name="32822particlesC035.i tokoe:invalid" result="pass"/><test-case name="32823particlesC036 tokoe:valid" result="pass"/><test-case name="32824particlesC036.i tokoe:invalid" result="pass"/><test-case name="32825particlesC037 tokoe:valid" result="pass"/><test-case name="32826particlesC037.v tokoe:valid" result="pass"/><test-case name="32827particlesC038 tokoe:valid" result="pass"/><test-case name="32828particlesC038.i tokoe:invalid" result="pass"/><test-case name="32829particlesC039 tokoe:valid" result="pass"/><test-case name="32830particlesC039.i tokoe:invalid" result="pass"/><test-case name="32831particlesC040 tokoe:valid" result="pass"/><test-case name="32832particlesC040.v tokoe:valid" result="pass"/><test-case name="32833particlesC041 tokoe:valid" result="pass"/><test-case name="32834particlesC041.v tokoe:valid" result="pass"/><test-case name="32835particlesC042 tokoe:valid" result="pass"/><test-case name="32836particlesC042.i tokoe:invalid" result="pass"/><test-case name="32837particlesC043 tokoe:valid" result="pass"/><test-case name="32838particlesC043.v tokoe:valid" result="pass"/><test-case name="32839particlesC044 tokoe:valid" result="pass"/><test-case name="32840particlesC044.v tokoe:valid" result="pass"/><test-case name="32841particlesC045 tokoe:valid" result="pass"/><test-case name="32842particlesC045.v tokoe:valid" result="pass"/><test-case name="32843particlesC046 tokoe:valid" result="pass"/><test-case name="32844particlesC046.v tokoe:valid" result="pass"/><test-case name="32845particlesC047 tokoe:valid" result="pass"/><test-case name="32846particlesC047.i tokoe:invalid" result="pass"/><test-case name="32847particlesC048 tokoe:valid" result="pass"/><test-case name="32848particlesC048.i tokoe:invalid" result="pass"/><test-case name="32849particlesDa001 tokoe:valid" result="pass"/><test-case name="32850particlesDa001.i tokoe:invalid" result="pass"/><test-case name="32851particlesDa002 tokoe:valid" result="pass"/><test-case name="32852particlesDa002.v tokoe:valid" result="pass"/><test-case name="32853particlesDa003 tokoe:valid" result="pass"/><test-case name="32854particlesDa003.i tokoe:invalid" result="pass"/><test-case name="32855particlesDa004 tokoe:valid" result="pass"/><test-case name="32856particlesDa004.i tokoe:invalid" result="pass"/><test-case name="32857particlesDa005 tokoe:valid" result="pass"/><test-case name="32858particlesDa005.i tokoe:invalid" result="pass"/><test-case name="32859particlesDa006 tokoe:invalid" result="pass"/><test-case name="32860particlesDa011 tokoe:invalid" result="pass"/><test-case name="32861particlesDb001 tokoe:valid" result="pass"/><test-case name="32862particlesDb001.i tokoe:invalid" result="pass"/><test-case name="32863particlesDb002 tokoe:valid" result="pass"/><test-case name="32864particlesDb002.v tokoe:valid" result="pass"/><test-case name="32865particlesDb003 tokoe:valid" result="pass"/><test-case name="32866particlesDb003.i tokoe:invalid" result="pass"/><test-case name="32867particlesDb004 tokoe:valid" result="pass"/><test-case name="32868particlesDb004.i tokoe:invalid" result="pass"/><test-case name="32869particlesDb005 tokoe:valid" result="pass"/><test-case name="32870particlesDb005.i tokoe:invalid" result="pass"/><test-case name="32871particlesDb006 tokoe:valid" result="pass"/><test-case name="32872particlesDb006.i tokoe:invalid" result="pass"/><test-case name="32873particlesDb007 tokoe:valid" result="pass"/><test-case name="32874particlesDb007.v tokoe:valid" result="pass"/><test-case name="32875particlesDb008 tokoe:valid" result="pass"/><test-case name="32876particlesDb008.i tokoe:invalid" result="pass"/><test-case name="32877particlesDb009 tokoe:valid" result="pass"/><test-case name="32878particlesDb009.i tokoe:invalid" result="pass"/><test-case name="32879particlesDb010 tokoe:valid" result="pass"/><test-case name="32880particlesDb010.i tokoe:invalid" result="pass"/><test-case name="32881particlesDb011 tokoe:valid" result="pass"/><test-case name="32882particlesDb011.i tokoe:invalid" result="pass"/><test-case name="32883particlesDc001 tokoe:valid" result="pass"/><test-case name="32884particlesDc001.v tokoe:valid" result="pass"/><test-case name="32885particlesDc002 tokoe:valid" result="pass"/><test-case name="32886particlesDc002.v tokoe:valid" result="pass"/><test-case name="32887particlesDc003 tokoe:valid" result="pass"/><test-case name="32888particlesDc003.v tokoe:valid" result="pass"/><test-case name="32889particlesDc004 tokoe:valid" result="pass"/><test-case name="32890particlesDc004.i tokoe:invalid" result="pass"/><test-case name="32891particlesDc005 tokoe:valid" result="pass"/><test-case name="32892particlesDc005.i tokoe:invalid" result="pass"/><test-case name="32893particlesDc006 tokoe:valid" result="pass"/><test-case name="32894particlesDc006.i tokoe:invalid" result="pass"/><test-case name="32895particlesDc007 tokoe:valid" result="pass"/><test-case name="32896particlesDc007.v tokoe:valid" result="pass"/><test-case name="32897particlesDc008 tokoe:valid" result="pass"/><test-case name="32898particlesDc008.i tokoe:invalid" result="pass"/><test-case name="32899particlesDc009 tokoe:valid" result="pass"/><test-case name="32900particlesDc009.i tokoe:invalid" result="pass"/><test-case name="32901particlesEa001 tokoe:valid" result="pass"/><test-case name="32902particlesEa001.v tokoe:valid" result="pass"/><test-case name="32903particlesEa002 tokoe:valid" result="pass"/><test-case name="32904particlesEa002.i tokoe:invalid" result="pass"/><test-case name="32905particlesEa003 tokoe:valid" result="pass"/><test-case name="32906particlesEa003.v tokoe:valid" result="pass"/><test-case name="32907particlesEa004 tokoe:valid" result="pass"/><test-case name="32908particlesEa004.v tokoe:valid" result="pass"/><test-case name="32909particlesEa005 tokoe:valid" result="pass"/><test-case name="32910particlesEa005.i tokoe:invalid" result="pass"/><test-case name="32911particlesEa006 tokoe:valid" result="pass"/><test-case name="32912particlesEa006.i tokoe:invalid" result="pass"/><test-case name="32913particlesEa007 tokoe:valid" result="pass"/><test-case name="32914particlesEa007.i tokoe:invalid" result="pass"/><test-case name="32915particlesEa008 tokoe:valid" result="pass"/><test-case name="32916particlesEa008.v tokoe:valid" result="pass"/><test-case name="32917particlesEa009 tokoe:valid" result="pass"/><test-case name="32918particlesEa009.i tokoe:invalid" result="pass"/><test-case name="32919particlesEa010 tokoe:valid" result="pass"/><test-case name="32920particlesEa010.v tokoe:valid" result="pass"/><test-case name="32921particlesEa011 tokoe:valid" result="pass"/><test-case name="32922particlesEa011.v tokoe:valid" result="pass"/><test-case name="32923particlesEa012 tokoe:valid" result="pass"/><test-case name="32924particlesEa012.i tokoe:invalid" result="pass"/><test-case name="32925particlesEa013 tokoe:valid" result="pass"/><test-case name="32926particlesEa013.i tokoe:invalid" result="pass"/><test-case name="32927particlesEa014 tokoe:valid" result="pass"/><test-case name="32928particlesEa014.i tokoe:invalid" result="pass"/><test-case name="32929particlesEa015 tokoe:valid" result="pass"/><test-case name="32930particlesEa015.v tokoe:valid" result="pass"/><test-case name="32931particlesEa016 tokoe:valid" result="pass"/><test-case name="32932particlesEa016.i tokoe:invalid" result="pass"/><test-case name="32933particlesEa017 tokoe:valid" result="pass"/><test-case name="32934particlesEa017.v tokoe:valid" result="pass"/><test-case name="32935particlesEa018 tokoe:valid" result="pass"/><test-case name="32936particlesEa018.v tokoe:valid" result="pass"/><test-case name="32937particlesEa019 tokoe:valid" result="pass"/><test-case name="32938particlesEa019.i tokoe:invalid" result="pass"/><test-case name="32939particlesEa020 tokoe:valid" result="pass"/><test-case name="32940particlesEa020.i tokoe:invalid" result="pass"/><test-case name="32941particlesEa021 tokoe:valid" result="pass"/><test-case name="32942particlesEa021.i tokoe:invalid" result="pass"/><test-case name="32943particlesEa022 tokoe:valid" result="pass"/><test-case name="32944particlesEa023 tokoe:invalid" result="pass"/><test-case name="32945particlesEa024 tokoe:invalid" result="pass"/><test-case name="32946particlesEa025 tokoe:invalid" result="pass"/><test-case name="32947particlesEb001 tokoe:valid" result="pass"/><test-case name="32948particlesEb001.v tokoe:valid" result="pass"/><test-case name="32949particlesEb002 tokoe:valid" result="pass"/><test-case name="32950particlesEb002.i tokoe:invalid" result="pass"/><test-case name="32951particlesEb003 tokoe:valid" result="pass"/><test-case name="32952particlesEb003.v tokoe:valid" result="pass"/><test-case name="32953particlesEb004 tokoe:valid" result="pass"/><test-case name="32954particlesEb004.i tokoe:invalid" result="pass"/><test-case name="32955particlesEb005 tokoe:valid" result="pass"/><test-case name="32956particlesEb005.i tokoe:invalid" result="pass"/><test-case name="32957particlesEb006 tokoe:valid" result="pass"/><test-case name="32958particlesEb006.i tokoe:invalid" result="pass"/><test-case name="32959particlesEb007 tokoe:valid" result="pass"/><test-case name="32960particlesEb007.i tokoe:invalid" result="pass"/><test-case name="32961particlesEb008 tokoe:valid" result="pass"/><test-case name="32962particlesEb008.i tokoe:invalid" result="pass"/><test-case name="32963particlesEb009 tokoe:valid" result="pass"/><test-case name="32964particlesEb009.i tokoe:invalid" result="pass"/><test-case name="32965particlesEb010 tokoe:valid" result="pass"/><test-case name="32966particlesEb010.v tokoe:valid" result="pass"/><test-case name="32967particlesEb011 tokoe:valid" result="pass"/><test-case name="32968particlesEb011.i tokoe:invalid" result="pass"/><test-case name="32969particlesEb012 tokoe:valid" result="pass"/><test-case name="32970particlesEb012.i tokoe:invalid" result="pass"/><test-case name="32971particlesEb013 tokoe:valid" result="pass"/><test-case name="32972particlesEb013.i tokoe:invalid" result="pass"/><test-case name="32973particlesEb014 tokoe:valid" result="pass"/><test-case name="32974particlesEb014.i tokoe:invalid" result="pass"/><test-case name="32975particlesEb015 tokoe:invalid" result="pass"/><test-case name="32976particlesEb017 tokoe:valid" result="pass"/><test-case name="32977particlesEb017.i tokoe:invalid" result="pass"/><test-case name="32978particlesEb018 tokoe:valid" result="pass"/><test-case name="32979particlesEb018.i tokoe:invalid" result="pass"/><test-case name="32980particlesEb019 tokoe:valid" result="pass"/><test-case name="32981particlesEb019.v tokoe:valid" result="pass"/><test-case name="32982particlesEb020 tokoe:valid" result="pass"/><test-case name="32983particlesEb020.i tokoe:invalid" result="pass"/><test-case name="32984particlesEb021 tokoe:valid" result="pass"/><test-case name="32985particlesEb021.i tokoe:invalid" result="pass"/><test-case name="32986particlesEb022 tokoe:valid" result="pass"/><test-case name="32987particlesEb022.i tokoe:invalid" result="pass"/><test-case name="32988particlesEb023 tokoe:valid" result="pass"/><test-case name="32989particlesEb023.i tokoe:invalid" result="pass"/><test-case name="32990particlesEb024 tokoe:valid" result="pass"/><test-case name="32991particlesEb024.i tokoe:invalid" result="pass"/><test-case name="32992particlesEb025 tokoe:valid" result="pass"/><test-case name="32993particlesEb025.i tokoe:invalid" result="pass"/><test-case name="32994particlesEb026 tokoe:valid" result="pass"/><test-case name="32995particlesEb026.v tokoe:valid" result="pass"/><test-case name="32996particlesEb027 tokoe:valid" result="pass"/><test-case name="32997particlesEb027.v tokoe:valid" result="pass"/><test-case name="32998particlesEb028 tokoe:valid" result="pass"/><test-case name="32999particlesEb028.i tokoe:invalid" result="pass"/><test-case name="33000particlesEb029 tokoe:valid" result="pass"/><test-case name="33001particlesEb029.i tokoe:invalid" result="pass"/><test-case name="33002particlesEb030 tokoe:valid" result="pass"/><test-case name="33003particlesEb030.i tokoe:invalid" result="pass"/><test-case name="33004particlesEb031 tokoe:valid" result="pass"/><test-case name="33005particlesEb031.i tokoe:invalid" result="pass"/><test-case name="33006particlesEb032 tokoe:valid" result="pass"/><test-case name="33007particlesEb032.i tokoe:invalid" result="pass"/><test-case name="33008particlesEb033 tokoe:valid" result="pass"/><test-case name="33009particlesEb033.i tokoe:invalid" result="pass"/><test-case name="33010particlesEb034 tokoe:valid" result="pass"/><test-case name="33011particlesEb034.i tokoe:invalid" result="pass"/><test-case name="33012particlesEb035 tokoe:valid" result="pass"/><test-case name="33013particlesEb035.i tokoe:invalid" result="pass"/><test-case name="33014particlesEb036 tokoe:valid" result="pass"/><test-case name="33015particlesEb036.v tokoe:valid" result="pass"/><test-case name="33016particlesEb037 tokoe:valid" result="pass"/><test-case name="33017particlesEb037.i tokoe:invalid" result="pass"/><test-case name="33018particlesEb038 tokoe:valid" result="pass"/><test-case name="33019particlesEb038.v tokoe:valid" result="pass"/><test-case name="33020particlesEb039 tokoe:valid" result="pass"/><test-case name="33021particlesEb039.i tokoe:invalid" result="pass"/><test-case name="33022particlesEb040 tokoe:invalid" result="pass"/><test-case name="33023particlesEb041 tokoe:valid" result="pass"/><test-case name="33024particlesEb041.v tokoe:valid" result="pass"/><test-case name="33025particlesEc001 tokoe:valid" result="pass"/><test-case name="33026particlesEc001.v tokoe:valid" result="pass"/><test-case name="33027particlesEc002 tokoe:valid" result="pass"/><test-case name="33028particlesEc002.v tokoe:valid" result="pass"/><test-case name="33029particlesEc003 tokoe:valid" result="pass"/><test-case name="33030particlesEc003.i tokoe:invalid" result="pass"/><test-case name="33031particlesEc004 tokoe:valid" result="pass"/><test-case name="33032particlesEc004.i tokoe:invalid" result="pass"/><test-case name="33033particlesEc005 tokoe:valid" result="pass"/><test-case name="33034particlesEc005.i tokoe:invalid" result="pass"/><test-case name="33035particlesEc006 tokoe:valid" result="pass"/><test-case name="33036particlesEc006.v tokoe:valid" result="pass"/><test-case name="33037particlesEc007 tokoe:valid" result="pass"/><test-case name="33038particlesEc007.i tokoe:invalid" result="pass"/><test-case name="33039particlesEc008 tokoe:valid" result="pass"/><test-case name="33040particlesEc008.i tokoe:invalid" result="pass"/><test-case name="33041particlesEc009 tokoe:invalid" result="pass"/><test-case name="33042particlesEc011 tokoe:valid" result="pass"/><test-case name="33043particlesEc011.i tokoe:invalid" result="pass"/><test-case name="33044particlesEc012 tokoe:valid" result="pass"/><test-case name="33045particlesEc012.v tokoe:valid" result="pass"/><test-case name="33046particlesEc013 tokoe:valid" result="pass"/><test-case name="33047particlesEc013.i tokoe:invalid" result="pass"/><test-case name="33048particlesEc014 tokoe:valid" result="pass"/><test-case name="33049particlesEc014.i tokoe:invalid" result="pass"/><test-case name="33050particlesEc015 tokoe:valid" result="pass"/><test-case name="33051particlesEc015.i tokoe:invalid" result="pass"/><test-case name="33052particlesEc016 tokoe:valid" result="pass"/><test-case name="33053particlesEc016.v tokoe:valid" result="pass"/><test-case name="33054particlesEc017 tokoe:valid" result="pass"/><test-case name="33055particlesEc017.v tokoe:valid" result="pass"/><test-case name="33056particlesEc018 tokoe:valid" result="pass"/><test-case name="33057particlesEc018.v tokoe:valid" result="pass"/><test-case name="33058particlesEc019 tokoe:valid" result="pass"/><test-case name="33059particlesEc019.v tokoe:valid" result="pass"/><test-case name="33060particlesEc020 tokoe:valid" result="pass"/><test-case name="33061particlesEc020.v tokoe:valid" result="pass"/><test-case name="33062particlesEc021 tokoe:valid" result="pass"/><test-case name="33063particlesEc021.v tokoe:valid" result="pass"/><test-case name="33064particlesEc022 tokoe:valid" result="pass"/><test-case name="33065particlesEc022.i tokoe:invalid" result="pass"/><test-case name="33066particlesEc023 tokoe:valid" result="pass"/><test-case name="33067particlesEc023.i tokoe:invalid" result="pass"/><test-case name="33068particlesEc024 tokoe:valid" result="pass"/><test-case name="33069particlesEc024.i tokoe:invalid" result="pass"/><test-case name="33070particlesEc025 tokoe:valid" result="pass"/><test-case name="33071particlesEc025.i tokoe:invalid" result="pass"/><test-case name="33072particlesEc026 tokoe:valid" result="pass"/><test-case name="33073particlesEc026.i tokoe:invalid" result="pass"/><test-case name="33074particlesEc027 tokoe:valid" result="pass"/><test-case name="33075particlesEc027.i tokoe:invalid" result="pass"/><test-case name="33076particlesEc028 tokoe:valid" result="pass"/><test-case name="33077particlesEc028.i tokoe:invalid" result="pass"/><test-case name="33078particlesEc029 tokoe:valid" result="pass"/><test-case name="33079particlesEc029.v tokoe:valid" result="pass"/><test-case name="33080particlesEc030 tokoe:valid" result="pass"/><test-case name="33081particlesEc030.v tokoe:valid" result="pass"/><test-case name="33082particlesEc031 tokoe:valid" result="pass"/><test-case name="33083particlesEc031.v tokoe:valid" result="pass"/><test-case name="33084particlesEc032 tokoe:valid" result="pass"/><test-case name="33085particlesEc032.v tokoe:valid" result="pass"/><test-case name="33086particlesEc033 tokoe:valid" result="pass"/><test-case name="33087particlesEc033.v tokoe:valid" result="pass"/><test-case name="33088particlesEc034 tokoe:valid" result="pass"/><test-case name="33089particlesEc034.v tokoe:valid" result="pass"/><test-case name="33090particlesEc035 tokoe:valid" result="pass"/><test-case name="33091particlesEc035.v tokoe:valid" result="pass"/><test-case name="33092particlesEc036 tokoe:valid" result="pass"/><test-case name="33093particlesEc036.v tokoe:valid" result="pass"/><test-case name="33094particlesEc037 tokoe:valid" result="pass"/><test-case name="33095particlesEc037.v tokoe:valid" result="pass"/><test-case name="33096particlesEc038 tokoe:valid" result="pass"/><test-case name="33097particlesEc038.i tokoe:invalid" result="pass"/><test-case name="33098particlesEc039 tokoe:valid" result="pass"/><test-case name="33099particlesEc039.i tokoe:invalid" result="pass"/><test-case name="33100particlesEc040 tokoe:valid" result="pass"/><test-case name="33101particlesEc040.i tokoe:invalid" result="pass"/><test-case name="33102particlesEc041 tokoe:valid" result="pass"/><test-case name="33103particlesEc041.i tokoe:invalid" result="pass"/><test-case name="33104particlesEd001 tokoe:invalid" result="pass"/><test-case name="33105particlesFa001 tokoe:valid" result="pass"/><test-case name="33106particlesFa002 tokoe:valid" result="pass"/><test-case name="33107particlesFa002.v tokoe:valid" result="pass"/><test-case name="33108particlesFa003 tokoe:valid" result="pass"/><test-case name="33109particlesFa003.v tokoe:valid" result="pass"/><test-case name="33110particlesFa004 tokoe:valid" result="pass"/><test-case name="33111particlesFa004.v tokoe:valid" result="pass"/><test-case name="33112particlesFa005 tokoe:valid" result="pass"/><test-case name="33113particlesFa005.v tokoe:valid" result="pass"/><test-case name="33114particlesFb001 tokoe:valid" result="pass"/><test-case name="33115particlesFb001.v tokoe:valid" result="pass"/><test-case name="33116particlesFb002 tokoe:invalid" result="pass"/><test-case name="33117particlesFb003 tokoe:invalid" result="pass"/><test-case name="33118particlesFb004 tokoe:valid" result="pass"/><test-case name="33119particlesFb004.v tokoe:valid" result="pass"/><test-case name="33120particlesFb005 tokoe:invalid" result="pass"/><test-case name="33121particlesFb006 tokoe:invalid" result="pass"/><test-case name="33122particlesHa001 tokoe:valid" result="pass"/><test-case name="33123particlesHa001.v tokoe:valid" result="pass"/><test-case name="33124particlesHa002 tokoe:valid" result="pass"/><test-case name="33125particlesHa002.v tokoe:valid" result="pass"/><test-case name="33126particlesHa003 tokoe:valid" result="pass"/><test-case name="33127particlesHa003.v tokoe:valid" result="pass"/><test-case name="33128particlesHa004 tokoe:valid" result="pass"/><test-case name="33129particlesHa004.v tokoe:valid" result="pass"/><test-case name="33130particlesHa005 tokoe:valid" result="pass"/><test-case name="33131particlesHa005.v tokoe:valid" result="pass"/><test-case name="33132particlesHa006 tokoe:valid" result="pass"/><test-case name="33133particlesHa006.v tokoe:valid" result="pass"/><test-case name="33134particlesHa007 tokoe:valid" result="pass"/><test-case name="33135particlesHa007.v tokoe:valid" result="pass"/><test-case name="33136particlesHa008 tokoe:invalid" result="pass"/><test-case name="33137particlesHa009 tokoe:valid" result="pass"/><test-case name="33138particlesHa009.v tokoe:valid" result="pass"/><test-case name="33139particlesHa010 tokoe:valid" result="pass"/><test-case name="33140particlesHa010.v tokoe:valid" result="pass"/><test-case name="33141particlesHa011 tokoe:valid" result="pass"/><test-case name="33142particlesHa011.v tokoe:valid" result="pass"/><test-case name="33143particlesHa012 tokoe:valid" result="pass"/><test-case name="33144particlesHa012.v tokoe:valid" result="pass"/><test-case name="33145particlesHa013 tokoe:valid" result="pass"/><test-case name="33146particlesHa013.v tokoe:valid" result="pass"/><test-case name="33147particlesHa014 tokoe:valid" result="pass"/><test-case name="33148particlesHa014.v tokoe:valid" result="pass"/><test-case name="33149particlesHa015 tokoe:valid" result="pass"/><test-case name="33150particlesHa015.v tokoe:valid" result="pass"/><test-case name="33151particlesHa016 tokoe:valid" result="pass"/><test-case name="33152particlesHa016.v tokoe:valid" result="pass"/><test-case name="33153particlesHa017 tokoe:valid" result="pass"/><test-case name="33154particlesHa017.v tokoe:valid" result="pass"/><test-case name="33155particlesHa018 tokoe:valid" result="pass"/><test-case name="33156particlesHa018.v tokoe:valid" result="pass"/><test-case name="33157particlesHa020 tokoe:valid" result="pass"/><test-case name="33158particlesHa021 tokoe:invalid" result="pass"/><test-case name="33159particlesHa022 tokoe:valid" result="pass"/><test-case name="33160particlesHa050 tokoe:valid" result="pass"/><test-case name="33161particlesHa051 tokoe:valid" result="pass"/><test-case name="33162particlesHa052 tokoe:invalid" result="pass"/><test-case name="33163particlesHa053 tokoe:valid" result="pass"/><test-case name="33164particlesHa054 tokoe:valid" result="pass"/><test-case name="33165particlesHa070 tokoe:valid" result="pass"/><test-case name="33166particlesHa071 tokoe:invalid" result="pass"/><test-case name="33167particlesHa080 tokoe:valid" result="pass"/><test-case name="33168particlesHa081 tokoe:invalid" result="pass"/><test-case name="33169particlesHa082 tokoe:invalid" result="pass"/><test-case name="33170particlesHa083 tokoe:invalid" result="pass"/><test-case name="33171particlesHa084 tokoe:valid" result="pass"/><test-case name="33172particlesHa100 tokoe:valid" result="pass"/><test-case name="33173particlesHa101 tokoe:invalid" result="pass"/><test-case name="33174particlesHa102 tokoe:invalid" result="pass"/><test-case name="33175particlesHa103 tokoe:invalid" result="pass"/><test-case name="33176particlesHa120 tokoe:valid" result="pass"/><test-case name="33177particlesHa121 tokoe:invalid" result="pass"/><test-case name="33178particlesHa122 tokoe:valid" result="pass"/><test-case name="33179particlesHa123 tokoe:invalid" result="pass"/><test-case name="33180particlesHa140 tokoe:invalid" result="pass"/><test-case name="33181particlesHa141 tokoe:valid" result="pass"/><test-case name="33182particlesHa142 tokoe:valid" result="pass"/><test-case name="33183particlesHa143 tokoe:invalid" result="pass"/><test-case name="33184particlesHa144 tokoe:invalid" result="pass"/><test-case name="33185particlesHa145 tokoe:invalid" result="pass"/><test-case name="33186particlesHa146 tokoe:valid" result="pass"/><test-case name="33187particlesHa147 tokoe:invalid" result="pass"/><test-case name="33188particlesHa160 tokoe:valid" result="pass"/><test-case name="33189particlesHa162 tokoe:invalid" result="pass"/><test-case name="33190particlesHa163 tokoe:invalid" result="pass"/><test-case name="33191particlesHa164 tokoe:invalid" result="pass"/><test-case name="33192particlesHa165 tokoe:valid" result="pass"/><test-case name="33193particlesHa166 tokoe:invalid" result="pass"/><test-case name="33194particlesHa167 tokoe:valid" result="pass"/><test-case name="33195particlesHa168 tokoe:invalid" result="pass"/><test-case name="33196particlesHa169 tokoe:invalid" result="pass"/><test-case name="33197particlesHa180 tokoe:valid" result="pass"/><test-case name="33198particlesHa181 tokoe:invalid" result="pass"/><test-case name="33199particlesHa182 tokoe:invalid" result="pass"/><test-case name="33200particlesHa183 tokoe:invalid" result="pass"/><test-case name="33201particlesHa184 tokoe:invalid" result="pass"/><test-case name="33202particlesHa185 tokoe:valid" result="pass"/><test-case name="33203particlesHa186 tokoe:valid" result="pass"/><test-case name="33204particlesHa187 tokoe:invalid" result="pass"/><test-case name="33205particlesHa188 tokoe:valid" result="pass"/><test-case name="33206particlesHa189 tokoe:invalid" result="pass"/><test-case name="33207particlesHb001 tokoe:invalid" result="pass"/><test-case name="33208particlesHb002 tokoe:invalid" result="pass"/><test-case name="33209particlesHb003 tokoe:invalid" result="pass"/><test-case name="33210particlesHb004 tokoe:invalid" result="pass"/><test-case name="33211particlesHb006 tokoe:invalid" result="pass"/><test-case name="33212particlesHb007 tokoe:invalid" result="pass"/><test-case name="33213particlesHb009 tokoe:invalid" result="pass"/><test-case name="33214particlesHb010 tokoe:valid" result="pass"/><test-case name="33215particlesIa001 tokoe:valid" result="pass"/><test-case name="33216particlesIa001.v tokoe:valid" result="pass"/><test-case name="33217particlesIa002 tokoe:valid" result="pass"/><test-case name="33218particlesIa002.v tokoe:valid" result="pass"/><test-case name="33219particlesIa003 tokoe:valid" result="pass"/><test-case name="33220particlesIa003.v tokoe:valid" result="pass"/><test-case name="33221particlesIa004 tokoe:valid" result="pass"/><test-case name="33222particlesIa004.v tokoe:valid" result="pass"/><test-case name="33223particlesIa005 tokoe:valid" result="pass"/><test-case name="33224particlesIa005.v tokoe:valid" result="pass"/><test-case name="33225particlesIa006 tokoe:invalid" result="pass"/><test-case name="33226particlesIa007 tokoe:valid" result="pass"/><test-case name="33227particlesIa008 tokoe:invalid" result="pass"/><test-case name="33228particlesIa009 tokoe:valid" result="pass"/><test-case name="33229particlesIb001 tokoe:valid" result="pass"/><test-case name="33230particlesIb001.v tokoe:valid" result="pass"/><test-case name="33231particlesIb002 tokoe:invalid" result="pass"/><test-case name="33232particlesIb003 tokoe:valid" result="pass"/><test-case name="33233particlesIb003.v tokoe:valid" result="pass"/><test-case name="33234particlesIb004 tokoe:invalid" result="pass"/><test-case name="33235particlesIb005 tokoe:valid" result="pass"/><test-case name="33236particlesIb005.v tokoe:valid" result="pass"/><test-case name="33237particlesIb006 tokoe:invalid" result="pass"/><test-case name="33238particlesIb007 tokoe:invalid" result="pass"/><test-case name="33239particlesIc001 tokoe:valid" result="pass"/><test-case name="33240particlesIc001.v tokoe:valid" result="pass"/><test-case name="33241particlesIc002 tokoe:invalid" result="pass"/><test-case name="33242particlesIc003 tokoe:invalid" result="pass"/><test-case name="33243particlesIc004 tokoe:invalid" result="pass"/><test-case name="33244particlesIc005 tokoe:valid" result="pass"/><test-case name="33245particlesIc005.v tokoe:valid" result="pass"/><test-case name="33246particlesIc006 tokoe:valid" result="pass"/><test-case name="33247particlesIc006.v tokoe:valid" result="pass"/><test-case name="33248particlesIc007 tokoe:valid" result="pass"/><test-case name="33249particlesIc007.v tokoe:valid" result="pass"/><test-case name="33250particlesId001 tokoe:valid" result="pass"/><test-case name="33251particlesId001.v tokoe:valid" result="pass"/><test-case name="33252particlesId002 tokoe:valid" result="pass"/><test-case name="33253particlesId002.v tokoe:valid" result="pass"/><test-case name="33254particlesId003 tokoe:invalid" result="pass"/><test-case name="33255particlesId004 tokoe:valid" result="pass"/><test-case name="33256particlesId004.v tokoe:valid" result="pass"/><test-case name="33257particlesId005 tokoe:valid" result="pass"/><test-case name="33258particlesId005.v tokoe:valid" result="pass"/><test-case name="33259particlesId006 tokoe:invalid" result="pass"/><test-case name="33260particlesId007 tokoe:valid" result="pass"/><test-case name="33261particlesId007.v tokoe:valid" result="pass"/><test-case name="33262particlesId008 tokoe:valid" result="pass"/><test-case name="33263particlesId008.v tokoe:valid" result="pass"/><test-case name="33264particlesId009 tokoe:valid" result="pass"/><test-case name="33265particlesId009.v tokoe:valid" result="pass"/><test-case name="33266particlesId010 tokoe:valid" result="pass"/><test-case name="33267particlesId010.v tokoe:valid" result="pass"/><test-case name="33268particlesId011 tokoe:valid" result="pass"/><test-case name="33269particlesId011.v tokoe:valid" result="pass"/><test-case name="33270particlesId012 tokoe:invalid" result="pass"/><test-case name="33271particlesIe001 tokoe:valid" result="pass"/><test-case name="33272particlesIe001.v tokoe:valid" result="pass"/><test-case name="33273particlesIe002 tokoe:valid" result="pass"/><test-case name="33274particlesIe002.v tokoe:valid" result="pass"/><test-case name="33275particlesIe004 tokoe:valid" result="pass"/><test-case name="33276particlesIe004.v tokoe:valid" result="pass"/><test-case name="33277particlesIe005 tokoe:valid" result="pass"/><test-case name="33278particlesIe005.v tokoe:valid" result="pass"/><test-case name="33279particlesIe006 tokoe:invalid" result="pass"/><test-case name="33280particlesIe007 tokoe:valid" result="pass"/><test-case name="33281particlesIe007.v tokoe:valid" result="pass"/><test-case name="33282particlesIe008 tokoe:valid" result="pass"/><test-case name="33283particlesIe008.v tokoe:valid" result="pass"/><test-case name="33284particlesIe009 tokoe:invalid" result="pass"/><test-case name="33285particlesIe010 tokoe:valid" result="pass"/><test-case name="33286particlesIe010.v tokoe:valid" result="pass"/><test-case name="33287particlesIe011 tokoe:valid" result="pass"/><test-case name="33288particlesIe011.v tokoe:valid" result="pass"/><test-case name="33289particlesIe012 tokoe:invalid" result="pass"/><test-case name="33290particlesIe013 tokoe:valid" result="pass"/><test-case name="33291particlesIe013.v tokoe:valid" result="pass"/><test-case name="33292particlesIe014 tokoe:invalid" result="pass"/><test-case name="33293particlesIe015 tokoe:valid" result="pass"/><test-case name="33294particlesIe015.v tokoe:valid" result="pass"/><test-case name="33295particlesIe016 tokoe:valid" result="pass"/><test-case name="33296particlesIe016.v tokoe:valid" result="pass"/><test-case name="33297particlesIf001 tokoe:valid" result="pass"/><test-case name="33298particlesIf001.v tokoe:valid" result="pass"/><test-case name="33299particlesIf002 tokoe:valid" result="pass"/><test-case name="33300particlesIf002.v tokoe:valid" result="pass"/><test-case name="33301particlesIf003 tokoe:valid" result="pass"/><test-case name="33302particlesIf003.v tokoe:valid" result="pass"/><test-case name="33303particlesIf004 tokoe:valid" result="pass"/><test-case name="33304particlesIf004.v tokoe:valid" result="pass"/><test-case name="33305particlesIf005 tokoe:valid" result="pass"/><test-case name="33306particlesIf005.v tokoe:valid" result="pass"/><test-case name="33307particlesIf006 tokoe:valid" result="pass"/><test-case name="33308particlesIf006.v tokoe:valid" result="pass"/><test-case name="33309particlesIf007 tokoe:invalid" result="pass"/><test-case name="33310particlesIf008 tokoe:invalid" result="pass"/><test-case name="33311particlesIf009 tokoe:invalid" result="pass"/><test-case name="33312particlesIg001 tokoe:valid" result="pass"/><test-case name="33313particlesIg001.v tokoe:valid" result="pass"/><test-case name="33314particlesIg002 tokoe:valid" result="pass"/><test-case name="33315particlesIg002.v tokoe:valid" result="pass"/><test-case name="33316particlesIg005 tokoe:valid" result="pass"/><test-case name="33317particlesIg005.v tokoe:valid" result="pass"/><test-case name="33318particlesIg006 tokoe:invalid" result="pass"/><test-case name="33319particlesIg007 tokoe:invalid" result="pass"/><test-case name="33320particlesIg008 tokoe:invalid" result="pass"/><test-case name="33321particlesIg009 tokoe:invalid" result="pass"/><test-case name="33322particlesIg010 tokoe:invalid" result="pass"/><test-case name="33323particlesIg011 tokoe:valid" result="pass"/><test-case name="33324particlesIg011.v tokoe:valid" result="pass"/><test-case name="33325particlesIg012 tokoe:valid" result="pass"/><test-case name="33326particlesIg012.v tokoe:valid" result="pass"/><test-case name="33327particlesIg013 tokoe:invalid" result="pass"/><test-case name="33328particlesIg014 tokoe:valid" result="pass"/><test-case name="33329particlesIg014.v tokoe:valid" result="pass"/><test-case name="33330particlesIg015 tokoe:valid" result="pass"/><test-case name="33331particlesIg015.v tokoe:valid" result="pass"/><test-case name="33332particlesIg016 tokoe:invalid" result="pass"/><test-case name="33333particlesIh001 tokoe:invalid" result="pass"/><test-case name="33334particlesIj001 tokoe:valid" result="pass"/><test-case name="33335particlesIj001.v tokoe:valid" result="pass"/><test-case name="33336particlesIj002 tokoe:valid" result="pass"/><test-case name="33337particlesIj002.v tokoe:valid" result="pass"/><test-case name="33338particlesIj003 tokoe:invalid" result="pass"/><test-case name="33339particlesIj004 tokoe:invalid" result="pass"/><test-case name="33340particlesIj005 tokoe:valid" result="pass"/><test-case name="33341particlesIj005.v tokoe:valid" result="pass"/><test-case name="33342particlesIj006 tokoe:valid" result="pass"/><test-case name="33343particlesIj006.v tokoe:valid" result="pass"/><test-case name="33344particlesIj007 tokoe:invalid" result="pass"/><test-case name="33345particlesIj008 tokoe:invalid" result="pass"/><test-case name="33346particlesIj009 tokoe:invalid" result="pass"/><test-case name="33347particlesIj010 tokoe:invalid" result="pass"/><test-case name="33348particlesIj011 tokoe:invalid" result="pass"/><test-case name="33349particlesIj012 tokoe:invalid" result="pass"/><test-case name="33350particlesIj013 tokoe:invalid" result="pass"/><test-case name="33351particlesIj014 tokoe:valid" result="pass"/><test-case name="33352particlesIj015 tokoe:invalid" result="pass"/><test-case name="33353particlesIj016 tokoe:invalid" result="pass"/><test-case name="33354particlesIk001 tokoe:valid" result="pass"/><test-case name="33355particlesIk001.v tokoe:valid" result="pass"/><test-case name="33356particlesIk002 tokoe:invalid" result="pass"/><test-case name="33357particlesIk003 tokoe:invalid" result="pass"/><test-case name="33358particlesIk004 tokoe:valid" result="pass"/><test-case name="33359particlesIk004.v tokoe:valid" result="pass"/><test-case name="33360particlesIk005 tokoe:invalid" result="pass"/><test-case name="33361particlesIk006 tokoe:invalid" result="pass"/><test-case name="33362particlesIk007 tokoe:invalid" result="pass"/><test-case name="33363particlesIk008 tokoe:invalid" result="pass"/><test-case name="33364particlesIk009 tokoe:invalid" result="pass"/><test-case name="33365particlesIk010 tokoe:invalid" result="pass"/><test-case name="33366particlesIk011 tokoe:invalid" result="pass"/><test-case name="33367particlesIk012 tokoe:valid" result="pass"/><test-case name="33368particlesIk012.v tokoe:valid" result="pass"/><test-case name="33369particlesIk013 tokoe:invalid" result="pass"/><test-case name="33370particlesIk014 tokoe:valid" result="pass"/><test-case name="33371particlesIk015 tokoe:invalid" result="pass"/><test-case name="33372particlesIk016 tokoe:invalid" result="pass"/><test-case name="33373particlesIk017 tokoe:valid" result="pass"/><test-case name="33374particlesIk018 tokoe:valid" result="pass"/><test-case name="33375particlesIk019 tokoe:invalid" result="pass"/><test-case name="33376particlesIk020 tokoe:invalid" result="pass"/><test-case name="33377particlesIk021 tokoe:invalid" result="pass"/><test-case name="33378particlesIk022 tokoe:invalid" result="pass"/><test-case name="33379particlesIk023 tokoe:valid" result="pass"/><test-case name="33380particlesIk024 tokoe:invalid" result="pass"/><test-case name="33381particlesIk025 tokoe:invalid" result="pass"/><test-case name="33382particlesIk026 tokoe:valid" result="pass"/><test-case name="33383particlesIk026.v tokoe:valid" result="pass"/><test-case name="33384particlesIk027 tokoe:invalid" result="pass"/><test-case name="33385particlesJa001 tokoe:valid" result="pass"/><test-case name="33386particlesJa001.v tokoe:valid" result="pass"/><test-case name="33387particlesJa002 tokoe:valid" result="pass"/><test-case name="33388particlesJa002.v tokoe:valid" result="pass"/><test-case name="33389particlesJa003 tokoe:invalid" result="pass"/><test-case name="33390particlesJa004 tokoe:valid" result="pass"/><test-case name="33391particlesJa004.v tokoe:valid" result="pass"/><test-case name="33392particlesJa005 tokoe:valid" result="pass"/><test-case name="33393particlesJa005.v tokoe:valid" result="pass"/><test-case name="33394particlesJa006 tokoe:invalid" result="pass"/><test-case name="33395particlesJa007 tokoe:valid" result="pass"/><test-case name="33396particlesJa007.v tokoe:valid" result="pass"/><test-case name="33397particlesJa008 tokoe:valid" result="pass"/><test-case name="33398particlesJa008.v tokoe:valid" result="pass"/><test-case name="33399particlesJa009 tokoe:valid" result="pass"/><test-case name="33400particlesJa009.v tokoe:valid" result="pass"/><test-case name="33401particlesJa010 tokoe:valid" result="pass"/><test-case name="33402particlesJa010.v tokoe:valid" result="pass"/><test-case name="33403particlesJa011 tokoe:valid" result="pass"/><test-case name="33404particlesJa011.v tokoe:valid" result="pass"/><test-case name="33405particlesJa012 tokoe:invalid" result="pass"/><test-case name="33406particlesJb001 tokoe:valid" result="pass"/><test-case name="33407particlesJb001.v tokoe:valid" result="pass"/><test-case name="33408particlesJb002 tokoe:valid" result="pass"/><test-case name="33409particlesJb002.v tokoe:valid" result="pass"/><test-case name="33410particlesJb004 tokoe:valid" result="pass"/><test-case name="33411particlesJb004.v tokoe:valid" result="pass"/><test-case name="33412particlesJb005 tokoe:valid" result="pass"/><test-case name="33413particlesJb005.v tokoe:valid" result="pass"/><test-case name="33414particlesJb006 tokoe:invalid" result="pass"/><test-case name="33415particlesJb007 tokoe:valid" result="pass"/><test-case name="33416particlesJb007.v tokoe:valid" result="pass"/><test-case name="33417particlesJb008 tokoe:valid" result="pass"/><test-case name="33418particlesJb008.v tokoe:valid" result="pass"/><test-case name="33419particlesJb009 tokoe:invalid" result="pass"/><test-case name="33420particlesJb010 tokoe:valid" result="pass"/><test-case name="33421particlesJb010.v tokoe:valid" result="pass"/><test-case name="33422particlesJb011 tokoe:valid" result="pass"/><test-case name="33423particlesJb011.v tokoe:valid" result="pass"/><test-case name="33424particlesJb012 tokoe:invalid" result="pass"/><test-case name="33425particlesJb013 tokoe:valid" result="pass"/><test-case name="33426particlesJb013.v tokoe:valid" result="pass"/><test-case name="33427particlesJb014 tokoe:invalid" result="pass"/><test-case name="33428particlesJb015 tokoe:valid" result="pass"/><test-case name="33429particlesJb015.v tokoe:valid" result="pass"/><test-case name="33430particlesJb016 tokoe:valid" result="pass"/><test-case name="33431particlesJb016.v tokoe:valid" result="pass"/><test-case name="33432particlesJc001 tokoe:valid" result="pass"/><test-case name="33433particlesJc001.v tokoe:valid" result="pass"/><test-case name="33434particlesJc002 tokoe:valid" result="pass"/><test-case name="33435particlesJc002.v tokoe:valid" result="pass"/><test-case name="33436particlesJc003 tokoe:invalid" result="pass"/><test-case name="33437particlesJc004 tokoe:valid" result="pass"/><test-case name="33438particlesJc004.v tokoe:valid" result="pass"/><test-case name="33439particlesJc005 tokoe:valid" result="pass"/><test-case name="33440particlesJc005.v tokoe:valid" result="pass"/><test-case name="33441particlesJc006 tokoe:invalid" result="pass"/><test-case name="33442particlesJc007 tokoe:valid" result="pass"/><test-case name="33443particlesJc007.v tokoe:valid" result="pass"/><test-case name="33444particlesJc008 tokoe:valid" result="pass"/><test-case name="33445particlesJc008.v tokoe:valid" result="pass"/><test-case name="33446particlesJc009 tokoe:valid" result="pass"/><test-case name="33447particlesJc009.v tokoe:valid" result="pass"/><test-case name="33448particlesJc010 tokoe:valid" result="pass"/><test-case name="33449particlesJc010.v tokoe:valid" result="pass"/><test-case name="33450particlesJc011 tokoe:valid" result="pass"/><test-case name="33451particlesJc011.v tokoe:valid" result="pass"/><test-case name="33452particlesJc012 tokoe:invalid" result="pass"/><test-case name="33453particlesJd001 tokoe:valid" result="pass"/><test-case name="33454particlesJd001.v tokoe:valid" result="pass"/><test-case name="33455particlesJd002 tokoe:valid" result="pass"/><test-case name="33456particlesJd002.v tokoe:valid" result="pass"/><test-case name="33457particlesJd004 tokoe:valid" result="pass"/><test-case name="33458particlesJd004.v tokoe:valid" result="pass"/><test-case name="33459particlesJd005 tokoe:valid" result="pass"/><test-case name="33460particlesJd005.v tokoe:valid" result="pass"/><test-case name="33461particlesJd006 tokoe:invalid" result="pass"/><test-case name="33462particlesJd007 tokoe:valid" result="pass"/><test-case name="33463particlesJd007.v tokoe:valid" result="pass"/><test-case name="33464particlesJd008 tokoe:valid" result="pass"/><test-case name="33465particlesJd008.v tokoe:valid" result="pass"/><test-case name="33466particlesJd009 tokoe:invalid" result="pass"/><test-case name="33467particlesJd010 tokoe:valid" result="pass"/><test-case name="33468particlesJd010.v tokoe:valid" result="pass"/><test-case name="33469particlesJd011 tokoe:valid" result="pass"/><test-case name="33470particlesJd011.v tokoe:valid" result="pass"/><test-case name="33471particlesJd012 tokoe:invalid" result="pass"/><test-case name="33472particlesJd013 tokoe:valid" result="pass"/><test-case name="33473particlesJd013.v tokoe:valid" result="pass"/><test-case name="33474particlesJd014 tokoe:invalid" result="pass"/><test-case name="33475particlesJd015 tokoe:valid" result="pass"/><test-case name="33476particlesJd015.v tokoe:valid" result="pass"/><test-case name="33477particlesJd016 tokoe:valid" result="pass"/><test-case name="33478particlesJd016.v tokoe:valid" result="pass"/><test-case name="33479particlesJe001 tokoe:valid" result="pass"/><test-case name="33480particlesJe001.v tokoe:valid" result="pass"/><test-case name="33481particlesJe002 tokoe:valid" result="pass"/><test-case name="33482particlesJe002.v tokoe:valid" result="pass"/><test-case name="33483particlesJe003 tokoe:invalid" result="pass"/><test-case name="33484particlesJe004 tokoe:valid" result="pass"/><test-case name="33485particlesJe004.v tokoe:valid" result="pass"/><test-case name="33486particlesJe005 tokoe:valid" result="pass"/><test-case name="33487particlesJe005.v tokoe:valid" result="pass"/><test-case name="33488particlesJe006 tokoe:invalid" result="pass"/><test-case name="33489particlesJe007 tokoe:valid" result="pass"/><test-case name="33490particlesJe007.v tokoe:valid" result="pass"/><test-case name="33491particlesJe008 tokoe:valid" result="pass"/><test-case name="33492particlesJe008.v tokoe:valid" result="pass"/><test-case name="33493particlesJe009 tokoe:valid" result="pass"/><test-case name="33494particlesJe009.v tokoe:valid" result="pass"/><test-case name="33495particlesJe010 tokoe:valid" result="pass"/><test-case name="33496particlesJe010.v tokoe:valid" result="pass"/><test-case name="33497particlesJe011 tokoe:valid" result="pass"/><test-case name="33498particlesJe011.v tokoe:valid" result="pass"/><test-case name="33499particlesJe012 tokoe:invalid" result="pass"/><test-case name="33500particlesJf001 tokoe:valid" result="pass"/><test-case name="33501particlesJf001.v tokoe:valid" result="pass"/><test-case name="33502particlesJf002 tokoe:valid" result="pass"/><test-case name="33503particlesJf002.v tokoe:valid" result="pass"/><test-case name="33504particlesJf004 tokoe:valid" result="pass"/><test-case name="33505particlesJf004.v tokoe:valid" result="pass"/><test-case name="33506particlesJf005 tokoe:valid" result="pass"/><test-case name="33507particlesJf005.v tokoe:valid" result="pass"/><test-case name="33508particlesJf006 tokoe:invalid" result="pass"/><test-case name="33509particlesJf007 tokoe:valid" result="pass"/><test-case name="33510particlesJf007.v tokoe:valid" result="pass"/><test-case name="33511particlesJf008 tokoe:valid" result="pass"/><test-case name="33512particlesJf008.v tokoe:valid" result="pass"/><test-case name="33513particlesJf009 tokoe:invalid" result="pass"/><test-case name="33514particlesJf010 tokoe:valid" result="pass"/><test-case name="33515particlesJf010.v tokoe:valid" result="pass"/><test-case name="33516particlesJf011 tokoe:valid" result="pass"/><test-case name="33517particlesJf011.v tokoe:valid" result="pass"/><test-case name="33518particlesJf012 tokoe:invalid" result="pass"/><test-case name="33519particlesJf013 tokoe:valid" result="pass"/><test-case name="33520particlesJf013.v tokoe:valid" result="pass"/><test-case name="33521particlesJf014 tokoe:invalid" result="pass"/><test-case name="33522particlesJf015 tokoe:valid" result="pass"/><test-case name="33523particlesJf015.v tokoe:valid" result="pass"/><test-case name="33524particlesJf016 tokoe:valid" result="pass"/><test-case name="33525particlesJf016.v tokoe:valid" result="pass"/><test-case name="33526particlesJg001 tokoe:invalid" result="pass"/><test-case name="33527particlesJh001 tokoe:invalid" result="pass"/><test-case name="33528particlesJj001 tokoe:valid" result="pass"/><test-case name="33529particlesJj001.v tokoe:valid" result="pass"/><test-case name="33530particlesJj002 tokoe:valid" result="pass"/><test-case name="33531particlesJj002.v tokoe:valid" result="pass"/><test-case name="33532particlesJj003 tokoe:invalid" result="pass"/><test-case name="33533particlesJj004 tokoe:valid" result="pass"/><test-case name="33534particlesJj004.v tokoe:valid" result="pass"/><test-case name="33535particlesJj005 tokoe:valid" result="pass"/><test-case name="33536particlesJj005.v tokoe:valid" result="pass"/><test-case name="33537particlesJj006 tokoe:invalid" result="pass"/><test-case name="33538particlesJj007 tokoe:valid" result="pass"/><test-case name="33539particlesJj007.v tokoe:valid" result="pass"/><test-case name="33540particlesJj008 tokoe:valid" result="pass"/><test-case name="33541particlesJj008.v tokoe:valid" result="pass"/><test-case name="33542particlesJj009 tokoe:valid" result="pass"/><test-case name="33543particlesJj009.v tokoe:valid" result="pass"/><test-case name="33544particlesJj010 tokoe:valid" result="pass"/><test-case name="33545particlesJj010.v tokoe:valid" result="pass"/><test-case name="33546particlesJj011 tokoe:valid" result="pass"/><test-case name="33547particlesJj011.v tokoe:valid" result="pass"/><test-case name="33548particlesJj012 tokoe:invalid" result="pass"/><test-case name="33549particlesJk001 tokoe:valid" result="pass"/><test-case name="33550particlesJk001.v tokoe:valid" result="pass"/><test-case name="33551particlesJk002 tokoe:valid" result="pass"/><test-case name="33552particlesJk002.v tokoe:valid" result="pass"/><test-case name="33553particlesJk004 tokoe:valid" result="pass"/><test-case name="33554particlesJk004.v tokoe:valid" result="pass"/><test-case name="33555particlesJk005 tokoe:valid" result="pass"/><test-case name="33556particlesJk005.v tokoe:valid" result="pass"/><test-case name="33557particlesJk006 tokoe:invalid" result="pass"/><test-case name="33558particlesJk007 tokoe:valid" result="pass"/><test-case name="33559particlesJk007.v tokoe:valid" result="pass"/><test-case name="33560particlesJk008 tokoe:valid" result="pass"/><test-case name="33561particlesJk008.v tokoe:valid" result="pass"/><test-case name="33562particlesJk009 tokoe:invalid" result="pass"/><test-case name="33563particlesJk010 tokoe:valid" result="pass"/><test-case name="33564particlesJk010.v tokoe:valid" result="pass"/><test-case name="33565particlesJk011 tokoe:valid" result="pass"/><test-case name="33566particlesJk011.v tokoe:valid" result="pass"/><test-case name="33567particlesJk012 tokoe:invalid" result="pass"/><test-case name="33568particlesJk013 tokoe:valid" result="pass"/><test-case name="33569particlesJk013.v tokoe:valid" result="pass"/><test-case name="33570particlesJk014 tokoe:invalid" result="pass"/><test-case name="33571particlesJk015 tokoe:valid" result="pass"/><test-case name="33572particlesJk015.v tokoe:valid" result="pass"/><test-case name="33573particlesJk016 tokoe:valid" result="pass"/><test-case name="33574particlesJk016.v tokoe:valid" result="pass"/><test-case name="33575particlesJl001 tokoe:valid" result="pass"/><test-case name="33576particlesJl001.v tokoe:valid" result="pass"/><test-case name="33577particlesJl002 tokoe:invalid" result="pass"/><test-case name="33578particlesJl003 tokoe:invalid" result="pass"/><test-case name="33579particlesJm003 tokoe:invalid" result="pass"/><test-case name="33580particlesJm004 tokoe:valid" result="pass"/><test-case name="33581particlesJm004.v tokoe:valid" result="pass"/><test-case name="33582particlesJm005 tokoe:valid" result="pass"/><test-case name="33583particlesJm005.v tokoe:valid" result="pass"/><test-case name="33584particlesJn007 tokoe:valid" result="pass"/><test-case name="33585particlesJn007.v tokoe:valid" result="pass"/><test-case name="33586particlesJn008 tokoe:valid" result="pass"/><test-case name="33587particlesJn008.v tokoe:valid" result="pass"/><test-case name="33588particlesJn009 tokoe:invalid" result="pass"/><test-case name="33589particlesJn010 tokoe:valid" result="pass"/><test-case name="33590particlesJn010.v tokoe:valid" result="pass"/><test-case name="33591particlesJr001 tokoe:invalid" result="pass"/><test-case name="33592particlesJr002 tokoe:invalid" result="pass"/><test-case name="33593particlesJp003 tokoe:invalid" result="pass"/><test-case name="33594particlesJp004 tokoe:valid" result="pass"/><test-case name="33595particlesJp004.v tokoe:valid" result="pass"/><test-case name="33596particlesJp005 tokoe:valid" result="pass"/><test-case name="33597particlesJp005.v tokoe:valid" result="pass"/><test-case name="33598particlesJq007 tokoe:valid" result="pass"/><test-case name="33599particlesJq007.v tokoe:valid" result="pass"/><test-case name="33600particlesJq008 tokoe:valid" result="pass"/><test-case name="33601particlesJq008.v tokoe:valid" result="pass"/><test-case name="33602particlesJq009 tokoe:invalid" result="pass"/><test-case name="33603particlesJq010 tokoe:valid" result="pass"/><test-case name="33604particlesJq010.v tokoe:valid" result="pass"/><test-case name="33605particlesJs001 tokoe:valid" result="pass"/><test-case name="33606particlesJs001.v tokoe:valid" result="pass"/><test-case name="33607particlesJs002 tokoe:invalid" result="pass"/><test-case name="33608particlesJs003 tokoe:invalid" result="pass"/><test-case name="33609particlesJs004 tokoe:invalid" result="pass"/><test-case name="33610particlesJu001 tokoe:valid" result="pass"/><test-case name="33611particlesJu001.v tokoe:valid" result="pass"/><test-case name="33612particlesJu002 tokoe:valid" result="pass"/><test-case name="33613particlesJu002.v tokoe:valid" result="pass"/><test-case name="33614particlesJu003 tokoe:valid" result="pass"/><test-case name="33615particlesJu003.v tokoe:valid" result="pass"/><test-case name="33616particlesK001 tokoe:valid" result="pass"/><test-case name="33617particlesK001.v tokoe:valid" result="pass"/><test-case name="33618particlesK002 tokoe:valid" result="pass"/><test-case name="33619particlesK002.v tokoe:valid" result="pass"/><test-case name="33620particlesK003 tokoe:valid" result="pass"/><test-case name="33621particlesK003.v tokoe:valid" result="pass"/><test-case name="33622particlesK004 tokoe:invalid" result="pass"/><test-case name="33623particlesK005 tokoe:valid" result="pass"/><test-case name="33624particlesK005.v tokoe:valid" result="pass"/><test-case name="33625particlesK006 tokoe:invalid" result="pass"/><test-case name="33626particlesK008 tokoe:valid" result="pass"/><test-case name="33627particlesK008.v tokoe:valid" result="pass"/><test-case name="33628particlesL001 tokoe:invalid" result="pass"/><test-case name="33629particlesL002 tokoe:invalid" result="pass"/><test-case name="33630particlesL003 tokoe:valid" result="pass"/><test-case name="33631particlesL003.v tokoe:valid" result="pass"/><test-case name="33632particlesL004 tokoe:invalid" result="pass"/><test-case name="33633particlesL005 tokoe:invalid" result="pass"/><test-case name="33634particlesL006 tokoe:valid" result="pass"/><test-case name="33635particlesL006.v tokoe:valid" result="pass"/><test-case name="33636particlesL007 tokoe:valid" result="pass"/><test-case name="33637particlesL007.v tokoe:valid" result="pass"/><test-case name="33638particlesL008 tokoe:invalid" result="pass"/><test-case name="33639particlesL009 tokoe:invalid" result="pass"/><test-case name="33640particlesL010 tokoe:invalid" result="pass"/><test-case name="33641particlesL011 tokoe:invalid" result="pass"/><test-case name="33642particlesL012 tokoe:valid" result="pass"/><test-case name="33643particlesL012.v tokoe:valid" result="pass"/><test-case name="33644particlesL013 tokoe:valid" result="pass"/><test-case name="33645particlesL013.v tokoe:valid" result="pass"/><test-case name="33646particlesL014 tokoe:invalid" result="pass"/><test-case name="33647particlesL015 tokoe:invalid" result="pass"/><test-case name="33648particlesL016 tokoe:invalid" result="pass"/><test-case name="33649particlesL017 tokoe:valid" result="pass"/><test-case name="33650particlesL017.v tokoe:valid" result="pass"/><test-case name="33651particlesL018 tokoe:valid" result="pass"/><test-case name="33652particlesL018.v tokoe:valid" result="pass"/><test-case name="33653particlesL019 tokoe:invalid" result="pass"/><test-case name="33654particlesL020 tokoe:invalid" result="pass"/><test-case name="33655particlesL021 tokoe:valid" result="pass"/><test-case name="33656particlesL021.v tokoe:valid" result="pass"/><test-case name="33657particlesL022 tokoe:invalid" result="pass"/><test-case name="33658particlesL023 tokoe:valid" result="pass"/><test-case name="33659particlesL023.v tokoe:valid" result="pass"/><test-case name="33660particlesL024 tokoe:invalid" result="pass"/><test-case name="33661particlesL025 tokoe:valid" result="pass"/><test-case name="33662particlesL025.v tokoe:valid" result="pass"/><test-case name="33663particlesL026 tokoe:invalid" result="pass"/><test-case name="33664particlesL027 tokoe:invalid" result="pass"/><test-case name="33665particlesL028 tokoe:valid" result="pass"/><test-case name="33666particlesL028.v tokoe:valid" result="pass"/><test-case name="33667particlesL029 tokoe:valid" result="pass"/><test-case name="33668particlesL029.v tokoe:valid" result="pass"/><test-case name="33669particlesL030 tokoe:invalid" result="pass"/><test-case name="33670particlesL031 tokoe:invalid" result="pass"/><test-case name="33671particlesL032 tokoe:invalid" result="pass"/><test-case name="33672particlesM001 tokoe:invalid" result="pass"/><test-case name="33673particlesM002 tokoe:valid" result="pass"/><test-case name="33674particlesM002.v tokoe:valid" result="pass"/><test-case name="33675particlesM003 tokoe:valid" result="pass"/><test-case name="33676particlesM003.v tokoe:valid" result="pass"/><test-case name="33677particlesM033 tokoe:invalid" result="pass"/><test-case name="33678particlesM034 tokoe:invalid" result="pass"/><test-case name="33679particlesM035 tokoe:valid" result="pass"/><test-case name="33680particlesM035.v tokoe:valid" result="pass"/><test-case name="33681particlesOa001 tokoe:valid" result="pass"/><test-case name="33682particlesOa001.v tokoe:valid" result="pass"/><test-case name="33683particlesOa002 tokoe:invalid" result="pass"/><test-case name="33684particlesOa003 tokoe:valid" result="pass"/><test-case name="33685particlesOa003.v tokoe:valid" result="pass"/><test-case name="33686particlesOa004 tokoe:invalid" result="pass"/><test-case name="33687particlesOa005 tokoe:invalid" result="pass"/><test-case name="33688particlesOa006 tokoe:valid" result="pass"/><test-case name="33689particlesOa006.v tokoe:valid" result="pass"/><test-case name="33690particlesOa007 tokoe:invalid" result="pass"/><test-case name="33691particlesOa008 tokoe:invalid" result="pass"/><test-case name="33692particlesOa009 tokoe:invalid" result="pass"/><test-case name="33693particlesOa010 tokoe:invalid" result="pass"/><test-case name="33694particlesOa011 tokoe:valid" result="pass"/><test-case name="33695particlesOa011.v tokoe:valid" result="pass"/><test-case name="33696particlesOa012 tokoe:valid" result="pass"/><test-case name="33697particlesOa012.v tokoe:valid" result="pass"/><test-case name="33698particlesOa013 tokoe:valid" result="pass"/><test-case name="33699particlesOa013.v tokoe:valid" result="pass"/><test-case name="33700particlesOa014 tokoe:valid" result="pass"/><test-case name="33701particlesOa014.v tokoe:valid" result="pass"/><test-case name="33702particlesOa015 tokoe:invalid" result="pass"/><test-case name="33703particlesOb003 tokoe:valid" result="pass"/><test-case name="33704particlesOb003.v tokoe:valid" result="pass"/><test-case name="33705particlesOb005 tokoe:valid" result="pass"/><test-case name="33706particlesOb005.v tokoe:valid" result="pass"/><test-case name="33707particlesOb006 tokoe:valid" result="pass"/><test-case name="33708particlesOb006.v tokoe:valid" result="pass"/><test-case name="33709particlesOb007 tokoe:valid" result="pass"/><test-case name="33710particlesOb007.v tokoe:valid" result="pass"/><test-case name="33711particlesOb010 tokoe:invalid" result="pass"/><test-case name="33712particlesOb011 tokoe:invalid" result="pass"/><test-case name="33713particlesOb012 tokoe:valid" result="pass"/><test-case name="33714particlesOb012.v tokoe:valid" result="pass"/><test-case name="33715particlesOb014 tokoe:invalid" result="pass"/><test-case name="33716particlesOb015 tokoe:valid" result="pass"/><test-case name="33717particlesOb015.v tokoe:valid" result="pass"/><test-case name="33718particlesOb016 tokoe:invalid" result="pass"/><test-case name="33719particlesOb017 tokoe:invalid" result="pass"/><test-case name="33720particlesOb019 tokoe:invalid" result="pass"/><test-case name="33721particlesOb020 tokoe:invalid" result="pass"/><test-case name="33722particlesOb021 tokoe:invalid" result="pass"/><test-case name="33723particlesOb022 tokoe:valid" result="pass"/><test-case name="33724particlesOb022.v tokoe:valid" result="pass"/><test-case name="33725particlesOb023 tokoe:invalid" result="pass"/><test-case name="33726particlesOb024 tokoe:invalid" result="pass"/><test-case name="33727particlesOb025 tokoe:invalid" result="pass"/><test-case name="33728particlesOb026 tokoe:invalid" result="pass"/><test-case name="33729particlesOb027 tokoe:invalid" result="pass"/><test-case name="33730particlesOb028 tokoe:invalid" result="pass"/><test-case name="33731particlesOb029 tokoe:invalid" result="pass"/><test-case name="33732particlesOb030 tokoe:invalid" result="pass"/><test-case name="33733particlesOb031 tokoe:invalid" result="pass"/><test-case name="33734particlesOb032 tokoe:valid" result="pass"/><test-case name="33735particlesOb032.v tokoe:valid" result="pass"/><test-case name="33736particlesOb033 tokoe:invalid" result="pass"/><test-case name="33737particlesOb034 tokoe:invalid" result="pass"/><test-case name="33738particlesOb035 tokoe:invalid" result="pass"/><test-case name="33739particlesOb036 tokoe:invalid" result="pass"/><test-case name="33740particlesOb037 tokoe:invalid" result="pass"/><test-case name="33741particlesOb038 tokoe:invalid" result="pass"/><test-case name="33742particlesOb039 tokoe:invalid" result="pass"/><test-case name="33743particlesOb040 tokoe:invalid" result="pass"/><test-case name="33744particlesOb041 tokoe:invalid" result="pass"/><test-case name="33745particlesOb042 tokoe:valid" result="pass"/><test-case name="33746particlesOb042.v tokoe:valid" result="pass"/><test-case name="33747particlesOb043 tokoe:invalid" result="pass"/><test-case name="33748particlesOb044 tokoe:invalid" result="pass"/><test-case name="33749particlesOb045 tokoe:invalid" result="pass"/><test-case name="33750particlesOb046 tokoe:invalid" result="pass"/><test-case name="33751particlesOb047 tokoe:valid" result="pass"/><test-case name="33752particlesOb047.v tokoe:valid" result="pass"/><test-case name="33753particlesOb048 tokoe:valid" result="pass"/><test-case name="33754particlesOb048.v tokoe:valid" result="pass"/><test-case name="33755particlesOb049 tokoe:invalid" result="pass"/><test-case name="33756particlesOb050 tokoe:invalid" result="pass"/><test-case name="33757particlesOb051 tokoe:invalid" result="pass"/><test-case name="33758particlesOb052 tokoe:valid" result="pass"/><test-case name="33759particlesOb052.v tokoe:valid" result="pass"/><test-case name="33760particlesOb053 tokoe:valid" result="pass"/><test-case name="33761particlesOb053.v tokoe:valid" result="pass"/><test-case name="33762particlesOb054 tokoe:valid" result="pass"/><test-case name="33763particlesOb054.v tokoe:valid" result="pass"/><test-case name="33764particlesOb055 tokoe:valid" result="pass"/><test-case name="33765particlesOb055.v tokoe:valid" result="pass"/><test-case name="33766particlesOb056 tokoe:valid" result="pass"/><test-case name="33767particlesOb056.v tokoe:valid" result="pass"/><test-case name="33768particlesOb057 tokoe:valid" result="pass"/><test-case name="33769particlesOb057.v tokoe:valid" result="pass"/><test-case name="33770particlesOb058 tokoe:invalid" result="pass"/><test-case name="33771particlesOb059 tokoe:valid" result="pass"/><test-case name="33772particlesOb059.v tokoe:valid" result="pass"/><test-case name="33773particlesOb060 tokoe:valid" result="pass"/><test-case name="33774particlesOb060.v tokoe:valid" result="pass"/><test-case name="33775particlesP002 tokoe:valid" result="pass"/><test-case name="33776particlesP002.v tokoe:valid" result="pass"/><test-case name="33777particlesS001 tokoe:valid" result="pass"/><test-case name="33778particlesS001.v tokoe:valid" result="pass"/><test-case name="33779particlesS003 tokoe:valid" result="pass"/><test-case name="33780particlesS003.v tokoe:valid" result="pass"/><test-case name="33781particlesS004 tokoe:valid" result="pass"/><test-case name="33782particlesS004.v tokoe:valid" result="pass"/><test-case name="33783particlesS005 tokoe:invalid" result="pass"/><test-case name="33784particlesS006 tokoe:invalid" result="pass"/><test-case name="33785particlesS007 tokoe:valid" result="pass"/><test-case name="33786particlesS007.v tokoe:valid" result="pass"/><test-case name="33787particlesS008 tokoe:invalid" result="pass"/><test-case name="33788particlesS009 tokoe:invalid" result="pass"/><test-case name="33789particlesS010 tokoe:invalid" result="pass"/><test-case name="33790particlesS011 tokoe:valid" result="pass"/><test-case name="33791particlesS011.v tokoe:valid" result="pass"/><test-case name="33792particlesR001 tokoe:valid" result="pass"/><test-case name="33793particlesR001.v tokoe:valid" result="pass"/><test-case name="33794particlesR002 tokoe:valid" result="pass"/><test-case name="33795particlesR002.v tokoe:valid" result="pass"/><test-case name="33796particlesR003 tokoe:valid" result="pass"/><test-case name="33797particlesR003.v tokoe:valid" result="pass"/><test-case name="33798particlesR004 tokoe:valid" result="pass"/><test-case name="33799particlesR004.v tokoe:valid" result="pass"/><test-case name="33800particlesR005 tokoe:valid" result="pass"/><test-case name="33801particlesR005.v tokoe:valid" result="fail"/><test-case name="33802particlesR006 tokoe:invalid" result="pass"/><test-case name="33803particlesR007 tokoe:valid" result="pass"/><test-case name="33804particlesR007.v tokoe:valid" result="pass"/><test-case name="33805particlesR008 tokoe:valid" result="pass"/><test-case name="33806particlesR008.v tokoe:valid" result="pass"/><test-case name="33807particlesR009 tokoe:valid" result="pass"/><test-case name="33808particlesR009.v tokoe:valid" result="pass"/><test-case name="33809particlesR010 tokoe:invalid" result="pass"/><test-case name="33810particlesR011 tokoe:valid" result="pass"/><test-case name="33811particlesR011.v tokoe:valid" result="pass"/><test-case name="33812particlesR012 tokoe:valid" result="pass"/><test-case name="33813particlesR012.v tokoe:valid" result="pass"/><test-case name="33814particlesR013 tokoe:valid" result="pass"/><test-case name="33815particlesR013.v tokoe:valid" result="pass"/><test-case name="33816particlesR014 tokoe:invalid" result="pass"/><test-case name="33817particlesR015 tokoe:valid" result="pass"/><test-case name="33818particlesR015.v tokoe:valid" result="pass"/><test-case name="33819particlesR016 tokoe:valid" result="pass"/><test-case name="33820particlesR016.v tokoe:valid" result="pass"/><test-case name="33821particlesR017 tokoe:valid" result="pass"/><test-case name="33822particlesR017.v tokoe:valid" result="pass"/><test-case name="33823particlesR018 tokoe:invalid" result="pass"/><test-case name="33824particlesR019 tokoe:invalid" result="pass"/><test-case name="33825particlesR020 tokoe:valid" result="pass"/><test-case name="33826particlesR020.v tokoe:valid" result="pass"/><test-case name="33827particlesR021 tokoe:invalid" result="pass"/><test-case name="33828particlesR022 tokoe:valid" result="pass"/><test-case name="33829particlesR022.v tokoe:valid" result="pass"/><test-case name="33830particlesR023 tokoe:invalid" result="pass"/><test-case name="33831particlesR024 tokoe:valid" result="pass"/><test-case name="33832particlesR024.v tokoe:valid" result="pass"/><test-case name="33833particlesR025 tokoe:invalid" result="pass"/><test-case name="33834particlesR026 tokoe:invalid" result="pass"/><test-case name="33835particlesR027 tokoe:invalid" result="pass"/><test-case name="33836particlesR028 tokoe:invalid" result="pass"/><test-case name="33837particlesR029 tokoe:valid" result="pass"/><test-case name="33838particlesR029.v tokoe:valid" result="pass"/><test-case name="33839particlesR030 tokoe:valid" result="pass"/><test-case name="33840particlesR030.v tokoe:valid" result="pass"/><test-case name="33841particlesR031 tokoe:invalid" result="pass"/><test-case name="33842particlesT001 tokoe:valid" result="pass"/><test-case name="33843particlesT001.v tokoe:valid" result="pass"/><test-case name="33844particlesT003 tokoe:valid" result="pass"/><test-case name="33845particlesT003.v tokoe:valid" result="pass"/><test-case name="33846particlesT004 tokoe:valid" result="pass"/><test-case name="33847particlesT004.v tokoe:valid" result="pass"/><test-case name="33848particlesT005 tokoe:valid" result="pass"/><test-case name="33849particlesT005.v tokoe:valid" result="pass"/><test-case name="33850particlesT006 tokoe:valid" result="pass"/><test-case name="33851particlesT006.v tokoe:valid" result="pass"/><test-case name="33852particlesT007 tokoe:valid" result="pass"/><test-case name="33853particlesT007.v tokoe:valid" result="pass"/><test-case name="33854particlesT008 tokoe:invalid" result="pass"/><test-case name="33855particlesT010 tokoe:invalid" result="pass"/><test-case name="33856particlesT011 tokoe:invalid" result="pass"/><test-case name="33857particlesT012 tokoe:valid" result="pass"/><test-case name="33858particlesT012.v tokoe:valid" result="pass"/><test-case name="33859particlesT013 tokoe:valid" result="pass"/><test-case name="33860particlesT013.v tokoe:valid" result="pass"/><test-case name="33861particlesQ001 tokoe:valid" result="pass"/><test-case name="33862particlesQ001.v tokoe:valid" result="pass"/><test-case name="33863particlesQ002 tokoe:valid" result="pass"/><test-case name="33864particlesQ002.v tokoe:valid" result="pass"/><test-case name="33865particlesQ003 tokoe:valid" result="pass"/><test-case name="33866particlesQ003.v tokoe:valid" result="pass"/><test-case name="33867particlesQ004 tokoe:valid" result="pass"/><test-case name="33868particlesQ004.v tokoe:valid" result="pass"/><test-case name="33869particlesQ006 tokoe:invalid" result="pass"/><test-case name="33870particlesQ007 tokoe:valid" result="pass"/><test-case name="33871particlesQ007.v tokoe:valid" result="pass"/><test-case name="33872particlesQ008 tokoe:invalid" result="pass"/><test-case name="33873particlesQ011 tokoe:valid" result="pass"/><test-case name="33874particlesQ011.v tokoe:valid" result="pass"/><test-case name="33875particlesQ012 tokoe:invalid" result="pass"/><test-case name="33876particlesQ013 tokoe:valid" result="pass"/><test-case name="33877particlesQ013.v tokoe:valid" result="pass"/><test-case name="33878particlesQ016 tokoe:valid" result="pass"/><test-case name="33879particlesQ016.v tokoe:valid" result="pass"/><test-case name="33880particlesQ017 tokoe:valid" result="pass"/><test-case name="33881particlesQ017.v tokoe:valid" result="pass"/><test-case name="33882particlesQ018 tokoe:invalid" result="pass"/><test-case name="33883particlesQ019 tokoe:invalid" result="pass"/><test-case name="33884particlesQ020 tokoe:valid" result="pass"/><test-case name="33885particlesQ020.v tokoe:valid" result="pass"/><test-case name="33886particlesQ021 tokoe:invalid" result="pass"/><test-case name="33887particlesQ022 tokoe:valid" result="pass"/><test-case name="33888particlesQ022.v tokoe:valid" result="pass"/><test-case name="33889particlesQ023 tokoe:invalid" result="pass"/><test-case name="33890particlesQ024 tokoe:valid" result="pass"/><test-case name="33891particlesQ024.v tokoe:valid" result="pass"/><test-case name="33892particlesQ025 tokoe:invalid" result="pass"/><test-case name="33893particlesQ026 tokoe:invalid" result="pass"/><test-case name="33894particlesQ027 tokoe:invalid" result="pass"/><test-case name="33895particlesQ028 tokoe:invalid" result="pass"/><test-case name="33896particlesQ029 tokoe:valid" result="pass"/><test-case name="33897particlesQ029.v tokoe:valid" result="pass"/><test-case name="33898particlesQ030 tokoe:valid" result="pass"/><test-case name="33899particlesQ030.v tokoe:valid" result="pass"/><test-case name="33900particlesQ031 tokoe:invalid" result="pass"/><test-case name="33901particlesQ032 tokoe:valid" result="pass"/><test-case name="33902particlesQ032.v tokoe:valid" result="pass"/><test-case name="33903particlesU001 tokoe:invalid" result="pass"/><test-case name="33904particlesU002 tokoe:invalid" result="pass"/><test-case name="33905particlesU003 tokoe:valid" result="pass"/><test-case name="33906particlesU003.v tokoe:valid" result="pass"/><test-case name="33907particlesU004 tokoe:valid" result="pass"/><test-case name="33908particlesU004.v tokoe:valid" result="pass"/><test-case name="33909particlesU005 tokoe:valid" result="pass"/><test-case name="33910particlesU005.v tokoe:valid" result="pass"/><test-case name="33911particlesU006 tokoe:invalid" result="pass"/><test-case name="33912particlesU007 tokoe:valid" result="pass"/><test-case name="33913particlesU007.v tokoe:valid" result="pass"/><test-case name="33914particlesU008 tokoe:invalid" result="pass"/><test-case name="33915particlesU009 tokoe:invalid" result="pass"/><test-case name="33916particlesV003 tokoe:valid" result="pass"/><test-case name="33917particlesV003.v tokoe:valid" result="pass"/><test-case name="33918particlesV004 tokoe:valid" result="pass"/><test-case name="33919particlesV004.v tokoe:valid" result="pass"/><test-case name="33920particlesV005 tokoe:invalid" result="pass"/><test-case name="33921particlesV006 tokoe:valid" result="pass"/><test-case name="33922particlesV006.v tokoe:valid" result="pass"/><test-case name="33923particlesV007 tokoe:valid" result="pass"/><test-case name="33924particlesV007.v tokoe:valid" result="pass"/><test-case name="33925particlesV008 tokoe:valid" result="pass"/><test-case name="33926particlesV008.v tokoe:valid" result="pass"/><test-case name="33927particlesV009 tokoe:valid" result="pass"/><test-case name="33928particlesV009.v tokoe:valid" result="pass"/><test-case name="33929particlesV010 tokoe:valid" result="pass"/><test-case name="33930particlesV010.v tokoe:valid" result="pass"/><test-case name="33931particlesV011 tokoe:valid" result="pass"/><test-case name="33932particlesV011.v tokoe:valid" result="pass"/><test-case name="33933particlesV012 tokoe:valid" result="pass"/><test-case name="33934particlesV012.v tokoe:valid" result="pass"/><test-case name="33935particlesV013 tokoe:valid" result="pass"/><test-case name="33936particlesV013.v tokoe:valid" result="pass"/><test-case name="33937particlesV014 tokoe:valid" result="pass"/><test-case name="33938particlesV014.v tokoe:valid" result="pass"/><test-case name="33939particlesV015 tokoe:valid" result="pass"/><test-case name="33940particlesV015.v tokoe:valid" result="pass"/><test-case name="33941particlesV016 tokoe:invalid" result="pass"/><test-case name="33942particlesV017 tokoe:invalid" result="pass"/><test-case name="33943particlesV018 tokoe:invalid" result="pass"/><test-case name="33944particlesW001 tokoe:valid" result="pass"/><test-case name="33945particlesW001.v tokoe:valid" result="pass"/><test-case name="33946particlesW002 tokoe:invalid" result="pass"/><test-case name="33947particlesW003 tokoe:valid" result="pass"/><test-case name="33948particlesW003.v tokoe:valid" result="pass"/><test-case name="33949particlesW005 tokoe:invalid" result="pass"/><test-case name="33950particlesW006 tokoe:valid" result="pass"/><test-case name="33951particlesW007 tokoe:invalid" result="pass"/><test-case name="33952particlesW008 tokoe:valid" result="pass"/><test-case name="33953particlesW008.v tokoe:valid" result="pass"/><test-case name="33954particlesW010 tokoe:invalid" result="pass"/><test-case name="33955particlesW011 tokoe:valid" result="pass"/><test-case name="33956particlesW011.v tokoe:valid" result="pass"/><test-case name="33957particlesW012 tokoe:invalid" result="pass"/><test-case name="33958particlesW013 tokoe:invalid" result="pass"/><test-case name="33959particlesW014 tokoe:invalid" result="pass"/><test-case name="33960particlesW015 tokoe:invalid" result="pass"/><test-case name="33961particlesW016 tokoe:valid" result="pass"/><test-case name="33962particlesW016.v tokoe:valid" result="pass"/><test-case name="33963particlesZ002 tokoe:valid" result="pass"/><test-case name="33964particlesZ002.v tokoe:valid" result="pass"/><test-case name="33965particlesZ003 tokoe:valid" result="pass"/><test-case name="33966particlesZ003.v tokoe:valid" result="pass"/><test-case name="33967particlesZ008 tokoe:valid" result="pass"/><test-case name="33968particlesZ008.v tokoe:valid" result="pass"/><test-case name="33969particlesZ009 tokoe:invalid" result="pass"/><test-case name="33970particlesZ010 tokoe:valid" result="pass"/><test-case name="33971particlesZ011 tokoe:invalid" result="pass"/><test-case name="33972particlesZ012 tokoe:valid" result="pass"/><test-case name="33973particlesZ012.v tokoe:valid" result="pass"/><test-case name="33974particlesZ013 tokoe:invalid" result="pass"/><test-case name="33975particlesZ014 tokoe:invalid" result="pass"/><test-case name="33976particlesZ015 tokoe:valid" result="pass"/><test-case name="33977particlesZ015.i tokoe:invalid" result="pass"/><test-case name="33978particlesZ016 tokoe:valid" result="pass"/><test-case name="33979particlesZ016.i tokoe:invalid" result="pass"/><test-case name="33980particlesZ017 tokoe:invalid" result="pass"/><test-case name="33981particlesZ018 tokoe:invalid" result="pass"/><test-case name="33982particlesZ020 tokoe:valid" result="pass"/><test-case name="33983particlesZ021 tokoe:invalid" result="pass"/><test-case name="33984particlesZ022 tokoe:invalid" result="pass"/><test-case name="33985particlesZ030_a tokoe:valid" result="pass"/><test-case name="33986particlesZ030_b tokoe:valid" result="pass"/><test-case name="33987particlesZ030_c tokoe:valid" result="pass"/><test-case name="33988particlesZ030_d tokoe:invalid" result="pass"/><test-case name="33989particlesZ031 tokoe:valid" result="fail"/><test-case name="33990particlesZ033_a tokoe:valid" result="fail"/><test-case name="33991particlesZ037 tokoe:invalid" result="pass"/><test-case name="33992particlesZ038 tokoe:valid" result="pass"/><test-case name="33993particlesZ039 tokoe:invalid" result="pass"/><test-case name="33994particlesZ040 tokoe:valid" result="pass"/><test-case name="33995particlesZ040.i tokoe:valid" result="pass"/><test-case name="33996reA1 tokoe:valid" result="pass"/><test-case name="33997reA1.v tokoe:valid" result="pass"/><test-case name="33998reA2 tokoe:valid" result="pass"/><test-case name="33999reA2.i tokoe:invalid" result="pass"/><test-case name="34000reA3 tokoe:valid" result="pass"/><test-case name="34001reA3.i tokoe:invalid" result="pass"/><test-case name="34002reA4 tokoe:valid" result="pass"/><test-case name="34003reA4.i tokoe:invalid" result="pass"/><test-case name="34004reA5 tokoe:valid" result="pass"/><test-case name="34005reA5.i tokoe:invalid" result="pass"/><test-case name="34006reA6 tokoe:valid" result="pass"/><test-case name="34007reA6.i tokoe:invalid" result="pass"/><test-case name="34008reA7 tokoe:valid" result="pass"/><test-case name="34009reA7.v tokoe:valid" result="pass"/><test-case name="34010reA8 tokoe:valid" result="pass"/><test-case name="34011reA8.v tokoe:valid" result="pass"/><test-case name="34012reA9 tokoe:valid" result="pass"/><test-case name="34013reA9.i tokoe:invalid" result="pass"/><test-case name="34014reA10 tokoe:valid" result="pass"/><test-case name="34015reA10.i tokoe:invalid" result="pass"/><test-case name="34016reA11 tokoe:valid" result="pass"/><test-case name="34017reA11.i tokoe:invalid" result="pass"/><test-case name="34018reA12 tokoe:valid" result="pass"/><test-case name="34019reA12.v tokoe:valid" result="pass"/><test-case name="34020reA13 tokoe:valid" result="pass"/><test-case name="34021reA13.i tokoe:invalid" result="pass"/><test-case name="34022reA14 tokoe:valid" result="pass"/><test-case name="34023reA14.i tokoe:invalid" result="pass"/><test-case name="34024reA15 tokoe:valid" result="pass"/><test-case name="34025reA15.i tokoe:invalid" result="pass"/><test-case name="34026reA16 tokoe:valid" result="pass"/><test-case name="34027reA16.v tokoe:valid" result="pass"/><test-case name="34028reA17 tokoe:valid" result="pass"/><test-case name="34029reA17.v tokoe:valid" result="pass"/><test-case name="34030reA18 tokoe:valid" result="pass"/><test-case name="34031reA18.i tokoe:invalid" result="pass"/><test-case name="34032reA19 tokoe:valid" result="pass"/><test-case name="34033reA19.i tokoe:invalid" result="pass"/><test-case name="34034reA20 tokoe:valid" result="pass"/><test-case name="34035reA20.i tokoe:invalid" result="pass"/><test-case name="34036reA21 tokoe:valid" result="pass"/><test-case name="34037reA21.i tokoe:invalid" result="pass"/><test-case name="34038reA22 tokoe:valid" result="pass"/><test-case name="34039reA22.i tokoe:invalid" result="pass"/><test-case name="34040reA23 tokoe:valid" result="pass"/><test-case name="34041reA23.i tokoe:invalid" result="pass"/><test-case name="34042reA24 tokoe:valid" result="pass"/><test-case name="34043reA24.v tokoe:valid" result="pass"/><test-case name="34044reA25 tokoe:valid" result="pass"/><test-case name="34045reA25.i tokoe:invalid" result="pass"/><test-case name="34046reA26 tokoe:valid" result="pass"/><test-case name="34047reA26.i tokoe:invalid" result="pass"/><test-case name="34048reA27 tokoe:valid" result="pass"/><test-case name="34049reA27.i tokoe:invalid" result="pass"/><test-case name="34050reA28 tokoe:valid" result="pass"/><test-case name="34051reA28.v tokoe:valid" result="pass"/><test-case name="34052reA29 tokoe:valid" result="pass"/><test-case name="34053reA29.v tokoe:valid" result="pass"/><test-case name="34054reA30 tokoe:valid" result="pass"/><test-case name="34055reA30.v tokoe:valid" result="pass"/><test-case name="34056reA31 tokoe:valid" result="pass"/><test-case name="34057reA31.v tokoe:valid" result="pass"/><test-case name="34058reA32 tokoe:valid" result="pass"/><test-case name="34059reA32.i tokoe:invalid" result="pass"/><test-case name="34060reA33 tokoe:valid" result="pass"/><test-case name="34061reA33.i tokoe:invalid" result="pass"/><test-case name="34062reA34 tokoe:valid" result="pass"/><test-case name="34063reA34.i tokoe:invalid" result="pass"/><test-case name="34064reA35 tokoe:valid" result="pass"/><test-case name="34065reA36 tokoe:valid" result="pass"/><test-case name="34066reA37 tokoe:valid" result="pass"/><test-case name="34067reA38 tokoe:valid" result="pass"/><test-case name="34068reA39 tokoe:valid" result="pass"/><test-case name="34069reA40 tokoe:valid" result="pass"/><test-case name="34070reA45 tokoe:valid" result="pass"/><test-case name="34071reA45.v tokoe:valid" result="pass"/><test-case name="34072reB1 tokoe:valid" result="pass"/><test-case name="34073reB1.v tokoe:valid" result="pass"/><test-case name="34074reB2 tokoe:valid" result="pass"/><test-case name="34075reB2.v tokoe:valid" result="pass"/><test-case name="34076reB3 tokoe:valid" result="pass"/><test-case name="34077reB3.i tokoe:invalid" result="pass"/><test-case name="34078reB4 tokoe:valid" result="pass"/><test-case name="34079reB4.i tokoe:invalid" result="pass"/><test-case name="34080reB5 tokoe:valid" result="pass"/><test-case name="34081reB5.i tokoe:invalid" result="pass"/><test-case name="34082reB10 tokoe:valid" result="pass"/><test-case name="34083reB10.i tokoe:invalid" result="pass"/><test-case name="34084reB11 tokoe:valid" result="pass"/><test-case name="34085reB11.v tokoe:valid" result="pass"/><test-case name="34086reB12 tokoe:valid" result="pass"/><test-case name="34087reB12.v tokoe:valid" result="pass"/><test-case name="34088reB13 tokoe:valid" result="pass"/><test-case name="34089reB13.i tokoe:invalid" result="pass"/><test-case name="34090reB14 tokoe:valid" result="pass"/><test-case name="34091reB14.i tokoe:invalid" result="pass"/><test-case name="34092reB15 tokoe:valid" result="pass"/><test-case name="34093reB15.i tokoe:invalid" result="pass"/><test-case name="34094reB16 tokoe:valid" result="pass"/><test-case name="34095reB16.i tokoe:invalid" result="pass"/><test-case name="34096reB17 tokoe:valid" result="pass"/><test-case name="34097reB17.v tokoe:valid" result="pass"/><test-case name="34098reB18 tokoe:valid" result="pass"/><test-case name="34099reB18.v tokoe:valid" result="pass"/><test-case name="34100reB19 tokoe:valid" result="pass"/><test-case name="34101reB19.i tokoe:invalid" result="pass"/><test-case name="34102reB20 tokoe:valid" result="pass"/><test-case name="34103reB20.i tokoe:invalid" result="pass"/><test-case name="34104reB21 tokoe:valid" result="pass"/><test-case name="34105reB21.i tokoe:invalid" result="pass"/><test-case name="34106reB22 tokoe:valid" result="pass"/><test-case name="34107reB22.i tokoe:invalid" result="pass"/><test-case name="34108reB23 tokoe:valid" result="pass"/><test-case name="34109reB23.v tokoe:valid" result="pass"/><test-case name="34110reB24 tokoe:valid" result="pass"/><test-case name="34111reB24.v tokoe:valid" result="pass"/><test-case name="34112reB25 tokoe:valid" result="pass"/><test-case name="34113reB25.i tokoe:invalid" result="pass"/><test-case name="34114reB26 tokoe:valid" result="pass"/><test-case name="34115reB26.i tokoe:invalid" result="pass"/><test-case name="34116reB27 tokoe:valid" result="pass"/><test-case name="34117reB27.i tokoe:invalid" result="pass"/><test-case name="34118reB28 tokoe:valid" result="pass"/><test-case name="34119reB28.v tokoe:valid" result="pass"/><test-case name="34120reB29 tokoe:valid" result="pass"/><test-case name="34121reB29.v tokoe:valid" result="pass"/><test-case name="34122reB30 tokoe:valid" result="pass"/><test-case name="34123reB30.v tokoe:valid" result="pass"/><test-case name="34124reB31 tokoe:valid" result="pass"/><test-case name="34125reB31.i tokoe:invalid" result="pass"/><test-case name="34126reB32 tokoe:valid" result="pass"/><test-case name="34127reB32.i tokoe:invalid" result="pass"/><test-case name="34128reB33 tokoe:valid" result="pass"/><test-case name="34129reB33.i tokoe:invalid" result="pass"/><test-case name="34130reB34 tokoe:valid" result="pass"/><test-case name="34131reB34.i tokoe:invalid" result="pass"/><test-case name="34132reB35 tokoe:valid" result="pass"/><test-case name="34133reB35.i tokoe:invalid" result="pass"/><test-case name="34134reB36 tokoe:valid" result="pass"/><test-case name="34135reB36.i tokoe:invalid" result="pass"/><test-case name="34136reB37 tokoe:valid" result="pass"/><test-case name="34137reB37.v tokoe:valid" result="pass"/><test-case name="34138reB38 tokoe:valid" result="pass"/><test-case name="34139reB38.v tokoe:valid" result="pass"/><test-case name="34140reB39 tokoe:valid" result="pass"/><test-case name="34141reB39.v tokoe:valid" result="pass"/><test-case name="34142reB40 tokoe:valid" result="pass"/><test-case name="34143reB40.i tokoe:invalid" result="pass"/><test-case name="34144reB41 tokoe:valid" result="pass"/><test-case name="34145reB41.i tokoe:invalid" result="pass"/><test-case name="34146reB42 tokoe:valid" result="pass"/><test-case name="34147reB42.i tokoe:invalid" result="pass"/><test-case name="34148reB43 tokoe:valid" result="pass"/><test-case name="34149reB43.i tokoe:invalid" result="pass"/><test-case name="34150reB44 tokoe:valid" result="pass"/><test-case name="34151reB44.v tokoe:valid" result="pass"/><test-case name="34152reB45 tokoe:valid" result="pass"/><test-case name="34153reB45.v tokoe:valid" result="pass"/><test-case name="34154reB46 tokoe:valid" result="pass"/><test-case name="34155reB46.v tokoe:valid" result="pass"/><test-case name="34156reB47 tokoe:valid" result="pass"/><test-case name="34157reB47.v tokoe:valid" result="pass"/><test-case name="34158reB48 tokoe:valid" result="pass"/><test-case name="34159reB48.v tokoe:valid" result="pass"/><test-case name="34160reB49 tokoe:valid" result="pass"/><test-case name="34161reB49.i tokoe:invalid" result="pass"/><test-case name="34162reB50 tokoe:valid" result="pass"/><test-case name="34163reB50.i tokoe:invalid" result="pass"/><test-case name="34164reB51 tokoe:valid" result="pass"/><test-case name="34165reB51.i tokoe:invalid" result="pass"/><test-case name="34166reB52 tokoe:valid" result="pass"/><test-case name="34167reB52.i tokoe:invalid" result="pass"/><test-case name="34168reB53 tokoe:valid" result="pass"/><test-case name="34169reB53.i tokoe:invalid" result="pass"/><test-case name="34170reB54 tokoe:valid" result="pass"/><test-case name="34171reB54.v tokoe:valid" result="pass"/><test-case name="34172reB55 tokoe:valid" result="pass"/><test-case name="34173reB55.v tokoe:valid" result="pass"/><test-case name="34174reB56 tokoe:valid" result="pass"/><test-case name="34175reB56.v tokoe:valid" result="pass"/><test-case name="34176reB57 tokoe:valid" result="pass"/><test-case name="34177reB57.v tokoe:valid" result="pass"/><test-case name="34178reB58 tokoe:valid" result="pass"/><test-case name="34179reB58.i tokoe:invalid" result="pass"/><test-case name="34180reB59 tokoe:valid" result="pass"/><test-case name="34181reB59.i tokoe:invalid" result="pass"/><test-case name="34182reB60 tokoe:valid" result="pass"/><test-case name="34183reB60.i tokoe:invalid" result="pass"/><test-case name="34184reB61 tokoe:valid" result="pass"/><test-case name="34185reB61.i tokoe:invalid" result="pass"/><test-case name="34186reB62 tokoe:invalid" result="pass"/><test-case name="34187reB63 tokoe:invalid" result="pass"/><test-case name="34188reB64 tokoe:invalid" result="pass"/><test-case name="34189reB65 tokoe:invalid" result="pass"/><test-case name="34190reB78 tokoe:valid" result="pass"/><test-case name="34191reB78.v tokoe:valid" result="pass"/><test-case name="34192reB79 tokoe:invalid" result="pass"/><test-case name="34193reB80 tokoe:invalid" result="pass"/><test-case name="34194reC1 tokoe:valid" result="pass"/><test-case name="34195reC1.i tokoe:invalid" result="pass"/><test-case name="34196reC2 tokoe:valid" result="pass"/><test-case name="34197reC2.v tokoe:valid" result="pass"/><test-case name="34198reC3 tokoe:valid" result="pass"/><test-case name="34199reC3.v tokoe:valid" result="pass"/><test-case name="34200reC4 tokoe:valid" result="pass"/><test-case name="34201reC4.v tokoe:valid" result="pass"/><test-case name="34202reC5 tokoe:valid" result="pass"/><test-case name="34203reC5.i tokoe:invalid" result="pass"/><test-case name="34204reC6 tokoe:valid" result="pass"/><test-case name="34205reC6.i tokoe:invalid" result="pass"/><test-case name="34206reC7 tokoe:valid" result="pass"/><test-case name="34207reC7.i tokoe:invalid" result="pass"/><test-case name="34208reC8 tokoe:valid" result="pass"/><test-case name="34209reC8.i tokoe:invalid" result="pass"/><test-case name="34210reC9 tokoe:valid" result="pass"/><test-case name="34211reC9.v tokoe:valid" result="pass"/><test-case name="34212reC10 tokoe:valid" result="pass"/><test-case name="34213reC10.v tokoe:valid" result="pass"/><test-case name="34214reC11 tokoe:valid" result="pass"/><test-case name="34215reC11.v tokoe:valid" result="pass"/><test-case name="34216reC12 tokoe:valid" result="pass"/><test-case name="34217reC12.i tokoe:invalid" result="pass"/><test-case name="34218reC13 tokoe:valid" result="pass"/><test-case name="34219reC13.i tokoe:invalid" result="pass"/><test-case name="34220reC14 tokoe:valid" result="pass"/><test-case name="34221reC14.i tokoe:invalid" result="pass"/><test-case name="34222reC15 tokoe:valid" result="pass"/><test-case name="34223reC15.i tokoe:invalid" result="pass"/><test-case name="34224reC16 tokoe:valid" result="pass"/><test-case name="34225reC16.v tokoe:valid" result="pass"/><test-case name="34226reC17 tokoe:valid" result="pass"/><test-case name="34227reC17.v tokoe:valid" result="pass"/><test-case name="34228reC18 tokoe:valid" result="pass"/><test-case name="34229reC18.v tokoe:valid" result="pass"/><test-case name="34230reC19 tokoe:valid" result="pass"/><test-case name="34231reC19.i tokoe:invalid" result="pass"/><test-case name="34232reC20 tokoe:valid" result="pass"/><test-case name="34233reC20.i tokoe:invalid" result="pass"/><test-case name="34234reC21 tokoe:valid" result="pass"/><test-case name="34235reC21.i tokoe:invalid" result="pass"/><test-case name="34236reC22 tokoe:valid" result="pass"/><test-case name="34237reC22.v tokoe:valid" result="pass"/><test-case name="34238reC23 tokoe:valid" result="pass"/><test-case name="34239reC23.i tokoe:invalid" result="pass"/><test-case name="34240reC24 tokoe:valid" result="pass"/><test-case name="34241reC24.i tokoe:invalid" result="pass"/><test-case name="34242reC25 tokoe:valid" result="pass"/><test-case name="34243reC25.i tokoe:invalid" result="pass"/><test-case name="34244reC26 tokoe:valid" result="pass"/><test-case name="34245reC26.i tokoe:invalid" result="pass"/><test-case name="34246reC27 tokoe:valid" result="pass"/><test-case name="34247reC27.i tokoe:invalid" result="pass"/><test-case name="34248reC28 tokoe:valid" result="pass"/><test-case name="34249reC28.v tokoe:valid" result="pass"/><test-case name="34250reC29 tokoe:valid" result="pass"/><test-case name="34251reC29.i tokoe:invalid" result="pass"/><test-case name="34252reC30 tokoe:valid" result="pass"/><test-case name="34253reC30.i tokoe:invalid" result="pass"/><test-case name="34254reC31 tokoe:valid" result="pass"/><test-case name="34255reC31.i tokoe:invalid" result="pass"/><test-case name="34256reC32 tokoe:valid" result="pass"/><test-case name="34257reC32.v tokoe:valid" result="pass"/><test-case name="34258reC33 tokoe:valid" result="pass"/><test-case name="34259reC33.v tokoe:valid" result="pass"/><test-case name="34260reC34 tokoe:valid" result="pass"/><test-case name="34261reC34.v tokoe:valid" result="pass"/><test-case name="34262reC35 tokoe:valid" result="pass"/><test-case name="34263reC35.v tokoe:valid" result="pass"/><test-case name="34264reC36 tokoe:valid" result="pass"/><test-case name="34265reC36.i tokoe:invalid" result="pass"/><test-case name="34266reC37 tokoe:valid" result="pass"/><test-case name="34267reC37.i tokoe:invalid" result="pass"/><test-case name="34268reC38 tokoe:valid" result="pass"/><test-case name="34269reC38.i tokoe:invalid" result="pass"/><test-case name="34270reC39 tokoe:valid" result="pass"/><test-case name="34271reC39.i tokoe:invalid" result="pass"/><test-case name="34272reC40 tokoe:valid" result="pass"/><test-case name="34273reC40.i tokoe:invalid" result="pass"/><test-case name="34274reC41 tokoe:valid" result="pass"/><test-case name="34275reC41.v tokoe:valid" result="pass"/><test-case name="34276reC42 tokoe:valid" result="pass"/><test-case name="34277reC42.v tokoe:valid" result="pass"/><test-case name="34278reC43 tokoe:valid" result="pass"/><test-case name="34279reC43.v tokoe:valid" result="pass"/><test-case name="34280reC44 tokoe:valid" result="pass"/><test-case name="34281reC44.i tokoe:invalid" result="pass"/><test-case name="34282reC45 tokoe:valid" result="pass"/><test-case name="34283reC45.i tokoe:invalid" result="pass"/><test-case name="34284reC46 tokoe:valid" result="pass"/><test-case name="34285reC46.i tokoe:invalid" result="pass"/><test-case name="34286reC47 tokoe:valid" result="pass"/><test-case name="34287reC47.i tokoe:invalid" result="pass"/><test-case name="34288reC48 tokoe:valid" result="pass"/><test-case name="34289reC48.i tokoe:invalid" result="pass"/><test-case name="34290reC49 tokoe:valid" result="pass"/><test-case name="34291reC49.v tokoe:valid" result="pass"/><test-case name="34292reC50 tokoe:valid" result="pass"/><test-case name="34293reC50.v tokoe:valid" result="pass"/><test-case name="34294reC51 tokoe:valid" result="pass"/><test-case name="34295reC51.v tokoe:valid" result="pass"/><test-case name="34296reC52 tokoe:valid" result="pass"/><test-case name="34297reC52.i tokoe:invalid" result="pass"/><test-case name="34298reC53 tokoe:valid" result="pass"/><test-case name="34299reC53.i tokoe:invalid" result="pass"/><test-case name="34300reC54 tokoe:valid" result="pass"/><test-case name="34301reC54.i tokoe:invalid" result="pass"/><test-case name="34302reC55 tokoe:valid" result="pass"/><test-case name="34303reC55.i tokoe:invalid" result="pass"/><test-case name="34304reC56 tokoe:valid" result="pass"/><test-case name="34305reC56.v tokoe:valid" result="pass"/><test-case name="34306reC57 tokoe:valid" result="pass"/><test-case name="34307reC57.v tokoe:valid" result="pass"/><test-case name="34308reC58 tokoe:valid" result="pass"/><test-case name="34309reC58.v tokoe:valid" result="pass"/><test-case name="34310reC59 tokoe:valid" result="pass"/><test-case name="34311reC59.i tokoe:invalid" result="pass"/><test-case name="34312reC60 tokoe:valid" result="pass"/><test-case name="34313reC60.i tokoe:invalid" result="pass"/><test-case name="34314reC61 tokoe:valid" result="pass"/><test-case name="34315reC61.i tokoe:invalid" result="pass"/><test-case name="34316reC62 tokoe:valid" result="pass"/><test-case name="34317reC62.i tokoe:invalid" result="pass"/><test-case name="34318reC63 tokoe:valid" result="pass"/><test-case name="34319reC63.i tokoe:invalid" result="pass"/><test-case name="34320reC64 tokoe:valid" result="pass"/><test-case name="34321reC64.i tokoe:invalid" result="pass"/><test-case name="34322reC69 tokoe:invalid" result="pass"/><test-case name="34323reC70 tokoe:valid" result="pass"/><test-case name="34324reC70.v tokoe:valid" result="pass"/><test-case name="34325reC71 tokoe:valid" result="pass"/><test-case name="34326reC71.i tokoe:invalid" result="pass"/><test-case name="34327reC72 tokoe:valid" result="pass"/><test-case name="34328reC72.i tokoe:invalid" result="pass"/><test-case name="34329reC73 tokoe:valid" result="pass"/><test-case name="34330reC73.v tokoe:valid" result="pass"/><test-case name="34331reC74 tokoe:valid" result="pass"/><test-case name="34332reC74.v tokoe:valid" result="pass"/><test-case name="34333reC75 tokoe:valid" result="pass"/><test-case name="34334reC75.v tokoe:valid" result="pass"/><test-case name="34335reC76 tokoe:valid" result="pass"/><test-case name="34336reC76.v tokoe:valid" result="pass"/><test-case name="34337reC77 tokoe:valid" result="pass"/><test-case name="34338reC77.v tokoe:valid" result="pass"/><test-case name="34339reC78 tokoe:valid" result="pass"/><test-case name="34340reC78.v tokoe:valid" result="pass"/><test-case name="34341reC79 tokoe:valid" result="pass"/><test-case name="34342reC79.i tokoe:invalid" result="pass"/><test-case name="34343reC80 tokoe:valid" result="pass"/><test-case name="34344reC80.i tokoe:invalid" result="pass"/><test-case name="34345reC81 tokoe:valid" result="pass"/><test-case name="34346reC81.i tokoe:invalid" result="pass"/><test-case name="34347reC82 tokoe:valid" result="pass"/><test-case name="34348reC82.i tokoe:invalid" result="pass"/><test-case name="34349reC83 tokoe:valid" result="pass"/><test-case name="34350reC83.i tokoe:invalid" result="pass"/><test-case name="34351reC84 tokoe:valid" result="pass"/><test-case name="34352reC84.i tokoe:invalid" result="pass"/><test-case name="34353reD1 tokoe:valid" result="pass"/><test-case name="34354reD1.v tokoe:valid" result="pass"/><test-case name="34355reD2 tokoe:valid" result="pass"/><test-case name="34356reD2.v tokoe:valid" result="pass"/><test-case name="34357reD3 tokoe:valid" result="pass"/><test-case name="34358reD3.v tokoe:valid" result="pass"/><test-case name="34359reD4 tokoe:valid" result="pass"/><test-case name="34360reD4.v tokoe:valid" result="pass"/><test-case name="34361reD5 tokoe:valid" result="pass"/><test-case name="34362reD5.v tokoe:valid" result="pass"/><test-case name="34363reD6 tokoe:valid" result="pass"/><test-case name="34364reD6.v tokoe:valid" result="pass"/><test-case name="34365reD7 tokoe:valid" result="pass"/><test-case name="34366reD7.i tokoe:invalid" result="pass"/><test-case name="34367reD8 tokoe:valid" result="pass"/><test-case name="34368reD8.i tokoe:invalid" result="pass"/><test-case name="34369reD9 tokoe:invalid" result="pass"/><test-case name="34370reD10 tokoe:invalid" result="pass"/><test-case name="34371reD11 tokoe:invalid" result="pass"/><test-case name="34372reD12 tokoe:invalid" result="pass"/><test-case name="34373reE2 tokoe:invalid" result="pass"/><test-case name="34374reE3 tokoe:invalid" result="pass"/><test-case name="34375reE4 tokoe:invalid" result="pass"/><test-case name="34376reE5 tokoe:invalid" result="pass"/><test-case name="34377reE8 tokoe:invalid" result="pass"/><test-case name="34378reE9 tokoe:invalid" result="pass"/><test-case name="34379reE10 tokoe:valid" result="pass"/><test-case name="34380reE10.v tokoe:valid" result="pass"/><test-case name="34381reE11 tokoe:invalid" result="pass"/><test-case name="34382reE13 tokoe:valid" result="pass"/><test-case name="34383reE13.v tokoe:valid" result="pass"/><test-case name="34384reE14 tokoe:valid" result="pass"/><test-case name="34385reE14.v tokoe:valid" result="pass"/><test-case name="34386reF4 tokoe:valid" result="pass"/><test-case name="34387reF4.v tokoe:valid" result="pass"/><test-case name="34388reF6 tokoe:valid" result="pass"/><test-case name="34389reF6.i tokoe:invalid" result="pass"/><test-case name="34390reF7 tokoe:valid" result="pass"/><test-case name="34391reF7.v tokoe:valid" result="pass"/><test-case name="34392reF8 tokoe:valid" result="pass"/><test-case name="34393reF8.i tokoe:invalid" result="pass"/><test-case name="34394reF9 tokoe:valid" result="pass"/><test-case name="34395reF9.v tokoe:valid" result="pass"/><test-case name="34396reF10 tokoe:valid" result="pass"/><test-case name="34397reF10.v tokoe:valid" result="pass"/><test-case name="34398reF11 tokoe:valid" result="pass"/><test-case name="34399reF11.v tokoe:valid" result="pass"/><test-case name="34400reF12 tokoe:valid" result="pass"/><test-case name="34401reF12.v tokoe:valid" result="pass"/><test-case name="34402reF13 tokoe:valid" result="pass"/><test-case name="34403reF13.i tokoe:invalid" result="pass"/><test-case name="34404reF14 tokoe:valid" result="pass"/><test-case name="34405reF14.i tokoe:invalid" result="pass"/><test-case name="34406reF15 tokoe:valid" result="pass"/><test-case name="34407reF15.i tokoe:invalid" result="pass"/><test-case name="34408reF17 tokoe:valid" result="fail"/><test-case name="34409reF17.i tokoe:invalid" result="pass"/><test-case name="34410reF18 tokoe:valid" result="fail"/><test-case name="34411reF18.i tokoe:invalid" result="pass"/><test-case name="34412reF20 tokoe:valid" result="pass"/><test-case name="34413reF20.i tokoe:invalid" result="pass"/><test-case name="34414reF21 tokoe:valid" result="pass"/><test-case name="34415reF21.i tokoe:invalid" result="pass"/><test-case name="34416reF22 tokoe:valid" result="pass"/><test-case name="34417reF22.i tokoe:invalid" result="pass"/><test-case name="34418reF23 tokoe:valid" result="pass"/><test-case name="34419reF23.i tokoe:invalid" result="pass"/><test-case name="34420reF32 tokoe:valid" result="pass"/><test-case name="34421reF32.v tokoe:valid" result="pass"/><test-case name="34422reF34 tokoe:valid" result="fail"/><test-case name="34423reF34.i tokoe:invalid" result="pass"/><test-case name="34424reF36 tokoe:valid" result="fail"/><test-case name="34425reF36.i tokoe:invalid" result="pass"/><test-case name="34426reF39 tokoe:valid" result="fail"/><test-case name="34427reF39.i tokoe:invalid" result="pass"/><test-case name="34428reF40 tokoe:valid" result="pass"/><test-case name="34429reF40.v tokoe:valid" result="pass"/><test-case name="34430reF41 tokoe:valid" result="pass"/><test-case name="34431reF41.i tokoe:invalid" result="pass"/><test-case name="34432reF42 tokoe:valid" result="pass"/><test-case name="34433reF42.i tokoe:invalid" result="pass"/><test-case name="34434reF43 tokoe:valid" result="pass"/><test-case name="34435reF43.v tokoe:valid" result="pass"/><test-case name="34436reF44 tokoe:valid" result="pass"/><test-case name="34437reF44.i tokoe:invalid" result="pass"/><test-case name="34438reF45 tokoe:valid" result="pass"/><test-case name="34439reF45.v tokoe:valid" result="pass"/><test-case name="34440reF46 tokoe:valid" result="pass"/><test-case name="34441reF46.v tokoe:valid" result="pass"/><test-case name="34442reF47 tokoe:valid" result="pass"/><test-case name="34443reF47.i tokoe:invalid" result="pass"/><test-case name="34444reF48 tokoe:valid" result="pass"/><test-case name="34445reF48.i tokoe:invalid" result="pass"/><test-case name="34446reF49 tokoe:valid" result="pass"/><test-case name="34447reF49.i tokoe:invalid" result="pass"/><test-case name="34448reF50 tokoe:valid" result="pass"/><test-case name="34449reF50.i tokoe:invalid" result="pass"/><test-case name="34450reF51 tokoe:valid" result="pass"/><test-case name="34451reF51.i tokoe:invalid" result="pass"/><test-case name="34452reF52 tokoe:valid" result="pass"/><test-case name="34453reF52.i tokoe:invalid" result="pass"/><test-case name="34454reF53 tokoe:valid" result="pass"/><test-case name="34455reF53.i tokoe:invalid" result="pass"/><test-case name="34456reF54 tokoe:valid" result="pass"/><test-case name="34457reF54.v tokoe:valid" result="pass"/><test-case name="34458reF55 tokoe:valid" result="pass"/><test-case name="34459reF55.v tokoe:valid" result="pass"/><test-case name="34460reF56 tokoe:valid" result="fail"/><test-case name="34461reF57 tokoe:invalid" result="fail"/><test-case name="34462reG2 tokoe:valid" result="pass"/><test-case name="34463reG2.i tokoe:invalid" result="pass"/><test-case name="34464reG3 tokoe:valid" result="pass"/><test-case name="34465reG3.i tokoe:invalid" result="pass"/><test-case name="34466reG4 tokoe:valid" result="pass"/><test-case name="34467reG4.v tokoe:valid" result="pass"/><test-case name="34468reG6 tokoe:valid" result="pass"/><test-case name="34469reG6.v tokoe:valid" result="pass"/><test-case name="34470reG7 tokoe:valid" result="pass"/><test-case name="34471reG7.i tokoe:invalid" result="pass"/><test-case name="34472reG8 tokoe:valid" result="pass"/><test-case name="34473reG8.v tokoe:valid" result="pass"/><test-case name="34474reG9 tokoe:valid" result="pass"/><test-case name="34475reG9.i tokoe:invalid" result="pass"/><test-case name="34476reG10 tokoe:valid" result="pass"/><test-case name="34477reG10.i tokoe:invalid" result="pass"/><test-case name="34478reG11 tokoe:valid" result="pass"/><test-case name="34479reG11.v tokoe:valid" result="pass"/><test-case name="34480reG13 tokoe:valid" result="pass"/><test-case name="34481reG13.v tokoe:valid" result="pass"/><test-case name="34482reG14 tokoe:valid" result="pass"/><test-case name="34483reG14.v tokoe:valid" result="pass"/><test-case name="34484reG16 tokoe:valid" result="pass"/><test-case name="34485reG16.i tokoe:invalid" result="pass"/><test-case name="34486reG17 tokoe:valid" result="pass"/><test-case name="34487reG17.i tokoe:invalid" result="pass"/><test-case name="34488reG18 tokoe:valid" result="pass"/><test-case name="34489reG18.v tokoe:valid" result="fail"/><test-case name="34490reG19 tokoe:valid" result="pass"/><test-case name="34491reG19.v tokoe:valid" result="fail"/><test-case name="34492reG20 tokoe:valid" result="pass"/><test-case name="34493reG20.v tokoe:valid" result="fail"/><test-case name="34494reG21 tokoe:valid" result="pass"/><test-case name="34495reG21.i tokoe:invalid" result="pass"/><test-case name="34496reG22 tokoe:valid" result="pass"/><test-case name="34497reG22.v tokoe:valid" result="pass"/><test-case name="34498reG23 tokoe:valid" result="pass"/><test-case name="34499reG23.i tokoe:invalid" result="pass"/><test-case name="34500reG24 tokoe:valid" result="pass"/><test-case name="34501reG24.i tokoe:invalid" result="pass"/><test-case name="34502reG25 tokoe:valid" result="pass"/><test-case name="34503reG25.i tokoe:invalid" result="pass"/><test-case name="34504reG26 tokoe:valid" result="pass"/><test-case name="34505reG26.v tokoe:valid" result="pass"/><test-case name="34506reG27 tokoe:valid" result="pass"/><test-case name="34507reG27.v tokoe:valid" result="pass"/><test-case name="34508reG28 tokoe:valid" result="pass"/><test-case name="34509reG28.v tokoe:valid" result="pass"/><test-case name="34510reG29 tokoe:valid" result="pass"/><test-case name="34511reG29.v tokoe:valid" result="pass"/><test-case name="34512reG30 tokoe:valid" result="pass"/><test-case name="34513reG30.v tokoe:valid" result="pass"/><test-case name="34514reG31 tokoe:valid" result="pass"/><test-case name="34515reG31.v tokoe:valid" result="pass"/><test-case name="34516reG32 tokoe:valid" result="pass"/><test-case name="34517reG32.v tokoe:valid" result="pass"/><test-case name="34518reG33 tokoe:valid" result="pass"/><test-case name="34519reG33.v tokoe:valid" result="pass"/><test-case name="34520reG34 tokoe:invalid" result="fail"/><test-case name="34521reG35 tokoe:invalid" result="fail"/><test-case name="34522reG36 tokoe:valid" result="pass"/><test-case name="34523reG36.v tokoe:valid" result="pass"/><test-case name="34524reG37 tokoe:invalid" result="fail"/><test-case name="34525reG38 tokoe:valid" result="pass"/><test-case name="34526reG38.v tokoe:valid" result="pass"/><test-case name="34527reG39 tokoe:valid" result="pass"/><test-case name="34528reG39.i tokoe:invalid" result="pass"/><test-case name="34529reG40 tokoe:valid" result="pass"/><test-case name="34530reG40.i tokoe:invalid" result="pass"/><test-case name="34531reG41 tokoe:valid" result="pass"/><test-case name="34532reG42 tokoe:valid" result="pass"/><test-case name="34533reG43 tokoe:valid" result="pass"/><test-case name="34534reG43.v tokoe:valid" result="pass"/><test-case name="34535reG44 tokoe:valid" result="pass"/><test-case name="34536reG44.v tokoe:valid" result="pass"/><test-case name="34537reG45 tokoe:valid" result="pass"/><test-case name="34538reG45.i tokoe:invalid" result="pass"/><test-case name="34539reG46 tokoe:invalid" result="fail"/><test-case name="34540reG47 tokoe:valid" result="pass"/><test-case name="34541reG47.v tokoe:valid" result="pass"/><test-case name="34542reG48 tokoe:valid" result="pass"/><test-case name="34543reG48.i tokoe:invalid" result="pass"/><test-case name="34544reG49 tokoe:valid" result="pass"/><test-case name="34545reG49.v tokoe:valid" result="pass"/><test-case name="34546reG51 tokoe:valid" result="pass"/><test-case name="34547reG51.i tokoe:invalid" result="pass"/><test-case name="34548reH1 tokoe:invalid" result="pass"/><test-case name="34549reH4 tokoe:valid" result="pass"/><test-case name="34550reH4.v tokoe:valid" result="pass"/><test-case name="34551reH5 tokoe:valid" result="pass"/><test-case name="34552reH5.v tokoe:valid" result="pass"/><test-case name="34553reH6 tokoe:valid" result="pass"/><test-case name="34554reH6.v tokoe:valid" result="pass"/><test-case name="34555reH7 tokoe:valid" result="pass"/><test-case name="34556reH7.v tokoe:valid" result="pass"/><test-case name="34557reH8 tokoe:valid" result="pass"/><test-case name="34558reH8.v tokoe:valid" result="pass"/><test-case name="34559reH9 tokoe:valid" result="pass"/><test-case name="34560reH9.v tokoe:valid" result="pass"/><test-case name="34561reH10 tokoe:valid" result="pass"/><test-case name="34562reH10.v tokoe:valid" result="pass"/><test-case name="34563reH11 tokoe:valid" result="pass"/><test-case name="34564reH11.v tokoe:valid" result="pass"/><test-case name="34565reH12 tokoe:valid" result="pass"/><test-case name="34566reH12.v tokoe:valid" result="pass"/><test-case name="34567reH13 tokoe:valid" result="pass"/><test-case name="34568reH13.i tokoe:invalid" result="pass"/><test-case name="34569reH14 tokoe:valid" result="pass"/><test-case name="34570reH14.i tokoe:invalid" result="pass"/><test-case name="34571reH15 tokoe:valid" result="pass"/><test-case name="34572reH15.i tokoe:invalid" result="pass"/><test-case name="34573reH16 tokoe:valid" result="pass"/><test-case name="34574reH16.v tokoe:valid" result="pass"/><test-case name="34575reH17 tokoe:valid" result="pass"/><test-case name="34576reH17.v tokoe:valid" result="pass"/><test-case name="34577reH18 tokoe:valid" result="pass"/><test-case name="34578reH18.v tokoe:valid" result="pass"/><test-case name="34579reH19 tokoe:valid" result="pass"/><test-case name="34580reH19.v tokoe:valid" result="pass"/><test-case name="34581reH20 tokoe:valid" result="pass"/><test-case name="34582reH20.i tokoe:invalid" result="pass"/><test-case name="34583reH21 tokoe:valid" result="pass"/><test-case name="34584reH21.i tokoe:invalid" result="pass"/><test-case name="34585reI1 tokoe:valid" result="pass"/><test-case name="34586reI1.v tokoe:valid" result="pass"/><test-case name="34587reI8 tokoe:valid" result="pass"/><test-case name="34588reI8.v tokoe:valid" result="pass"/><test-case name="34589reI9 tokoe:valid" result="pass"/><test-case name="34590reI9.v tokoe:valid" result="pass"/><test-case name="34591reI10 tokoe:valid" result="pass"/><test-case name="34592reI10.v tokoe:valid" result="pass"/><test-case name="34593reI11 tokoe:valid" result="pass"/><test-case name="34594reI11.i tokoe:invalid" result="pass"/><test-case name="34595reI12 tokoe:valid" result="pass"/><test-case name="34596reI12.v tokoe:valid" result="pass"/><test-case name="34597reI13 tokoe:valid" result="pass"/><test-case name="34598reI13.v tokoe:valid" result="pass"/><test-case name="34599reI14 tokoe:valid" result="pass"/><test-case name="34600reI14.v tokoe:valid" result="pass"/><test-case name="34601reI15 tokoe:valid" result="pass"/><test-case name="34602reI15.v tokoe:valid" result="pass"/><test-case name="34603reI16 tokoe:valid" result="pass"/><test-case name="34604reI16.v tokoe:valid" result="pass"/><test-case name="34605reI17 tokoe:valid" result="pass"/><test-case name="34606reI17.v tokoe:valid" result="pass"/><test-case name="34607reI18 tokoe:valid" result="pass"/><test-case name="34608reI18.i tokoe:invalid" result="pass"/><test-case name="34609reI19 tokoe:valid" result="pass"/><test-case name="34610reI19.i tokoe:invalid" result="pass"/><test-case name="34611reI20 tokoe:valid" result="pass"/><test-case name="34612reI20.i tokoe:invalid" result="pass"/><test-case name="34613reI21 tokoe:valid" result="pass"/><test-case name="34614reI21.v tokoe:valid" result="pass"/><test-case name="34615reI22 tokoe:valid" result="pass"/><test-case name="34616reI22.i tokoe:invalid" result="pass"/><test-case name="34617reI23 tokoe:valid" result="pass"/><test-case name="34618reI23.i tokoe:invalid" result="pass"/><test-case name="34619reI24 tokoe:valid" result="pass"/><test-case name="34620reI24.i tokoe:invalid" result="pass"/><test-case name="34621reI25 tokoe:valid" result="pass"/><test-case name="34622reI25.v tokoe:valid" result="pass"/><test-case name="34623reI26 tokoe:valid" result="pass"/><test-case name="34624reI26.i tokoe:invalid" result="pass"/><test-case name="34625reI27 tokoe:valid" result="pass"/><test-case name="34626reI27.i tokoe:invalid" result="pass"/><test-case name="34627reI28 tokoe:valid" result="pass"/><test-case name="34628reI28.i tokoe:invalid" result="pass"/><test-case name="34629reI29 tokoe:valid" result="pass"/><test-case name="34630reI29.v tokoe:valid" result="pass"/><test-case name="34631reI31 tokoe:valid" result="pass"/><test-case name="34632reI31.v tokoe:valid" result="pass"/><test-case name="34633reI32 tokoe:valid" result="pass"/><test-case name="34634reI32.v tokoe:valid" result="pass"/><test-case name="34635reI33 tokoe:valid" result="pass"/><test-case name="34636reI33.v tokoe:valid" result="pass"/><test-case name="34637reI34 tokoe:valid" result="pass"/><test-case name="34638reI34.v tokoe:valid" result="pass"/><test-case name="34639reI35 tokoe:valid" result="pass"/><test-case name="34640reI35.v tokoe:valid" result="pass"/><test-case name="34641reI36 tokoe:valid" result="pass"/><test-case name="34642reI36.v tokoe:valid" result="pass"/><test-case name="34643reI37 tokoe:valid" result="pass"/><test-case name="34644reI37.v tokoe:valid" result="pass"/><test-case name="34645reI38 tokoe:valid" result="pass"/><test-case name="34646reI38.v tokoe:valid" result="pass"/><test-case name="34647reI39 tokoe:valid" result="pass"/><test-case name="34648reI39.v tokoe:valid" result="pass"/><test-case name="34649reI40 tokoe:valid" result="pass"/><test-case name="34650reI40.v tokoe:valid" result="pass"/><test-case name="34651reI41 tokoe:valid" result="pass"/><test-case name="34652reI41.v tokoe:valid" result="pass"/><test-case name="34653reI42 tokoe:valid" result="pass"/><test-case name="34654reI42.v tokoe:valid" result="pass"/><test-case name="34655reI43 tokoe:valid" result="pass"/><test-case name="34656reI43.v tokoe:valid" result="pass"/><test-case name="34657reI44 tokoe:valid" result="pass"/><test-case name="34658reI44.v tokoe:valid" result="pass"/><test-case name="34659reI45 tokoe:valid" result="pass"/><test-case name="34660reI45.v tokoe:valid" result="pass"/><test-case name="34661reI47 tokoe:valid" result="pass"/><test-case name="34662reI47.i tokoe:invalid" result="pass"/><test-case name="34663reI48 tokoe:valid" result="pass"/><test-case name="34664reI48.i tokoe:invalid" result="pass"/><test-case name="34665reI49 tokoe:valid" result="pass"/><test-case name="34666reI49.i tokoe:invalid" result="pass"/><test-case name="34667reI51 tokoe:valid" result="pass"/><test-case name="34668reI51.i tokoe:invalid" result="pass"/><test-case name="34669reI52 tokoe:valid" result="pass"/><test-case name="34670reI52.i tokoe:invalid" result="pass"/><test-case name="34671reI53 tokoe:valid" result="pass"/><test-case name="34672reI53.i tokoe:invalid" result="pass"/><test-case name="34673reI54 tokoe:valid" result="pass"/><test-case name="34674reI54.i tokoe:invalid" result="pass"/><test-case name="34675reI55 tokoe:valid" result="pass"/><test-case name="34676reI55.v tokoe:valid" result="pass"/><test-case name="34677reI56 tokoe:valid" result="pass"/><test-case name="34678reI56.i tokoe:invalid" result="pass"/><test-case name="34679reI57 tokoe:valid" result="pass"/><test-case name="34680reI57.i tokoe:invalid" result="pass"/><test-case name="34681reI58 tokoe:valid" result="pass"/><test-case name="34682reI58.i tokoe:invalid" result="pass"/><test-case name="34683reI59 tokoe:valid" result="pass"/><test-case name="34684reI59.i tokoe:invalid" result="pass"/><test-case name="34685reI61 tokoe:valid" result="pass"/><test-case name="34686reI61.i tokoe:invalid" result="pass"/><test-case name="34687reI62 tokoe:valid" result="pass"/><test-case name="34688reI62.i tokoe:invalid" result="pass"/><test-case name="34689reI63 tokoe:valid" result="pass"/><test-case name="34690reI63.i tokoe:invalid" result="pass"/><test-case name="34691reI64 tokoe:valid" result="pass"/><test-case name="34692reI64.i tokoe:invalid" result="pass"/><test-case name="34693reI65 tokoe:valid" result="pass"/><test-case name="34694reI65.v tokoe:valid" result="pass"/><test-case name="34695reI67 tokoe:valid" result="pass"/><test-case name="34696reI67.v tokoe:valid" result="pass"/><test-case name="34697reI69 tokoe:valid" result="pass"/><test-case name="34698reI69.v tokoe:valid" result="pass"/><test-case name="34699reI71 tokoe:valid" result="pass"/><test-case name="34700reI71.v tokoe:valid" result="pass"/><test-case name="34701reI72 tokoe:valid" result="pass"/><test-case name="34702reI72.v tokoe:valid" result="pass"/><test-case name="34703reI73 tokoe:valid" result="pass"/><test-case name="34704reI73.v tokoe:valid" result="pass"/><test-case name="34705reI74 tokoe:valid" result="pass"/><test-case name="34706reI74.v tokoe:valid" result="pass"/><test-case name="34707reI75 tokoe:valid" result="pass"/><test-case name="34708reI75.i tokoe:invalid" result="pass"/><test-case name="34709reI76 tokoe:valid" result="pass"/><test-case name="34710reI76.i tokoe:invalid" result="pass"/><test-case name="34711reI77 tokoe:valid" result="pass"/><test-case name="34712reI77.v tokoe:valid" result="pass"/><test-case name="34713reI78 tokoe:valid" result="pass"/><test-case name="34714reI78.v tokoe:valid" result="pass"/><test-case name="34715reI79 tokoe:valid" result="pass"/><test-case name="34716reI79.i tokoe:invalid" result="pass"/><test-case name="34717reI80 tokoe:valid" result="pass"/><test-case name="34718reI80.i tokoe:invalid" result="pass"/><test-case name="34719reI81 tokoe:valid" result="pass"/><test-case name="34720reI81.i tokoe:invalid" result="pass"/><test-case name="34721reI82 tokoe:valid" result="pass"/><test-case name="34722reI82.v tokoe:valid" result="pass"/><test-case name="34723reI83 tokoe:valid" result="pass"/><test-case name="34724reI83.v tokoe:valid" result="pass"/><test-case name="34725reJ4 tokoe:valid" result="pass"/><test-case name="34726reJ4.v tokoe:valid" result="pass"/><test-case name="34727reJ5 tokoe:valid" result="pass"/><test-case name="34728reJ5.i tokoe:invalid" result="pass"/><test-case name="34729reJ8 tokoe:valid" result="pass"/><test-case name="34730reJ8.i tokoe:invalid" result="pass"/><test-case name="34731reJ10 tokoe:valid" result="pass"/><test-case name="34732reJ10.i tokoe:invalid" result="pass"/><test-case name="34733reJ12 tokoe:valid" result="pass"/><test-case name="34734reJ12.i tokoe:invalid" result="pass"/><test-case name="34735reJ14 tokoe:valid" result="pass"/><test-case name="34736reJ14.i tokoe:invalid" result="pass"/><test-case name="34737reJ15 tokoe:valid" result="pass"/><test-case name="34738reJ15.v tokoe:valid" result="pass"/><test-case name="34739reJ16 tokoe:valid" result="pass"/><test-case name="34740reJ16.i tokoe:invalid" result="pass"/><test-case name="34741reJ17 tokoe:valid" result="pass"/><test-case name="34742reJ17.v tokoe:valid" result="pass"/><test-case name="34743reJ18 tokoe:valid" result="pass"/><test-case name="34744reJ18.i tokoe:invalid" result="pass"/><test-case name="34745reJ20 tokoe:valid" result="pass"/><test-case name="34746reJ20.i tokoe:invalid" result="pass"/><test-case name="34747reJ22 tokoe:valid" result="pass"/><test-case name="34748reJ22.i tokoe:invalid" result="pass"/><test-case name="34749reJ24 tokoe:valid" result="pass"/><test-case name="34750reJ24.i tokoe:invalid" result="pass"/><test-case name="34751reJ26 tokoe:valid" result="pass"/><test-case name="34752reJ26.i tokoe:invalid" result="pass"/><test-case name="34753reJ27 tokoe:valid" result="pass"/><test-case name="34754reJ27.v tokoe:valid" result="pass"/><test-case name="34755reJ28 tokoe:valid" result="pass"/><test-case name="34756reJ28.i tokoe:invalid" result="pass"/><test-case name="34757reJ30 tokoe:valid" result="pass"/><test-case name="34758reJ30.i tokoe:invalid" result="pass"/><test-case name="34759reJ32 tokoe:valid" result="pass"/><test-case name="34760reJ32.i tokoe:invalid" result="pass"/><test-case name="34761reJ34 tokoe:valid" result="pass"/><test-case name="34762reJ34.i tokoe:invalid" result="pass"/><test-case name="34763reJ36 tokoe:valid" result="pass"/><test-case name="34764reJ36.i tokoe:invalid" result="pass"/><test-case name="34765reJ37 tokoe:valid" result="pass"/><test-case name="34766reJ37.v tokoe:valid" result="fail"/><test-case name="34767reJ38 tokoe:valid" result="pass"/><test-case name="34768reJ38.i tokoe:invalid" result="pass"/><test-case name="34769reJ40 tokoe:valid" result="pass"/><test-case name="34770reJ40.i tokoe:invalid" result="pass"/><test-case name="34771reJ41 tokoe:valid" result="pass"/><test-case name="34772reJ41.v tokoe:valid" result="pass"/><test-case name="34773reJ42 tokoe:valid" result="pass"/><test-case name="34774reJ42.i tokoe:invalid" result="pass"/><test-case name="34775reJ43 tokoe:valid" result="pass"/><test-case name="34776reJ43.v tokoe:valid" result="pass"/><test-case name="34777reJ44 tokoe:valid" result="pass"/><test-case name="34778reJ44.i tokoe:invalid" result="pass"/><test-case name="34779reJ45 tokoe:valid" result="pass"/><test-case name="34780reJ45.v tokoe:valid" result="pass"/><test-case name="34781reJ46 tokoe:valid" result="pass"/><test-case name="34782reJ46.i tokoe:invalid" result="pass"/><test-case name="34783reJ47 tokoe:valid" result="pass"/><test-case name="34784reJ47.v tokoe:valid" result="pass"/><test-case name="34785reJ48 tokoe:valid" result="pass"/><test-case name="34786reJ48.i tokoe:invalid" result="pass"/><test-case name="34787reJ49 tokoe:valid" result="pass"/><test-case name="34788reJ49.v tokoe:valid" result="pass"/><test-case name="34789reJ50 tokoe:valid" result="pass"/><test-case name="34790reJ50.i tokoe:invalid" result="pass"/><test-case name="34791reJ51 tokoe:valid" result="pass"/><test-case name="34792reJ51.v tokoe:valid" result="pass"/><test-case name="34793reJ52 tokoe:valid" result="pass"/><test-case name="34794reJ52.i tokoe:invalid" result="pass"/><test-case name="34795reJ53 tokoe:valid" result="pass"/><test-case name="34796reJ53.v tokoe:valid" result="pass"/><test-case name="34797reJ54 tokoe:valid" result="pass"/><test-case name="34798reJ54.i tokoe:invalid" result="pass"/><test-case name="34799reJ55 tokoe:valid" result="pass"/><test-case name="34800reJ55.v tokoe:valid" result="pass"/><test-case name="34801reJ56 tokoe:valid" result="pass"/><test-case name="34802reJ56.i tokoe:invalid" result="pass"/><test-case name="34803reJ57 tokoe:valid" result="pass"/><test-case name="34804reJ57.v tokoe:valid" result="pass"/><test-case name="34805reJ58 tokoe:valid" result="pass"/><test-case name="34806reJ58.i tokoe:invalid" result="pass"/><test-case name="34807reJ59 tokoe:valid" result="pass"/><test-case name="34808reJ59.v tokoe:valid" result="pass"/><test-case name="34809reJ60 tokoe:valid" result="pass"/><test-case name="34810reJ60.i tokoe:invalid" result="pass"/><test-case name="34811reJ62 tokoe:valid" result="pass"/><test-case name="34812reJ62.i tokoe:invalid" result="pass"/><test-case name="34813reJ63 tokoe:valid" result="pass"/><test-case name="34814reJ63.v tokoe:valid" result="pass"/><test-case name="34815reJ64 tokoe:valid" result="pass"/><test-case name="34816reJ64.i tokoe:invalid" result="pass"/><test-case name="34817reJ65 tokoe:valid" result="pass"/><test-case name="34818reJ65.v tokoe:valid" result="pass"/><test-case name="34819reJ66 tokoe:valid" result="pass"/><test-case name="34820reJ66.i tokoe:invalid" result="pass"/><test-case name="34821reJ67 tokoe:valid" result="pass"/><test-case name="34822reJ67.v tokoe:valid" result="pass"/><test-case name="34823reJ68 tokoe:valid" result="pass"/><test-case name="34824reJ68.i tokoe:invalid" result="pass"/><test-case name="34825reJ70 tokoe:valid" result="pass"/><test-case name="34826reJ70.i tokoe:invalid" result="pass"/><test-case name="34827reJ72 tokoe:valid" result="pass"/><test-case name="34828reJ72.i tokoe:invalid" result="pass"/><test-case name="34829reJ73 tokoe:valid" result="pass"/><test-case name="34830reJ73.v tokoe:valid" result="pass"/><test-case name="34831reJ74 tokoe:valid" result="pass"/><test-case name="34832reJ74.i tokoe:invalid" result="pass"/><test-case name="34833reJ76 tokoe:valid" result="pass"/><test-case name="34834reJ76.i tokoe:invalid" result="pass"/><test-case name="34835reJ78 tokoe:valid" result="pass"/><test-case name="34836reJ78.i tokoe:invalid" result="pass"/><test-case name="34837reJ80 tokoe:valid" result="pass"/><test-case name="34838reJ80.i tokoe:invalid" result="pass"/><test-case name="34839reK1 tokoe:valid" result="pass"/><test-case name="34840reK1.i tokoe:invalid" result="pass"/><test-case name="34841reK2 tokoe:valid" result="pass"/><test-case name="34842reK2.v tokoe:valid" result="pass"/><test-case name="34843reK3 tokoe:valid" result="pass"/><test-case name="34844reK3.v tokoe:valid" result="pass"/><test-case name="34845reK4 tokoe:valid" result="pass"/><test-case name="34846reK4.v tokoe:valid" result="pass"/><test-case name="34847reK5 tokoe:valid" result="pass"/><test-case name="34848reK5.i tokoe:invalid" result="pass"/><test-case name="34849reK6 tokoe:valid" result="pass"/><test-case name="34850reK6.i tokoe:invalid" result="pass"/><test-case name="34851reK9 tokoe:valid" result="pass"/><test-case name="34852reK9.i tokoe:invalid" result="pass"/><test-case name="34853reK10 tokoe:valid" result="pass"/><test-case name="34854reK10.v tokoe:valid" result="pass"/><test-case name="34855reK11 tokoe:valid" result="pass"/><test-case name="34856reK11.i tokoe:invalid" result="pass"/><test-case name="34857reK12 tokoe:valid" result="pass"/><test-case name="34858reK12.v tokoe:valid" result="pass"/><test-case name="34859reK13 tokoe:valid" result="pass"/><test-case name="34860reK13.i tokoe:invalid" result="pass"/><test-case name="34861reK14 tokoe:valid" result="pass"/><test-case name="34862reK14.v tokoe:valid" result="pass"/><test-case name="34863reK15 tokoe:valid" result="pass"/><test-case name="34864reK15.i tokoe:invalid" result="pass"/><test-case name="34865reK16 tokoe:valid" result="pass"/><test-case name="34866reK16.v tokoe:valid" result="pass"/><test-case name="34867reK17 tokoe:valid" result="pass"/><test-case name="34868reK17.i tokoe:invalid" result="pass"/><test-case name="34869reK18 tokoe:valid" result="pass"/><test-case name="34870reK18.v tokoe:valid" result="pass"/><test-case name="34871reK19 tokoe:valid" result="pass"/><test-case name="34872reK19.i tokoe:invalid" result="pass"/><test-case name="34873reK20 tokoe:valid" result="pass"/><test-case name="34874reK20.v tokoe:valid" result="pass"/><test-case name="34875reK21 tokoe:valid" result="pass"/><test-case name="34876reK21.i tokoe:invalid" result="pass"/><test-case name="34877reK22 tokoe:valid" result="pass"/><test-case name="34878reK22.v tokoe:valid" result="pass"/><test-case name="34879reK23 tokoe:valid" result="pass"/><test-case name="34880reK23.i tokoe:invalid" result="pass"/><test-case name="34881reK24 tokoe:valid" result="pass"/><test-case name="34882reK24.v tokoe:valid" result="pass"/><test-case name="34883reK25 tokoe:valid" result="pass"/><test-case name="34884reK25.i tokoe:invalid" result="pass"/><test-case name="34885reK26 tokoe:valid" result="pass"/><test-case name="34886reK26.v tokoe:valid" result="pass"/><test-case name="34887reK27 tokoe:valid" result="pass"/><test-case name="34888reK27.i tokoe:invalid" result="pass"/><test-case name="34889reK28 tokoe:valid" result="pass"/><test-case name="34890reK28.v tokoe:valid" result="pass"/><test-case name="34891reK29 tokoe:valid" result="pass"/><test-case name="34892reK29.i tokoe:invalid" result="pass"/><test-case name="34893reK30 tokoe:valid" result="pass"/><test-case name="34894reK30.v tokoe:valid" result="pass"/><test-case name="34895reK31 tokoe:valid" result="pass"/><test-case name="34896reK31.i tokoe:invalid" result="pass"/><test-case name="34897reK32 tokoe:valid" result="pass"/><test-case name="34898reK32.v tokoe:valid" result="pass"/><test-case name="34899reK33 tokoe:valid" result="pass"/><test-case name="34900reK33.i tokoe:invalid" result="pass"/><test-case name="34901reK34 tokoe:valid" result="pass"/><test-case name="34902reK34.v tokoe:valid" result="pass"/><test-case name="34903reK35 tokoe:valid" result="pass"/><test-case name="34904reK35.i tokoe:invalid" result="pass"/><test-case name="34905reK36 tokoe:valid" result="pass"/><test-case name="34906reK36.v tokoe:valid" result="pass"/><test-case name="34907reK37 tokoe:valid" result="pass"/><test-case name="34908reK37.i tokoe:invalid" result="pass"/><test-case name="34909reK38 tokoe:valid" result="pass"/><test-case name="34910reK38.v tokoe:valid" result="pass"/><test-case name="34911reK39 tokoe:valid" result="pass"/><test-case name="34912reK39.i tokoe:invalid" result="pass"/><test-case name="34913reK40 tokoe:valid" result="pass"/><test-case name="34914reK40.v tokoe:valid" result="pass"/><test-case name="34915reK41 tokoe:valid" result="pass"/><test-case name="34916reK41.i tokoe:invalid" result="pass"/><test-case name="34917reK42 tokoe:valid" result="pass"/><test-case name="34918reK42.v tokoe:valid" result="pass"/><test-case name="34919reK43 tokoe:valid" result="pass"/><test-case name="34920reK43.i tokoe:invalid" result="pass"/><test-case name="34921reK44 tokoe:valid" result="pass"/><test-case name="34922reK44.v tokoe:valid" result="pass"/><test-case name="34923reK45 tokoe:valid" result="pass"/><test-case name="34924reK45.i tokoe:invalid" result="pass"/><test-case name="34925reK46 tokoe:valid" result="pass"/><test-case name="34926reK46.v tokoe:valid" result="pass"/><test-case name="34927reK47 tokoe:valid" result="pass"/><test-case name="34928reK47.i tokoe:invalid" result="pass"/><test-case name="34929reK48 tokoe:valid" result="pass"/><test-case name="34930reK48.v tokoe:valid" result="pass"/><test-case name="34931reK49 tokoe:valid" result="pass"/><test-case name="34932reK49.i tokoe:invalid" result="pass"/><test-case name="34933reK50 tokoe:valid" result="pass"/><test-case name="34934reK50.v tokoe:valid" result="pass"/><test-case name="34935reK51 tokoe:valid" result="pass"/><test-case name="34936reK51.i tokoe:invalid" result="pass"/><test-case name="34937reK52 tokoe:valid" result="pass"/><test-case name="34938reK52.v tokoe:valid" result="pass"/><test-case name="34939reK53 tokoe:valid" result="pass"/><test-case name="34940reK53.i tokoe:invalid" result="pass"/><test-case name="34941reK54 tokoe:valid" result="pass"/><test-case name="34942reK54.v tokoe:valid" result="pass"/><test-case name="34943reK55 tokoe:valid" result="pass"/><test-case name="34944reK55.i tokoe:invalid" result="pass"/><test-case name="34945reK56 tokoe:valid" result="pass"/><test-case name="34946reK56.v tokoe:valid" result="pass"/><test-case name="34947reK57 tokoe:valid" result="pass"/><test-case name="34948reK57.i tokoe:invalid" result="pass"/><test-case name="34949reK58 tokoe:valid" result="pass"/><test-case name="34950reK58.v tokoe:valid" result="pass"/><test-case name="34951reK59 tokoe:valid" result="pass"/><test-case name="34952reK59.i tokoe:invalid" result="pass"/><test-case name="34953reK60 tokoe:valid" result="pass"/><test-case name="34954reK60.v tokoe:valid" result="pass"/><test-case name="34955reK61 tokoe:valid" result="pass"/><test-case name="34956reK61.i tokoe:invalid" result="pass"/><test-case name="34957reK62 tokoe:valid" result="pass"/><test-case name="34958reK62.v tokoe:valid" result="pass"/><test-case name="34959reK63 tokoe:valid" result="pass"/><test-case name="34960reK63.i tokoe:invalid" result="pass"/><test-case name="34961reK64 tokoe:valid" result="pass"/><test-case name="34962reK64.v tokoe:valid" result="pass"/><test-case name="34963reK65 tokoe:valid" result="pass"/><test-case name="34964reK65.i tokoe:invalid" result="pass"/><test-case name="34965reK66 tokoe:valid" result="pass"/><test-case name="34966reK66.v tokoe:valid" result="pass"/><test-case name="34967reK67 tokoe:valid" result="pass"/><test-case name="34968reK67.i tokoe:invalid" result="pass"/><test-case name="34969reK68 tokoe:valid" result="pass"/><test-case name="34970reK68.v tokoe:valid" result="pass"/><test-case name="34971reK69 tokoe:valid" result="pass"/><test-case name="34972reK69.i tokoe:invalid" result="pass"/><test-case name="34973reK70 tokoe:valid" result="pass"/><test-case name="34974reK70.v tokoe:valid" result="pass"/><test-case name="34975reK71 tokoe:valid" result="pass"/><test-case name="34976reK71.i tokoe:invalid" result="pass"/><test-case name="34977reK72 tokoe:valid" result="pass"/><test-case name="34978reK72.v tokoe:valid" result="pass"/><test-case name="34979reK73 tokoe:valid" result="pass"/><test-case name="34980reK73.i tokoe:invalid" result="pass"/><test-case name="34981reK74 tokoe:valid" result="pass"/><test-case name="34982reK74.v tokoe:valid" result="pass"/><test-case name="34983reK75 tokoe:valid" result="pass"/><test-case name="34984reK75.i tokoe:invalid" result="pass"/><test-case name="34985reK76 tokoe:valid" result="pass"/><test-case name="34986reK76.v tokoe:valid" result="pass"/><test-case name="34987reK77 tokoe:valid" result="pass"/><test-case name="34988reK77.i tokoe:invalid" result="pass"/><test-case name="34989reK78 tokoe:valid" result="pass"/><test-case name="34990reK78.v tokoe:valid" result="pass"/><test-case name="34991reK82 tokoe:invalid" result="pass"/><test-case name="34992reK84 tokoe:valid" result="pass"/><test-case name="34993reK84.v tokoe:valid" result="pass"/><test-case name="34994reK85 tokoe:valid" result="pass"/><test-case name="34995reK85.i tokoe:invalid" result="pass"/><test-case name="34996reK86 tokoe:invalid" result="pass"/><test-case name="34997reK87 tokoe:invalid" result="pass"/><test-case name="34998reK88 tokoe:invalid" result="pass"/><test-case name="34999reL1 tokoe:valid" result="pass"/><test-case name="35000reL1.v tokoe:valid" result="pass"/><test-case name="35001reL2 tokoe:valid" result="pass"/><test-case name="35002reL2.v tokoe:valid" result="pass"/><test-case name="35003reL3 tokoe:valid" result="pass"/><test-case name="35004reL3.v tokoe:valid" result="pass"/><test-case name="35005reL4 tokoe:valid" result="pass"/><test-case name="35006reL4.v tokoe:valid" result="pass"/><test-case name="35007reL5 tokoe:valid" result="pass"/><test-case name="35008reL5.v tokoe:valid" result="pass"/><test-case name="35009reL6 tokoe:valid" result="pass"/><test-case name="35010reL6.v tokoe:valid" result="pass"/><test-case name="35011reL10 tokoe:valid" result="pass"/><test-case name="35012reL10.v tokoe:valid" result="pass"/><test-case name="35013reL11 tokoe:valid" result="pass"/><test-case name="35014reL11.v tokoe:valid" result="pass"/><test-case name="35015reL12 tokoe:valid" result="pass"/><test-case name="35016reL12.v tokoe:valid" result="pass"/><test-case name="35017reL13 tokoe:valid" result="pass"/><test-case name="35018reL13.v tokoe:valid" result="pass"/><test-case name="35019reL14 tokoe:valid" result="pass"/><test-case name="35020reL14.v tokoe:valid" result="pass"/><test-case name="35021reL15 tokoe:valid" result="pass"/><test-case name="35022reL15.v tokoe:valid" result="pass"/><test-case name="35023reL16 tokoe:valid" result="pass"/><test-case name="35024reL16.v tokoe:valid" result="pass"/><test-case name="35025reL17 tokoe:valid" result="pass"/><test-case name="35026reL17.v tokoe:valid" result="pass"/><test-case name="35027reL18 tokoe:valid" result="pass"/><test-case name="35028reL18.v tokoe:valid" result="pass"/><test-case name="35029reL19 tokoe:valid" result="pass"/><test-case name="35030reL19.v tokoe:valid" result="pass"/><test-case name="35031reL20 tokoe:valid" result="pass"/><test-case name="35032reL20.v tokoe:valid" result="pass"/><test-case name="35033reL21 tokoe:valid" result="pass"/><test-case name="35034reL21.v tokoe:valid" result="pass"/><test-case name="35035reL22 tokoe:valid" result="pass"/><test-case name="35036reL22.v tokoe:valid" result="pass"/><test-case name="35037reL23 tokoe:valid" result="pass"/><test-case name="35038reL23.v tokoe:valid" result="pass"/><test-case name="35039reL24 tokoe:valid" result="pass"/><test-case name="35040reL24.v tokoe:valid" result="pass"/><test-case name="35041reL25 tokoe:valid" result="pass"/><test-case name="35042reL25.v tokoe:valid" result="pass"/><test-case name="35043reL26 tokoe:valid" result="pass"/><test-case name="35044reL26.v tokoe:valid" result="pass"/><test-case name="35045reL27 tokoe:valid" result="pass"/><test-case name="35046reL27.v tokoe:valid" result="pass"/><test-case name="35047reL28 tokoe:valid" result="pass"/><test-case name="35048reL28.v tokoe:valid" result="pass"/><test-case name="35049reL29 tokoe:valid" result="pass"/><test-case name="35050reL29.v tokoe:valid" result="pass"/><test-case name="35051reL30 tokoe:valid" result="pass"/><test-case name="35052reL30.v tokoe:valid" result="pass"/><test-case name="35053reL31 tokoe:valid" result="pass"/><test-case name="35054reL31.v tokoe:valid" result="pass"/><test-case name="35055reL32 tokoe:valid" result="pass"/><test-case name="35056reL32.v tokoe:valid" result="pass"/><test-case name="35057reL33 tokoe:valid" result="pass"/><test-case name="35058reL33.v tokoe:valid" result="pass"/><test-case name="35059reL34 tokoe:valid" result="pass"/><test-case name="35060reL34.v tokoe:valid" result="pass"/><test-case name="35061reL35 tokoe:valid" result="pass"/><test-case name="35062reL35.v tokoe:valid" result="pass"/><test-case name="35063reL36 tokoe:valid" result="pass"/><test-case name="35064reL36.v tokoe:valid" result="pass"/><test-case name="35065reL37 tokoe:valid" result="pass"/><test-case name="35066reL37.v tokoe:valid" result="pass"/><test-case name="35067reL38 tokoe:valid" result="pass"/><test-case name="35068reL38.v tokoe:valid" result="pass"/><test-case name="35069reL39 tokoe:valid" result="pass"/><test-case name="35070reL39.v tokoe:valid" result="pass"/><test-case name="35071reL40 tokoe:valid" result="pass"/><test-case name="35072reL40.v tokoe:valid" result="pass"/><test-case name="35073reL41 tokoe:valid" result="pass"/><test-case name="35074reL41.v tokoe:valid" result="pass"/><test-case name="35075reL42 tokoe:valid" result="pass"/><test-case name="35076reL42.v tokoe:valid" result="pass"/><test-case name="35077reL43 tokoe:valid" result="pass"/><test-case name="35078reL43.v tokoe:valid" result="pass"/><test-case name="35079reL44 tokoe:valid" result="pass"/><test-case name="35080reL44.v tokoe:valid" result="pass"/><test-case name="35081reL45 tokoe:valid" result="pass"/><test-case name="35082reL45.v tokoe:valid" result="pass"/><test-case name="35083reL46 tokoe:valid" result="pass"/><test-case name="35084reL46.v tokoe:valid" result="pass"/><test-case name="35085reL47 tokoe:valid" result="pass"/><test-case name="35086reL47.v tokoe:valid" result="pass"/><test-case name="35087reL48 tokoe:valid" result="pass"/><test-case name="35088reL48.v tokoe:valid" result="pass"/><test-case name="35089reL49 tokoe:valid" result="pass"/><test-case name="35090reL49.v tokoe:valid" result="pass"/><test-case name="35091reL50 tokoe:valid" result="pass"/><test-case name="35092reL50.v tokoe:valid" result="pass"/><test-case name="35093reL51 tokoe:valid" result="pass"/><test-case name="35094reL51.v tokoe:valid" result="pass"/><test-case name="35095reL52 tokoe:valid" result="pass"/><test-case name="35096reL52.v tokoe:valid" result="pass"/><test-case name="35097reL53 tokoe:valid" result="pass"/><test-case name="35098reL53.v tokoe:valid" result="pass"/><test-case name="35099reL54 tokoe:valid" result="pass"/><test-case name="35100reL54.v tokoe:valid" result="pass"/><test-case name="35101reL55 tokoe:valid" result="pass"/><test-case name="35102reL55.v tokoe:valid" result="pass"/><test-case name="35103reL56 tokoe:valid" result="pass"/><test-case name="35104reL56.v tokoe:valid" result="pass"/><test-case name="35105reL57 tokoe:valid" result="pass"/><test-case name="35106reL57.v tokoe:valid" result="pass"/><test-case name="35107reL58 tokoe:valid" result="pass"/><test-case name="35108reL58.v tokoe:valid" result="pass"/><test-case name="35109reL59 tokoe:valid" result="pass"/><test-case name="35110reL59.v tokoe:valid" result="pass"/><test-case name="35111reL60 tokoe:valid" result="pass"/><test-case name="35112reL60.v tokoe:valid" result="pass"/><test-case name="35113reL61 tokoe:valid" result="pass"/><test-case name="35114reL61.v tokoe:valid" result="pass"/><test-case name="35115reL62 tokoe:valid" result="pass"/><test-case name="35116reL62.v tokoe:valid" result="pass"/><test-case name="35117reL63 tokoe:valid" result="pass"/><test-case name="35118reL63.v tokoe:valid" result="pass"/><test-case name="35119reL64 tokoe:valid" result="pass"/><test-case name="35120reL64.v tokoe:valid" result="pass"/><test-case name="35121reL65 tokoe:valid" result="pass"/><test-case name="35122reL65.v tokoe:valid" result="pass"/><test-case name="35123reL66 tokoe:valid" result="pass"/><test-case name="35124reL66.v tokoe:valid" result="pass"/><test-case name="35125reL67 tokoe:valid" result="pass"/><test-case name="35126reL67.v tokoe:valid" result="pass"/><test-case name="35127reL68 tokoe:valid" result="pass"/><test-case name="35128reL68.v tokoe:valid" result="pass"/><test-case name="35129reL69 tokoe:valid" result="pass"/><test-case name="35130reL69.v tokoe:valid" result="pass"/><test-case name="35131reL70 tokoe:valid" result="pass"/><test-case name="35132reL70.v tokoe:valid" result="pass"/><test-case name="35133reL71 tokoe:valid" result="pass"/><test-case name="35134reL71.v tokoe:valid" result="pass"/><test-case name="35135reL72 tokoe:valid" result="pass"/><test-case name="35136reL72.v tokoe:valid" result="pass"/><test-case name="35137reL73 tokoe:valid" result="pass"/><test-case name="35138reL73.v tokoe:valid" result="pass"/><test-case name="35139reL74 tokoe:valid" result="pass"/><test-case name="35140reL74.v tokoe:valid" result="pass"/><test-case name="35141reL78 tokoe:valid" result="pass"/><test-case name="35142reL78.v tokoe:valid" result="pass"/><test-case name="35143reL79 tokoe:valid" result="pass"/><test-case name="35144reL79.v tokoe:valid" result="pass"/><test-case name="35145reL80 tokoe:valid" result="pass"/><test-case name="35146reL80.v tokoe:valid" result="pass"/><test-case name="35147reL81 tokoe:valid" result="pass"/><test-case name="35148reL81.v tokoe:valid" result="pass"/><test-case name="35149reL82 tokoe:valid" result="pass"/><test-case name="35150reL82.v tokoe:valid" result="pass"/><test-case name="35151reL83 tokoe:valid" result="pass"/><test-case name="35152reL83.v tokoe:valid" result="pass"/><test-case name="35153reL84 tokoe:valid" result="pass"/><test-case name="35154reL84.v tokoe:valid" result="pass"/><test-case name="35155reL85 tokoe:valid" result="pass"/><test-case name="35156reL85.v tokoe:valid" result="pass"/><test-case name="35157reL87 tokoe:valid" result="pass"/><test-case name="35158reL87.v tokoe:valid" result="pass"/><test-case name="35159reL88 tokoe:valid" result="pass"/><test-case name="35160reL88.v tokoe:valid" result="pass"/><test-case name="35161reM1 tokoe:valid" result="pass"/><test-case name="35162reM1.i tokoe:invalid" result="pass"/><test-case name="35163reM2 tokoe:valid" result="pass"/><test-case name="35164reM2.i tokoe:invalid" result="pass"/><test-case name="35165reM3 tokoe:valid" result="pass"/><test-case name="35166reM3.i tokoe:invalid" result="pass"/><test-case name="35167reM4 tokoe:valid" result="pass"/><test-case name="35168reM4.i tokoe:invalid" result="pass"/><test-case name="35169reM5 tokoe:valid" result="pass"/><test-case name="35170reM5.i tokoe:invalid" result="pass"/><test-case name="35171reM6 tokoe:valid" result="pass"/><test-case name="35172reM6.i tokoe:invalid" result="pass"/><test-case name="35173reM9 tokoe:valid" result="pass"/><test-case name="35174reM9.i tokoe:invalid" result="pass"/><test-case name="35175reM10 tokoe:valid" result="pass"/><test-case name="35176reM10.i tokoe:invalid" result="pass"/><test-case name="35177reM11 tokoe:valid" result="pass"/><test-case name="35178reM11.i tokoe:invalid" result="pass"/><test-case name="35179reM12 tokoe:valid" result="pass"/><test-case name="35180reM12.i tokoe:invalid" result="pass"/><test-case name="35181reM13 tokoe:valid" result="pass"/><test-case name="35182reM13.i tokoe:invalid" result="pass"/><test-case name="35183reM14 tokoe:valid" result="pass"/><test-case name="35184reM14.i tokoe:invalid" result="pass"/><test-case name="35185reM15 tokoe:valid" result="pass"/><test-case name="35186reM15.i tokoe:invalid" result="pass"/><test-case name="35187reM16 tokoe:valid" result="pass"/><test-case name="35188reM16.i tokoe:invalid" result="pass"/><test-case name="35189reM17 tokoe:valid" result="pass"/><test-case name="35190reM17.i tokoe:invalid" result="pass"/><test-case name="35191reM18 tokoe:valid" result="pass"/><test-case name="35192reM18.i tokoe:invalid" result="pass"/><test-case name="35193reM19 tokoe:valid" result="pass"/><test-case name="35194reM19.i tokoe:invalid" result="pass"/><test-case name="35195reM20 tokoe:valid" result="pass"/><test-case name="35196reM20.i tokoe:invalid" result="pass"/><test-case name="35197reM21 tokoe:valid" result="pass"/><test-case name="35198reM21.i tokoe:invalid" result="pass"/><test-case name="35199reM22 tokoe:valid" result="pass"/><test-case name="35200reM22.i tokoe:invalid" result="pass"/><test-case name="35201reM23 tokoe:valid" result="pass"/><test-case name="35202reM23.i tokoe:invalid" result="pass"/><test-case name="35203reM24 tokoe:valid" result="pass"/><test-case name="35204reM24.i tokoe:invalid" result="pass"/><test-case name="35205reM25 tokoe:valid" result="pass"/><test-case name="35206reM25.i tokoe:invalid" result="pass"/><test-case name="35207reM26 tokoe:valid" result="pass"/><test-case name="35208reM26.i tokoe:invalid" result="pass"/><test-case name="35209reM27 tokoe:valid" result="pass"/><test-case name="35210reM27.i tokoe:invalid" result="pass"/><test-case name="35211reM28 tokoe:valid" result="pass"/><test-case name="35212reM28.i tokoe:invalid" result="pass"/><test-case name="35213reM29 tokoe:valid" result="pass"/><test-case name="35214reM29.i tokoe:invalid" result="pass"/><test-case name="35215reM30 tokoe:valid" result="pass"/><test-case name="35216reM30.i tokoe:invalid" result="pass"/><test-case name="35217reM31 tokoe:valid" result="pass"/><test-case name="35218reM31.i tokoe:invalid" result="pass"/><test-case name="35219reM32 tokoe:valid" result="pass"/><test-case name="35220reM32.i tokoe:invalid" result="pass"/><test-case name="35221reM33 tokoe:valid" result="pass"/><test-case name="35222reM33.i tokoe:invalid" result="pass"/><test-case name="35223reM34 tokoe:valid" result="pass"/><test-case name="35224reM34.i tokoe:invalid" result="pass"/><test-case name="35225reM35 tokoe:valid" result="pass"/><test-case name="35226reM35.i tokoe:invalid" result="pass"/><test-case name="35227reM36 tokoe:valid" result="pass"/><test-case name="35228reM36.i tokoe:invalid" result="pass"/><test-case name="35229reM37 tokoe:valid" result="pass"/><test-case name="35230reM37.i tokoe:invalid" result="pass"/><test-case name="35231reM38 tokoe:valid" result="pass"/><test-case name="35232reM38.i tokoe:invalid" result="pass"/><test-case name="35233reM39 tokoe:valid" result="pass"/><test-case name="35234reM39.i tokoe:invalid" result="pass"/><test-case name="35235reM40 tokoe:valid" result="pass"/><test-case name="35236reM40.i tokoe:invalid" result="pass"/><test-case name="35237reM41 tokoe:valid" result="pass"/><test-case name="35238reM41.i tokoe:invalid" result="pass"/><test-case name="35239reM42 tokoe:valid" result="pass"/><test-case name="35240reM42.i tokoe:invalid" result="pass"/><test-case name="35241reM43 tokoe:valid" result="pass"/><test-case name="35242reM43.i tokoe:invalid" result="pass"/><test-case name="35243reM44 tokoe:valid" result="pass"/><test-case name="35244reM44.i tokoe:invalid" result="pass"/><test-case name="35245reM45 tokoe:valid" result="pass"/><test-case name="35246reM45.i tokoe:invalid" result="pass"/><test-case name="35247reM46 tokoe:valid" result="pass"/><test-case name="35248reM46.i tokoe:invalid" result="pass"/><test-case name="35249reM47 tokoe:valid" result="pass"/><test-case name="35250reM47.i tokoe:invalid" result="pass"/><test-case name="35251reM48 tokoe:valid" result="pass"/><test-case name="35252reM48.i tokoe:invalid" result="pass"/><test-case name="35253reM49 tokoe:valid" result="pass"/><test-case name="35254reM49.i tokoe:invalid" result="pass"/><test-case name="35255reM50 tokoe:valid" result="pass"/><test-case name="35256reM50.i tokoe:invalid" result="pass"/><test-case name="35257reM51 tokoe:valid" result="pass"/><test-case name="35258reM51.i tokoe:invalid" result="pass"/><test-case name="35259reM52 tokoe:valid" result="pass"/><test-case name="35260reM52.i tokoe:invalid" result="pass"/><test-case name="35261reM53 tokoe:valid" result="pass"/><test-case name="35262reM53.i tokoe:invalid" result="pass"/><test-case name="35263reM54 tokoe:valid" result="pass"/><test-case name="35264reM54.i tokoe:invalid" result="pass"/><test-case name="35265reM55 tokoe:valid" result="pass"/><test-case name="35266reM55.i tokoe:invalid" result="pass"/><test-case name="35267reM56 tokoe:valid" result="pass"/><test-case name="35268reM56.i tokoe:invalid" result="pass"/><test-case name="35269reM57 tokoe:valid" result="pass"/><test-case name="35270reM57.i tokoe:invalid" result="pass"/><test-case name="35271reM58 tokoe:valid" result="pass"/><test-case name="35272reM58.i tokoe:invalid" result="pass"/><test-case name="35273reM59 tokoe:valid" result="pass"/><test-case name="35274reM59.i tokoe:invalid" result="pass"/><test-case name="35275reM60 tokoe:valid" result="pass"/><test-case name="35276reM60.i tokoe:invalid" result="pass"/><test-case name="35277reM61 tokoe:valid" result="pass"/><test-case name="35278reM61.i tokoe:invalid" result="pass"/><test-case name="35279reM62 tokoe:valid" result="pass"/><test-case name="35280reM62.i tokoe:invalid" result="pass"/><test-case name="35281reM63 tokoe:valid" result="pass"/><test-case name="35282reM63.i tokoe:invalid" result="pass"/><test-case name="35283reM64 tokoe:valid" result="pass"/><test-case name="35284reM64.i tokoe:invalid" result="pass"/><test-case name="35285reM65 tokoe:valid" result="pass"/><test-case name="35286reM65.i tokoe:invalid" result="pass"/><test-case name="35287reM66 tokoe:valid" result="pass"/><test-case name="35288reM66.i tokoe:invalid" result="pass"/><test-case name="35289reM67 tokoe:valid" result="pass"/><test-case name="35290reM67.i tokoe:invalid" result="pass"/><test-case name="35291reM68 tokoe:valid" result="pass"/><test-case name="35292reM68.i tokoe:invalid" result="pass"/><test-case name="35293reM69 tokoe:valid" result="pass"/><test-case name="35294reM69.i tokoe:invalid" result="pass"/><test-case name="35295reM70 tokoe:valid" result="pass"/><test-case name="35296reM70.i tokoe:invalid" result="pass"/><test-case name="35297reM71 tokoe:valid" result="pass"/><test-case name="35298reM71.i tokoe:invalid" result="pass"/><test-case name="35299reM72 tokoe:valid" result="pass"/><test-case name="35300reM72.i tokoe:invalid" result="pass"/><test-case name="35301reM73 tokoe:valid" result="pass"/><test-case name="35302reM73.i tokoe:invalid" result="pass"/><test-case name="35303reM77 tokoe:valid" result="fail"/><test-case name="35304reM77.i tokoe:invalid" result="pass"/><test-case name="35305reM78 tokoe:valid" result="pass"/><test-case name="35306reM78.i tokoe:invalid" result="pass"/><test-case name="35307reM79 tokoe:valid" result="pass"/><test-case name="35308reM79.i tokoe:invalid" result="pass"/><test-case name="35309reM80 tokoe:valid" result="pass"/><test-case name="35310reM80.i tokoe:invalid" result="pass"/><test-case name="35311reM81 tokoe:valid" result="pass"/><test-case name="35312reM81.i tokoe:invalid" result="pass"/><test-case name="35313reM82 tokoe:valid" result="pass"/><test-case name="35314reM82.i tokoe:invalid" result="pass"/><test-case name="35315reM83 tokoe:valid" result="pass"/><test-case name="35316reM83.i tokoe:invalid" result="pass"/><test-case name="35317reM84 tokoe:valid" result="pass"/><test-case name="35318reM84.i tokoe:invalid" result="pass"/><test-case name="35319reM86 tokoe:valid" result="pass"/><test-case name="35320reM86.i tokoe:invalid" result="pass"/><test-case name="35321reM87 tokoe:valid" result="pass"/><test-case name="35322reM87.i tokoe:invalid" result="pass"/><test-case name="35323reM88 tokoe:valid" result="pass"/><test-case name="35324reM88.i tokoe:invalid" result="pass"/><test-case name="35325reM89 tokoe:valid" result="pass"/><test-case name="35326reM89.i tokoe:invalid" result="pass"/><test-case name="35327reM90 tokoe:valid" result="pass"/><test-case name="35328reM90.i tokoe:invalid" result="pass"/><test-case name="35329reM91 tokoe:valid" result="pass"/><test-case name="35330reM91.i tokoe:invalid" result="pass"/><test-case name="35331reM92 tokoe:valid" result="pass"/><test-case name="35332reM92.i tokoe:invalid" result="pass"/><test-case name="35333reM93 tokoe:valid" result="pass"/><test-case name="35334reM93.i tokoe:invalid" result="pass"/><test-case name="35335reM94 tokoe:valid" result="pass"/><test-case name="35336reM94.i tokoe:invalid" result="pass"/><test-case name="35337reM95 tokoe:valid" result="pass"/><test-case name="35338reM95.i tokoe:invalid" result="pass"/><test-case name="35339reM96 tokoe:valid" result="pass"/><test-case name="35340reM96.i tokoe:invalid" result="pass"/><test-case name="35341reM97 tokoe:valid" result="pass"/><test-case name="35342reM97.i tokoe:invalid" result="pass"/><test-case name="35343reM99 tokoe:valid" result="pass"/><test-case name="35344reM99.i tokoe:invalid" result="pass"/><test-case name="35345reN1 tokoe:valid" result="pass"/><test-case name="35346reN1.i tokoe:invalid" result="pass"/><test-case name="35347reN2 tokoe:valid" result="pass"/><test-case name="35348reN2.i tokoe:invalid" result="pass"/><test-case name="35349reN3 tokoe:valid" result="pass"/><test-case name="35350reN3.i tokoe:invalid" result="pass"/><test-case name="35351reN4 tokoe:valid" result="pass"/><test-case name="35352reN4.i tokoe:invalid" result="pass"/><test-case name="35353reN5 tokoe:valid" result="pass"/><test-case name="35354reN5.i tokoe:invalid" result="pass"/><test-case name="35355reN6 tokoe:valid" result="pass"/><test-case name="35356reN6.i tokoe:invalid" result="pass"/><test-case name="35357reN8 tokoe:valid" result="pass"/><test-case name="35358reN8.i tokoe:invalid" result="pass"/><test-case name="35359reN9 tokoe:valid" result="pass"/><test-case name="35360reN9.i tokoe:invalid" result="pass"/><test-case name="35361reN10 tokoe:valid" result="pass"/><test-case name="35362reN10.i tokoe:invalid" result="pass"/><test-case name="35363reN11 tokoe:valid" result="pass"/><test-case name="35364reN11.i tokoe:invalid" result="pass"/><test-case name="35365reN12 tokoe:valid" result="pass"/><test-case name="35366reN12.i tokoe:invalid" result="pass"/><test-case name="35367reN13 tokoe:valid" result="pass"/><test-case name="35368reN13.i tokoe:invalid" result="pass"/><test-case name="35369reN14 tokoe:valid" result="pass"/><test-case name="35370reN14.i tokoe:invalid" result="pass"/><test-case name="35371reN15 tokoe:valid" result="pass"/><test-case name="35372reN15.i tokoe:invalid" result="pass"/><test-case name="35373reN16 tokoe:valid" result="pass"/><test-case name="35374reN16.i tokoe:invalid" result="pass"/><test-case name="35375reN17 tokoe:valid" result="pass"/><test-case name="35376reN17.i tokoe:invalid" result="pass"/><test-case name="35377reN18 tokoe:valid" result="pass"/><test-case name="35378reN18.i tokoe:invalid" result="pass"/><test-case name="35379reN19 tokoe:valid" result="pass"/><test-case name="35380reN19.i tokoe:invalid" result="pass"/><test-case name="35381reN20 tokoe:valid" result="pass"/><test-case name="35382reN20.i tokoe:invalid" result="pass"/><test-case name="35383reN21 tokoe:valid" result="pass"/><test-case name="35384reN21.i tokoe:invalid" result="pass"/><test-case name="35385reN22 tokoe:valid" result="pass"/><test-case name="35386reN22.i tokoe:invalid" result="pass"/><test-case name="35387reN23 tokoe:valid" result="pass"/><test-case name="35388reN23.i tokoe:invalid" result="pass"/><test-case name="35389reN24 tokoe:valid" result="pass"/><test-case name="35390reN24.i tokoe:invalid" result="pass"/><test-case name="35391reN25 tokoe:valid" result="pass"/><test-case name="35392reN25.i tokoe:invalid" result="pass"/><test-case name="35393reN26 tokoe:valid" result="pass"/><test-case name="35394reN26.i tokoe:invalid" result="pass"/><test-case name="35395reN27 tokoe:valid" result="pass"/><test-case name="35396reN27.i tokoe:invalid" result="pass"/><test-case name="35397reN28 tokoe:valid" result="pass"/><test-case name="35398reN28.i tokoe:invalid" result="pass"/><test-case name="35399reN29 tokoe:valid" result="pass"/><test-case name="35400reN29.i tokoe:invalid" result="pass"/><test-case name="35401reN30 tokoe:valid" result="pass"/><test-case name="35402reN30.i tokoe:invalid" result="pass"/><test-case name="35403reN31 tokoe:valid" result="pass"/><test-case name="35404reN31.i tokoe:invalid" result="pass"/><test-case name="35405reN32 tokoe:valid" result="pass"/><test-case name="35406reN32.i tokoe:invalid" result="pass"/><test-case name="35407reN33 tokoe:valid" result="pass"/><test-case name="35408reN33.i tokoe:invalid" result="pass"/><test-case name="35409reN34 tokoe:valid" result="pass"/><test-case name="35410reN34.i tokoe:invalid" result="pass"/><test-case name="35411reN35 tokoe:valid" result="pass"/><test-case name="35412reN35.i tokoe:invalid" result="pass"/><test-case name="35413reN36 tokoe:valid" result="pass"/><test-case name="35414reN36.i tokoe:invalid" result="pass"/><test-case name="35415reN37 tokoe:valid" result="pass"/><test-case name="35416reN37.i tokoe:invalid" result="pass"/><test-case name="35417reN38 tokoe:valid" result="pass"/><test-case name="35418reN38.i tokoe:invalid" result="pass"/><test-case name="35419reN39 tokoe:valid" result="pass"/><test-case name="35420reN39.i tokoe:invalid" result="pass"/><test-case name="35421reN40 tokoe:valid" result="pass"/><test-case name="35422reN40.i tokoe:invalid" result="pass"/><test-case name="35423reN41 tokoe:valid" result="pass"/><test-case name="35424reN41.i tokoe:invalid" result="pass"/><test-case name="35425reN42 tokoe:valid" result="pass"/><test-case name="35426reN42.i tokoe:invalid" result="pass"/><test-case name="35427reN43 tokoe:valid" result="pass"/><test-case name="35428reN43.i tokoe:invalid" result="pass"/><test-case name="35429reN44 tokoe:valid" result="pass"/><test-case name="35430reN44.i tokoe:invalid" result="pass"/><test-case name="35431reN45 tokoe:valid" result="pass"/><test-case name="35432reN45.i tokoe:invalid" result="pass"/><test-case name="35433reN46 tokoe:valid" result="pass"/><test-case name="35434reN46.i tokoe:invalid" result="pass"/><test-case name="35435reN47 tokoe:valid" result="pass"/><test-case name="35436reN47.i tokoe:invalid" result="pass"/><test-case name="35437reN48 tokoe:valid" result="pass"/><test-case name="35438reN48.i tokoe:invalid" result="pass"/><test-case name="35439reN49 tokoe:valid" result="pass"/><test-case name="35440reN49.i tokoe:invalid" result="pass"/><test-case name="35441reN50 tokoe:valid" result="pass"/><test-case name="35442reN50.i tokoe:invalid" result="pass"/><test-case name="35443reN51 tokoe:valid" result="pass"/><test-case name="35444reN51.i tokoe:invalid" result="pass"/><test-case name="35445reN52 tokoe:valid" result="pass"/><test-case name="35446reN52.i tokoe:invalid" result="pass"/><test-case name="35447reN53 tokoe:valid" result="pass"/><test-case name="35448reN53.i tokoe:invalid" result="pass"/><test-case name="35449reN54 tokoe:valid" result="pass"/><test-case name="35450reN54.i tokoe:invalid" result="pass"/><test-case name="35451reN55 tokoe:valid" result="pass"/><test-case name="35452reN55.i tokoe:invalid" result="pass"/><test-case name="35453reN56 tokoe:valid" result="pass"/><test-case name="35454reN56.i tokoe:invalid" result="pass"/><test-case name="35455reN57 tokoe:valid" result="pass"/><test-case name="35456reN57.i tokoe:invalid" result="pass"/><test-case name="35457reN58 tokoe:valid" result="pass"/><test-case name="35458reN58.i tokoe:invalid" result="pass"/><test-case name="35459reN59 tokoe:valid" result="pass"/><test-case name="35460reN59.i tokoe:invalid" result="pass"/><test-case name="35461reN60 tokoe:valid" result="pass"/><test-case name="35462reN60.i tokoe:invalid" result="pass"/><test-case name="35463reN61 tokoe:valid" result="pass"/><test-case name="35464reN61.i tokoe:invalid" result="pass"/><test-case name="35465reN62 tokoe:valid" result="pass"/><test-case name="35466reN62.i tokoe:invalid" result="pass"/><test-case name="35467reN63 tokoe:valid" result="pass"/><test-case name="35468reN63.i tokoe:invalid" result="pass"/><test-case name="35469reN64 tokoe:valid" result="pass"/><test-case name="35470reN64.i tokoe:invalid" result="pass"/><test-case name="35471reN65 tokoe:valid" result="pass"/><test-case name="35472reN65.i tokoe:invalid" result="pass"/><test-case name="35473reN66 tokoe:valid" result="pass"/><test-case name="35474reN66.i tokoe:invalid" result="pass"/><test-case name="35475reN67 tokoe:valid" result="pass"/><test-case name="35476reN67.i tokoe:invalid" result="pass"/><test-case name="35477reN68 tokoe:valid" result="pass"/><test-case name="35478reN68.i tokoe:invalid" result="pass"/><test-case name="35479reN69 tokoe:valid" result="pass"/><test-case name="35480reN69.i tokoe:invalid" result="pass"/><test-case name="35481reN70 tokoe:valid" result="pass"/><test-case name="35482reN70.i tokoe:invalid" result="pass"/><test-case name="35483reN71 tokoe:valid" result="pass"/><test-case name="35484reN71.i tokoe:invalid" result="pass"/><test-case name="35485reN72 tokoe:valid" result="pass"/><test-case name="35486reN72.i tokoe:invalid" result="pass"/><test-case name="35487reN73 tokoe:valid" result="pass"/><test-case name="35488reN73.i tokoe:invalid" result="pass"/><test-case name="35489reN74 tokoe:valid" result="pass"/><test-case name="35490reN74.i tokoe:invalid" result="pass"/><test-case name="35491reN75 tokoe:valid" result="fail"/><test-case name="35492reN75.i tokoe:invalid" result="pass"/><test-case name="35493reN79 tokoe:valid" result="pass"/><test-case name="35494reN79.i tokoe:invalid" result="pass"/><test-case name="35495reN80 tokoe:valid" result="pass"/><test-case name="35496reN80.i tokoe:invalid" result="pass"/><test-case name="35497reN81 tokoe:valid" result="pass"/><test-case name="35498reN81.i tokoe:invalid" result="pass"/><test-case name="35499reN82 tokoe:valid" result="pass"/><test-case name="35500reN82.i tokoe:invalid" result="pass"/><test-case name="35501reN83 tokoe:valid" result="pass"/><test-case name="35502reN83.i tokoe:invalid" result="pass"/><test-case name="35503reN84 tokoe:valid" result="pass"/><test-case name="35504reN84.i tokoe:invalid" result="pass"/><test-case name="35505reN85 tokoe:valid" result="pass"/><test-case name="35506reN85.i tokoe:invalid" result="pass"/><test-case name="35507reN86 tokoe:valid" result="pass"/><test-case name="35508reN86.i tokoe:invalid" result="pass"/><test-case name="35509reN87 tokoe:valid" result="pass"/><test-case name="35510reN87.i tokoe:invalid" result="pass"/><test-case name="35511reN88 tokoe:valid" result="pass"/><test-case name="35512reN88.i tokoe:invalid" result="pass"/><test-case name="35513reN89 tokoe:valid" result="pass"/><test-case name="35514reN89.i tokoe:invalid" result="pass"/><test-case name="35515reN90 tokoe:valid" result="pass"/><test-case name="35516reN90.i tokoe:invalid" result="pass"/><test-case name="35517reN91 tokoe:valid" result="pass"/><test-case name="35518reN91.i tokoe:invalid" result="pass"/><test-case name="35519reN92 tokoe:valid" result="pass"/><test-case name="35520reN92.i tokoe:invalid" result="pass"/><test-case name="35521reN93 tokoe:valid" result="pass"/><test-case name="35522reN93.i tokoe:invalid" result="pass"/><test-case name="35523reN94 tokoe:valid" result="pass"/><test-case name="35524reN94.i tokoe:invalid" result="pass"/><test-case name="35525reN95 tokoe:valid" result="pass"/><test-case name="35526reN95.i tokoe:invalid" result="pass"/><test-case name="35527reN96 tokoe:valid" result="pass"/><test-case name="35528reN96.i tokoe:invalid" result="pass"/><test-case name="35529reN97 tokoe:valid" result="pass"/><test-case name="35530reN97.i tokoe:invalid" result="pass"/><test-case name="35531reN98 tokoe:valid" result="pass"/><test-case name="35532reN98.i tokoe:invalid" result="pass"/><test-case name="35533reO1 tokoe:valid" result="pass"/><test-case name="35534reO1.v tokoe:valid" result="pass"/><test-case name="35535reO2 tokoe:valid" result="pass"/><test-case name="35536reO2.v tokoe:valid" result="pass"/><test-case name="35537reO3 tokoe:valid" result="pass"/><test-case name="35538reO3.i tokoe:invalid" result="pass"/><test-case name="35539reO4 tokoe:valid" result="pass"/><test-case name="35540reO4.i tokoe:invalid" result="pass"/><test-case name="35541reP1 tokoe:valid" result="pass"/><test-case name="35542reP1.v tokoe:valid" result="pass"/><test-case name="35543reP2 tokoe:valid" result="pass"/><test-case name="35544reP2.v tokoe:valid" result="pass"/><test-case name="35545reP3 tokoe:valid" result="pass"/><test-case name="35546reP3.v tokoe:valid" result="pass"/><test-case name="35547reP4 tokoe:valid" result="pass"/><test-case name="35548reP4.v tokoe:valid" result="pass"/><test-case name="35549reP5 tokoe:valid" result="pass"/><test-case name="35550reP5.i tokoe:invalid" result="pass"/><test-case name="35551reP6 tokoe:valid" result="pass"/><test-case name="35552reP6.v tokoe:valid" result="pass"/><test-case name="35553reP7 tokoe:valid" result="pass"/><test-case name="35554reP7.v tokoe:valid" result="pass"/><test-case name="35555reP8 tokoe:valid" result="pass"/><test-case name="35556reP8.i tokoe:invalid" result="pass"/><test-case name="35557reP9 tokoe:valid" result="pass"/><test-case name="35558reP9.i tokoe:invalid" result="pass"/><test-case name="35559reP10 tokoe:valid" result="pass"/><test-case name="35560reP10.i tokoe:invalid" result="pass"/><test-case name="35561reP11 tokoe:valid" result="pass"/><test-case name="35562reP11.v tokoe:valid" result="pass"/><test-case name="35563reP12 tokoe:valid" result="pass"/><test-case name="35564reP12.v tokoe:valid" result="pass"/><test-case name="35565reP13 tokoe:valid" result="pass"/><test-case name="35566reP13.v tokoe:valid" result="pass"/><test-case name="35567reP14 tokoe:valid" result="pass"/><test-case name="35568reP14.i tokoe:invalid" result="pass"/><test-case name="35569reP15 tokoe:valid" result="pass"/><test-case name="35570reP15.i tokoe:invalid" result="pass"/><test-case name="35571reP16 tokoe:valid" result="pass"/><test-case name="35572reP16.i tokoe:invalid" result="pass"/><test-case name="35573reP17 tokoe:valid" result="pass"/><test-case name="35574reP17.i tokoe:invalid" result="pass"/><test-case name="35575reP18 tokoe:valid" result="pass"/><test-case name="35576reP18.v tokoe:valid" result="pass"/><test-case name="35577reP19 tokoe:valid" result="pass"/><test-case name="35578reP19.i tokoe:invalid" result="pass"/><test-case name="35579reP20 tokoe:valid" result="pass"/><test-case name="35580reP20.i tokoe:invalid" result="pass"/><test-case name="35581reP21 tokoe:valid" result="pass"/><test-case name="35582reP21.i tokoe:invalid" result="pass"/><test-case name="35583reP22 tokoe:valid" result="pass"/><test-case name="35584reP22.i tokoe:invalid" result="pass"/><test-case name="35585reP23 tokoe:valid" result="pass"/><test-case name="35586reP23.i tokoe:invalid" result="pass"/><test-case name="35587reP24 tokoe:valid" result="pass"/><test-case name="35588reP24.i tokoe:invalid" result="pass"/><test-case name="35589reP25 tokoe:valid" result="pass"/><test-case name="35590reP25.v tokoe:valid" result="pass"/><test-case name="35591reP26 tokoe:valid" result="pass"/><test-case name="35592reP26.v tokoe:valid" result="pass"/><test-case name="35593reP27 tokoe:valid" result="pass"/><test-case name="35594reP27.v tokoe:valid" result="pass"/><test-case name="35595reP28 tokoe:valid" result="pass"/><test-case name="35596reP28.i tokoe:invalid" result="pass"/><test-case name="35597reP29 tokoe:valid" result="pass"/><test-case name="35598reP29.i tokoe:invalid" result="pass"/><test-case name="35599reP30 tokoe:valid" result="pass"/><test-case name="35600reP30.i tokoe:invalid" result="pass"/><test-case name="35601reQ1 tokoe:valid" result="pass"/><test-case name="35602reQ1.v tokoe:valid" result="pass"/><test-case name="35603reQ2 tokoe:valid" result="pass"/><test-case name="35604reQ2.v tokoe:valid" result="pass"/><test-case name="35605reQ3 tokoe:valid" result="pass"/><test-case name="35606reQ3.v tokoe:valid" result="pass"/><test-case name="35607reQ4 tokoe:valid" result="pass"/><test-case name="35608reQ4.i tokoe:invalid" result="pass"/><test-case name="35609reQ5 tokoe:valid" result="pass"/><test-case name="35610reQ5.i tokoe:invalid" result="pass"/><test-case name="35611reQ6 tokoe:valid" result="pass"/><test-case name="35612reQ6.i tokoe:invalid" result="pass"/><test-case name="35613reQ7 tokoe:valid" result="pass"/><test-case name="35614reQ7.i tokoe:invalid" result="pass"/><test-case name="35615reQ8 tokoe:valid" result="pass"/><test-case name="35616reQ8.v tokoe:valid" result="pass"/><test-case name="35617reQ9 tokoe:valid" result="pass"/><test-case name="35618reQ9.i tokoe:invalid" result="pass"/><test-case name="35619reQ10 tokoe:valid" result="pass"/><test-case name="35620reQ10.v tokoe:valid" result="pass"/><test-case name="35621reQ11 tokoe:valid" result="pass"/><test-case name="35622reQ11.i tokoe:invalid" result="pass"/><test-case name="35623reQ12 tokoe:valid" result="pass"/><test-case name="35624reQ12.v tokoe:valid" result="pass"/><test-case name="35625reQ13 tokoe:valid" result="pass"/><test-case name="35626reQ13.i tokoe:invalid" result="fail"/><test-case name="35627reQ14 tokoe:valid" result="pass"/><test-case name="35628reQ14.i tokoe:invalid" result="pass"/><test-case name="35629reQ15 tokoe:valid" result="pass"/><test-case name="35630reQ15.i tokoe:invalid" result="pass"/><test-case name="35631reQ16 tokoe:valid" result="pass"/><test-case name="35632reQ16.i tokoe:invalid" result="pass"/><test-case name="35633reQ17 tokoe:valid" result="pass"/><test-case name="35634reQ17.v tokoe:valid" result="pass"/><test-case name="35635reQ18 tokoe:valid" result="pass"/><test-case name="35636reQ18.v tokoe:valid" result="pass"/><test-case name="35637reQ19 tokoe:valid" result="pass"/><test-case name="35638reQ19.v tokoe:valid" result="pass"/><test-case name="35639reQ20 tokoe:valid" result="pass"/><test-case name="35640reQ20.v tokoe:valid" result="pass"/><test-case name="35641reQ21 tokoe:valid" result="pass"/><test-case name="35642reQ21.v tokoe:valid" result="fail"/><test-case name="35643reQ22 tokoe:valid" result="pass"/><test-case name="35644reQ22.v tokoe:valid" result="fail"/><test-case name="35645reQ23 tokoe:valid" result="pass"/><test-case name="35646reQ23.i tokoe:invalid" result="pass"/><test-case name="35647reQ24 tokoe:valid" result="pass"/><test-case name="35648reQ24.i tokoe:invalid" result="pass"/><test-case name="35649reR1 tokoe:valid" result="pass"/><test-case name="35650reR1.v tokoe:valid" result="pass"/><test-case name="35651reR2 tokoe:valid" result="pass"/><test-case name="35652reR2.v tokoe:valid" result="pass"/><test-case name="35653reR3 tokoe:valid" result="pass"/><test-case name="35654reR3.v tokoe:valid" result="pass"/><test-case name="35655reR4 tokoe:valid" result="pass"/><test-case name="35656reR4.i tokoe:invalid" result="pass"/><test-case name="35657reR5 tokoe:valid" result="pass"/><test-case name="35658reR5.i tokoe:invalid" result="pass"/><test-case name="35659reR6 tokoe:valid" result="pass"/><test-case name="35660reR6.i tokoe:invalid" result="pass"/><test-case name="35661reR7 tokoe:valid" result="pass"/><test-case name="35662reR7.i tokoe:invalid" result="pass"/><test-case name="35663reR8 tokoe:valid" result="pass"/><test-case name="35664reR8.v tokoe:valid" result="pass"/><test-case name="35665reR9 tokoe:valid" result="pass"/><test-case name="35666reR9.v tokoe:valid" result="pass"/><test-case name="35667reR10 tokoe:valid" result="pass"/><test-case name="35668reR10.i tokoe:invalid" result="pass"/><test-case name="35669reR11 tokoe:valid" result="pass"/><test-case name="35670reR11.i tokoe:invalid" result="pass"/><test-case name="35671reR12 tokoe:valid" result="pass"/><test-case name="35672reR12.v tokoe:valid" result="pass"/><test-case name="35673reR13 tokoe:valid" result="pass"/><test-case name="35674reR13.v tokoe:valid" result="pass"/><test-case name="35675reR14 tokoe:valid" result="pass"/><test-case name="35676reR14.v tokoe:valid" result="pass"/><test-case name="35677reR15 tokoe:valid" result="pass"/><test-case name="35678reR15.i tokoe:invalid" result="pass"/><test-case name="35679reR16 tokoe:valid" result="pass"/><test-case name="35680reR16.i tokoe:invalid" result="pass"/><test-case name="35681reR17 tokoe:valid" result="pass"/><test-case name="35682reR17.i tokoe:invalid" result="pass"/><test-case name="35683reR18 tokoe:valid" result="pass"/><test-case name="35684reR18.i tokoe:invalid" result="pass"/><test-case name="35685reR19 tokoe:valid" result="pass"/><test-case name="35686reR19.v tokoe:valid" result="pass"/><test-case name="35687reR20 tokoe:valid" result="pass"/><test-case name="35688reR20.v tokoe:valid" result="pass"/><test-case name="35689reR21 tokoe:valid" result="pass"/><test-case name="35690reR21.v tokoe:valid" result="pass"/><test-case name="35691reR22 tokoe:valid" result="pass"/><test-case name="35692reR22.v tokoe:valid" result="pass"/><test-case name="35693reR23 tokoe:valid" result="pass"/><test-case name="35694reR23.i tokoe:invalid" result="pass"/><test-case name="35695reR24 tokoe:valid" result="pass"/><test-case name="35696reR24.v tokoe:valid" result="pass"/><test-case name="35697reR25 tokoe:valid" result="pass"/><test-case name="35698reR25.v tokoe:valid" result="pass"/><test-case name="35699reR26 tokoe:valid" result="pass"/><test-case name="35700reR26.i tokoe:invalid" result="pass"/><test-case name="35701reR27 tokoe:valid" result="pass"/><test-case name="35702reR27.i tokoe:invalid" result="pass"/><test-case name="35703reR28 tokoe:valid" result="pass"/><test-case name="35704reR28.i tokoe:invalid" result="pass"/><test-case name="35705reR29 tokoe:valid" result="pass"/><test-case name="35706reR29.i tokoe:invalid" result="pass"/><test-case name="35707reS1 tokoe:valid" result="pass"/><test-case name="35708reS1.v tokoe:valid" result="pass"/><test-case name="35709reS3 tokoe:valid" result="pass"/><test-case name="35710reS3.v tokoe:valid" result="pass"/><test-case name="35711reS5 tokoe:valid" result="pass"/><test-case name="35712reS5.v tokoe:valid" result="pass"/><test-case name="35713reS6 tokoe:valid" result="pass"/><test-case name="35714reS6.v tokoe:valid" result="pass"/><test-case name="35715reS7 tokoe:valid" result="pass"/><test-case name="35716reS7.v tokoe:valid" result="pass"/><test-case name="35717reS8 tokoe:valid" result="pass"/><test-case name="35718reS8.v tokoe:valid" result="pass"/><test-case name="35719reS9 tokoe:valid" result="pass"/><test-case name="35720reS9.v tokoe:valid" result="pass"/><test-case name="35721reS10 tokoe:valid" result="pass"/><test-case name="35722reS10.v tokoe:valid" result="pass"/><test-case name="35723reS11 tokoe:valid" result="pass"/><test-case name="35724reS11.v tokoe:valid" result="pass"/><test-case name="35725reS12 tokoe:valid" result="pass"/><test-case name="35726reS12.v tokoe:valid" result="pass"/><test-case name="35727reS13 tokoe:valid" result="pass"/><test-case name="35728reS13.v tokoe:valid" result="pass"/><test-case name="35729reS14 tokoe:valid" result="pass"/><test-case name="35730reS14.v tokoe:valid" result="pass"/><test-case name="35731reS15 tokoe:valid" result="pass"/><test-case name="35732reS15.v tokoe:valid" result="pass"/><test-case name="35733reS16 tokoe:valid" result="pass"/><test-case name="35734reS16.v tokoe:valid" result="pass"/><test-case name="35735reS17 tokoe:valid" result="pass"/><test-case name="35736reS17.v tokoe:valid" result="fail"/><test-case name="35737reS18 tokoe:valid" result="pass"/><test-case name="35738reS18.v tokoe:valid" result="pass"/><test-case name="35739reS19 tokoe:valid" result="pass"/><test-case name="35740reS19.v tokoe:valid" result="pass"/><test-case name="35741reS20 tokoe:valid" result="pass"/><test-case name="35742reS20.v tokoe:valid" result="pass"/><test-case name="35743reS22 tokoe:valid" result="pass"/><test-case name="35744reS22.v tokoe:valid" result="pass"/><test-case name="35745reS23 tokoe:valid" result="pass"/><test-case name="35746reS23.v tokoe:valid" result="pass"/><test-case name="35747reS24 tokoe:valid" result="pass"/><test-case name="35748reS24.v tokoe:valid" result="pass"/><test-case name="35749reS25 tokoe:valid" result="pass"/><test-case name="35750reS25.v tokoe:valid" result="pass"/><test-case name="35751reS26 tokoe:valid" result="pass"/><test-case name="35752reS26.v tokoe:valid" result="pass"/><test-case name="35753reS27 tokoe:valid" result="pass"/><test-case name="35754reS27.v tokoe:valid" result="pass"/><test-case name="35755reS28 tokoe:valid" result="pass"/><test-case name="35756reS28.v tokoe:valid" result="pass"/><test-case name="35757reS29 tokoe:valid" result="pass"/><test-case name="35758reS29.v tokoe:valid" result="pass"/><test-case name="35759reS30 tokoe:valid" result="pass"/><test-case name="35760reS30.v tokoe:valid" result="pass"/><test-case name="35761reS31 tokoe:valid" result="pass"/><test-case name="35762reS31.v tokoe:valid" result="pass"/><test-case name="35763reS32 tokoe:valid" result="pass"/><test-case name="35764reS32.v tokoe:valid" result="pass"/><test-case name="35765reS33 tokoe:valid" result="pass"/><test-case name="35766reS33.v tokoe:valid" result="pass"/><test-case name="35767reS34 tokoe:valid" result="pass"/><test-case name="35768reS34.v tokoe:valid" result="pass"/><test-case name="35769reS35 tokoe:valid" result="pass"/><test-case name="35770reS35.v tokoe:valid" result="pass"/><test-case name="35771reS36 tokoe:valid" result="pass"/><test-case name="35772reS36.v tokoe:valid" result="pass"/><test-case name="35773reS37 tokoe:valid" result="pass"/><test-case name="35774reS37.v tokoe:valid" result="pass"/><test-case name="35775reS38 tokoe:valid" result="pass"/><test-case name="35776reS38.v tokoe:valid" result="fail"/><test-case name="35777reS39 tokoe:valid" result="pass"/><test-case name="35778reS39.v tokoe:valid" result="pass"/><test-case name="35779reS40 tokoe:valid" result="pass"/><test-case name="35780reS40.v tokoe:valid" result="pass"/><test-case name="35781reS41 tokoe:valid" result="pass"/><test-case name="35782reS41.v tokoe:valid" result="pass"/><test-case name="35783reS43 tokoe:valid" result="pass"/><test-case name="35784reS43.i tokoe:invalid" result="pass"/><test-case name="35785reS44 tokoe:valid" result="pass"/><test-case name="35786reS44.i tokoe:invalid" result="pass"/><test-case name="35787reS45 tokoe:valid" result="pass"/><test-case name="35788reS45.i tokoe:invalid" result="pass"/><test-case name="35789reS46 tokoe:valid" result="pass"/><test-case name="35790reS46.i tokoe:invalid" result="pass"/><test-case name="35791reS47 tokoe:valid" result="pass"/><test-case name="35792reS47.i tokoe:invalid" result="pass"/><test-case name="35793reS48 tokoe:valid" result="pass"/><test-case name="35794reS48.i tokoe:invalid" result="pass"/><test-case name="35795reS49 tokoe:valid" result="pass"/><test-case name="35796reS49.i tokoe:invalid" result="pass"/><test-case name="35797reS50 tokoe:valid" result="pass"/><test-case name="35798reS50.i tokoe:invalid" result="pass"/><test-case name="35799reS51 tokoe:valid" result="pass"/><test-case name="35800reS51.i tokoe:invalid" result="fail"/><test-case name="35801reS52 tokoe:valid" result="pass"/><test-case name="35802reS52.i tokoe:invalid" result="pass"/><test-case name="35803reS53 tokoe:valid" result="pass"/><test-case name="35804reS53.i tokoe:invalid" result="pass"/><test-case name="35805reS54 tokoe:valid" result="pass"/><test-case name="35806reS54.i tokoe:invalid" result="pass"/><test-case name="35807reS55 tokoe:valid" result="pass"/><test-case name="35808reS55.i tokoe:invalid" result="pass"/><test-case name="35809reS56 tokoe:valid" result="pass"/><test-case name="35810reS56.i tokoe:invalid" result="pass"/><test-case name="35811reS57 tokoe:valid" result="pass"/><test-case name="35812reS57.i tokoe:invalid" result="pass"/><test-case name="35813reS58 tokoe:valid" result="pass"/><test-case name="35814reS58.i tokoe:invalid" result="pass"/><test-case name="35815reS59 tokoe:valid" result="pass"/><test-case name="35816reS59.i tokoe:invalid" result="pass"/><test-case name="35817reS60 tokoe:valid" result="pass"/><test-case name="35818reS60.i tokoe:invalid" result="pass"/><test-case name="35819reS61 tokoe:valid" result="pass"/><test-case name="35820reS61.i tokoe:invalid" result="pass"/><test-case name="35821reS62 tokoe:valid" result="pass"/><test-case name="35822reS62.i tokoe:invalid" result="pass"/><test-case name="35823reS63 tokoe:valid" result="pass"/><test-case name="35824reS63.i tokoe:invalid" result="pass"/><test-case name="35825reS64 tokoe:valid" result="pass"/><test-case name="35826reS64.i tokoe:invalid" result="pass"/><test-case name="35827reS65 tokoe:valid" result="pass"/><test-case name="35828reS65.i tokoe:invalid" result="pass"/><test-case name="35829reS66 tokoe:valid" result="pass"/><test-case name="35830reS66.i tokoe:invalid" result="pass"/><test-case name="35831reS67 tokoe:valid" result="pass"/><test-case name="35832reS67.i tokoe:invalid" result="pass"/><test-case name="35833reS68 tokoe:valid" result="pass"/><test-case name="35834reS68.i tokoe:invalid" result="pass"/><test-case name="35835reS69 tokoe:valid" result="pass"/><test-case name="35836reS69.i tokoe:invalid" result="pass"/><test-case name="35837reS70 tokoe:valid" result="pass"/><test-case name="35838reS70.i tokoe:invalid" result="pass"/><test-case name="35839reS71 tokoe:valid" result="pass"/><test-case name="35840reS71.i tokoe:invalid" result="pass"/><test-case name="35841reS72 tokoe:valid" result="pass"/><test-case name="35842reS72.i tokoe:invalid" result="pass"/><test-case name="35843reS73 tokoe:valid" result="pass"/><test-case name="35844reS73.i tokoe:invalid" result="pass"/><test-case name="35845reS74 tokoe:valid" result="pass"/><test-case name="35846reS74.i tokoe:invalid" result="pass"/><test-case name="35847reS75 tokoe:valid" result="pass"/><test-case name="35848reS75.i tokoe:invalid" result="pass"/><test-case name="35849reS76 tokoe:valid" result="pass"/><test-case name="35850reS76.i tokoe:invalid" result="pass"/><test-case name="35851reS77 tokoe:valid" result="pass"/><test-case name="35852reS77.i tokoe:invalid" result="pass"/><test-case name="35853reS78 tokoe:valid" result="pass"/><test-case name="35854reS78.i tokoe:invalid" result="pass"/><test-case name="35855reS79 tokoe:valid" result="pass"/><test-case name="35856reS79.i tokoe:invalid" result="pass"/><test-case name="35857reS80 tokoe:valid" result="pass"/><test-case name="35858reS80.i tokoe:invalid" result="pass"/><test-case name="35859reS81 tokoe:valid" result="pass"/><test-case name="35860reS81.i tokoe:invalid" result="pass"/><test-case name="35861reS82 tokoe:valid" result="pass"/><test-case name="35862reS82.i tokoe:invalid" result="pass"/><test-case name="35863reS83 tokoe:valid" result="pass"/><test-case name="35864reS83.i tokoe:invalid" result="pass"/><test-case name="35865reS84 tokoe:valid" result="pass"/><test-case name="35866reS84.i tokoe:invalid" result="pass"/><test-case name="35867reT1 tokoe:valid" result="pass"/><test-case name="35868reT1.i tokoe:invalid" result="pass"/><test-case name="35869reT2 tokoe:valid" result="pass"/><test-case name="35870reT2.i tokoe:invalid" result="pass"/><test-case name="35871reT3 tokoe:valid" result="pass"/><test-case name="35872reT3.i tokoe:invalid" result="pass"/><test-case name="35873reT4 tokoe:valid" result="pass"/><test-case name="35874reT4.i tokoe:invalid" result="pass"/><test-case name="35875reT5 tokoe:valid" result="pass"/><test-case name="35876reT5.i tokoe:invalid" result="pass"/><test-case name="35877reT7 tokoe:valid" result="pass"/><test-case name="35878reT7.i tokoe:invalid" result="pass"/><test-case name="35879reT9 tokoe:valid" result="pass"/><test-case name="35880reT9.i tokoe:invalid" result="pass"/><test-case name="35881reT10 tokoe:valid" result="pass"/><test-case name="35882reT10.i tokoe:invalid" result="pass"/><test-case name="35883reT11 tokoe:valid" result="pass"/><test-case name="35884reT11.i tokoe:invalid" result="pass"/><test-case name="35885reT12 tokoe:valid" result="pass"/><test-case name="35886reT12.i tokoe:invalid" result="pass"/><test-case name="35887reT13 tokoe:valid" result="pass"/><test-case name="35888reT13.i tokoe:invalid" result="pass"/><test-case name="35889reT14 tokoe:valid" result="pass"/><test-case name="35890reT14.i tokoe:invalid" result="pass"/><test-case name="35891reT15 tokoe:valid" result="pass"/><test-case name="35892reT15.i tokoe:invalid" result="pass"/><test-case name="35893reT16 tokoe:valid" result="pass"/><test-case name="35894reT16.i tokoe:invalid" result="pass"/><test-case name="35895reT17 tokoe:valid" result="pass"/><test-case name="35896reT17.i tokoe:invalid" result="fail"/><test-case name="35897reT18 tokoe:valid" result="pass"/><test-case name="35898reT18.i tokoe:invalid" result="pass"/><test-case name="35899reT19 tokoe:valid" result="pass"/><test-case name="35900reT19.i tokoe:invalid" result="pass"/><test-case name="35901reT20 tokoe:valid" result="pass"/><test-case name="35902reT20.i tokoe:invalid" result="pass"/><test-case name="35903reT21 tokoe:valid" result="pass"/><test-case name="35904reT21.i tokoe:invalid" result="pass"/><test-case name="35905reT22 tokoe:valid" result="pass"/><test-case name="35906reT22.i tokoe:invalid" result="pass"/><test-case name="35907reT23 tokoe:valid" result="pass"/><test-case name="35908reT23.i tokoe:invalid" result="pass"/><test-case name="35909reT24 tokoe:valid" result="pass"/><test-case name="35910reT24.i tokoe:invalid" result="pass"/><test-case name="35911reT25 tokoe:valid" result="pass"/><test-case name="35912reT25.i tokoe:invalid" result="pass"/><test-case name="35913reT26 tokoe:valid" result="pass"/><test-case name="35914reT26.i tokoe:invalid" result="pass"/><test-case name="35915reT27 tokoe:valid" result="pass"/><test-case name="35916reT27.i tokoe:invalid" result="pass"/><test-case name="35917reT28 tokoe:valid" result="pass"/><test-case name="35918reT28.i tokoe:invalid" result="pass"/><test-case name="35919reT29 tokoe:valid" result="pass"/><test-case name="35920reT29.i tokoe:invalid" result="pass"/><test-case name="35921reT30 tokoe:valid" result="pass"/><test-case name="35922reT30.i tokoe:invalid" result="pass"/><test-case name="35923reT31 tokoe:valid" result="pass"/><test-case name="35924reT31.i tokoe:invalid" result="pass"/><test-case name="35925reT32 tokoe:valid" result="pass"/><test-case name="35926reT32.i tokoe:invalid" result="pass"/><test-case name="35927reT33 tokoe:valid" result="pass"/><test-case name="35928reT33.i tokoe:invalid" result="pass"/><test-case name="35929reT34 tokoe:valid" result="pass"/><test-case name="35930reT34.i tokoe:invalid" result="pass"/><test-case name="35931reT35 tokoe:valid" result="pass"/><test-case name="35932reT35.i tokoe:invalid" result="pass"/><test-case name="35933reT36 tokoe:valid" result="pass"/><test-case name="35934reT36.i tokoe:invalid" result="pass"/><test-case name="35935reT37 tokoe:valid" result="pass"/><test-case name="35936reT37.i tokoe:invalid" result="pass"/><test-case name="35937reT38 tokoe:valid" result="pass"/><test-case name="35938reT38.i tokoe:invalid" result="fail"/><test-case name="35939reT39 tokoe:valid" result="pass"/><test-case name="35940reT39.i tokoe:invalid" result="pass"/><test-case name="35941reT40 tokoe:valid" result="pass"/><test-case name="35942reT40.i tokoe:invalid" result="pass"/><test-case name="35943reT41 tokoe:valid" result="pass"/><test-case name="35944reT41.i tokoe:invalid" result="pass"/><test-case name="35945reT42 tokoe:valid" result="pass"/><test-case name="35946reT42.i tokoe:invalid" result="pass"/><test-case name="35947reT43 tokoe:valid" result="pass"/><test-case name="35948reT43.v tokoe:valid" result="pass"/><test-case name="35949reT44 tokoe:valid" result="pass"/><test-case name="35950reT44.v tokoe:valid" result="pass"/><test-case name="35951reT45 tokoe:valid" result="pass"/><test-case name="35952reT45.v tokoe:valid" result="pass"/><test-case name="35953reT46 tokoe:valid" result="pass"/><test-case name="35954reT46.v tokoe:valid" result="pass"/><test-case name="35955reT47 tokoe:valid" result="pass"/><test-case name="35956reT47.v tokoe:valid" result="pass"/><test-case name="35957reT48 tokoe:valid" result="pass"/><test-case name="35958reT48.v tokoe:valid" result="pass"/><test-case name="35959reT49 tokoe:valid" result="pass"/><test-case name="35960reT49.v tokoe:valid" result="pass"/><test-case name="35961reT50 tokoe:valid" result="pass"/><test-case name="35962reT50.v tokoe:valid" result="pass"/><test-case name="35963reT51 tokoe:valid" result="pass"/><test-case name="35964reT51.v tokoe:valid" result="fail"/><test-case name="35965reT52 tokoe:valid" result="pass"/><test-case name="35966reT52.v tokoe:valid" result="pass"/><test-case name="35967reT53 tokoe:valid" result="pass"/><test-case name="35968reT53.v tokoe:valid" result="pass"/><test-case name="35969reT54 tokoe:valid" result="pass"/><test-case name="35970reT54.v tokoe:valid" result="pass"/><test-case name="35971reT55 tokoe:valid" result="pass"/><test-case name="35972reT55.v tokoe:valid" result="pass"/><test-case name="35973reT56 tokoe:valid" result="pass"/><test-case name="35974reT56.v tokoe:valid" result="pass"/><test-case name="35975reT57 tokoe:valid" result="pass"/><test-case name="35976reT57.v tokoe:valid" result="pass"/><test-case name="35977reT58 tokoe:valid" result="pass"/><test-case name="35978reT58.v tokoe:valid" result="pass"/><test-case name="35979reT59 tokoe:valid" result="pass"/><test-case name="35980reT59.v tokoe:valid" result="pass"/><test-case name="35981reT60 tokoe:valid" result="pass"/><test-case name="35982reT60.v tokoe:valid" result="pass"/><test-case name="35983reT61 tokoe:valid" result="pass"/><test-case name="35984reT61.v tokoe:valid" result="pass"/><test-case name="35985reT62 tokoe:valid" result="pass"/><test-case name="35986reT62.v tokoe:valid" result="pass"/><test-case name="35987reT64 tokoe:valid" result="pass"/><test-case name="35988reT64.v tokoe:valid" result="pass"/><test-case name="35989reT65 tokoe:valid" result="pass"/><test-case name="35990reT65.v tokoe:valid" result="pass"/><test-case name="35991reT66 tokoe:valid" result="pass"/><test-case name="35992reT66.v tokoe:valid" result="pass"/><test-case name="35993reT67 tokoe:valid" result="pass"/><test-case name="35994reT67.v tokoe:valid" result="pass"/><test-case name="35995reT68 tokoe:valid" result="pass"/><test-case name="35996reT68.v tokoe:valid" result="pass"/><test-case name="35997reT69 tokoe:valid" result="pass"/><test-case name="35998reT69.v tokoe:valid" result="pass"/><test-case name="35999reT70 tokoe:valid" result="pass"/><test-case name="36000reT70.v tokoe:valid" result="pass"/><test-case name="36001reT71 tokoe:valid" result="pass"/><test-case name="36002reT71.v tokoe:valid" result="pass"/><test-case name="36003reT72 tokoe:valid" result="pass"/><test-case name="36004reT72.v tokoe:valid" result="pass"/><test-case name="36005reT73 tokoe:valid" result="pass"/><test-case name="36006reT73.v tokoe:valid" result="pass"/><test-case name="36007reT74 tokoe:valid" result="pass"/><test-case name="36008reT74.v tokoe:valid" result="pass"/><test-case name="36009reT75 tokoe:valid" result="pass"/><test-case name="36010reT75.v tokoe:valid" result="pass"/><test-case name="36011reT76 tokoe:valid" result="pass"/><test-case name="36012reT76.v tokoe:valid" result="pass"/><test-case name="36013reT77 tokoe:valid" result="pass"/><test-case name="36014reT77.v tokoe:valid" result="pass"/><test-case name="36015reT78 tokoe:valid" result="pass"/><test-case name="36016reT78.v tokoe:valid" result="pass"/><test-case name="36017reT79 tokoe:valid" result="pass"/><test-case name="36018reT79.v tokoe:valid" result="pass"/><test-case name="36019reT80 tokoe:valid" result="pass"/><test-case name="36020reT80.v tokoe:valid" result="pass"/><test-case name="36021reT81 tokoe:valid" result="pass"/><test-case name="36022reT81.v tokoe:valid" result="pass"/><test-case name="36023reT82 tokoe:valid" result="pass"/><test-case name="36024reT82.v tokoe:valid" result="pass"/><test-case name="36025reT83 tokoe:valid" result="pass"/><test-case name="36026reT83.v tokoe:valid" result="pass"/><test-case name="36027reU3 tokoe:valid" result="pass"/><test-case name="36028reU3.i tokoe:invalid" result="pass"/><test-case name="36029reU4 tokoe:valid" result="pass"/><test-case name="36030reU4.i tokoe:invalid" result="pass"/><test-case name="36031reU5 tokoe:valid" result="pass"/><test-case name="36032reU5.i tokoe:invalid" result="pass"/><test-case name="36033reU6 tokoe:valid" result="pass"/><test-case name="36034reU6.i tokoe:invalid" result="fail"/><test-case name="36035reU7 tokoe:valid" result="pass"/><test-case name="36036reU7.i tokoe:invalid" result="pass"/><test-case name="36037reU8 tokoe:valid" result="pass"/><test-case name="36038reU8.i tokoe:invalid" result="pass"/><test-case name="36039reU9 tokoe:valid" result="pass"/><test-case name="36040reU9.i tokoe:invalid" result="pass"/><test-case name="36041reU10 tokoe:valid" result="pass"/><test-case name="36042reU10.i tokoe:invalid" result="pass"/><test-case name="36043reU11 tokoe:valid" result="pass"/><test-case name="36044reU11.i tokoe:invalid" result="pass"/><test-case name="36045reU12 tokoe:valid" result="pass"/><test-case name="36046reU12.i tokoe:invalid" result="pass"/><test-case name="36047reU13 tokoe:valid" result="pass"/><test-case name="36048reU13.i tokoe:invalid" result="pass"/><test-case name="36049reU14 tokoe:valid" result="pass"/><test-case name="36050reU14.i tokoe:invalid" result="pass"/><test-case name="36051reU15 tokoe:valid" result="pass"/><test-case name="36052reU15.i tokoe:invalid" result="pass"/><test-case name="36053reV2 tokoe:valid" result="pass"/><test-case name="36054reV2.i tokoe:invalid" result="pass"/><test-case name="36055reV3 tokoe:valid" result="pass"/><test-case name="36056reV3.i tokoe:invalid" result="pass"/><test-case name="36057reV4 tokoe:valid" result="pass"/><test-case name="36058reV4.i tokoe:invalid" result="pass"/><test-case name="36059reV5 tokoe:valid" result="pass"/><test-case name="36060reV5.i tokoe:invalid" result="pass"/><test-case name="36061reV6 tokoe:valid" result="pass"/><test-case name="36062reV6.i tokoe:invalid" result="pass"/><test-case name="36063reV7 tokoe:valid" result="pass"/><test-case name="36064reV7.i tokoe:invalid" result="pass"/><test-case name="36065reV8 tokoe:valid" result="pass"/><test-case name="36066reV8.i tokoe:invalid" result="pass"/><test-case name="36067reV9 tokoe:valid" result="pass"/><test-case name="36068reV9.i tokoe:invalid" result="pass"/><test-case name="36069reV10 tokoe:valid" result="pass"/><test-case name="36070reV10.i tokoe:invalid" result="pass"/><test-case name="36071reV11 tokoe:valid" result="pass"/><test-case name="36072reV11.i tokoe:invalid" result="pass"/><test-case name="36073reV12 tokoe:valid" result="pass"/><test-case name="36074reV12.i tokoe:invalid" result="pass"/><test-case name="36075reV13 tokoe:valid" result="pass"/><test-case name="36076reV13.i tokoe:invalid" result="pass"/><test-case name="36077reV14 tokoe:valid" result="pass"/><test-case name="36078reV14.i tokoe:invalid" result="pass"/><test-case name="36079reV15 tokoe:valid" result="pass"/><test-case name="36080reV15.i tokoe:invalid" result="pass"/><test-case name="36081reV16 tokoe:valid" result="pass"/><test-case name="36082reV16.i tokoe:invalid" result="pass"/><test-case name="36083reV17 tokoe:valid" result="pass"/><test-case name="36084reV17.i tokoe:invalid" result="pass"/><test-case name="36085reV18 tokoe:valid" result="pass"/><test-case name="36086reV18.i tokoe:invalid" result="pass"/><test-case name="36087reV19 tokoe:valid" result="pass"/><test-case name="36088reV19.i tokoe:invalid" result="pass"/><test-case name="36089reV20 tokoe:valid" result="pass"/><test-case name="36090reV20.i tokoe:invalid" result="pass"/><test-case name="36091reV21 tokoe:valid" result="pass"/><test-case name="36092reV21.i tokoe:invalid" result="pass"/><test-case name="36093reV22 tokoe:valid" result="pass"/><test-case name="36094reV22.i tokoe:invalid" result="pass"/><test-case name="36095reV23 tokoe:valid" result="pass"/><test-case name="36096reV23.i tokoe:invalid" result="pass"/><test-case name="36097reV24 tokoe:valid" result="pass"/><test-case name="36098reV24.i tokoe:invalid" result="pass"/><test-case name="36099reV25 tokoe:valid" result="pass"/><test-case name="36100reV25.i tokoe:invalid" result="pass"/><test-case name="36101reV26 tokoe:valid" result="pass"/><test-case name="36102reV26.i tokoe:invalid" result="pass"/><test-case name="36103reV27 tokoe:valid" result="pass"/><test-case name="36104reV27.i tokoe:invalid" result="pass"/><test-case name="36105reV28 tokoe:valid" result="pass"/><test-case name="36106reV28.i tokoe:invalid" result="pass"/><test-case name="36107reV29 tokoe:valid" result="pass"/><test-case name="36108reV29.i tokoe:invalid" result="pass"/><test-case name="36109reV30 tokoe:valid" result="pass"/><test-case name="36110reV30.i tokoe:invalid" result="pass"/><test-case name="36111reV31 tokoe:valid" result="pass"/><test-case name="36112reV31.i tokoe:invalid" result="pass"/><test-case name="36113reV32 tokoe:valid" result="pass"/><test-case name="36114reV32.i tokoe:invalid" result="pass"/><test-case name="36115reV33 tokoe:valid" result="pass"/><test-case name="36116reV33.i tokoe:invalid" result="fail"/><test-case name="36117reV34 tokoe:valid" result="pass"/><test-case name="36118reV34.i tokoe:invalid" result="fail"/><test-case name="36119reV35 tokoe:valid" result="pass"/><test-case name="36120reV35.i tokoe:invalid" result="fail"/><test-case name="36121reV36 tokoe:valid" result="pass"/><test-case name="36122reV36.i tokoe:invalid" result="fail"/><test-case name="36123reV37 tokoe:valid" result="pass"/><test-case name="36124reV37.i tokoe:invalid" result="fail"/><test-case name="36125reV38 tokoe:valid" result="pass"/><test-case name="36126reV38.i tokoe:invalid" result="fail"/><test-case name="36127reV39 tokoe:valid" result="pass"/><test-case name="36128reV39.i tokoe:invalid" result="fail"/><test-case name="36129reV40 tokoe:valid" result="pass"/><test-case name="36130reV40.i tokoe:invalid" result="fail"/><test-case name="36131reV41 tokoe:valid" result="pass"/><test-case name="36132reV41.i tokoe:invalid" result="fail"/><test-case name="36133reV42 tokoe:valid" result="pass"/><test-case name="36134reV42.i tokoe:invalid" result="fail"/><test-case name="36135reV43 tokoe:valid" result="pass"/><test-case name="36136reV43.i tokoe:invalid" result="pass"/><test-case name="36137reDA1 tokoe:valid" result="pass"/><test-case name="36138reDA1.v tokoe:valid" result="pass"/><test-case name="36139reDA2 tokoe:valid" result="pass"/><test-case name="36140reDA2.i tokoe:invalid" result="pass"/><test-case name="36141reDA3 tokoe:valid" result="pass"/><test-case name="36142reDA3.i tokoe:invalid" result="pass"/><test-case name="36143reDA4 tokoe:valid" result="pass"/><test-case name="36144reDA4.v tokoe:valid" result="pass"/><test-case name="36145reDA5 tokoe:valid" result="pass"/><test-case name="36146reDA5.v tokoe:valid" result="pass"/><test-case name="36147reDA6 tokoe:valid" result="pass"/><test-case name="36148reDA6.v tokoe:valid" result="pass"/><test-case name="36149reDA7 tokoe:valid" result="pass"/><test-case name="36150reDA8 tokoe:valid" result="pass"/><test-case name="36151reDA9 tokoe:valid" result="pass"/><test-case name="36152reDA9.v tokoe:valid" result="pass"/><test-case name="36153reDA10 tokoe:valid" result="pass"/><test-case name="36154reDA10.i tokoe:invalid" result="pass"/><test-case name="36155reDA11 tokoe:valid" result="pass"/><test-case name="36156reDA11.i tokoe:invalid" result="pass"/><test-case name="36157reDA12 tokoe:valid" result="pass"/><test-case name="36158reDA12.i tokoe:invalid" result="pass"/><test-case name="36159reDA13 tokoe:valid" result="pass"/><test-case name="36160reDA13.i tokoe:invalid" result="pass"/><test-case name="36161reDA14 tokoe:valid" result="pass"/><test-case name="36162reDA14.i tokoe:invalid" result="pass"/><test-case name="36163reDA15 tokoe:valid" result="pass"/><test-case name="36164reDA15.v tokoe:valid" result="pass"/><test-case name="36165reDB1 tokoe:valid" result="pass"/><test-case name="36166reDB1.v tokoe:valid" result="pass"/><test-case name="36167reDB2 tokoe:valid" result="pass"/><test-case name="36168reDB2.v tokoe:valid" result="pass"/><test-case name="36169reDB3 tokoe:valid" result="pass"/><test-case name="36170reDB3.i tokoe:invalid" result="pass"/><test-case name="36171reDB4 tokoe:valid" result="pass"/><test-case name="36172reDB4.i tokoe:invalid" result="pass"/><test-case name="36173reDB5 tokoe:valid" result="pass"/><test-case name="36174reDB5.i tokoe:invalid" result="pass"/><test-case name="36175reDB6 tokoe:valid" result="pass"/><test-case name="36176reDB6.i tokoe:invalid" result="pass"/><test-case name="36177reDC1 tokoe:valid" result="pass"/><test-case name="36178reDC1.v tokoe:valid" result="pass"/><test-case name="36179reDC2 tokoe:valid" result="pass"/><test-case name="36180reDC2.v tokoe:valid" result="pass"/><test-case name="36181reDC3 tokoe:valid" result="pass"/><test-case name="36182reDC3.v tokoe:valid" result="pass"/><test-case name="36183reDC4 tokoe:valid" result="pass"/><test-case name="36184reDC4.v tokoe:valid" result="pass"/><test-case name="36185reDC5 tokoe:valid" result="pass"/><test-case name="36186reDC5.v tokoe:valid" result="pass"/><test-case name="36187reDD1 tokoe:valid" result="pass"/><test-case name="36188reDD1.v tokoe:valid" result="pass"/><test-case name="36189reDD2 tokoe:valid" result="pass"/><test-case name="36190reDD2.i tokoe:invalid" result="pass"/><test-case name="36191reDD3 tokoe:valid" result="pass"/><test-case name="36192reDD3.i tokoe:invalid" result="pass"/><test-case name="36193reDD4 tokoe:valid" result="pass"/><test-case name="36194reDD4.i tokoe:invalid" result="pass"/><test-case name="36195reDD5 tokoe:valid" result="pass"/><test-case name="36196reDD5.i tokoe:invalid" result="pass"/><test-case name="36197reDD6 tokoe:valid" result="pass"/><test-case name="36198reDD6.i tokoe:invalid" result="pass"/><test-case name="36199reDD7 tokoe:valid" result="pass"/><test-case name="36200reDD7.i tokoe:invalid" result="pass"/><test-case name="36201reDD8 tokoe:valid" result="pass"/><test-case name="36202reDD8.i tokoe:invalid" result="pass"/><test-case name="36203reDE1 tokoe:valid" result="pass"/><test-case name="36204reDE1.v tokoe:valid" result="pass"/><test-case name="36205reDE2 tokoe:valid" result="pass"/><test-case name="36206reDE2.i tokoe:invalid" result="pass"/><test-case name="36207reDE3 tokoe:valid" result="pass"/><test-case name="36208reDE3.i tokoe:invalid" result="pass"/><test-case name="36209reDE4 tokoe:valid" result="pass"/><test-case name="36210reDE4.i tokoe:invalid" result="pass"/><test-case name="36211reDF1 tokoe:valid" result="pass"/><test-case name="36212reDF1.v tokoe:valid" result="pass"/><test-case name="36213reDF2 tokoe:valid" result="pass"/><test-case name="36214reDF2.v tokoe:valid" result="pass"/><test-case name="36215reDF3 tokoe:valid" result="pass"/><test-case name="36216reDF3.i tokoe:invalid" result="pass"/><test-case name="36217reDF5 tokoe:valid" result="pass"/><test-case name="36218reDF5.i tokoe:invalid" result="pass"/><test-case name="36219reDG1 tokoe:valid" result="pass"/><test-case name="36220reDG1.v tokoe:valid" result="pass"/><test-case name="36221reDG3 tokoe:valid" result="pass"/><test-case name="36222reDG3.v tokoe:valid" result="pass"/><test-case name="36223reDG4 tokoe:valid" result="pass"/><test-case name="36224reDG4.i tokoe:invalid" result="pass"/><test-case name="36225reDG5 tokoe:valid" result="pass"/><test-case name="36226reDG5.v tokoe:valid" result="pass"/><test-case name="36227reDG6 tokoe:valid" result="pass"/><test-case name="36228reDG6.v tokoe:valid" result="pass"/><test-case name="36229reDG7 tokoe:valid" result="pass"/><test-case name="36230reDG7.v tokoe:valid" result="fail"/><test-case name="36231reDH2 tokoe:valid" result="pass"/><test-case name="36232reDH2.v tokoe:valid" result="pass"/><test-case name="36233reDH3 tokoe:valid" result="pass"/><test-case name="36234reDH3.v tokoe:valid" result="pass"/><test-case name="36235reDH4 tokoe:valid" result="pass"/><test-case name="36236reDH4.v tokoe:valid" result="pass"/><test-case name="36237reDH5 tokoe:valid" result="pass"/><test-case name="36238reDH5.v tokoe:valid" result="pass"/><test-case name="36239reDH6 tokoe:valid" result="pass"/><test-case name="36240reDH6.v tokoe:valid" result="pass"/><test-case name="36241reDH7 tokoe:valid" result="pass"/><test-case name="36242reDH7.v tokoe:valid" result="pass"/><test-case name="36243reDH7a tokoe:valid" result="pass"/><test-case name="36244reDH7a.i tokoe:invalid" result="pass"/><test-case name="36245reDH10 tokoe:valid" result="pass"/><test-case name="36246reDH11 tokoe:valid" result="pass"/><test-case name="36247reDH11.v tokoe:valid" result="pass"/><test-case name="36248reDH12 tokoe:valid" result="pass"/><test-case name="36249reDI1 tokoe:valid" result="pass"/><test-case name="36250reDI1.v tokoe:valid" result="pass"/><test-case name="36251reDI2 tokoe:valid" result="pass"/><test-case name="36252reDI2.v tokoe:valid" result="pass"/><test-case name="36253reDI3 tokoe:valid" result="pass"/><test-case name="36254reDI3.i tokoe:invalid" result="pass"/><test-case name="36255reDI4 tokoe:valid" result="pass"/><test-case name="36256reDI4.i tokoe:invalid" result="pass"/><test-case name="36257reDI5 tokoe:valid" result="pass"/><test-case name="36258reDI5.i tokoe:invalid" result="pass"/><test-case name="36259reDI6 tokoe:valid" result="pass"/><test-case name="36260reDI6.v tokoe:valid" result="pass"/><test-case name="36261reDI7 tokoe:valid" result="pass"/><test-case name="36262reDI7.v tokoe:valid" result="pass"/><test-case name="36263reDI8 tokoe:valid" result="pass"/><test-case name="36264reDI8.v tokoe:valid" result="pass"/><test-case name="36265reDI9 tokoe:valid" result="pass"/><test-case name="36266reDI9.v tokoe:valid" result="pass"/><test-case name="36267reDI10 tokoe:valid" result="pass"/><test-case name="36268reDI10.v tokoe:valid" result="pass"/><test-case name="36269reDI11 tokoe:valid" result="pass"/><test-case name="36270reDI11.v tokoe:valid" result="pass"/><test-case name="36271reDI12 tokoe:valid" result="pass"/><test-case name="36272reDI12.i tokoe:invalid" result="pass"/><test-case name="36273reDI13 tokoe:valid" result="pass"/><test-case name="36274reDI13.i tokoe:invalid" result="pass"/><test-case name="36275reDI14 tokoe:valid" result="pass"/><test-case name="36276reDI14.v tokoe:valid" result="pass"/><test-case name="36277p1 tokoe:invalid" result="pass"/><test-case name="36278p2 tokoe:valid" result="pass"/><test-case name="36279p2.i tokoe:invalid" result="pass"/><test-case name="36280p3 tokoe:valid" result="pass"/><test-case name="36281p3.v tokoe:valid" result="pass"/><test-case name="36282p4 tokoe:valid" result="pass"/><test-case name="36283p4.i tokoe:invalid" result="pass"/><test-case name="36284p5 tokoe:valid" result="pass"/><test-case name="36285p5.v tokoe:valid" result="pass"/><test-case name="36286p6 tokoe:valid" result="pass"/><test-case name="36287p6.v tokoe:valid" result="pass"/><test-case name="36288p7 tokoe:valid" result="pass"/><test-case name="36289p7.i tokoe:invalid" result="pass"/><test-case name="36290p8 tokoe:valid" result="pass"/><test-case name="36291p8.v tokoe:valid" result="pass"/><test-case name="36292p9 tokoe:valid" result="pass"/><test-case name="36293p9.v tokoe:valid" result="pass"/><test-case name="36294p10 tokoe:valid" result="pass"/><test-case name="36295p10.i tokoe:invalid" result="pass"/><test-case name="36296p11 tokoe:valid" result="pass"/><test-case name="36297p11.v tokoe:valid" result="pass"/><test-case name="36298p12 tokoe:valid" result="pass"/><test-case name="36299p12.v tokoe:valid" result="pass"/><test-case name="36300p13 tokoe:valid" result="pass"/><test-case name="36301p13.v tokoe:valid" result="pass"/><test-case name="36302p14 tokoe:valid" result="pass"/><test-case name="36303p14.i tokoe:invalid" result="pass"/><test-case name="36304p15 tokoe:valid" result="pass"/><test-case name="36305p15.i tokoe:invalid" result="pass"/><test-case name="36306p16 tokoe:valid" result="pass"/><test-case name="36307p16.v tokoe:valid" result="pass"/><test-case name="36308p17 tokoe:valid" result="pass"/><test-case name="36309p17.v tokoe:valid" result="pass"/><test-case name="36310p18 tokoe:valid" result="pass"/><test-case name="36311p18.i tokoe:invalid" result="pass"/><test-case name="36312p19 tokoe:valid" result="pass"/><test-case name="36313p19.i tokoe:invalid" result="pass"/><test-case name="36314p20 tokoe:valid" result="pass"/><test-case name="36315p20.v tokoe:valid" result="pass"/><test-case name="36316p21 tokoe:valid" result="pass"/><test-case name="36317p21.i tokoe:invalid" result="fail"/><test-case name="36318RegexTest_1 tokoe:valid" result="pass"/><test-case name="36319RegexTest_1.v tokoe:valid" result="pass"/><test-case name="36320RegexTest_2 tokoe:valid" result="pass"/><test-case name="36321RegexTest_2.v tokoe:valid" result="pass"/><test-case name="36322RegexTest_3 tokoe:valid" result="pass"/><test-case name="36323RegexTest_3.v tokoe:valid" result="pass"/><test-case name="36324RegexTest_4 tokoe:valid" result="pass"/><test-case name="36325RegexTest_4.v tokoe:valid" result="pass"/><test-case name="36326RegexTest_5 tokoe:valid" result="pass"/><test-case name="36327RegexTest_5.v tokoe:valid" result="pass"/><test-case name="36328RegexTest_6 tokoe:valid" result="pass"/><test-case name="36329RegexTest_6.v tokoe:valid" result="pass"/><test-case name="36330RegexTest_7 tokoe:valid" result="pass"/><test-case name="36331RegexTest_7.i tokoe:invalid" result="pass"/><test-case name="36332RegexTest_8 tokoe:valid" result="pass"/><test-case name="36333RegexTest_8.i tokoe:invalid" result="pass"/><test-case name="36334RegexTest_10 tokoe:valid" result="pass"/><test-case name="36335RegexTest_10.i tokoe:invalid" result="pass"/><test-case name="36336RegexTest_12 tokoe:valid" result="pass"/><test-case name="36337RegexTest_12.i tokoe:invalid" result="pass"/><test-case name="36338RegexTest_13 tokoe:valid" result="pass"/><test-case name="36339RegexTest_13.i tokoe:invalid" result="pass"/><test-case name="36340RegexTest_20 tokoe:valid" result="pass"/><test-case name="36341RegexTest_20.v tokoe:valid" result="pass"/><test-case name="36342RegexTest_21 tokoe:valid" result="pass"/><test-case name="36343RegexTest_21.v tokoe:valid" result="pass"/><test-case name="36344RegexTest_35 tokoe:valid" result="pass"/><test-case name="36345RegexTest_35.i tokoe:invalid" result="pass"/><test-case name="36346RegexTest_36 tokoe:valid" result="pass"/><test-case name="36347RegexTest_36.i tokoe:invalid" result="pass"/><test-case name="36348RegexTest_37 tokoe:valid" result="pass"/><test-case name="36349RegexTest_37.i tokoe:invalid" result="pass"/><test-case name="36350RegexTest_38 tokoe:valid" result="pass"/><test-case name="36351RegexTest_38.i tokoe:invalid" result="pass"/><test-case name="36352RegexTest_39 tokoe:valid" result="pass"/><test-case name="36353RegexTest_39.i tokoe:invalid" result="pass"/><test-case name="36354RegexTest_40 tokoe:valid" result="pass"/><test-case name="36355RegexTest_40.i tokoe:invalid" result="pass"/><test-case name="36356RegexTest_41 tokoe:valid" result="pass"/><test-case name="36357RegexTest_41.v tokoe:valid" result="pass"/><test-case name="36358RegexTest_42 tokoe:valid" result="pass"/><test-case name="36359RegexTest_42.v tokoe:valid" result="pass"/><test-case name="36360RegexTest_63 tokoe:valid" result="pass"/><test-case name="36361RegexTest_63.i tokoe:invalid" result="pass"/><test-case name="36362RegexTest_66 tokoe:valid" result="pass"/><test-case name="36363RegexTest_66.i tokoe:invalid" result="pass"/><test-case name="36364RegexTest_67 tokoe:valid" result="pass"/><test-case name="36365RegexTest_67.i tokoe:invalid" result="pass"/><test-case name="36366RegexTest_68 tokoe:valid" result="pass"/><test-case name="36367RegexTest_68.i tokoe:invalid" result="pass"/><test-case name="36368RegexTest_69 tokoe:valid" result="pass"/><test-case name="36369RegexTest_69.i tokoe:invalid" result="pass"/><test-case name="36370RegexTest_70 tokoe:valid" result="pass"/><test-case name="36371RegexTest_70.i tokoe:invalid" result="pass"/><test-case name="36372RegexTest_71 tokoe:valid" result="pass"/><test-case name="36373RegexTest_71.i tokoe:invalid" result="pass"/><test-case name="36374RegexTest_72 tokoe:valid" result="pass"/><test-case name="36375RegexTest_72.v tokoe:valid" result="pass"/><test-case name="36376RegexTest_73 tokoe:valid" result="pass"/><test-case name="36377RegexTest_73.v tokoe:valid" result="pass"/><test-case name="36378RegexTest_74 tokoe:valid" result="pass"/><test-case name="36379RegexTest_74.i tokoe:invalid" result="pass"/><test-case name="36380RegexTest_75 tokoe:valid" result="pass"/><test-case name="36381RegexTest_75.i tokoe:invalid" result="pass"/><test-case name="36382RegexTest_76 tokoe:valid" result="pass"/><test-case name="36383RegexTest_76.i tokoe:invalid" result="pass"/><test-case name="36384RegexTest_77 tokoe:valid" result="pass"/><test-case name="36385RegexTest_77.i tokoe:invalid" result="pass"/><test-case name="36386RegexTest_78 tokoe:valid" result="pass"/><test-case name="36387RegexTest_78.i tokoe:invalid" result="pass"/><test-case name="36388RegexTest_79 tokoe:valid" result="pass"/><test-case name="36389RegexTest_79.i tokoe:invalid" result="pass"/><test-case name="36390RegexTest_80 tokoe:valid" result="pass"/><test-case name="36391RegexTest_80.v tokoe:valid" result="pass"/><test-case name="36392RegexTest_81 tokoe:valid" result="pass"/><test-case name="36393RegexTest_81.v tokoe:valid" result="pass"/><test-case name="36394RegexTest_117 tokoe:valid" result="pass"/><test-case name="36395RegexTest_117.i tokoe:invalid" result="pass"/><test-case name="36396RegexTest_118 tokoe:valid" result="pass"/><test-case name="36397RegexTest_118.i tokoe:invalid" result="pass"/><test-case name="36398RegexTest_175 tokoe:valid" result="pass"/><test-case name="36399RegexTest_175.i tokoe:invalid" result="pass"/><test-case name="36400RegexTest_176 tokoe:valid" result="pass"/><test-case name="36401RegexTest_176.i tokoe:invalid" result="pass"/><test-case name="36402RegexTest_177 tokoe:valid" result="pass"/><test-case name="36403RegexTest_177.i tokoe:invalid" result="pass"/><test-case name="36404RegexTest_180 tokoe:valid" result="pass"/><test-case name="36405RegexTest_180.i tokoe:invalid" result="pass"/><test-case name="36406RegexTest_181 tokoe:valid" result="pass"/><test-case name="36407RegexTest_181.i tokoe:invalid" result="pass"/><test-case name="36408RegexTest_182 tokoe:valid" result="pass"/><test-case name="36409RegexTest_182.i tokoe:invalid" result="pass"/><test-case name="36410RegexTest_234 tokoe:valid" result="pass"/><test-case name="36411RegexTest_234.v tokoe:valid" result="pass"/><test-case name="36412RegexTest_235 tokoe:valid" result="pass"/><test-case name="36413RegexTest_235.i tokoe:invalid" result="pass"/><test-case name="36414RegexTest_236 tokoe:valid" result="pass"/><test-case name="36415RegexTest_236.i tokoe:invalid" result="pass"/><test-case name="36416RegexTest_239 tokoe:valid" result="pass"/><test-case name="36417RegexTest_239.i tokoe:invalid" result="pass"/><test-case name="36418RegexTest_250 tokoe:valid" result="pass"/><test-case name="36419RegexTest_250.i tokoe:invalid" result="pass"/><test-case name="36420RegexTest_251 tokoe:valid" result="pass"/><test-case name="36421RegexTest_251.i tokoe:invalid" result="pass"/><test-case name="36422RegexTest_252 tokoe:valid" result="pass"/><test-case name="36423RegexTest_252.i tokoe:invalid" result="pass"/><test-case name="36424RegexTest_253 tokoe:valid" result="pass"/><test-case name="36425RegexTest_253.i tokoe:invalid" result="pass"/><test-case name="36426RegexTest_254 tokoe:valid" result="pass"/><test-case name="36427RegexTest_254.i tokoe:invalid" result="pass"/><test-case name="36428RegexTest_255 tokoe:valid" result="pass"/><test-case name="36429RegexTest_255.i tokoe:invalid" result="pass"/><test-case name="36430RegexTest_259 tokoe:valid" result="pass"/><test-case name="36431RegexTest_259.v tokoe:valid" result="pass"/><test-case name="36432RegexTest_260 tokoe:valid" result="pass"/><test-case name="36433RegexTest_260.v tokoe:valid" result="pass"/><test-case name="36434RegexTest_261 tokoe:valid" result="pass"/><test-case name="36435RegexTest_261.v tokoe:valid" result="pass"/><test-case name="36436RegexTest_262 tokoe:valid" result="pass"/><test-case name="36437RegexTest_262.v tokoe:valid" result="pass"/><test-case name="36438RegexTest_263 tokoe:valid" result="pass"/><test-case name="36439RegexTest_263.v tokoe:valid" result="pass"/><test-case name="36440RegexTest_264 tokoe:valid" result="pass"/><test-case name="36441RegexTest_264.v tokoe:valid" result="pass"/><test-case name="36442RegexTest_267 tokoe:valid" result="pass"/><test-case name="36443RegexTest_267.i tokoe:invalid" result="pass"/><test-case name="36444RegexTest_268 tokoe:valid" result="pass"/><test-case name="36445RegexTest_268.i tokoe:invalid" result="pass"/><test-case name="36446RegexTest_269 tokoe:valid" result="pass"/><test-case name="36447RegexTest_269.i tokoe:invalid" result="pass"/><test-case name="36448RegexTest_270 tokoe:valid" result="pass"/><test-case name="36449RegexTest_270.i tokoe:invalid" result="pass"/><test-case name="36450RegexTest_271 tokoe:valid" result="pass"/><test-case name="36451RegexTest_271.i tokoe:invalid" result="pass"/><test-case name="36452RegexTest_272 tokoe:valid" result="pass"/><test-case name="36453RegexTest_272.i tokoe:invalid" result="pass"/><test-case name="36454RegexTest_273 tokoe:valid" result="pass"/><test-case name="36455RegexTest_273.i tokoe:invalid" result="pass"/><test-case name="36456RegexTest_274 tokoe:valid" result="pass"/><test-case name="36457RegexTest_274.i tokoe:invalid" result="pass"/><test-case name="36458RegexTest_275 tokoe:valid" result="pass"/><test-case name="36459RegexTest_275.i tokoe:invalid" result="pass"/><test-case name="36460RegexTest_276 tokoe:valid" result="pass"/><test-case name="36461RegexTest_276.i tokoe:invalid" result="pass"/><test-case name="36462RegexTest_277 tokoe:valid" result="pass"/><test-case name="36463RegexTest_277.i tokoe:invalid" result="pass"/><test-case name="36464RegexTest_278 tokoe:valid" result="pass"/><test-case name="36465RegexTest_278.i tokoe:invalid" result="pass"/><test-case name="36466RegexTest_279 tokoe:valid" result="pass"/><test-case name="36467RegexTest_279.i tokoe:invalid" result="pass"/><test-case name="36468RegexTest_280 tokoe:valid" result="pass"/><test-case name="36469RegexTest_280.i tokoe:invalid" result="pass"/><test-case name="36470RegexTest_281 tokoe:valid" result="pass"/><test-case name="36471RegexTest_281.i tokoe:invalid" result="pass"/><test-case name="36472RegexTest_282 tokoe:valid" result="pass"/><test-case name="36473RegexTest_282.i tokoe:invalid" result="pass"/><test-case name="36474RegexTest_283 tokoe:valid" result="pass"/><test-case name="36475RegexTest_283.i tokoe:invalid" result="pass"/><test-case name="36476RegexTest_284 tokoe:valid" result="pass"/><test-case name="36477RegexTest_284.i tokoe:invalid" result="pass"/><test-case name="36478RegexTest_285 tokoe:valid" result="pass"/><test-case name="36479RegexTest_285.i tokoe:invalid" result="pass"/><test-case name="36480RegexTest_286 tokoe:valid" result="pass"/><test-case name="36481RegexTest_286.i tokoe:invalid" result="pass"/><test-case name="36482RegexTest_319 tokoe:valid" result="pass"/><test-case name="36483RegexTest_319.v tokoe:valid" result="pass"/><test-case name="36484RegexTest_322 tokoe:valid" result="fail"/><test-case name="36485RegexTest_322.i tokoe:invalid" result="pass"/><test-case name="36486RegexTest_323 tokoe:valid" result="fail"/><test-case name="36487RegexTest_323.i tokoe:invalid" result="pass"/><test-case name="36488RegexTest_324 tokoe:valid" result="fail"/><test-case name="36489RegexTest_324.i tokoe:invalid" result="pass"/><test-case name="36490RegexTest_325 tokoe:valid" result="fail"/><test-case name="36491RegexTest_325.i tokoe:invalid" result="pass"/><test-case name="36492RegexTest_326 tokoe:valid" result="fail"/><test-case name="36493RegexTest_326.i tokoe:invalid" result="pass"/><test-case name="36494RegexTest_327 tokoe:valid" result="fail"/><test-case name="36495RegexTest_327.i tokoe:invalid" result="pass"/><test-case name="36496RegexTest_328 tokoe:valid" result="fail"/><test-case name="36497RegexTest_328.i tokoe:invalid" result="pass"/><test-case name="36498RegexTest_329 tokoe:valid" result="fail"/><test-case name="36499RegexTest_329.i tokoe:invalid" result="pass"/><test-case name="36500RegexTest_332 tokoe:valid" result="fail"/><test-case name="36501RegexTest_332.i tokoe:invalid" result="pass"/><test-case name="36502RegexTest_333 tokoe:valid" result="fail"/><test-case name="36503RegexTest_333.i tokoe:invalid" result="pass"/><test-case name="36504RegexTest_334 tokoe:valid" result="fail"/><test-case name="36505RegexTest_334.i tokoe:invalid" result="pass"/><test-case name="36506RegexTest_335 tokoe:valid" result="fail"/><test-case name="36507RegexTest_335.i tokoe:invalid" result="pass"/><test-case name="36508RegexTest_336 tokoe:valid" result="fail"/><test-case name="36509RegexTest_336.i tokoe:invalid" result="pass"/><test-case name="36510RegexTest_337 tokoe:valid" result="fail"/><test-case name="36511RegexTest_337.i tokoe:invalid" result="pass"/><test-case name="36512RegexTest_339 tokoe:valid" result="fail"/><test-case name="36513RegexTest_339.i tokoe:invalid" result="pass"/><test-case name="36514RegexTest_340 tokoe:valid" result="fail"/><test-case name="36515RegexTest_340.i tokoe:invalid" result="pass"/><test-case name="36516RegexTest_341 tokoe:valid" result="fail"/><test-case name="36517RegexTest_341.i tokoe:invalid" result="pass"/><test-case name="36518RegexTest_342 tokoe:valid" result="fail"/><test-case name="36519RegexTest_342.i tokoe:invalid" result="pass"/><test-case name="36520RegexTest_343 tokoe:valid" result="fail"/><test-case name="36521RegexTest_343.i tokoe:invalid" result="pass"/><test-case name="36522RegexTest_344 tokoe:valid" result="fail"/><test-case name="36523RegexTest_344.i tokoe:invalid" result="pass"/><test-case name="36524RegexTest_345 tokoe:valid" result="fail"/><test-case name="36525RegexTest_345.i tokoe:invalid" result="pass"/><test-case name="36526RegexTest_346 tokoe:valid" result="fail"/><test-case name="36527RegexTest_346.i tokoe:invalid" result="pass"/><test-case name="36528RegexTest_347 tokoe:valid" result="fail"/><test-case name="36529RegexTest_347.i tokoe:invalid" result="pass"/><test-case name="36530RegexTest_348 tokoe:valid" result="fail"/><test-case name="36531RegexTest_348.i tokoe:invalid" result="pass"/><test-case name="36532RegexTest_349 tokoe:valid" result="fail"/><test-case name="36533RegexTest_349.i tokoe:invalid" result="pass"/><test-case name="36534RegexTest_350 tokoe:valid" result="fail"/><test-case name="36535RegexTest_350.i tokoe:invalid" result="pass"/><test-case name="36536RegexTest_352 tokoe:valid" result="fail"/><test-case name="36537RegexTest_352.i tokoe:invalid" result="pass"/><test-case name="36538RegexTest_353 tokoe:valid" result="fail"/><test-case name="36539RegexTest_353.i tokoe:invalid" result="pass"/><test-case name="36540RegexTest_354 tokoe:valid" result="fail"/><test-case name="36541RegexTest_354.i tokoe:invalid" result="pass"/><test-case name="36542RegexTest_356 tokoe:valid" result="fail"/><test-case name="36543RegexTest_356.i tokoe:invalid" result="pass"/><test-case name="36544RegexTest_357 tokoe:valid" result="fail"/><test-case name="36545RegexTest_357.i tokoe:invalid" result="pass"/><test-case name="36546RegexTest_358 tokoe:valid" result="fail"/><test-case name="36547RegexTest_358.i tokoe:invalid" result="pass"/><test-case name="36548RegexTest_359 tokoe:valid" result="fail"/><test-case name="36549RegexTest_359.i tokoe:invalid" result="pass"/><test-case name="36550RegexTest_363 tokoe:valid" result="fail"/><test-case name="36551RegexTest_363.i tokoe:invalid" result="pass"/><test-case name="36552RegexTest_364 tokoe:valid" result="fail"/><test-case name="36553RegexTest_364.i tokoe:invalid" result="pass"/><test-case name="36554RegexTest_365 tokoe:valid" result="fail"/><test-case name="36555RegexTest_365.i tokoe:invalid" result="pass"/><test-case name="36556RegexTest_367 tokoe:valid" result="fail"/><test-case name="36557RegexTest_367.i tokoe:invalid" result="pass"/><test-case name="36558RegexTest_370 tokoe:valid" result="fail"/><test-case name="36559RegexTest_370.i tokoe:invalid" result="pass"/><test-case name="36560RegexTest_371 tokoe:valid" result="fail"/><test-case name="36561RegexTest_371.i tokoe:invalid" result="pass"/><test-case name="36562RegexTest_372 tokoe:valid" result="fail"/><test-case name="36563RegexTest_372.i tokoe:invalid" result="pass"/><test-case name="36564RegexTest_373 tokoe:valid" result="fail"/><test-case name="36565RegexTest_373.i tokoe:invalid" result="pass"/><test-case name="36566RegexTest_374 tokoe:valid" result="fail"/><test-case name="36567RegexTest_374.i tokoe:invalid" result="pass"/><test-case name="36568RegexTest_375 tokoe:valid" result="fail"/><test-case name="36569RegexTest_375.i tokoe:invalid" result="pass"/><test-case name="36570RegexTest_420 tokoe:valid" result="fail"/><test-case name="36571RegexTest_420.i tokoe:invalid" result="pass"/><test-case name="36572RegexTest_421 tokoe:valid" result="fail"/><test-case name="36573RegexTest_421.i tokoe:invalid" result="pass"/><test-case name="36574RegexTest_422 tokoe:valid" result="fail"/><test-case name="36575RegexTest_422.i tokoe:invalid" result="pass"/><test-case name="36576RegexTest_424 tokoe:valid" result="fail"/><test-case name="36577RegexTest_424.i tokoe:invalid" result="pass"/><test-case name="36578RegexTest_425 tokoe:valid" result="fail"/><test-case name="36579RegexTest_425.i tokoe:invalid" result="pass"/><test-case name="36580RegexTest_426 tokoe:valid" result="fail"/><test-case name="36581RegexTest_426.i tokoe:invalid" result="pass"/><test-case name="36582RegexTest_429 tokoe:valid" result="fail"/><test-case name="36583RegexTest_429.i tokoe:invalid" result="pass"/><test-case name="36584RegexTest_430 tokoe:valid" result="fail"/><test-case name="36585RegexTest_430.i tokoe:invalid" result="pass"/><test-case name="36586RegexTest_433 tokoe:valid" result="fail"/><test-case name="36587RegexTest_433.i tokoe:invalid" result="pass"/><test-case name="36588RegexTest_434 tokoe:valid" result="fail"/><test-case name="36589RegexTest_434.i tokoe:invalid" result="pass"/><test-case name="36590RegexTest_438 tokoe:valid" result="fail"/><test-case name="36591RegexTest_438.i tokoe:invalid" result="pass"/><test-case name="36592RegexTest_439 tokoe:valid" result="fail"/><test-case name="36593RegexTest_439.i tokoe:invalid" result="pass"/><test-case name="36594RegexTest_459 tokoe:valid" result="fail"/><test-case name="36595RegexTest_459.i tokoe:invalid" result="pass"/><test-case name="36596RegexTest_460 tokoe:valid" result="fail"/><test-case name="36597RegexTest_460.i tokoe:invalid" result="pass"/><test-case name="36598RegexTest_461 tokoe:valid" result="fail"/><test-case name="36599RegexTest_461.i tokoe:invalid" result="pass"/><test-case name="36600RegexTest_462 tokoe:valid" result="fail"/><test-case name="36601RegexTest_462.i tokoe:invalid" result="pass"/><test-case name="36602RegexTest_466 tokoe:valid" result="pass"/><test-case name="36603RegexTest_466.i tokoe:invalid" result="pass"/><test-case name="36604RegexTest_467 tokoe:valid" result="pass"/><test-case name="36605RegexTest_467.i tokoe:invalid" result="pass"/><test-case name="36606RegexTest_468 tokoe:valid" result="pass"/><test-case name="36607RegexTest_468.i tokoe:invalid" result="pass"/><test-case name="36608RegexTest_474 tokoe:valid" result="pass"/><test-case name="36609RegexTest_474.i tokoe:invalid" result="pass"/><test-case name="36610RegexTest_475 tokoe:valid" result="fail"/><test-case name="36611RegexTest_475.i tokoe:invalid" result="pass"/><test-case name="36612RegexTest_476 tokoe:valid" result="fail"/><test-case name="36613RegexTest_476.i tokoe:invalid" result="pass"/><test-case name="36614RegexTest_488 tokoe:valid" result="pass"/><test-case name="36615RegexTest_488.i tokoe:invalid" result="pass"/><test-case name="36616RegexTest_489 tokoe:valid" result="pass"/><test-case name="36617RegexTest_489.i tokoe:invalid" result="pass"/><test-case name="36618RegexTest_491 tokoe:valid" result="pass"/><test-case name="36619RegexTest_491.i tokoe:invalid" result="pass"/><test-case name="36620RegexTest_492 tokoe:valid" result="pass"/><test-case name="36621RegexTest_492.i tokoe:invalid" result="pass"/><test-case name="36622RegexTest_493 tokoe:valid" result="pass"/><test-case name="36623RegexTest_493.i tokoe:invalid" result="pass"/><test-case name="36624RegexTest_494 tokoe:valid" result="pass"/><test-case name="36625RegexTest_494.i tokoe:invalid" result="pass"/><test-case name="36626RegexTest_495 tokoe:valid" result="pass"/><test-case name="36627RegexTest_495.v tokoe:valid" result="pass"/><test-case name="36628RegexTest_496 tokoe:valid" result="pass"/><test-case name="36629RegexTest_496.i tokoe:invalid" result="pass"/><test-case name="36630RegexTest_497 tokoe:valid" result="pass"/><test-case name="36631RegexTest_497.i tokoe:invalid" result="pass"/><test-case name="36632RegexTest_498 tokoe:valid" result="pass"/><test-case name="36633RegexTest_498.i tokoe:invalid" result="pass"/><test-case name="36634RegexTest_499 tokoe:valid" result="pass"/><test-case name="36635RegexTest_499.i tokoe:invalid" result="pass"/><test-case name="36636RegexTest_500 tokoe:valid" result="pass"/><test-case name="36637RegexTest_500.i tokoe:invalid" result="pass"/><test-case name="36638RegexTest_501 tokoe:valid" result="pass"/><test-case name="36639RegexTest_501.i tokoe:invalid" result="pass"/><test-case name="36640RegexTest_502 tokoe:valid" result="pass"/><test-case name="36641RegexTest_502.i tokoe:invalid" result="pass"/><test-case name="36642RegexTest_503 tokoe:valid" result="pass"/><test-case name="36643RegexTest_503.i tokoe:invalid" result="pass"/><test-case name="36644RegexTest_504 tokoe:valid" result="pass"/><test-case name="36645RegexTest_504.i tokoe:invalid" result="pass"/><test-case name="36646RegexTest_506 tokoe:valid" result="pass"/><test-case name="36647RegexTest_506.i tokoe:invalid" result="pass"/><test-case name="36648RegexTest_508 tokoe:valid" result="pass"/><test-case name="36649RegexTest_508.i tokoe:invalid" result="pass"/><test-case name="36650RegexTest_513 tokoe:valid" result="pass"/><test-case name="36651RegexTest_513.v tokoe:valid" result="pass"/><test-case name="36652RegexTest_514 tokoe:valid" result="pass"/><test-case name="36653RegexTest_514.i tokoe:invalid" result="pass"/><test-case name="36654RegexTest_515 tokoe:valid" result="pass"/><test-case name="36655RegexTest_515.v tokoe:valid" result="pass"/><test-case name="36656RegexTest_520 tokoe:valid" result="pass"/><test-case name="36657RegexTest_520.i tokoe:invalid" result="pass"/><test-case name="36658RegexTest_522 tokoe:valid" result="pass"/><test-case name="36659RegexTest_522.v tokoe:valid" result="pass"/><test-case name="36660RegexTest_525 tokoe:valid" result="pass"/><test-case name="36661RegexTest_525.v tokoe:valid" result="pass"/><test-case name="36662RegexTest_528 tokoe:valid" result="pass"/><test-case name="36663RegexTest_528.i tokoe:invalid" result="pass"/><test-case name="36664RegexTest_529 tokoe:valid" result="pass"/><test-case name="36665RegexTest_529.i tokoe:invalid" result="pass"/><test-case name="36666RegexTest_530 tokoe:valid" result="pass"/><test-case name="36667RegexTest_530.v tokoe:valid" result="pass"/><test-case name="36668RegexTest_531 tokoe:valid" result="pass"/><test-case name="36669RegexTest_531.i tokoe:invalid" result="pass"/><test-case name="36670RegexTest_532 tokoe:valid" result="pass"/><test-case name="36671RegexTest_532.i tokoe:invalid" result="pass"/><test-case name="36672RegexTest_533 tokoe:valid" result="pass"/><test-case name="36673RegexTest_533.i tokoe:invalid" result="pass"/><test-case name="36674RegexTest_535 tokoe:valid" result="pass"/><test-case name="36675RegexTest_535.v tokoe:valid" result="pass"/><test-case name="36676RegexTest_536 tokoe:valid" result="pass"/><test-case name="36677RegexTest_537 tokoe:valid" result="pass"/><test-case name="36678RegexTest_538 tokoe:valid" result="pass"/><test-case name="36679RegexTest_539 tokoe:valid" result="pass"/><test-case name="36680RegexTest_540 tokoe:valid" result="pass"/><test-case name="36681RegexTest_541 tokoe:valid" result="pass"/><test-case name="36682RegexTest_542 tokoe:valid" result="pass"/><test-case name="36683RegexTest_543 tokoe:valid" result="pass"/><test-case name="36684RegexTest_544 tokoe:valid" result="pass"/><test-case name="36685RegexTest_545 tokoe:valid" result="pass"/><test-case name="36686RegexTest_546 tokoe:valid" result="pass"/><test-case name="36687RegexTest_547 tokoe:valid" result="pass"/><test-case name="36688RegexTest_548 tokoe:valid" result="pass"/><test-case name="36689RegexTest_549 tokoe:valid" result="pass"/><test-case name="36690RegexTest_550 tokoe:valid" result="pass"/><test-case name="36691RegexTest_551 tokoe:valid" result="pass"/><test-case name="36692RegexTest_552 tokoe:valid" result="pass"/><test-case name="36693RegexTest_553 tokoe:valid" result="pass"/><test-case name="36694RegexTest_554 tokoe:valid" result="pass"/><test-case name="36695RegexTest_555 tokoe:valid" result="pass"/><test-case name="36696RegexTest_556 tokoe:valid" result="pass"/><test-case name="36697RegexTest_557 tokoe:valid" result="pass"/><test-case name="36698RegexTest_558 tokoe:valid" result="pass"/><test-case name="36699RegexTest_559 tokoe:valid" result="pass"/><test-case name="36700RegexTest_560 tokoe:valid" result="pass"/><test-case name="36701RegexTest_561 tokoe:valid" result="pass"/><test-case name="36702RegexTest_562 tokoe:valid" result="pass"/><test-case name="36703RegexTest_563 tokoe:valid" result="pass"/><test-case name="36704RegexTest_564 tokoe:valid" result="pass"/><test-case name="36705RegexTest_565 tokoe:valid" result="pass"/><test-case name="36706RegexTest_566 tokoe:valid" result="pass"/><test-case name="36707RegexTest_567 tokoe:valid" result="pass"/><test-case name="36708RegexTest_568 tokoe:valid" result="pass"/><test-case name="36709RegexTest_569 tokoe:valid" result="pass"/><test-case name="36710RegexTest_570 tokoe:valid" result="pass"/><test-case name="36711RegexTest_571 tokoe:valid" result="pass"/><test-case name="36712RegexTest_572 tokoe:valid" result="pass"/><test-case name="36713RegexTest_573 tokoe:valid" result="pass"/><test-case name="36714RegexTest_574 tokoe:valid" result="pass"/><test-case name="36715RegexTest_575 tokoe:valid" result="pass"/><test-case name="36716RegexTest_576 tokoe:valid" result="pass"/><test-case name="36717RegexTest_577 tokoe:valid" result="pass"/><test-case name="36718RegexTest_578 tokoe:valid" result="pass"/><test-case name="36719RegexTest_579 tokoe:valid" result="pass"/><test-case name="36720RegexTest_580 tokoe:valid" result="pass"/><test-case name="36721RegexTest_581 tokoe:valid" result="pass"/><test-case name="36722RegexTest_582 tokoe:valid" result="pass"/><test-case name="36723RegexTest_583 tokoe:invalid" result="fail"/><test-case name="36724RegexTest_584 tokoe:invalid" result="pass"/><test-case name="36725RegexTest_585 tokoe:invalid" result="pass"/><test-case name="36726RegexTest_588 tokoe:valid" result="pass"/><test-case name="36727RegexTest_589 tokoe:valid" result="pass"/><test-case name="36728RegexTest_590 tokoe:valid" result="pass"/><test-case name="36729RegexTest_591 tokoe:valid" result="pass"/><test-case name="36730RegexTest_606 tokoe:valid" result="pass"/><test-case name="36731RegexTest_607 tokoe:valid" result="pass"/><test-case name="36732RegexTest_608 tokoe:valid" result="pass"/><test-case name="36733RegexTest_609 tokoe:valid" result="pass"/><test-case name="36734RegexTest_610 tokoe:valid" result="pass"/><test-case name="36735RegexTest_611 tokoe:valid" result="pass"/><test-case name="36736RegexTest_612 tokoe:valid" result="pass"/><test-case name="36737RegexTest_613 tokoe:valid" result="pass"/><test-case name="36738RegexTest_614 tokoe:valid" result="pass"/><test-case name="36739RegexTest_615 tokoe:valid" result="pass"/><test-case name="36740RegexTest_616 tokoe:valid" result="pass"/><test-case name="36741RegexTest_617 tokoe:valid" result="pass"/><test-case name="36742RegexTest_618 tokoe:valid" result="pass"/><test-case name="36743RegexTest_619 tokoe:valid" result="pass"/><test-case name="36744RegexTest_620 tokoe:valid" result="pass"/><test-case name="36745RegexTest_621 tokoe:valid" result="pass"/><test-case name="36746RegexTest_622 tokoe:valid" result="pass"/><test-case name="36747RegexTest_623 tokoe:valid" result="pass"/><test-case name="36748RegexTest_624 tokoe:valid" result="pass"/><test-case name="36749RegexTest_625 tokoe:valid" result="pass"/><test-case name="36750RegexTest_626 tokoe:valid" result="pass"/><test-case name="36751RegexTest_627 tokoe:valid" result="pass"/><test-case name="36752RegexTest_628 tokoe:valid" result="pass"/><test-case name="36753RegexTest_629 tokoe:valid" result="pass"/><test-case name="36754RegexTest_630 tokoe:valid" result="pass"/><test-case name="36755RegexTest_631 tokoe:valid" result="pass"/><test-case name="36756RegexTest_632 tokoe:valid" result="pass"/><test-case name="36757RegexTest_633 tokoe:invalid" result="pass"/><test-case name="36758RegexTest_634 tokoe:invalid" result="pass"/><test-case name="36759RegexTest_635 tokoe:valid" result="pass"/><test-case name="36760RegexTest_636 tokoe:invalid" result="pass"/><test-case name="36761RegexTest_637 tokoe:valid" result="pass"/><test-case name="36762RegexTest_638 tokoe:valid" result="pass"/><test-case name="36763RegexTest_639 tokoe:valid" result="pass"/><test-case name="36764RegexTest_640 tokoe:valid" result="pass"/><test-case name="36765RegexTest_641 tokoe:invalid" result="pass"/><test-case name="36766RegexTest_642 tokoe:invalid" result="pass"/><test-case name="36767RegexTest_643 tokoe:valid" result="pass"/><test-case name="36768RegexTest_644 tokoe:valid" result="pass"/><test-case name="36769RegexTest_645 tokoe:valid" result="pass"/><test-case name="36770RegexTest_646 tokoe:valid" result="pass"/><test-case name="36771RegexTest_647 tokoe:invalid" result="pass"/><test-case name="36772RegexTest_649 tokoe:valid" result="pass"/><test-case name="36773RegexTest_650 tokoe:valid" result="pass"/><test-case name="36774RegexTest_651 tokoe:valid" result="pass"/><test-case name="36775RegexTest_652 tokoe:valid" result="pass"/><test-case name="36776RegexTest_653 tokoe:valid" result="pass"/><test-case name="36777RegexTest_654 tokoe:valid" result="pass"/><test-case name="36778RegexTest_656 tokoe:valid" result="pass"/><test-case name="36779RegexTest_657 tokoe:valid" result="pass"/><test-case name="36780RegexTest_658 tokoe:valid" result="pass"/><test-case name="36781RegexTest_659 tokoe:valid" result="pass"/><test-case name="36782RegexTest_660 tokoe:valid" result="pass"/><test-case name="36783RegexTest_661 tokoe:valid" result="pass"/><test-case name="36784RegexTest_662 tokoe:valid" result="pass"/><test-case name="36785RegexTest_663 tokoe:valid" result="pass"/><test-case name="36786RegexTest_664 tokoe:valid" result="pass"/><test-case name="36787RegexTest_665 tokoe:valid" result="pass"/><test-case name="36788RegexTest_666 tokoe:valid" result="pass"/><test-case name="36789RegexTest_667 tokoe:valid" result="pass"/><test-case name="36790RegexTest_668 tokoe:valid" result="pass"/><test-case name="36791RegexTest_669 tokoe:valid" result="pass"/><test-case name="36792RegexTest_670 tokoe:valid" result="pass"/><test-case name="36793RegexTest_671 tokoe:valid" result="pass"/><test-case name="36794RegexTest_672 tokoe:valid" result="pass"/><test-case name="36795RegexTest_673 tokoe:valid" result="pass"/><test-case name="36796RegexTest_674 tokoe:valid" result="pass"/><test-case name="36797RegexTest_675 tokoe:valid" result="pass"/><test-case name="36798RegexTest_676 tokoe:valid" result="pass"/><test-case name="36799RegexTest_677 tokoe:valid" result="pass"/><test-case name="36800RegexTest_678 tokoe:valid" result="pass"/><test-case name="36801RegexTest_679 tokoe:valid" result="pass"/><test-case name="36802RegexTest_680 tokoe:valid" result="pass"/><test-case name="36803RegexTest_681 tokoe:valid" result="pass"/><test-case name="36804RegexTest_682 tokoe:valid" result="pass"/><test-case name="36805RegexTest_683 tokoe:valid" result="pass"/><test-case name="36806RegexTest_684 tokoe:valid" result="pass"/><test-case name="36807RegexTest_685 tokoe:valid" result="pass"/><test-case name="36808RegexTest_686 tokoe:valid" result="pass"/><test-case name="36809RegexTest_687 tokoe:valid" result="pass"/><test-case name="36810RegexTest_689 tokoe:valid" result="pass"/><test-case name="36811RegexTest_690 tokoe:valid" result="pass"/><test-case name="36812RegexTest_691 tokoe:valid" result="pass"/><test-case name="36813RegexTest_692 tokoe:valid" result="pass"/><test-case name="36814RegexTest_693 tokoe:valid" result="pass"/><test-case name="36815RegexTest_694 tokoe:valid" result="pass"/><test-case name="36816RegexTest_695 tokoe:valid" result="pass"/><test-case name="36817RegexTest_699 tokoe:invalid" result="fail"/><test-case name="36818RegexTest_708 tokoe:valid" result="pass"/><test-case name="36819RegexTest_709 tokoe:valid" result="pass"/><test-case name="36820RegexTest_710 tokoe:valid" result="pass"/><test-case name="36821RegexTest_711 tokoe:valid" result="pass"/><test-case name="36822RegexTest_712 tokoe:valid" result="pass"/><test-case name="36823RegexTest_713 tokoe:valid" result="pass"/><test-case name="36824RegexTest_714 tokoe:valid" result="pass"/><test-case name="36825RegexTest_715 tokoe:valid" result="pass"/><test-case name="36826RegexTest_716 tokoe:valid" result="pass"/><test-case name="36827RegexTest_720 tokoe:valid" result="pass"/><test-case name="36828RegexTest_721 tokoe:valid" result="pass"/><test-case name="36829RegexTest_722 tokoe:valid" result="pass"/><test-case name="36830RegexTest_723 tokoe:valid" result="pass"/><test-case name="36831RegexTest_734 tokoe:valid" result="pass"/><test-case name="36832RegexTest_735 tokoe:valid" result="pass"/><test-case name="36833RegexTest_736 tokoe:valid" result="pass"/><test-case name="36834RegexTest_737 tokoe:valid" result="pass"/><test-case name="36835RegexTest_738 tokoe:valid" result="pass"/><test-case name="36836RegexTest_739 tokoe:valid" result="pass"/><test-case name="36837RegexTest_740 tokoe:valid" result="pass"/><test-case name="36838RegexTest_741 tokoe:valid" result="pass"/><test-case name="36839RegexTest_742 tokoe:valid" result="pass"/><test-case name="36840RegexTest_744 tokoe:valid" result="pass"/><test-case name="36841RegexTest_745 tokoe:valid" result="pass"/><test-case name="36842RegexTest_746 tokoe:valid" result="pass"/><test-case name="36843RegexTest_747 tokoe:valid" result="pass"/><test-case name="36844RegexTest_748 tokoe:valid" result="pass"/><test-case name="36845RegexTest_749 tokoe:valid" result="pass"/><test-case name="36846RegexTest_750 tokoe:valid" result="pass"/><test-case name="36847RegexTest_751 tokoe:valid" result="pass"/><test-case name="36848RegexTest_752 tokoe:invalid" result="fail"/><test-case name="36849RegexTest_753 tokoe:invalid" result="pass"/><test-case name="36850RegexTest_754 tokoe:invalid" result="pass"/><test-case name="36851RegexTest_757 tokoe:valid" result="pass"/><test-case name="36852RegexTest_758 tokoe:valid" result="pass"/><test-case name="36853RegexTest_759 tokoe:valid" result="pass"/><test-case name="36854RegexTest_760 tokoe:valid" result="pass"/><test-case name="36855RegexTest_763 tokoe:valid" result="pass"/><test-case name="36856RegexTest_764 tokoe:valid" result="pass"/><test-case name="36857RegexTest_765 tokoe:valid" result="pass"/><test-case name="36858RegexTest_766 tokoe:invalid" result="pass"/><test-case name="36859RegexTest_767 tokoe:invalid" result="pass"/><test-case name="36860RegexTest_768 tokoe:valid" result="pass"/><test-case name="36861RegexTest_769 tokoe:invalid" result="pass"/><test-case name="36862RegexTest_770 tokoe:valid" result="pass"/><test-case name="36863RegexTest_771 tokoe:valid" result="pass"/><test-case name="36864RegexTest_772 tokoe:valid" result="pass"/><test-case name="36865RegexTest_773 tokoe:valid" result="pass"/><test-case name="36866RegexTest_774 tokoe:invalid" result="pass"/><test-case name="36867RegexTest_775 tokoe:invalid" result="pass"/><test-case name="36868RegexTest_776 tokoe:valid" result="pass"/><test-case name="36869RegexTest_777 tokoe:valid" result="pass"/><test-case name="36870RegexTest_778 tokoe:valid" result="pass"/><test-case name="36871RegexTest_779 tokoe:valid" result="pass"/><test-case name="36872RegexTest_780 tokoe:invalid" result="pass"/><test-case name="36873RegexTest_784 tokoe:valid" result="pass"/><test-case name="36874RegexTest_785 tokoe:valid" result="pass"/><test-case name="36875RegexTest_786 tokoe:valid" result="pass"/><test-case name="36876RegexTest_787 tokoe:valid" result="pass"/><test-case name="36877RegexTest_788 tokoe:valid" result="pass"/><test-case name="36878RegexTest_789 tokoe:valid" result="pass"/><test-case name="36879RegexTest_792 tokoe:valid" result="pass"/><test-case name="36880RegexTest_793 tokoe:valid" result="pass"/><test-case name="36881RegexTest_794 tokoe:valid" result="pass"/><test-case name="36882RegexTest_795 tokoe:valid" result="pass"/><test-case name="36883RegexTest_796 tokoe:valid" result="pass"/><test-case name="36884RegexTest_797 tokoe:valid" result="pass"/><test-case name="36885RegexTest_798 tokoe:valid" result="pass"/><test-case name="36886RegexTest_799 tokoe:valid" result="pass"/><test-case name="36887RegexTest_800 tokoe:valid" result="pass"/><test-case name="36888RegexTest_801 tokoe:valid" result="pass"/><test-case name="36889RegexTest_802 tokoe:valid" result="pass"/><test-case name="36890RegexTest_803 tokoe:valid" result="pass"/><test-case name="36891RegexTest_804 tokoe:valid" result="pass"/><test-case name="36892RegexTest_805 tokoe:valid" result="pass"/><test-case name="36893RegexTest_806 tokoe:valid" result="pass"/><test-case name="36894RegexTest_807 tokoe:valid" result="pass"/><test-case name="36895RegexTest_808 tokoe:valid" result="pass"/><test-case name="36896RegexTest_809 tokoe:valid" result="pass"/><test-case name="36897RegexTest_810 tokoe:valid" result="pass"/><test-case name="36898RegexTest_811 tokoe:valid" result="pass"/><test-case name="36899RegexTest_812 tokoe:valid" result="pass"/><test-case name="36900RegexTest_813 tokoe:valid" result="pass"/><test-case name="36901RegexTest_814 tokoe:valid" result="pass"/><test-case name="36902RegexTest_815 tokoe:valid" result="pass"/><test-case name="36903RegexTest_816 tokoe:valid" result="pass"/><test-case name="36904RegexTest_817 tokoe:valid" result="pass"/><test-case name="36905RegexTest_818 tokoe:valid" result="pass"/><test-case name="36906RegexTest_819 tokoe:valid" result="pass"/><test-case name="36907RegexTest_820 tokoe:valid" result="pass"/><test-case name="36908RegexTest_821 tokoe:valid" result="pass"/><test-case name="36909RegexTest_822 tokoe:valid" result="pass"/><test-case name="36910RegexTest_823 tokoe:valid" result="pass"/><test-case name="36911RegexTest_825 tokoe:valid" result="pass"/><test-case name="36912RegexTest_828 tokoe:valid" result="pass"/><test-case name="36913RegexTest_829 tokoe:valid" result="pass"/><test-case name="36914RegexTest_830 tokoe:valid" result="pass"/><test-case name="36915RegexTest_831 tokoe:valid" result="pass"/><test-case name="36916RegexTest_832 tokoe:valid" result="pass"/><test-case name="36917RegexTest_833 tokoe:valid" result="pass"/><test-case name="36918RegexTest_834 tokoe:valid" result="pass"/><test-case name="36919RegexTest_835 tokoe:valid" result="pass"/><test-case name="36920RegexTest_849 tokoe:valid" result="pass"/><test-case name="36921RegexTest_850 tokoe:invalid" result="pass"/><test-case name="36922RegexTest_858 tokoe:valid" result="pass"/><test-case name="36923RegexTest_859 tokoe:valid" result="pass"/><test-case name="36924RegexTest_867 tokoe:valid" result="pass"/><test-case name="36925RegexTest_868 tokoe:valid" result="pass"/><test-case name="36926RegexTest_869 tokoe:valid" result="pass"/><test-case name="36927RegexTest_882 tokoe:valid" result="pass"/><test-case name="36928RegexTest_883 tokoe:valid" result="pass"/><test-case name="36929RegexTest_884 tokoe:valid" result="pass"/><test-case name="36930RegexTest_885 tokoe:valid" result="pass"/><test-case name="36931RegexTest_886 tokoe:valid" result="pass"/><test-case name="36932RegexTest_887 tokoe:valid" result="pass"/><test-case name="36933RegexTest_927 tokoe:valid" result="pass"/><test-case name="36934RegexTest_947 tokoe:valid" result="pass"/><test-case name="36935RegexTest_948 tokoe:valid" result="pass"/><test-case name="36936RegexTest_965 tokoe:invalid" result="pass"/><test-case name="36937RegexTest_966 tokoe:invalid" result="pass"/><test-case name="36938RegexTest_973 tokoe:valid" result="pass"/><test-case name="36939RegexTest_978 tokoe:valid" result="pass"/><test-case name="36940RegexTest_979 tokoe:valid" result="pass"/><test-case name="36941RegexTest_980 tokoe:valid" result="pass"/><test-case name="36942RegexTest_981 tokoe:valid" result="pass"/><test-case name="36943RegexTest_982 tokoe:valid" result="pass"/><test-case name="36944RegexTest_983 tokoe:valid" result="pass"/><test-case name="36945RegexTest_984 tokoe:valid" result="pass"/><test-case name="36946RegexTest_985 tokoe:valid" result="pass"/><test-case name="36947RegexTest_986 tokoe:valid" result="pass"/><test-case name="36948RegexTest_987 tokoe:valid" result="pass"/><test-case name="36949RegexTest_992 tokoe:invalid" result="pass"/><test-case name="36950RegexTest_993 tokoe:invalid" result="fail"/><test-case name="36951RegexTest_999 tokoe:invalid" result="pass"/><test-case name="36952RegexTest_1005 tokoe:valid" result="pass"/><test-case name="36953RegexTest_1006 tokoe:valid" result="pass"/><test-case name="36954RegexTest_1020 tokoe:valid" result="pass"/><test-case name="36955RegexTest_1021 tokoe:valid" result="pass"/><test-case name="36956RegexTest_1022 tokoe:valid" result="pass"/><test-case name="36957RegexTest_1023 tokoe:valid" result="pass"/><test-case name="36958RegexTest_1024 tokoe:valid" result="pass"/><test-case name="36959RegexTest_1025 tokoe:valid" result="pass"/><test-case name="36960RegexTest_1026 tokoe:valid" result="pass"/><test-case name="36961RegexTest_1027 tokoe:valid" result="pass"/><test-case name="36962RegexTest_1028 tokoe:valid" result="pass"/><test-case name="36963RegexTest_1029 tokoe:valid" result="pass"/><test-case name="36964RegexTest_1030 tokoe:valid" result="pass"/><test-case name="36965RegexTest_1031 tokoe:valid" result="pass"/><test-case name="36966RegexTest_1032 tokoe:valid" result="pass"/><test-case name="36967RegexTest_1033 tokoe:valid" result="pass"/><test-case name="36968RegexTest_1034 tokoe:valid" result="pass"/><test-case name="36969RegexTest_1035 tokoe:valid" result="pass"/><test-case name="36970RegexTest_1036 tokoe:valid" result="pass"/><test-case name="36971RegexTest_1037 tokoe:valid" result="pass"/><test-case name="36972RegexTest_1038 tokoe:valid" result="pass"/><test-case name="36973RegexTest_1039 tokoe:valid" result="pass"/><test-case name="36974RegexTest_1040 tokoe:valid" result="pass"/><test-case name="36975RegexTest_1041 tokoe:valid" result="pass"/><test-case name="36976RegexTest_1042 tokoe:valid" result="pass"/><test-case name="36977RegexTest_1043 tokoe:valid" result="pass"/><test-case name="36978RegexTest_1044 tokoe:valid" result="pass"/><test-case name="36979RegexTest_1045 tokoe:valid" result="pass"/><test-case name="36980RegexTest_1046 tokoe:valid" result="pass"/><test-case name="36981RegexTest_1047 tokoe:valid" result="pass"/><test-case name="36982RegexTest_1048 tokoe:valid" result="pass"/><test-case name="36983RegexTest_1049 tokoe:valid" result="pass"/><test-case name="36984RegexTest_1050 tokoe:valid" result="pass"/><test-case name="36985RegexTest_1051 tokoe:valid" result="pass"/><test-case name="36986RegexTest_1052 tokoe:valid" result="pass"/><test-case name="36987RegexTest_1053 tokoe:valid" result="pass"/><test-case name="36988RegexTest_1054 tokoe:valid" result="pass"/><test-case name="36989RegexTest_1055 tokoe:valid" result="pass"/><test-case name="36990RegexTest_1056 tokoe:valid" result="pass"/><test-case name="36991RegexTest_1057 tokoe:valid" result="pass"/><test-case name="36992RegexTest_1058 tokoe:valid" result="pass"/><test-case name="36993RegexTest_1059 tokoe:valid" result="pass"/><test-case name="36994RegexTest_1060 tokoe:valid" result="pass"/><test-case name="36995RegexTest_1061 tokoe:valid" result="pass"/><test-case name="36996RegexTest_1062 tokoe:valid" result="pass"/><test-case name="36997RegexTest_1063 tokoe:valid" result="pass"/><test-case name="36998RegexTest_1064 tokoe:valid" result="pass"/><test-case name="36999RegexTest_1065 tokoe:valid" result="pass"/><test-case name="37000RegexTest_1066 tokoe:valid" result="pass"/><test-case name="37001RegexTest_1067 tokoe:invalid" result="fail"/><test-case name="37002RegexTest_1068 tokoe:invalid" result="pass"/><test-case name="37003RegexTest_1069 tokoe:invalid" result="pass"/><test-case name="37004RegexTest_1072 tokoe:valid" result="pass"/><test-case name="37005RegexTest_1073 tokoe:valid" result="pass"/><test-case name="37006RegexTest_1074 tokoe:valid" result="pass"/><test-case name="37007RegexTest_1075 tokoe:valid" result="pass"/><test-case name="37008RegexTest_1090 tokoe:valid" result="pass"/><test-case name="37009RegexTest_1091 tokoe:valid" result="pass"/><test-case name="37010RegexTest_1092 tokoe:valid" result="pass"/><test-case name="37011RegexTest_1093 tokoe:valid" result="pass"/><test-case name="37012RegexTest_1094 tokoe:valid" result="pass"/><test-case name="37013RegexTest_1095 tokoe:valid" result="pass"/><test-case name="37014RegexTest_1096 tokoe:valid" result="pass"/><test-case name="37015RegexTest_1097 tokoe:valid" result="pass"/><test-case name="37016RegexTest_1098 tokoe:valid" result="pass"/><test-case name="37017RegexTest_1099 tokoe:valid" result="pass"/><test-case name="37018RegexTest_1100 tokoe:valid" result="pass"/><test-case name="37019RegexTest_1101 tokoe:valid" result="pass"/><test-case name="37020RegexTest_1102 tokoe:valid" result="pass"/><test-case name="37021RegexTest_1103 tokoe:valid" result="pass"/><test-case name="37022RegexTest_1104 tokoe:valid" result="pass"/><test-case name="37023RegexTest_1105 tokoe:valid" result="pass"/><test-case name="37024RegexTest_1106 tokoe:valid" result="pass"/><test-case name="37025RegexTest_1107 tokoe:valid" result="pass"/><test-case name="37026RegexTest_1108 tokoe:valid" result="pass"/><test-case name="37027RegexTest_1109 tokoe:valid" result="pass"/><test-case name="37028RegexTest_1110 tokoe:valid" result="pass"/><test-case name="37029RegexTest_1111 tokoe:valid" result="pass"/><test-case name="37030RegexTest_1112 tokoe:valid" result="pass"/><test-case name="37031RegexTest_1113 tokoe:valid" result="pass"/><test-case name="37032RegexTest_1114 tokoe:valid" result="pass"/><test-case name="37033RegexTest_1115 tokoe:valid" result="pass"/><test-case name="37034RegexTest_1116 tokoe:valid" result="pass"/><test-case name="37035RegexTest_1117 tokoe:invalid" result="pass"/><test-case name="37036RegexTest_1118 tokoe:invalid" result="pass"/><test-case name="37037RegexTest_1119 tokoe:valid" result="pass"/><test-case name="37038RegexTest_1120 tokoe:invalid" result="pass"/><test-case name="37039RegexTest_1121 tokoe:valid" result="pass"/><test-case name="37040RegexTest_1122 tokoe:valid" result="pass"/><test-case name="37041RegexTest_1123 tokoe:valid" result="pass"/><test-case name="37042RegexTest_1124 tokoe:valid" result="pass"/><test-case name="37043RegexTest_1125 tokoe:invalid" result="pass"/><test-case name="37044RegexTest_1126 tokoe:invalid" result="pass"/><test-case name="37045RegexTest_1127 tokoe:valid" result="pass"/><test-case name="37046RegexTest_1128 tokoe:valid" result="pass"/><test-case name="37047RegexTest_1129 tokoe:valid" result="pass"/><test-case name="37048RegexTest_1130 tokoe:valid" result="pass"/><test-case name="37049RegexTest_1131 tokoe:invalid" result="pass"/><test-case name="37050RegexTest_1133 tokoe:valid" result="pass"/><test-case name="37051RegexTest_1134 tokoe:valid" result="pass"/><test-case name="37052RegexTest_1135 tokoe:valid" result="pass"/><test-case name="37053RegexTest_1136 tokoe:valid" result="pass"/><test-case name="37054RegexTest_1137 tokoe:valid" result="pass"/><test-case name="37055RegexTest_1138 tokoe:valid" result="pass"/><test-case name="37056RegexTest_1140 tokoe:valid" result="pass"/><test-case name="37057RegexTest_1141 tokoe:valid" result="pass"/><test-case name="37058RegexTest_1142 tokoe:valid" result="pass"/><test-case name="37059RegexTest_1143 tokoe:valid" result="pass"/><test-case name="37060RegexTest_1144 tokoe:valid" result="pass"/><test-case name="37061RegexTest_1145 tokoe:valid" result="pass"/><test-case name="37062RegexTest_1146 tokoe:valid" result="pass"/><test-case name="37063RegexTest_1147 tokoe:valid" result="pass"/><test-case name="37064RegexTest_1148 tokoe:valid" result="pass"/><test-case name="37065RegexTest_1149 tokoe:valid" result="pass"/><test-case name="37066RegexTest_1150 tokoe:valid" result="pass"/><test-case name="37067RegexTest_1151 tokoe:valid" result="pass"/><test-case name="37068RegexTest_1152 tokoe:valid" result="pass"/><test-case name="37069RegexTest_1153 tokoe:valid" result="pass"/><test-case name="37070RegexTest_1154 tokoe:valid" result="pass"/><test-case name="37071RegexTest_1155 tokoe:valid" result="pass"/><test-case name="37072RegexTest_1156 tokoe:valid" result="pass"/><test-case name="37073RegexTest_1157 tokoe:valid" result="pass"/><test-case name="37074RegexTest_1158 tokoe:valid" result="pass"/><test-case name="37075RegexTest_1159 tokoe:valid" result="pass"/><test-case name="37076RegexTest_1160 tokoe:valid" result="pass"/><test-case name="37077RegexTest_1161 tokoe:valid" result="pass"/><test-case name="37078RegexTest_1162 tokoe:valid" result="pass"/><test-case name="37079RegexTest_1163 tokoe:valid" result="pass"/><test-case name="37080RegexTest_1164 tokoe:valid" result="pass"/><test-case name="37081RegexTest_1165 tokoe:valid" result="pass"/><test-case name="37082RegexTest_1166 tokoe:valid" result="pass"/><test-case name="37083RegexTest_1167 tokoe:valid" result="pass"/><test-case name="37084RegexTest_1168 tokoe:valid" result="pass"/><test-case name="37085RegexTest_1169 tokoe:valid" result="pass"/><test-case name="37086RegexTest_1170 tokoe:valid" result="pass"/><test-case name="37087RegexTest_1171 tokoe:valid" result="pass"/><test-case name="37088RegexTest_1173 tokoe:valid" result="pass"/><test-case name="37089RegexTest_1174 tokoe:valid" result="pass"/><test-case name="37090RegexTest_1175 tokoe:valid" result="pass"/><test-case name="37091RegexTest_1176 tokoe:valid" result="pass"/><test-case name="37092RegexTest_1177 tokoe:valid" result="pass"/><test-case name="37093RegexTest_1178 tokoe:valid" result="pass"/><test-case name="37094RegexTest_1179 tokoe:valid" result="pass"/><test-case name="37095RegexTest_1183 tokoe:invalid" result="fail"/><test-case name="37096RegexTest_1192 tokoe:valid" result="pass"/><test-case name="37097RegexTest_1193 tokoe:valid" result="pass"/><test-case name="37098RegexTest_1194 tokoe:valid" result="pass"/><test-case name="37099RegexTest_1195 tokoe:valid" result="pass"/><test-case name="37100RegexTest_1196 tokoe:valid" result="pass"/><test-case name="37101RegexTest_1197 tokoe:valid" result="pass"/><test-case name="37102RegexTest_1198 tokoe:valid" result="pass"/><test-case name="37103RegexTest_1199 tokoe:valid" result="pass"/><test-case name="37104RegexTest_1200 tokoe:valid" result="pass"/><test-case name="37105RegexTest_1204 tokoe:valid" result="pass"/><test-case name="37106RegexTest_1205 tokoe:valid" result="pass"/><test-case name="37107RegexTest_1206 tokoe:valid" result="pass"/><test-case name="37108RegexTest_1207 tokoe:valid" result="pass"/><test-case name="37109RegexTest_1218 tokoe:valid" result="pass"/><test-case name="37110RegexTest_1219 tokoe:valid" result="pass"/><test-case name="37111RegexTest_1220 tokoe:valid" result="pass"/><test-case name="37112RegexTest_1221 tokoe:valid" result="pass"/><test-case name="37113RegexTest_1222 tokoe:valid" result="pass"/><test-case name="37114RegexTest_1223 tokoe:valid" result="pass"/><test-case name="37115RegexTest_1224 tokoe:valid" result="pass"/><test-case name="37116RegexTest_1225 tokoe:valid" result="pass"/><test-case name="37117RegexTest_1226 tokoe:valid" result="pass"/><test-case name="37118RegexTest_1228 tokoe:valid" result="pass"/><test-case name="37119RegexTest_1229 tokoe:valid" result="pass"/><test-case name="37120RegexTest_1230 tokoe:valid" result="pass"/><test-case name="37121RegexTest_1231 tokoe:valid" result="pass"/><test-case name="37122RegexTest_1232 tokoe:valid" result="pass"/><test-case name="37123RegexTest_1233 tokoe:valid" result="pass"/><test-case name="37124RegexTest_1234 tokoe:valid" result="pass"/><test-case name="37125RegexTest_1235 tokoe:valid" result="pass"/><test-case name="37126RegexTest_1236 tokoe:invalid" result="fail"/><test-case name="37127RegexTest_1237 tokoe:invalid" result="pass"/><test-case name="37128RegexTest_1238 tokoe:invalid" result="pass"/><test-case name="37129RegexTest_1241 tokoe:valid" result="pass"/><test-case name="37130RegexTest_1242 tokoe:valid" result="pass"/><test-case name="37131RegexTest_1243 tokoe:valid" result="pass"/><test-case name="37132RegexTest_1244 tokoe:valid" result="pass"/><test-case name="37133RegexTest_1247 tokoe:valid" result="pass"/><test-case name="37134RegexTest_1248 tokoe:valid" result="pass"/><test-case name="37135RegexTest_1249 tokoe:valid" result="pass"/><test-case name="37136RegexTest_1250 tokoe:invalid" result="pass"/><test-case name="37137RegexTest_1251 tokoe:invalid" result="pass"/><test-case name="37138RegexTest_1252 tokoe:valid" result="pass"/><test-case name="37139RegexTest_1253 tokoe:invalid" result="pass"/><test-case name="37140RegexTest_1254 tokoe:valid" result="pass"/><test-case name="37141RegexTest_1255 tokoe:valid" result="pass"/><test-case name="37142RegexTest_1256 tokoe:valid" result="pass"/><test-case name="37143RegexTest_1257 tokoe:valid" result="pass"/><test-case name="37144RegexTest_1258 tokoe:invalid" result="pass"/><test-case name="37145RegexTest_1259 tokoe:invalid" result="pass"/><test-case name="37146RegexTest_1260 tokoe:valid" result="pass"/><test-case name="37147RegexTest_1261 tokoe:valid" result="pass"/><test-case name="37148RegexTest_1262 tokoe:valid" result="pass"/><test-case name="37149RegexTest_1263 tokoe:valid" result="pass"/><test-case name="37150RegexTest_1264 tokoe:invalid" result="pass"/><test-case name="37151RegexTest_1268 tokoe:valid" result="pass"/><test-case name="37152RegexTest_1269 tokoe:valid" result="pass"/><test-case name="37153RegexTest_1270 tokoe:valid" result="pass"/><test-case name="37154RegexTest_1271 tokoe:valid" result="pass"/><test-case name="37155RegexTest_1272 tokoe:valid" result="pass"/><test-case name="37156RegexTest_1273 tokoe:valid" result="pass"/><test-case name="37157RegexTest_1276 tokoe:valid" result="pass"/><test-case name="37158RegexTest_1277 tokoe:valid" result="pass"/><test-case name="37159RegexTest_1278 tokoe:valid" result="pass"/><test-case name="37160RegexTest_1279 tokoe:valid" result="pass"/><test-case name="37161RegexTest_1280 tokoe:valid" result="pass"/><test-case name="37162RegexTest_1281 tokoe:valid" result="pass"/><test-case name="37163RegexTest_1282 tokoe:valid" result="pass"/><test-case name="37164RegexTest_1283 tokoe:valid" result="pass"/><test-case name="37165RegexTest_1284 tokoe:valid" result="pass"/><test-case name="37166RegexTest_1285 tokoe:valid" result="pass"/><test-case name="37167RegexTest_1286 tokoe:valid" result="pass"/><test-case name="37168RegexTest_1287 tokoe:valid" result="pass"/><test-case name="37169RegexTest_1288 tokoe:valid" result="pass"/><test-case name="37170RegexTest_1289 tokoe:valid" result="pass"/><test-case name="37171RegexTest_1290 tokoe:valid" result="pass"/><test-case name="37172RegexTest_1291 tokoe:valid" result="pass"/><test-case name="37173RegexTest_1292 tokoe:valid" result="pass"/><test-case name="37174RegexTest_1293 tokoe:valid" result="pass"/><test-case name="37175RegexTest_1294 tokoe:valid" result="pass"/><test-case name="37176RegexTest_1295 tokoe:valid" result="pass"/><test-case name="37177RegexTest_1296 tokoe:valid" result="pass"/><test-case name="37178RegexTest_1297 tokoe:valid" result="pass"/><test-case name="37179RegexTest_1298 tokoe:valid" result="pass"/><test-case name="37180RegexTest_1299 tokoe:valid" result="pass"/><test-case name="37181RegexTest_1300 tokoe:valid" result="pass"/><test-case name="37182RegexTest_1301 tokoe:valid" result="pass"/><test-case name="37183RegexTest_1302 tokoe:valid" result="pass"/><test-case name="37184RegexTest_1303 tokoe:valid" result="pass"/><test-case name="37185RegexTest_1304 tokoe:valid" result="pass"/><test-case name="37186RegexTest_1305 tokoe:valid" result="pass"/><test-case name="37187RegexTest_1306 tokoe:valid" result="pass"/><test-case name="37188RegexTest_1307 tokoe:valid" result="pass"/><test-case name="37189RegexTest_1309 tokoe:valid" result="pass"/><test-case name="37190RegexTest_1312 tokoe:valid" result="pass"/><test-case name="37191RegexTest_1313 tokoe:valid" result="pass"/><test-case name="37192RegexTest_1314 tokoe:valid" result="pass"/><test-case name="37193RegexTest_1315 tokoe:valid" result="pass"/><test-case name="37194RegexTest_1316 tokoe:valid" result="pass"/><test-case name="37195RegexTest_1317 tokoe:valid" result="pass"/><test-case name="37196RegexTest_1318 tokoe:valid" result="pass"/><test-case name="37197RegexTest_1319 tokoe:valid" result="pass"/><test-case name="37198RegexTest_1333 tokoe:valid" result="pass"/><test-case name="37199RegexTest_1334 tokoe:invalid" result="pass"/><test-case name="37200RegexTest_1342 tokoe:valid" result="pass"/><test-case name="37201RegexTest_1343 tokoe:valid" result="pass"/><test-case name="37202RegexTest_1351 tokoe:valid" result="pass"/><test-case name="37203RegexTest_1352 tokoe:valid" result="pass"/><test-case name="37204RegexTest_1353 tokoe:valid" result="pass"/><test-case name="37205RegexTest_1366 tokoe:valid" result="pass"/><test-case name="37206RegexTest_1367 tokoe:valid" result="pass"/><test-case name="37207RegexTest_1368 tokoe:valid" result="pass"/><test-case name="37208RegexTest_1369 tokoe:valid" result="pass"/><test-case name="37209RegexTest_1370 tokoe:valid" result="pass"/><test-case name="37210RegexTest_1371 tokoe:valid" result="pass"/><test-case name="37211RegexTest_1411 tokoe:valid" result="pass"/><test-case name="37212RegexTest_1431 tokoe:valid" result="pass"/><test-case name="37213RegexTest_1432 tokoe:valid" result="pass"/><test-case name="37214RegexTest_1449 tokoe:invalid" result="pass"/><test-case name="37215RegexTest_1450 tokoe:invalid" result="pass"/><test-case name="37216RegexTest_1457 tokoe:valid" result="pass"/><test-case name="37217RegexTest_1462 tokoe:valid" result="pass"/><test-case name="37218RegexTest_1463 tokoe:valid" result="pass"/><test-case name="37219RegexTest_1464 tokoe:valid" result="pass"/><test-case name="37220RegexTest_1465 tokoe:valid" result="pass"/><test-case name="37221RegexTest_1466 tokoe:valid" result="pass"/><test-case name="37222RegexTest_1467 tokoe:valid" result="pass"/><test-case name="37223RegexTest_1468 tokoe:valid" result="pass"/><test-case name="37224RegexTest_1469 tokoe:valid" result="pass"/><test-case name="37225RegexTest_1470 tokoe:valid" result="pass"/><test-case name="37226RegexTest_1471 tokoe:valid" result="pass"/><test-case name="37227RegexTest_1476 tokoe:invalid" result="pass"/><test-case name="37228RegexTest_1477 tokoe:invalid" result="fail"/><test-case name="37229RegexTest_1483 tokoe:invalid" result="pass"/><test-case name="37230RegexTest_1489 tokoe:valid" result="pass"/><test-case name="37231RegexTest_1490 tokoe:valid" result="pass"/><test-case name="37232RegexTest_1504 tokoe:valid" result="pass"/><test-case name="37233RegexTest_1505 tokoe:valid" result="pass"/><test-case name="37234RegexTest_1506 tokoe:valid" result="pass"/><test-case name="37235RegexTest_1507 tokoe:valid" result="pass"/><test-case name="37236RegexTest_1508 tokoe:valid" result="pass"/><test-case name="37237RegexTest_1509 tokoe:valid" result="pass"/><test-case name="37238RegexTest_1510 tokoe:valid" result="pass"/><test-case name="37239RegexTest_1511 tokoe:valid" result="pass"/><test-case name="37240RegexTest_1512 tokoe:valid" result="pass"/><test-case name="37241RegexTest_1513 tokoe:valid" result="pass"/><test-case name="37242RegexTest_1514 tokoe:valid" result="pass"/><test-case name="37243RegexTest_1515 tokoe:valid" result="pass"/><test-case name="37244RegexTest_1516 tokoe:valid" result="pass"/><test-case name="37245RegexTest_1517 tokoe:valid" result="pass"/><test-case name="37246RegexTest_1518 tokoe:valid" result="pass"/><test-case name="37247RegexTest_1519 tokoe:valid" result="pass"/><test-case name="37248RegexTest_1520 tokoe:valid" result="pass"/><test-case name="37249RegexTest_1521 tokoe:valid" result="pass"/><test-case name="37250RegexTest_1522 tokoe:valid" result="pass"/><test-case name="37251RegexTest_1523 tokoe:valid" result="pass"/><test-case name="37252RegexTest_1524 tokoe:valid" result="pass"/><test-case name="37253RegexTest_1525 tokoe:valid" result="pass"/><test-case name="37254RegexTest_1526 tokoe:valid" result="pass"/><test-case name="37255RegexTest_1527 tokoe:valid" result="pass"/><test-case name="37256RegexTest_1528 tokoe:valid" result="pass"/><test-case name="37257RegexTest_1529 tokoe:valid" result="pass"/><test-case name="37258RegexTest_1530 tokoe:valid" result="pass"/><test-case name="37259RegexTest_1531 tokoe:valid" result="pass"/><test-case name="37260RegexTest_1532 tokoe:valid" result="pass"/><test-case name="37261RegexTest_1533 tokoe:valid" result="pass"/><test-case name="37262RegexTest_1534 tokoe:valid" result="pass"/><test-case name="37263RegexTest_1535 tokoe:valid" result="pass"/><test-case name="37264RegexTest_1536 tokoe:valid" result="pass"/><test-case name="37265RegexTest_1537 tokoe:valid" result="pass"/><test-case name="37266RegexTest_1538 tokoe:valid" result="pass"/><test-case name="37267RegexTest_1539 tokoe:valid" result="pass"/><test-case name="37268RegexTest_1540 tokoe:valid" result="pass"/><test-case name="37269RegexTest_1541 tokoe:valid" result="pass"/><test-case name="37270BasicLatin tokoe:valid" result="pass"/><test-case name="37271BasicLatin.v tokoe:valid" result="pass"/><test-case name="37272Latin-1Supplement tokoe:valid" result="pass"/><test-case name="37273Latin-1Supplement.v tokoe:valid" result="pass"/><test-case name="37274LatinExtended-A tokoe:valid" result="pass"/><test-case name="37275LatinExtended-A.v tokoe:valid" result="pass"/><test-case name="37276LatinExtended-B tokoe:valid" result="pass"/><test-case name="37277LatinExtended-B.v tokoe:valid" result="pass"/><test-case name="37278IPAExtensions tokoe:valid" result="pass"/><test-case name="37279IPAExtensions.v tokoe:valid" result="pass"/><test-case name="37280SpacingModifierLetters tokoe:valid" result="pass"/><test-case name="37281SpacingModifierLetters.v tokoe:valid" result="pass"/><test-case name="37282CombiningDiacriticalMarks tokoe:valid" result="pass"/><test-case name="37283CombiningDiacriticalMarks.v tokoe:valid" result="pass"/><test-case name="37284Cyrillic tokoe:valid" result="pass"/><test-case name="37285Cyrillic.v tokoe:valid" result="pass"/><test-case name="37286Armenian tokoe:valid" result="pass"/><test-case name="37287Armenian.v tokoe:valid" result="pass"/><test-case name="37288Hebrew tokoe:valid" result="pass"/><test-case name="37289Hebrew.v tokoe:valid" result="pass"/><test-case name="37290Arabic tokoe:valid" result="pass"/><test-case name="37291Arabic.v tokoe:valid" result="pass"/><test-case name="37292Syriac tokoe:valid" result="pass"/><test-case name="37293Syriac.v tokoe:valid" result="pass"/><test-case name="37294Thaana tokoe:valid" result="pass"/><test-case name="37295Thaana.v tokoe:valid" result="pass"/><test-case name="37296Devanagari tokoe:valid" result="pass"/><test-case name="37297Devanagari.v tokoe:valid" result="pass"/><test-case name="37298Bengali tokoe:valid" result="pass"/><test-case name="37299Bengali.v tokoe:valid" result="pass"/><test-case name="37300Gurmukhi tokoe:valid" result="pass"/><test-case name="37301Gurmukhi.v tokoe:valid" result="pass"/><test-case name="37302Gujarati tokoe:valid" result="pass"/><test-case name="37303Gujarati.v tokoe:valid" result="pass"/><test-case name="37304Oriya tokoe:valid" result="pass"/><test-case name="37305Oriya.v tokoe:valid" result="pass"/><test-case name="37306Tamil tokoe:valid" result="pass"/><test-case name="37307Tamil.v tokoe:valid" result="pass"/><test-case name="37308Telugu tokoe:valid" result="pass"/><test-case name="37309Telugu.v tokoe:valid" result="pass"/><test-case name="37310Kannada tokoe:valid" result="pass"/><test-case name="37311Kannada.v tokoe:valid" result="pass"/><test-case name="37312Malayalam tokoe:valid" result="pass"/><test-case name="37313Malayalam.v tokoe:valid" result="pass"/><test-case name="37314Sinhala tokoe:valid" result="pass"/><test-case name="37315Sinhala.v tokoe:valid" result="pass"/><test-case name="37316Thai tokoe:valid" result="pass"/><test-case name="37317Thai.v tokoe:valid" result="pass"/><test-case name="37318Lao tokoe:valid" result="pass"/><test-case name="37319Lao.v tokoe:valid" result="pass"/><test-case name="37320Tibetan tokoe:valid" result="pass"/><test-case name="37321Tibetan.v tokoe:valid" result="pass"/><test-case name="37322Myanmar tokoe:valid" result="pass"/><test-case name="37323Myanmar.v tokoe:valid" result="pass"/><test-case name="37324Georgian tokoe:valid" result="pass"/><test-case name="37325Georgian.v tokoe:valid" result="pass"/><test-case name="37326HangulJamo tokoe:valid" result="pass"/><test-case name="37327HangulJamo.v tokoe:valid" result="pass"/><test-case name="37328Ethiopic tokoe:valid" result="pass"/><test-case name="37329Ethiopic.v tokoe:valid" result="pass"/><test-case name="37330Cherokee tokoe:valid" result="pass"/><test-case name="37331Cherokee.v tokoe:valid" result="pass"/><test-case name="37332UnifiedCanadianAboriginalSyllabics tokoe:valid" result="pass"/><test-case name="37333UnifiedCanadianAboriginalSyllabics.v tokoe:valid" result="pass"/><test-case name="37334Ogham tokoe:valid" result="pass"/><test-case name="37335Ogham.v tokoe:valid" result="pass"/><test-case name="37336Runic tokoe:valid" result="pass"/><test-case name="37337Runic.v tokoe:valid" result="pass"/><test-case name="37338Khmer tokoe:valid" result="pass"/><test-case name="37339Khmer.v tokoe:valid" result="pass"/><test-case name="37340Mongolian tokoe:valid" result="pass"/><test-case name="37341Mongolian.v tokoe:valid" result="pass"/><test-case name="37342LatinExtendedAdditional tokoe:valid" result="pass"/><test-case name="37343LatinExtendedAdditional.v tokoe:valid" result="pass"/><test-case name="37344GreekExtended tokoe:valid" result="pass"/><test-case name="37345GreekExtended.v tokoe:valid" result="pass"/><test-case name="37346GeneralPunctuation tokoe:valid" result="pass"/><test-case name="37347GeneralPunctuation.v tokoe:valid" result="pass"/><test-case name="37348SuperscriptsandSubscripts tokoe:valid" result="pass"/><test-case name="37349SuperscriptsandSubscripts.v tokoe:valid" result="pass"/><test-case name="37350CurrencySymbols tokoe:valid" result="pass"/><test-case name="37351CurrencySymbols.v tokoe:valid" result="pass"/><test-case name="37352LetterlikeSymbols tokoe:valid" result="pass"/><test-case name="37353LetterlikeSymbols.v tokoe:valid" result="pass"/><test-case name="37354NumberForms tokoe:valid" result="pass"/><test-case name="37355NumberForms.v tokoe:valid" result="pass"/><test-case name="37356Arrows tokoe:valid" result="pass"/><test-case name="37357Arrows.v tokoe:valid" result="pass"/><test-case name="37358MathematicalOperators tokoe:valid" result="pass"/><test-case name="37359MathematicalOperators.v tokoe:valid" result="pass"/><test-case name="37360MiscellaneousTechnical tokoe:valid" result="pass"/><test-case name="37361MiscellaneousTechnical.v tokoe:valid" result="pass"/><test-case name="37362ControlPictures tokoe:valid" result="pass"/><test-case name="37363ControlPictures.v tokoe:valid" result="pass"/><test-case name="37364OpticalCharacterRecognition tokoe:valid" result="pass"/><test-case name="37365OpticalCharacterRecognition.v tokoe:valid" result="pass"/><test-case name="37366EnclosedAlphanumerics tokoe:valid" result="pass"/><test-case name="37367EnclosedAlphanumerics.v tokoe:valid" result="pass"/><test-case name="37368BoxDrawing tokoe:valid" result="pass"/><test-case name="37369BoxDrawing.v tokoe:valid" result="pass"/><test-case name="37370BlockElements tokoe:valid" result="pass"/><test-case name="37371BlockElements.v tokoe:valid" result="pass"/><test-case name="37372GeometricShapes tokoe:valid" result="pass"/><test-case name="37373GeometricShapes.v tokoe:valid" result="pass"/><test-case name="37374MiscellaneousSymbols tokoe:valid" result="pass"/><test-case name="37375MiscellaneousSymbols.v tokoe:valid" result="pass"/><test-case name="37376Dingbats tokoe:valid" result="pass"/><test-case name="37377Dingbats.v tokoe:valid" result="pass"/><test-case name="37378BraillePatterns tokoe:valid" result="pass"/><test-case name="37379BraillePatterns.v tokoe:valid" result="pass"/><test-case name="37380CJKRadicalsSupplement tokoe:valid" result="pass"/><test-case name="37381CJKRadicalsSupplement.v tokoe:valid" result="pass"/><test-case name="37382KangxiRadicals tokoe:valid" result="pass"/><test-case name="37383KangxiRadicals.v tokoe:valid" result="pass"/><test-case name="37384IdeographicDescriptionCharacters tokoe:valid" result="pass"/><test-case name="37385IdeographicDescriptionCharacters.v tokoe:valid" result="pass"/><test-case name="37386CJKSymbolsandPunctuation tokoe:valid" result="pass"/><test-case name="37387CJKSymbolsandPunctuation.v tokoe:valid" result="pass"/><test-case name="37388Hiragana tokoe:valid" result="pass"/><test-case name="37389Hiragana.v tokoe:valid" result="pass"/><test-case name="37390Katakana tokoe:valid" result="pass"/><test-case name="37391Katakana.v tokoe:valid" result="pass"/><test-case name="37392Bopomofo tokoe:valid" result="pass"/><test-case name="37393Bopomofo.v tokoe:valid" result="pass"/><test-case name="37394HangulCompatibilityJamo tokoe:valid" result="pass"/><test-case name="37395HangulCompatibilityJamo.v tokoe:valid" result="pass"/><test-case name="37396Kanbun tokoe:valid" result="pass"/><test-case name="37397Kanbun.v tokoe:valid" result="pass"/><test-case name="37398BopomofoExtended tokoe:valid" result="pass"/><test-case name="37399BopomofoExtended.v tokoe:valid" result="pass"/><test-case name="37400EnclosedCJKLettersandMonths tokoe:valid" result="pass"/><test-case name="37401EnclosedCJKLettersandMonths.v tokoe:valid" result="pass"/><test-case name="37402CJKCompatibility tokoe:valid" result="pass"/><test-case name="37403CJKCompatibility.v tokoe:valid" result="pass"/><test-case name="37404CJKUnifiedIdeographs tokoe:valid" result="pass"/><test-case name="37405CJKUnifiedIdeographs.v tokoe:valid" result="pass"/><test-case name="37406YiSyllables tokoe:valid" result="pass"/><test-case name="37407YiSyllables.v tokoe:valid" result="pass"/><test-case name="37408YiRadicals tokoe:valid" result="pass"/><test-case name="37409YiRadicals.v tokoe:valid" result="pass"/><test-case name="37410HighSurrogates tokoe:valid" result="fail"/><test-case name="37411HighSurrogates.i tokoe:invalid" result="pass"/><test-case name="37412CJKCompatibilityIdeographs tokoe:valid" result="pass"/><test-case name="37413CJKCompatibilityIdeographs.v tokoe:valid" result="pass"/><test-case name="37414AlphabeticPresentationForms tokoe:valid" result="pass"/><test-case name="37415AlphabeticPresentationForms.v tokoe:valid" result="pass"/><test-case name="37416ArabicPresentationForms-A tokoe:valid" result="pass"/><test-case name="37417ArabicPresentationForms-A.v tokoe:valid" result="pass"/><test-case name="37418CombiningHalfMarks tokoe:valid" result="pass"/><test-case name="37419CombiningHalfMarks.v tokoe:valid" result="pass"/><test-case name="37420CJKCompatibilityForms tokoe:valid" result="pass"/><test-case name="37421CJKCompatibilityForms.v tokoe:valid" result="pass"/><test-case name="37422SmallFormVariants tokoe:valid" result="pass"/><test-case name="37423SmallFormVariants.v tokoe:valid" result="pass"/><test-case name="37424HalfwidthandFullwidthForms tokoe:valid" result="pass"/><test-case name="37425HalfwidthandFullwidthForms.v tokoe:valid" result="pass"/><test-case name="37426Specials tokoe:valid" result="pass"/><test-case name="37427Specials.v tokoe:valid" result="pass"/><test-case name="37428reZ002 tokoe:valid" result="pass"/><test-case name="37429reZ002.i tokoe:invalid" result="fail"/><test-case name="37430reZ003v tokoe:valid" result="pass"/><test-case name="37431reZ003v.v tokoe:valid" result="fail"/><test-case name="37432reZ004v tokoe:valid" result="pass"/><test-case name="37433reZ004v.v tokoe:valid" result="fail"/><test-case name="37434reZ004i tokoe:valid" result="pass"/><test-case name="37435reZ004i.i tokoe:invalid" result="pass"/><test-case name="37436reZ005v tokoe:valid" result="pass"/><test-case name="37437reZ005v.v tokoe:valid" result="pass"/><test-case name="37438reZ005i tokoe:valid" result="pass"/><test-case name="37439reZ005i.i tokoe:invalid" result="pass"/><test-case name="37440reZ006v tokoe:valid" result="pass"/><test-case name="37441reZ006v.v tokoe:valid" result="pass"/><test-case name="37442reZ006i tokoe:valid" result="pass"/><test-case name="37443reZ006i.i tokoe:invalid" result="fail"/><test-case name="37444schA1 tokoe:valid" result="pass"/><test-case name="37445schA1.v tokoe:valid" result="pass"/><test-case name="37446schA3 tokoe:valid" result="pass"/><test-case name="37447schA3.v tokoe:valid" result="pass"/><test-case name="37448schA4.v tokoe:valid" result="pass"/><test-case name="37449schB1 tokoe:valid" result="pass"/><test-case name="37450schB1i tokoe:invalid" result="pass"/><test-case name="37451schB2 tokoe:valid" result="pass"/><test-case name="37452schB3 tokoe:invalid" result="pass"/><test-case name="37453schB4 tokoe:invalid" result="pass"/><test-case name="37454schB5 tokoe:invalid" result="pass"/><test-case name="37455schB8 tokoe:valid" result="pass"/><test-case name="37456schC2 tokoe:invalid" result="pass"/><test-case name="37457schC3 tokoe:valid" result="pass"/><test-case name="37458schC3.v tokoe:valid" result="pass"/><test-case name="37459schC4 tokoe:valid" result="pass"/><test-case name="37460schC4.v tokoe:valid" result="pass"/><test-case name="37461schC5 tokoe:invalid" result="pass"/><test-case name="37462schD5 tokoe:valid" result="pass"/><test-case name="37463schD5.v tokoe:valid" result="pass"/><test-case name="37464schD7 tokoe:valid" result="pass"/><test-case name="37465schD7.v tokoe:valid" result="pass"/><test-case name="37466schD10 tokoe:valid" result="pass"/><test-case name="37467schD10.v tokoe:valid" result="pass"/><test-case name="37468schD11 tokoe:valid" result="pass"/><test-case name="37469schE1 tokoe:valid" result="pass"/><test-case name="37470schE1i tokoe:invalid" result="pass"/><test-case name="37471schE2 tokoe:valid" result="pass"/><test-case name="37472schE3 tokoe:valid" result="pass"/><test-case name="37473schE4 tokoe:valid" result="pass"/><test-case name="37474schE4.v tokoe:valid" result="pass"/><test-case name="37475schE5 tokoe:invalid" result="pass"/><test-case name="37476schE6 tokoe:invalid" result="pass"/><test-case name="37477schE9 tokoe:valid" result="pass"/><test-case name="37478schE10 tokoe:invalid" result="pass"/><test-case name="37479schF1 tokoe:valid" result="pass"/><test-case name="37480schF1.v tokoe:valid" result="pass"/><test-case name="37481schF2 tokoe:valid" result="pass"/><test-case name="37482schF2.v tokoe:valid" result="pass"/><test-case name="37483schF3 tokoe:invalid" result="pass"/><test-case name="37484schF4 tokoe:invalid" result="pass"/><test-case name="37485schF5 tokoe:valid" result="pass"/><test-case name="37486schF5.v tokoe:valid" result="pass"/><test-case name="37487schF6 tokoe:invalid" result="pass"/><test-case name="37488schG1 tokoe:valid" result="pass"/><test-case name="37489schG1.v tokoe:valid" result="pass"/><test-case name="37490schG2 tokoe:valid" result="pass"/><test-case name="37491schG2.v tokoe:valid" result="pass"/><test-case name="37492schG4 tokoe:valid" result="fail"/><test-case name="37493schG4.v tokoe:valid" result="fail"/><test-case name="37494schG5 tokoe:valid" result="pass"/><test-case name="37495schG5.v tokoe:valid" result="pass"/><test-case name="37496schG7 tokoe:valid" result="fail"/><test-case name="37497schG7.v tokoe:valid" result="fail"/><test-case name="37498schG8 tokoe:valid" result="pass"/><test-case name="37499schG8.v tokoe:valid" result="pass"/><test-case name="37500schG10 tokoe:invalid" result="pass"/><test-case name="37501schG13 tokoe:invalid" result="pass"/><test-case name="37502schG14 tokoe:valid" result="fail"/><test-case name="37503schG15 tokoe:valid" result="pass"/><test-case name="37504schH1 tokoe:valid" result="pass"/><test-case name="37505schH2 tokoe:valid" result="pass"/><test-case name="37506schH3 tokoe:invalid" result="pass"/><test-case name="37507schH4 tokoe:invalid" result="pass"/><test-case name="37508schH5 tokoe:invalid" result="pass"/><test-case name="37509schH6 tokoe:invalid" result="pass"/><test-case name="37510schH9 tokoe:valid" result="pass"/><test-case name="37511schI2 tokoe:invalid" result="pass"/><test-case name="37512schI5 tokoe:invalid" result="pass"/><test-case name="37513schJ2 tokoe:invalid" result="pass"/><test-case name="37514schJ3 tokoe:invalid" result="pass"/><test-case name="37515schK2 tokoe:invalid" result="pass"/><test-case name="37516schK3 tokoe:invalid" result="pass"/><test-case name="37517schL1 tokoe:invalid" result="pass"/><test-case name="37518schL3 tokoe:invalid" result="pass"/><test-case name="37519schL6 tokoe:invalid" result="pass"/><test-case name="37520schL8 tokoe:invalid" result="pass"/><test-case name="37521schL10 tokoe:invalid" result="pass"/><test-case name="37522schM3 tokoe:invalid" result="pass"/><test-case name="37523schM4 tokoe:invalid" result="pass"/><test-case name="37524schM5 tokoe:invalid" result="pass"/><test-case name="37525schM8 tokoe:invalid" result="pass"/><test-case name="37526schM9 tokoe:valid" result="pass"/><test-case name="37527schM10 tokoe:invalid" result="pass"/><test-case name="37528schN4 tokoe:invalid" result="pass"/><test-case name="37529schN5 tokoe:invalid" result="pass"/><test-case name="37530schN6 tokoe:invalid" result="pass"/><test-case name="37531schN7 tokoe:invalid" result="pass"/><test-case name="37532schN10 tokoe:invalid" result="pass"/><test-case name="37533schN11 tokoe:valid" result="pass"/><test-case name="37534schN12 tokoe:invalid" result="pass"/><test-case name="37535schN13v tokoe:valid" result="pass"/><test-case name="37536schN13i tokoe:invalid" result="pass"/><test-case name="37537schO2 tokoe:invalid" result="pass"/><test-case name="37538schP1 tokoe:invalid" result="pass"/><test-case name="37539schP2 tokoe:valid" result="pass"/><test-case name="37540schP2.v tokoe:valid" result="pass"/><test-case name="37541schP3 tokoe:invalid" result="pass"/><test-case name="37542schQ1 tokoe:valid" result="pass"/><test-case name="37543schQ1.v tokoe:valid" result="pass"/><test-case name="37544schQ2 tokoe:invalid" result="pass"/><test-case name="37545schQ3 tokoe:valid" result="pass"/><test-case name="37546schQ3.v tokoe:valid" result="pass"/><test-case name="37547schQ4 tokoe:invalid" result="pass"/><test-case name="37548schR2 tokoe:valid" result="pass"/><test-case name="37549schR2.i tokoe:invalid" result="pass"/><test-case name="37550schR3 tokoe:invalid" result="pass"/><test-case name="37551schR4 tokoe:invalid" result="pass"/><test-case name="37552schR5 tokoe:invalid" result="pass"/><test-case name="37553schS1 tokoe:invalid" result="pass"/><test-case name="37554schT1 tokoe:invalid" result="pass"/><test-case name="37555schT2 tokoe:invalid" result="pass"/><test-case name="37556schT3 tokoe:valid" result="pass"/><test-case name="37557schT3.v tokoe:valid" result="pass"/><test-case name="37558schT6 tokoe:valid" result="pass"/><test-case name="37559schT6.i tokoe:invalid" result="pass"/><test-case name="37560schT9 tokoe:valid" result="pass"/><test-case name="37561schT9.v tokoe:valid" result="pass"/><test-case name="37562schT10 tokoe:valid" result="pass"/><test-case name="37563schT10.v tokoe:valid" result="pass"/><test-case name="37564schU2 tokoe:valid" result="pass"/><test-case name="37565schZ001_78029-a tokoe:invalid" result="pass"/><test-case name="37566schZ002_78029-b tokoe:invalid" result="pass"/><test-case name="37567schZ003_78029-c tokoe:invalid" result="pass"/><test-case name="37568schZ006 tokoe:invalid" result="pass"/><test-case name="37569schZ007 tokoe:valid" result="pass"/><test-case name="37570schZ008 tokoe:valid" result="pass"/><test-case name="37571schZ009 tokoe:valid" result="pass"/><test-case name="37572schZ010 tokoe:invalid" result="pass"/><test-case name="37573schZ011_a tokoe:invalid" result="pass"/><test-case name="37574schZ011_b tokoe:invalid" result="pass"/><test-case name="37575schZ011_c tokoe:invalid" result="pass"/><test-case name="37576schZ011_d tokoe:invalid" result="pass"/><test-case name="37577schZ012_b tokoe:valid" result="pass"/><test-case name="37578schZ012_c tokoe:valid" result="pass"/><test-case name="37579schZ013 tokoe:valid" result="pass"/><test-case name="37580schZ014_a tokoe:invalid" result="pass"/><test-case name="37581schZ014_b tokoe:invalid" result="pass"/><test-case name="37582schZ015 tokoe:valid" result="pass"/><test-case name="37583stA001 tokoe:valid" result="pass"/><test-case name="37584stA002 tokoe:invalid" result="pass"/><test-case name="37585stA003 tokoe:valid" result="pass"/><test-case name="37586stA004 tokoe:invalid" result="pass"/><test-case name="37587stA005 tokoe:invalid" result="pass"/><test-case name="37588stA006 tokoe:valid" result="pass"/><test-case name="37589stA007 tokoe:valid" result="pass"/><test-case name="37590stA008 tokoe:invalid" result="pass"/><test-case name="37591stA009 tokoe:invalid" result="pass"/><test-case name="37592stA010 tokoe:invalid" result="pass"/><test-case name="37593stA011 tokoe:invalid" result="pass"/><test-case name="37594stA012 tokoe:invalid" result="pass"/><test-case name="37595stA013 tokoe:invalid" result="pass"/><test-case name="37596stA014 tokoe:invalid" result="pass"/><test-case name="37597stA015 tokoe:invalid" result="pass"/><test-case name="37598stA016 tokoe:valid" result="pass"/><test-case name="37599stA017 tokoe:invalid" result="pass"/><test-case name="37600stA018 tokoe:valid" result="pass"/><test-case name="37601stA019 tokoe:valid" result="pass"/><test-case name="37602stA020 tokoe:valid" result="pass"/><test-case name="37603stB001 tokoe:invalid" result="pass"/><test-case name="37604stB002 tokoe:invalid" result="pass"/><test-case name="37605stB003 tokoe:valid" result="pass"/><test-case name="37606stB004 tokoe:invalid" result="pass"/><test-case name="37607stB005 tokoe:invalid" result="pass"/><test-case name="37608stB006 tokoe:valid" result="pass"/><test-case name="37609stB007 tokoe:invalid" result="pass"/><test-case name="37610stB008 tokoe:valid" result="pass"/><test-case name="37611stB009 tokoe:invalid" result="pass"/><test-case name="37612stB010 tokoe:invalid" result="pass"/><test-case name="37613stB011 tokoe:valid" result="pass"/><test-case name="37614stB012 tokoe:valid" result="pass"/><test-case name="37615stB013 tokoe:invalid" result="pass"/><test-case name="37616stB014 tokoe:invalid" result="pass"/><test-case name="37617stB015 tokoe:valid" result="pass"/><test-case name="37618stB016 tokoe:invalid" result="pass"/><test-case name="37619stB017 tokoe:invalid" result="pass"/><test-case name="37620stB018 tokoe:invalid" result="pass"/><test-case name="37621stB019 tokoe:invalid" result="pass"/><test-case name="37622stB020 tokoe:invalid" result="pass"/><test-case name="37623stB021 tokoe:invalid" result="pass"/><test-case name="37624stB022 tokoe:invalid" result="pass"/><test-case name="37625stB023 tokoe:invalid" result="pass"/><test-case name="37626stB024 tokoe:invalid" result="pass"/><test-case name="37627stC001 tokoe:valid" result="pass"/><test-case name="37628stC002 tokoe:invalid" result="pass"/><test-case name="37629stC003 tokoe:invalid" result="pass"/><test-case name="37630stC004 tokoe:invalid" result="pass"/><test-case name="37631stC005 tokoe:valid" result="pass"/><test-case name="37632stC006 tokoe:invalid" result="pass"/><test-case name="37633stC007 tokoe:valid" result="pass"/><test-case name="37634stC008 tokoe:invalid" result="pass"/><test-case name="37635stC009 tokoe:invalid" result="pass"/><test-case name="37636stC010 tokoe:valid" result="pass"/><test-case name="37637stC011 tokoe:invalid" result="pass"/><test-case name="37638stC012 tokoe:invalid" result="pass"/><test-case name="37639stC013 tokoe:invalid" result="pass"/><test-case name="37640stC014 tokoe:valid" result="pass"/><test-case name="37641stC015 tokoe:valid" result="pass"/><test-case name="37642stC016 tokoe:valid" result="pass"/><test-case name="37643stC017 tokoe:valid" result="pass"/><test-case name="37644stC018 tokoe:valid" result="pass"/><test-case name="37645stC019 tokoe:valid" result="pass"/><test-case name="37646stC020 tokoe:valid" result="pass"/><test-case name="37647stC021 tokoe:valid" result="pass"/><test-case name="37648stC022 tokoe:valid" result="pass"/><test-case name="37649stC023 tokoe:invalid" result="pass"/><test-case name="37650stC024 tokoe:valid" result="pass"/><test-case name="37651stC025 tokoe:valid" result="pass"/><test-case name="37652stC026 tokoe:valid" result="pass"/><test-case name="37653stC027 tokoe:invalid" result="pass"/><test-case name="37654stC028 tokoe:invalid" result="pass"/><test-case name="37655stC029 tokoe:invalid" result="pass"/><test-case name="37656stC030 tokoe:valid" result="pass"/><test-case name="37657stC031 tokoe:invalid" result="pass"/><test-case name="37658stC032 tokoe:invalid" result="pass"/><test-case name="37659stC033 tokoe:valid" result="pass"/><test-case name="37660stC034 tokoe:valid" result="pass"/><test-case name="37661stC034.i tokoe:invalid" result="pass"/><test-case name="37662stC035 tokoe:valid" result="pass"/><test-case name="37663stD001 tokoe:valid" result="pass"/><test-case name="37664stD002 tokoe:invalid" result="pass"/><test-case name="37665stD003 tokoe:valid" result="pass"/><test-case name="37666stD004 tokoe:invalid" result="pass"/><test-case name="37667stD005 tokoe:invalid" result="pass"/><test-case name="37668stD006 tokoe:valid" result="pass"/><test-case name="37669stD007 tokoe:valid" result="pass"/><test-case name="37670stD008 tokoe:valid" result="pass"/><test-case name="37671stD009 tokoe:invalid" result="pass"/><test-case name="37672stD010 tokoe:invalid" result="pass"/><test-case name="37673stD011 tokoe:valid" result="pass"/><test-case name="37674stD012 tokoe:valid" result="pass"/><test-case name="37675stD013 tokoe:valid" result="pass"/><test-case name="37676stD014 tokoe:valid" result="pass"/><test-case name="37677stD015 tokoe:invalid" result="pass"/><test-case name="37678stD016 tokoe:invalid" result="pass"/><test-case name="37679stD017 tokoe:invalid" result="pass"/><test-case name="37680stD018 tokoe:invalid" result="pass"/><test-case name="37681stD019 tokoe:invalid" result="pass"/><test-case name="37682stD020 tokoe:valid" result="pass"/><test-case name="37683stD021 tokoe:valid" result="pass"/><test-case name="37684stE001 tokoe:valid" result="pass"/><test-case name="37685stE002 tokoe:invalid" result="pass"/><test-case name="37686stE003 tokoe:valid" result="pass"/><test-case name="37687stE004 tokoe:invalid" result="pass"/><test-case name="37688stE005 tokoe:invalid" result="pass"/><test-case name="37689stE006 tokoe:valid" result="pass"/><test-case name="37690stE007 tokoe:valid" result="pass"/><test-case name="37691stE008 tokoe:invalid" result="pass"/><test-case name="37692stE009 tokoe:valid" result="pass"/><test-case name="37693stE010 tokoe:valid" result="pass"/><test-case name="37694stE011 tokoe:valid" result="pass"/><test-case name="37695stE012 tokoe:invalid" result="pass"/><test-case name="37696stE013 tokoe:valid" result="pass"/><test-case name="37697stE014 tokoe:valid" result="pass"/><test-case name="37698stE015 tokoe:invalid" result="pass"/><test-case name="37699stE016 tokoe:invalid" result="pass"/><test-case name="37700stE017 tokoe:valid" result="pass"/><test-case name="37701stE018 tokoe:invalid" result="pass"/><test-case name="37702stE050 tokoe:valid" result="pass"/><test-case name="37703stE050.v tokoe:valid" result="pass"/><test-case name="37704stE051 tokoe:valid" result="pass"/><test-case name="37705stE051.i tokoe:invalid" result="pass"/><test-case name="37706stE052 tokoe:valid" result="pass"/><test-case name="37707stE052.v tokoe:valid" result="pass"/><test-case name="37708stE053 tokoe:valid" result="pass"/><test-case name="37709stE053.i tokoe:invalid" result="pass"/><test-case name="37710stE054 tokoe:valid" result="pass"/><test-case name="37711stE054.i tokoe:invalid" result="fail"/><test-case name="37712stE055 tokoe:valid" result="pass"/><test-case name="37713stE055.v tokoe:valid" result="pass"/><test-case name="37714stE056 tokoe:valid" result="pass"/><test-case name="37715stE056.i tokoe:invalid" result="pass"/><test-case name="37716stE057 tokoe:valid" result="pass"/><test-case name="37717stE057.v tokoe:valid" result="pass"/><test-case name="37718stE058 tokoe:valid" result="pass"/><test-case name="37719stE058.v tokoe:valid" result="pass"/><test-case name="37720stE059 tokoe:valid" result="pass"/><test-case name="37721stE059.v tokoe:valid" result="pass"/><test-case name="37722stE060 tokoe:valid" result="pass"/><test-case name="37723stE060.v tokoe:valid" result="pass"/><test-case name="37724stE061 tokoe:valid" result="pass"/><test-case name="37725stE061.v tokoe:valid" result="pass"/><test-case name="37726stE062 tokoe:valid" result="pass"/><test-case name="37727stE062.v tokoe:valid" result="pass"/><test-case name="37728stE063 tokoe:valid" result="pass"/><test-case name="37729stE063.i tokoe:invalid" result="pass"/><test-case name="37730stE064 tokoe:valid" result="pass"/><test-case name="37731stE064.v tokoe:valid" result="pass"/><test-case name="37732stE065 tokoe:valid" result="pass"/><test-case name="37733stE065.v tokoe:valid" result="pass"/><test-case name="37734stE066 tokoe:valid" result="pass"/><test-case name="37735stE066.v tokoe:valid" result="pass"/><test-case name="37736stE067 tokoe:valid" result="pass"/><test-case name="37737stE067.v tokoe:valid" result="pass"/><test-case name="37738stE068 tokoe:valid" result="pass"/><test-case name="37739stE068.v tokoe:valid" result="pass"/><test-case name="37740stE069 tokoe:valid" result="pass"/><test-case name="37741stE069.v tokoe:valid" result="pass"/><test-case name="37742stE070 tokoe:valid" result="pass"/><test-case name="37743stE070.i tokoe:invalid" result="pass"/><test-case name="37744stE071 tokoe:valid" result="pass"/><test-case name="37745stE071.i tokoe:invalid" result="pass"/><test-case name="37746stE072 tokoe:valid" result="pass"/><test-case name="37747stE072.v tokoe:valid" result="pass"/><test-case name="37748stE073 tokoe:valid" result="pass"/><test-case name="37749stE073.i tokoe:invalid" result="pass"/><test-case name="37750stE073v tokoe:valid" result="pass"/><test-case name="37751stE073v.v tokoe:valid" result="pass"/><test-case name="37752stE074 tokoe:valid" result="pass"/><test-case name="37753stE074.i tokoe:invalid" result="pass"/><test-case name="37754ste074v tokoe:valid" result="pass"/><test-case name="37755ste074v.v tokoe:valid" result="pass"/><test-case name="37756stE075 tokoe:valid" result="fail"/><test-case name="37757stE075.i tokoe:invalid" result="pass"/><test-case name="37758stE076 tokoe:valid" result="pass"/><test-case name="37759stE076.i tokoe:invalid" result="pass"/><test-case name="37760stE077 tokoe:valid" result="pass"/><test-case name="37761stE077.v tokoe:valid" result="pass"/><test-case name="37762stE078 tokoe:valid" result="pass"/><test-case name="37763stE078.i tokoe:invalid" result="pass"/><test-case name="37764stE079 tokoe:valid" result="pass"/><test-case name="37765stE079.v tokoe:valid" result="pass"/><test-case name="37766stE080 tokoe:valid" result="pass"/><test-case name="37767stE080.v tokoe:valid" result="pass"/><test-case name="37768stE081 tokoe:valid" result="pass"/><test-case name="37769stE081.v tokoe:valid" result="pass"/><test-case name="37770stE082 tokoe:valid" result="pass"/><test-case name="37771stE082.i tokoe:invalid" result="pass"/><test-case name="37772stE090 tokoe:valid" result="pass"/><test-case name="37773stE090.v tokoe:valid" result="pass"/><test-case name="37774stE091 tokoe:valid" result="pass"/><test-case name="37775stE091.v tokoe:valid" result="pass"/><test-case name="37776stE092 tokoe:valid" result="pass"/><test-case name="37777stE092.v tokoe:valid" result="pass"/><test-case name="37778stE093 tokoe:valid" result="pass"/><test-case name="37779stE093.v tokoe:valid" result="pass"/><test-case name="37780stE094 tokoe:valid" result="pass"/><test-case name="37781stE094.v tokoe:valid" result="pass"/><test-case name="37782stE095 tokoe:valid" result="pass"/><test-case name="37783stE095.i tokoe:invalid" result="pass"/><test-case name="37784stE096 tokoe:valid" result="fail"/><test-case name="37785stE096.v tokoe:valid" result="fail"/><test-case name="37786stE097 tokoe:valid" result="fail"/><test-case name="37787stE097.i tokoe:invalid" result="pass"/><test-case name="37788ste098 tokoe:valid" result="pass"/><test-case name="37789ste098.i tokoe:invalid" result="pass"/><test-case name="37790ste099 tokoe:valid" result="pass"/><test-case name="37791ste099.v tokoe:valid" result="pass"/><test-case name="37792ste100 tokoe:valid" result="pass"/><test-case name="37793ste100.i tokoe:invalid" result="pass"/><test-case name="37794stF001 tokoe:valid" result="pass"/><test-case name="37795stF002 tokoe:valid" result="pass"/><test-case name="37796stF003 tokoe:valid" result="pass"/><test-case name="37797stF004 tokoe:valid" result="pass"/><test-case name="37798stF005 tokoe:invalid" result="pass"/><test-case name="37799stF006 tokoe:valid" result="pass"/><test-case name="37800stF007 tokoe:invalid" result="pass"/><test-case name="37801stF008 tokoe:invalid" result="pass"/><test-case name="37802stF009 tokoe:invalid" result="pass"/><test-case name="37803stF010 tokoe:invalid" result="pass"/><test-case name="37804stF011 tokoe:invalid" result="pass"/><test-case name="37805stF012 tokoe:invalid" result="pass"/><test-case name="37806stF013 tokoe:invalid" result="pass"/><test-case name="37807stF014 tokoe:invalid" result="pass"/><test-case name="37808stF015 tokoe:invalid" result="pass"/><test-case name="37809stF016 tokoe:valid" result="pass"/><test-case name="37810stF017 tokoe:valid" result="pass"/><test-case name="37811stF018 tokoe:invalid" result="pass"/><test-case name="37812stF019 tokoe:invalid" result="pass"/><test-case name="37813stF020 tokoe:invalid" result="pass"/><test-case name="37814stF021 tokoe:invalid" result="pass"/><test-case name="37815stF022 tokoe:invalid" result="pass"/><test-case name="37816stF023 tokoe:invalid" result="pass"/><test-case name="37817stF024 tokoe:invalid" result="pass"/><test-case name="37818stF025 tokoe:invalid" result="pass"/><test-case name="37819stF026 tokoe:invalid" result="pass"/><test-case name="37820stF027 tokoe:invalid" result="pass"/><test-case name="37821stF028 tokoe:invalid" result="pass"/><test-case name="37822stF029 tokoe:invalid" result="pass"/><test-case name="37823stF030 tokoe:invalid" result="pass"/><test-case name="37824stF031 tokoe:invalid" result="pass"/><test-case name="37825stF032 tokoe:valid" result="pass"/><test-case name="37826stF033 tokoe:invalid" result="pass"/><test-case name="37827stF034 tokoe:valid" result="pass"/><test-case name="37828stF035 tokoe:invalid" result="pass"/><test-case name="37829stF036 tokoe:valid" result="pass"/><test-case name="37830stF037 tokoe:invalid" result="pass"/><test-case name="37831stG001 tokoe:valid" result="pass"/><test-case name="37832stG001.v tokoe:valid" result="pass"/><test-case name="37833stG002 tokoe:valid" result="pass"/><test-case name="37834stG002.v tokoe:valid" result="pass"/><test-case name="37835stG003 tokoe:valid" result="pass"/><test-case name="37836stG003.i tokoe:invalid" result="pass"/><test-case name="37837stG004 tokoe:valid" result="pass"/><test-case name="37838stG004.v tokoe:valid" result="pass"/><test-case name="37839stG005 tokoe:valid" result="pass"/><test-case name="37840stG005.i tokoe:invalid" result="pass"/><test-case name="37841stG006 tokoe:valid" result="pass"/><test-case name="37842stG006.v tokoe:valid" result="pass"/><test-case name="37843stG007 tokoe:valid" result="pass"/><test-case name="37844stG007.i tokoe:invalid" result="pass"/><test-case name="37845stG008 tokoe:valid" result="pass"/><test-case name="37846stG008.v tokoe:valid" result="pass"/><test-case name="37847stG009 tokoe:valid" result="pass"/><test-case name="37848stG009.i tokoe:invalid" result="pass"/><test-case name="37849stG010 tokoe:valid" result="pass"/><test-case name="37850stG010.v tokoe:valid" result="pass"/><test-case name="37851stG011 tokoe:valid" result="pass"/><test-case name="37852stG011.i tokoe:invalid" result="pass"/><test-case name="37853stG012 tokoe:valid" result="pass"/><test-case name="37854stG012.v tokoe:valid" result="pass"/><test-case name="37855stG013 tokoe:valid" result="pass"/><test-case name="37856stG013.i tokoe:invalid" result="pass"/><test-case name="37857stH001 tokoe:valid" result="pass"/><test-case name="37858stH001.v tokoe:valid" result="pass"/><test-case name="37859stH002 tokoe:valid" result="pass"/><test-case name="37860stH002.i tokoe:invalid" result="pass"/><test-case name="37861stH003 tokoe:valid" result="pass"/><test-case name="37862stH003.v tokoe:valid" result="pass"/><test-case name="37863stH004 tokoe:valid" result="pass"/><test-case name="37864stH004.i tokoe:invalid" result="pass"/><test-case name="37865stH005 tokoe:valid" result="pass"/><test-case name="37866stH005.v tokoe:valid" result="pass"/><test-case name="37867stH006 tokoe:valid" result="pass"/><test-case name="37868stH006.i tokoe:invalid" result="pass"/><test-case name="37869stH007 tokoe:valid" result="pass"/><test-case name="37870stH007.v tokoe:valid" result="pass"/><test-case name="37871stH008 tokoe:valid" result="pass"/><test-case name="37872stH008.i tokoe:invalid" result="pass"/><test-case name="37873stI001 tokoe:valid" result="pass"/><test-case name="37874stI002 tokoe:valid" result="pass"/><test-case name="37875stI003 tokoe:valid" result="pass"/><test-case name="37876stI004 tokoe:invalid" result="pass"/><test-case name="37877stI005 tokoe:invalid" result="pass"/><test-case name="37878stJ001 tokoe:valid" result="pass"/><test-case name="37879stJ002 tokoe:valid" result="pass"/><test-case name="37880stJ003 tokoe:invalid" result="pass"/><test-case name="37881stJ004 tokoe:valid" result="pass"/><test-case name="37882stJ005 tokoe:valid" result="pass"/><test-case name="37883stJ006 tokoe:valid" result="pass"/><test-case name="37884stJ007 tokoe:valid" result="pass"/><test-case name="37885stJ008 tokoe:valid" result="pass"/><test-case name="37886stJ009 tokoe:invalid" result="pass"/><test-case name="37887stJ010 tokoe:invalid" result="pass"/><test-case name="37888stJ011 tokoe:invalid" result="pass"/><test-case name="37889stJ012 tokoe:invalid" result="pass"/><test-case name="37890stJ013 tokoe:invalid" result="pass"/><test-case name="37891stJ014 tokoe:invalid" result="pass"/><test-case name="37892stJ015 tokoe:invalid" result="pass"/><test-case name="37893stJ016 tokoe:invalid" result="pass"/><test-case name="37894stJ017 tokoe:invalid" result="pass"/><test-case name="37895stJ018 tokoe:invalid" result="pass"/><test-case name="37896stJ019 tokoe:invalid" result="pass"/><test-case name="37897stK001 tokoe:valid" result="pass"/><test-case name="37898stK002 tokoe:invalid" result="pass"/><test-case name="37899stK003 tokoe:invalid" result="pass"/><test-case name="37900stK004 tokoe:valid" result="pass"/><test-case name="37901stK005 tokoe:invalid" result="pass"/><test-case name="37902stK006 tokoe:invalid" result="pass"/><test-case name="37903stK007 tokoe:invalid" result="pass"/><test-case name="37904stK008 tokoe:valid" result="pass"/><test-case name="37905stK009 tokoe:valid" result="pass"/><test-case name="37906stK010 tokoe:invalid" result="pass"/><test-case name="37907stK011 tokoe:invalid" result="pass"/><test-case name="37908stK012 tokoe:invalid" result="pass"/><test-case name="37909stK013 tokoe:invalid" result="pass"/><test-case name="37910stK014 tokoe:invalid" result="pass"/><test-case name="37911stK015 tokoe:invalid" result="pass"/><test-case name="37912stK016 tokoe:invalid" result="pass"/><test-case name="37913stK017 tokoe:invalid" result="pass"/><test-case name="37914stK018 tokoe:invalid" result="pass"/><test-case name="37915stK019 tokoe:invalid" result="pass"/><test-case name="37916stZ001 tokoe:valid" result="pass"/><test-case name="37917stZ002 tokoe:invalid" result="pass"/><test-case name="37918stZ003 tokoe:invalid" result="pass"/><test-case name="37919stZ004 tokoe:valid" result="pass"/><test-case name="37920stZ004.v tokoe:valid" result="pass"/><test-case name="37921stZ005 tokoe:invalid" result="pass"/><test-case name="37922stZ006 tokoe:invalid" result="pass"/><test-case name="37923stZ008 tokoe:valid" result="pass"/><test-case name="37924stZ008.v tokoe:valid" result="pass"/><test-case name="37925stZ009 tokoe:invalid" result="pass"/><test-case name="37926stZ010 tokoe:invalid" result="pass"/><test-case name="37927stZ011 tokoe:invalid" result="pass"/><test-case name="37928stZ012 tokoe:invalid" result="pass"/><test-case name="37929stZ013 tokoe:invalid" result="pass"/><test-case name="37930stZ014 tokoe:invalid" result="pass"/><test-case name="37931stZ015 tokoe:valid" result="pass"/><test-case name="37932stZ015.v tokoe:valid" result="pass"/><test-case name="37933stZ016 tokoe:valid" result="pass"/><test-case name="37934stZ017 tokoe:valid" result="pass"/><test-case name="37935stZ018 tokoe:invalid" result="pass"/><test-case name="37936stZ019 tokoe:invalid" result="pass"/><test-case name="37937stZ020 tokoe:valid" result="pass"/><test-case name="37938stZ021 tokoe:valid" result="pass"/><test-case name="37939stZ022 tokoe:invalid" result="pass"/><test-case name="37940stZ023 tokoe:valid" result="pass"/><test-case name="37941stZ024 tokoe:valid" result="pass"/><test-case name="37942stZ025 tokoe:valid" result="pass"/><test-case name="37943stZ026 tokoe:invalid" result="pass"/><test-case name="37944stZ027 tokoe:invalid" result="pass"/><test-case name="37945stZ028 tokoe:invalid" result="pass"/><test-case name="37946stZ029 tokoe:valid" result="pass"/><test-case name="37947stZ030 tokoe:valid" result="pass"/><test-case name="37948stZ030.v tokoe:valid" result="pass"/><test-case name="37949stZ031 tokoe:valid" result="pass"/><test-case name="37950stZ031.v tokoe:valid" result="pass"/><test-case name="37951stZ032 tokoe:valid" result="pass"/><test-case name="37952stZ032.i tokoe:invalid" result="pass"/><test-case name="37953stZ033 tokoe:valid" result="pass"/><test-case name="37954stZ033.i tokoe:invalid" result="pass"/><test-case name="37955stZ034 tokoe:valid" result="pass"/><test-case name="37956stZ034.i tokoe:invalid" result="pass"/><test-case name="37957stZ035 tokoe:valid" result="pass"/><test-case name="37958stZ035.i tokoe:invalid" result="pass"/><test-case name="37959stZ036 tokoe:valid" result="pass"/><test-case name="37960stZ036.v tokoe:valid" result="pass"/><test-case name="37961stZ037 tokoe:valid" result="pass"/><test-case name="37962stZ037.i tokoe:invalid" result="fail"/><test-case name="37963stZ038 tokoe:invalid" result="pass"/><test-case name="37964stZ039 tokoe:valid" result="pass"/><test-case name="37965stZ039.i tokoe:invalid" result="pass"/><test-case name="37966stZ040 tokoe:valid" result="pass"/><test-case name="37967stZ040.v tokoe:valid" result="pass"/><test-case name="37968stZ042 tokoe:valid" result="pass"/><test-case name="37969stZ043 tokoe:valid" result="pass"/><test-case name="37970stZ043.v tokoe:valid" result="fail"/><test-case name="37971stZ044 tokoe:valid" result="pass"/><test-case name="37972stZ044.i tokoe:invalid" result="pass"/><test-case name="37973stZ045 tokoe:valid" result="pass"/><test-case name="37974stZ045.v tokoe:valid" result="pass"/><test-case name="37975stZ046 tokoe:valid" result="pass"/><test-case name="37976stZ046.v tokoe:valid" result="pass"/><test-case name="37977stZ048 tokoe:invalid" result="pass"/><test-case name="37978stZ049 tokoe:invalid" result="pass"/><test-case name="37979stZ050 tokoe:valid" result="pass"/><test-case name="37980stZ050.v tokoe:valid" result="pass"/><test-case name="37981stZ051 tokoe:valid" result="pass"/><test-case name="37982stZ051.i tokoe:invalid" result="pass"/><test-case name="37983stZ052 tokoe:valid" result="pass"/><test-case name="37984stZ052.v tokoe:valid" result="pass"/><test-case name="37985stZ053 tokoe:valid" result="pass"/><test-case name="37986stZ053.v tokoe:valid" result="pass"/><test-case name="37987stZ054 tokoe:valid" result="pass"/><test-case name="37988stZ054.v tokoe:valid" result="pass"/><test-case name="37989stZ056 tokoe:valid" result="pass"/><test-case name="37990stZ056.i tokoe:invalid" result="pass"/><test-case name="37991stZ057 tokoe:valid" result="pass"/><test-case name="37992stZ057.v tokoe:valid" result="pass"/><test-case name="37993stZ058.v tokoe:valid" result="pass"/><test-case name="37994stZ059.i tokoe:invalid" result="pass"/><test-case name="37995stZ060.i tokoe:invalid" result="pass"/><test-case name="37996stZ061.i tokoe:invalid" result="pass"/><test-case name="37997stZ062.v tokoe:valid" result="pass"/><test-case name="37998stZ063.v tokoe:valid" result="pass"/><test-case name="37999stZ064.i tokoe:invalid" result="pass"/><test-case name="38000stZ066.i tokoe:invalid" result="pass"/><test-case name="38001stZ067 tokoe:valid" result="pass"/><test-case name="38002stZ068 tokoe:valid" result="pass"/><test-case name="38003stZ069 tokoe:valid" result="pass"/><test-case name="38004stZ070 tokoe:invalid" result="pass"/><test-case name="38005stZ071 tokoe:valid" result="pass"/><test-case name="38006stZ071.v tokoe:valid" result="pass"/><test-case name="38007stZ072 tokoe:valid" result="pass"/><test-case name="38008stZ072.v tokoe:valid" result="pass"/><test-case name="38009stZ073b tokoe:valid" result="pass"/><test-case name="38010stZ073b.i tokoe:invalid" result="pass"/><test-case name="38011stZ074 tokoe:valid" result="pass"/><test-case name="38012stZ074.v tokoe:valid" result="pass"/><test-case name="38013stZ075 tokoe:valid" result="pass"/><test-case name="38014stZ075.v tokoe:valid" result="pass"/><test-case name="38015wildA001 tokoe:valid" result="pass"/><test-case name="38016wildA002 tokoe:valid" result="pass"/><test-case name="38017wildA003 tokoe:invalid" result="pass"/><test-case name="38018wildA004 tokoe:invalid" result="pass"/><test-case name="38019wildA005 tokoe:invalid" result="pass"/><test-case name="38020wildA006 tokoe:invalid" result="pass"/><test-case name="38021wildA007 tokoe:invalid" result="pass"/><test-case name="38022wildA008 tokoe:invalid" result="pass"/><test-case name="38023wildB010 tokoe:valid" result="pass"/><test-case name="38024wildB011 tokoe:valid" result="pass"/><test-case name="38025wildB012 tokoe:valid" result="pass"/><test-case name="38026wildB013 tokoe:valid" result="pass"/><test-case name="38027wildB014 tokoe:invalid" result="pass"/><test-case name="38028wildB015 tokoe:invalid" result="pass"/><test-case name="38029wildB016 tokoe:invalid" result="pass"/><test-case name="38030wildB017 tokoe:valid" result="pass"/><test-case name="38031wildB018 tokoe:valid" result="pass"/><test-case name="38032wildB019 tokoe:valid" result="pass"/><test-case name="38033wildB020 tokoe:invalid" result="pass"/><test-case name="38034wildB021 tokoe:valid" result="pass"/><test-case name="38035wildB022 tokoe:invalid" result="pass"/><test-case name="38036wildB023 tokoe:invalid" result="pass"/><test-case name="38037wildB024 tokoe:invalid" result="pass"/><test-case name="38038wildB025 tokoe:valid" result="pass"/><test-case name="38039wildB026 tokoe:valid" result="pass"/><test-case name="38040wildB027 tokoe:invalid" result="pass"/><test-case name="38041wildB028 tokoe:invalid" result="pass"/><test-case name="38042wildB029 tokoe:valid" result="pass"/><test-case name="38043wildC030 tokoe:valid" result="pass"/><test-case name="38044wildC031 tokoe:valid" result="pass"/><test-case name="38045wildC032 tokoe:valid" result="pass"/><test-case name="38046wildC033 tokoe:valid" result="pass"/><test-case name="38047wildC034 tokoe:valid" result="pass"/><test-case name="38048wildC035 tokoe:invalid" result="pass"/><test-case name="38049wildC036 tokoe:invalid" result="pass"/><test-case name="38050wildC037 tokoe:valid" result="pass"/><test-case name="38051wildC038 tokoe:valid" result="pass"/><test-case name="38052wildC039 tokoe:valid" result="pass"/><test-case name="38053wildC040 tokoe:valid" result="pass"/><test-case name="38054wildC041 tokoe:valid" result="pass"/><test-case name="38055wildC042 tokoe:valid" result="pass"/><test-case name="38056wildC043 tokoe:valid" result="pass"/><test-case name="38057wildC044 tokoe:valid" result="pass"/><test-case name="38058wildC045 tokoe:valid" result="pass"/><test-case name="38059wildC046 tokoe:valid" result="pass"/><test-case name="38060wildC047 tokoe:valid" result="pass"/><test-case name="38061wildC048 tokoe:valid" result="pass"/><test-case name="38062wildC049 tokoe:invalid" result="pass"/><test-case name="38063wildC050 tokoe:invalid" result="pass"/><test-case name="38064wildC051 tokoe:invalid" result="pass"/><test-case name="38065wildC052 tokoe:invalid" result="pass"/><test-case name="38066wildC053 tokoe:invalid" result="pass"/><test-case name="38067wildC054 tokoe:valid" result="pass"/><test-case name="38068wildC055 tokoe:invalid" result="pass"/><test-case name="38069wildC056 tokoe:invalid" result="pass"/><test-case name="38070wildC057 tokoe:invalid" result="pass"/><test-case name="38071wildC058 tokoe:invalid" result="pass"/><test-case name="38072wildC059 tokoe:valid" result="pass"/><test-case name="38073wildC060 tokoe:valid" result="pass"/><test-case name="38074wildC061 tokoe:valid" result="pass"/><test-case name="38075wildC062 tokoe:valid" result="pass"/><test-case name="38076wildC063 tokoe:valid" result="pass"/><test-case name="38077wildC064 tokoe:valid" result="pass"/><test-case name="38078wildC065 tokoe:valid" result="pass"/><test-case name="38079wildC066 tokoe:invalid" result="pass"/><test-case name="38080wildC067 tokoe:invalid" result="pass"/><test-case name="38081wildC068 tokoe:valid" result="pass"/><test-case name="38082wildC069 tokoe:valid" result="pass"/><test-case name="38083wildC070 tokoe:valid" result="pass"/><test-case name="38084wildD071 tokoe:invalid" result="pass"/><test-case name="38085wildD072 tokoe:valid" result="pass"/><test-case name="38086wildD073 tokoe:valid" result="pass"/><test-case name="38087wildD074 tokoe:valid" result="pass"/><test-case name="38088wildD075 tokoe:invalid" result="pass"/><test-case name="38089wildD076 tokoe:invalid" result="pass"/><test-case name="38090wildD077 tokoe:invalid" result="pass"/><test-case name="38091wildD078 tokoe:invalid" result="pass"/><test-case name="38092wildD079 tokoe:invalid" result="pass"/><test-case name="38093wildE001 tokoe:valid" result="pass"/><test-case name="38094wildE002 tokoe:invalid" result="pass"/><test-case name="38095wildF001 tokoe:valid" result="pass"/><test-case name="38096wildF002 tokoe:valid" result="pass"/><test-case name="38097wildF003 tokoe:valid" result="pass"/><test-case name="38098wildF004 tokoe:valid" result="pass"/><test-case name="38099wildF005 tokoe:valid" result="pass"/><test-case name="38100wildF006 tokoe:invalid" result="pass"/><test-case name="38101wildF007 tokoe:invalid" result="pass"/><test-case name="38102wildF008 tokoe:invalid" result="pass"/><test-case name="38103wildF009 tokoe:invalid" result="pass"/><test-case name="38104wildF010 tokoe:invalid" result="pass"/><test-case name="38105wildF011 tokoe:valid" result="pass"/><test-case name="38106wildF012 tokoe:invalid" result="pass"/><test-case name="38107wildF013 tokoe:invalid" result="pass"/><test-case name="38108wildF014 tokoe:invalid" result="pass"/><test-case name="38109wildF015 tokoe:invalid" result="pass"/><test-case name="38110wildF016 tokoe:invalid" result="pass"/><test-case name="38111wildF017 tokoe:valid" result="pass"/><test-case name="38112wildF018 tokoe:invalid" result="pass"/><test-case name="38113wildF019 tokoe:valid" result="pass"/><test-case name="38114wildF020 tokoe:valid" result="pass"/><test-case name="38115wildG001 tokoe:valid" result="pass"/><test-case name="38116wildG001.v tokoe:valid" result="pass"/><test-case name="38117wildG002 tokoe:valid" result="pass"/><test-case name="38118wildG002.v tokoe:valid" result="pass"/><test-case name="38119wildG003 tokoe:valid" result="pass"/><test-case name="38120wildG003.i tokoe:invalid" result="pass"/><test-case name="38121wildG004 tokoe:valid" result="pass"/><test-case name="38122wildG004.v tokoe:valid" result="pass"/><test-case name="38123wildG005 tokoe:valid" result="pass"/><test-case name="38124wildG005.i tokoe:invalid" result="pass"/><test-case name="38125wildG006 tokoe:valid" result="pass"/><test-case name="38126wildG006.v tokoe:valid" result="pass"/><test-case name="38127wildG007 tokoe:valid" result="pass"/><test-case name="38128wildG007.v tokoe:valid" result="pass"/><test-case name="38129wildG008 tokoe:valid" result="pass"/><test-case name="38130wildG008.i tokoe:invalid" result="pass"/><test-case name="38131wildG009 tokoe:valid" result="pass"/><test-case name="38132wildG009.i tokoe:invalid" result="pass"/><test-case name="38133wildG010 tokoe:valid" result="pass"/><test-case name="38134wildG010.v tokoe:valid" result="pass"/><test-case name="38135wildG011 tokoe:valid" result="pass"/><test-case name="38136wildG011.i tokoe:invalid" result="pass"/><test-case name="38137wildG012 tokoe:valid" result="pass"/><test-case name="38138wildG012.v tokoe:valid" result="pass"/><test-case name="38139wildG013 tokoe:valid" result="pass"/><test-case name="38140wildG013.v tokoe:valid" result="pass"/><test-case name="38141wildG014 tokoe:valid" result="pass"/><test-case name="38142wildG014.i tokoe:invalid" result="pass"/><test-case name="38143wildG015 tokoe:valid" result="pass"/><test-case name="38144wildG015.v tokoe:valid" result="pass"/><test-case name="38145wildG016 tokoe:valid" result="pass"/><test-case name="38146wildG016.v tokoe:valid" result="pass"/><test-case name="38147wildG017 tokoe:valid" result="pass"/><test-case name="38148wildG017.i tokoe:invalid" result="pass"/><test-case name="38149wildG018 tokoe:valid" result="pass"/><test-case name="38150wildG018.v tokoe:valid" result="pass"/><test-case name="38151wildG019 tokoe:valid" result="pass"/><test-case name="38152wildG019.i tokoe:invalid" result="pass"/><test-case name="38153wildG020 tokoe:valid" result="pass"/><test-case name="38154wildG020.i tokoe:invalid" result="pass"/><test-case name="38155wildG021 tokoe:valid" result="pass"/><test-case name="38156wildG021.v tokoe:valid" result="pass"/><test-case name="38157wildG022 tokoe:valid" result="pass"/><test-case name="38158wildG022.i tokoe:invalid" result="pass"/><test-case name="38159wildG023 tokoe:valid" result="pass"/><test-case name="38160wildG023.v tokoe:valid" result="pass"/><test-case name="38161wildG024 tokoe:valid" result="pass"/><test-case name="38162wildG024.i tokoe:invalid" result="pass"/><test-case name="38163wildG025 tokoe:valid" result="pass"/><test-case name="38164wildG025.i tokoe:invalid" result="pass"/><test-case name="38165wildG026 tokoe:valid" result="pass"/><test-case name="38166wildG026.v tokoe:valid" result="pass"/><test-case name="38167wildG027 tokoe:valid" result="pass"/><test-case name="38168wildG027.v tokoe:valid" result="pass"/><test-case name="38169wildG028 tokoe:valid" result="pass"/><test-case name="38170wildG028.i tokoe:invalid" result="pass"/><test-case name="38171wildG029 tokoe:valid" result="pass"/><test-case name="38172wildG029.i tokoe:invalid" result="pass"/><test-case name="38173wildG030 tokoe:valid" result="pass"/><test-case name="38174wildG030.i tokoe:invalid" result="pass"/><test-case name="38175wildG031 tokoe:valid" result="pass"/><test-case name="38176wildG031.v tokoe:valid" result="pass"/><test-case name="38177wildG032 tokoe:valid" result="pass"/><test-case name="38178wildG032.i tokoe:invalid" result="pass"/><test-case name="38179wildG033 tokoe:valid" result="pass"/><test-case name="38180wildG033.v tokoe:valid" result="pass"/><test-case name="38181wildG034 tokoe:valid" result="pass"/><test-case name="38182wildG034.i tokoe:invalid" result="pass"/><test-case name="38183wildG035 tokoe:valid" result="pass"/><test-case name="38184wildG035.v tokoe:valid" result="pass"/><test-case name="38185wildG036 tokoe:valid" result="pass"/><test-case name="38186wildG036.i tokoe:invalid" result="pass"/><test-case name="38187wildG037 tokoe:valid" result="pass"/><test-case name="38188wildG037.v tokoe:valid" result="pass"/><test-case name="38189wildG038 tokoe:valid" result="pass"/><test-case name="38190wildG038.v tokoe:valid" result="pass"/><test-case name="38191wildG039 tokoe:valid" result="pass"/><test-case name="38192wildG039.i tokoe:invalid" result="pass"/><test-case name="38193wildG040 tokoe:valid" result="pass"/><test-case name="38194wildG040.v tokoe:valid" result="pass"/><test-case name="38195wildH001 tokoe:valid" result="pass"/><test-case name="38196wildH001.i tokoe:invalid" result="pass"/><test-case name="38197wildH002 tokoe:valid" result="pass"/><test-case name="38198wildH002.i tokoe:invalid" result="pass"/><test-case name="38199wildH003 tokoe:valid" result="pass"/><test-case name="38200wildH003.v tokoe:valid" result="pass"/><test-case name="38201wildH004 tokoe:valid" result="pass"/><test-case name="38202wildH004.v tokoe:valid" result="pass"/><test-case name="38203wildH005 tokoe:valid" result="pass"/><test-case name="38204wildH005.v tokoe:valid" result="pass"/><test-case name="38205wildH006 tokoe:valid" result="pass"/><test-case name="38206wildH006.i tokoe:invalid" result="pass"/><test-case name="38207wildH007 tokoe:valid" result="pass"/><test-case name="38208wildH007.v tokoe:valid" result="pass"/><test-case name="38209wildH008 tokoe:valid" result="pass"/><test-case name="38210wildH008.i tokoe:invalid" result="pass"/><test-case name="38211wildH009 tokoe:valid" result="pass"/><test-case name="38212wildH009.v tokoe:valid" result="pass"/><test-case name="38213wildH010 tokoe:valid" result="pass"/><test-case name="38214wildH010.v tokoe:valid" result="pass"/><test-case name="38215wildH011 tokoe:valid" result="pass"/><test-case name="38216wildH011.v tokoe:valid" result="pass"/><test-case name="38217wildH012 tokoe:valid" result="pass"/><test-case name="38218wildH012.v tokoe:valid" result="pass"/><test-case name="38219wildI001 tokoe:valid" result="pass"/><test-case name="38220wildI002 tokoe:invalid" result="pass"/><test-case name="38221wildI003 tokoe:invalid" result="pass"/><test-case name="38222wildI004 tokoe:valid" result="pass"/><test-case name="38223wildI004.v tokoe:valid" result="pass"/><test-case name="38224wildI004i tokoe:valid" result="pass"/><test-case name="38225wildI004i.i tokoe:invalid" result="pass"/><test-case name="38226wildI005 tokoe:valid" result="pass"/><test-case name="38227wildI005.v tokoe:valid" result="pass"/><test-case name="38228wildI006 tokoe:valid" result="pass"/><test-case name="38229wildI006.v tokoe:valid" result="pass"/><test-case name="38230wildI007 tokoe:valid" result="pass"/><test-case name="38231wildI007.v tokoe:valid" result="pass"/><test-case name="38232wildI008 tokoe:valid" result="pass"/><test-case name="38233wildI009 tokoe:invalid" result="pass"/><test-case name="38234wildI010 tokoe:invalid" result="pass"/><test-case name="38235wildI011 tokoe:valid" result="pass"/><test-case name="38236wildI011.v tokoe:valid" result="pass"/><test-case name="38237wildI012 tokoe:valid" result="pass"/><test-case name="38238wildI012.v tokoe:valid" result="pass"/><test-case name="38239wildI013 tokoe:invalid" result="pass"/><test-case name="38240wildI014 tokoe:invalid" result="pass"/><test-case name="38241wildJ001 tokoe:valid" result="pass"/><test-case name="38242wildJ002 tokoe:valid" result="pass"/><test-case name="38243wildJ003 tokoe:invalid" result="pass"/><test-case name="38244wildJ004 tokoe:invalid" result="pass"/><test-case name="38245wildJ005 tokoe:invalid" result="pass"/><test-case name="38246wildJ006 tokoe:invalid" result="pass"/><test-case name="38247wildJ007 tokoe:invalid" result="pass"/><test-case name="38248wildJ008 tokoe:invalid" result="pass"/><test-case name="38249wildK001 tokoe:valid" result="pass"/><test-case name="38250wildK002 tokoe:invalid" result="pass"/><test-case name="38251wildK003 tokoe:valid" result="pass"/><test-case name="38252wildK004 tokoe:valid" result="pass"/><test-case name="38253wildK005 tokoe:valid" result="pass"/><test-case name="38254wildK006 tokoe:invalid" result="pass"/><test-case name="38255wildK007 tokoe:invalid" result="pass"/><test-case name="38256wildK008 tokoe:valid" result="pass"/><test-case name="38257wildK009 tokoe:valid" result="pass"/><test-case name="38258wildK010 tokoe:valid" result="pass"/><test-case name="38259wildK011 tokoe:valid" result="pass"/><test-case name="38260wildK012 tokoe:valid" result="pass"/><test-case name="38261wildK013 tokoe:valid" result="pass"/><test-case name="38262wildK014 tokoe:valid" result="pass"/><test-case name="38263wildK015 tokoe:valid" result="pass"/><test-case name="38264wildK016 tokoe:valid" result="pass"/><test-case name="38265wildK017 tokoe:valid" result="pass"/><test-case name="38266wildK018 tokoe:valid" result="pass"/><test-case name="38267wildK019 tokoe:valid" result="pass"/><test-case name="38268wildK020 tokoe:invalid" result="pass"/><test-case name="38269wildK021 tokoe:invalid" result="pass"/><test-case name="38270wildK022 tokoe:invalid" result="pass"/><test-case name="38271wildK023 tokoe:invalid" result="pass"/><test-case name="38272wildK024 tokoe:invalid" result="pass"/><test-case name="38273wildK025 tokoe:valid" result="pass"/><test-case name="38274wildK026 tokoe:invalid" result="pass"/><test-case name="38275wildK027 tokoe:invalid" result="pass"/><test-case name="38276wildK028 tokoe:invalid" result="pass"/><test-case name="38277wildK029 tokoe:invalid" result="pass"/><test-case name="38278wildK030 tokoe:valid" result="pass"/><test-case name="38279wildK031 tokoe:valid" result="pass"/><test-case name="38280wildK032 tokoe:valid" result="pass"/><test-case name="38281wildK033 tokoe:valid" result="pass"/><test-case name="38282wildK034 tokoe:valid" result="pass"/><test-case name="38283wildK035 tokoe:valid" result="pass"/><test-case name="38284wildK036 tokoe:valid" result="pass"/><test-case name="38285wildK037 tokoe:valid" result="pass"/><test-case name="38286wildK038 tokoe:invalid" result="pass"/><test-case name="38287wildK039 tokoe:valid" result="pass"/><test-case name="38288wildK040 tokoe:valid" result="pass"/><test-case name="38289wildK041 tokoe:valid" result="pass"/><test-case name="38290wildL001 tokoe:invalid" result="pass"/><test-case name="38291wildL002 tokoe:valid" result="pass"/><test-case name="38292wildL003 tokoe:valid" result="pass"/><test-case name="38293wildL004 tokoe:valid" result="pass"/><test-case name="38294wildL005 tokoe:invalid" result="pass"/><test-case name="38295wildL006 tokoe:invalid" result="pass"/><test-case name="38296wildL007 tokoe:invalid" result="pass"/><test-case name="38297wildL008 tokoe:invalid" result="pass"/><test-case name="38298wildL009 tokoe:invalid" result="pass"/><test-case name="38299wildM001 tokoe:valid" result="pass"/><test-case name="38300wildM002 tokoe:invalid" result="pass"/><test-case name="38301wildN001 tokoe:invalid" result="pass"/><test-case name="38302wildN002 tokoe:valid" result="pass"/><test-case name="38303wildN003 tokoe:valid" result="pass"/><test-case name="38304wildN004 tokoe:valid" result="pass"/><test-case name="38305wildN005 tokoe:valid" result="pass"/><test-case name="38306wildN006 tokoe:invalid" result="pass"/><test-case name="38307wildN007 tokoe:invalid" result="pass"/><test-case name="38308wildN008 tokoe:invalid" result="pass"/><test-case name="38309wildN009 tokoe:invalid" result="pass"/><test-case name="38310wildN010 tokoe:invalid" result="pass"/><test-case name="38311wildN011 tokoe:valid" result="pass"/><test-case name="38312wildN012 tokoe:invalid" result="pass"/><test-case name="38313wildN013 tokoe:invalid" result="pass"/><test-case name="38314wildN014 tokoe:invalid" result="pass"/><test-case name="38315wildN015 tokoe:invalid" result="pass"/><test-case name="38316wildN016 tokoe:invalid" result="pass"/><test-case name="38317wildN017 tokoe:valid" result="pass"/><test-case name="38318wildN018 tokoe:invalid" result="pass"/><test-case name="38319wildN019 tokoe:valid" result="pass"/><test-case name="38320wildN020 tokoe:valid" result="pass"/><test-case name="38321wildQ001 tokoe:invalid" result="pass"/><test-case name="38322wildQ002 tokoe:invalid" result="pass"/><test-case name="38323wildQ003 tokoe:invalid" result="pass"/><test-case name="38324wildQ004 tokoe:invalid" result="pass"/><test-case name="38325wildO001 tokoe:valid" result="pass"/><test-case name="38326wildO001.v tokoe:valid" result="pass"/><test-case name="38327wildO002 tokoe:valid" result="pass"/><test-case name="38328wildO002.v tokoe:valid" result="pass"/><test-case name="38329wildO003 tokoe:valid" result="pass"/><test-case name="38330wildO003.i tokoe:invalid" result="pass"/><test-case name="38331wildO004 tokoe:valid" result="pass"/><test-case name="38332wildO004.v tokoe:valid" result="pass"/><test-case name="38333wildO005 tokoe:valid" result="pass"/><test-case name="38334wildO005.v tokoe:valid" result="pass"/><test-case name="38335wildO006 tokoe:valid" result="pass"/><test-case name="38336wildO006.i tokoe:invalid" result="pass"/><test-case name="38337wildO007 tokoe:valid" result="pass"/><test-case name="38338wildO007.v tokoe:valid" result="pass"/><test-case name="38339wildO008 tokoe:valid" result="pass"/><test-case name="38340wildO008.i tokoe:invalid" result="pass"/><test-case name="38341wildO009 tokoe:valid" result="pass"/><test-case name="38342wildO009.i tokoe:invalid" result="pass"/><test-case name="38343wildO010 tokoe:valid" result="pass"/><test-case name="38344wildO010.v tokoe:valid" result="pass"/><test-case name="38345wildO011 tokoe:valid" result="pass"/><test-case name="38346wildO011.i tokoe:invalid" result="pass"/><test-case name="38347wildO012 tokoe:valid" result="pass"/><test-case name="38348wildO012.v tokoe:valid" result="pass"/><test-case name="38349wildO013 tokoe:valid" result="pass"/><test-case name="38350wildO013.v tokoe:valid" result="pass"/><test-case name="38351wildO014 tokoe:valid" result="pass"/><test-case name="38352wildO014.i tokoe:invalid" result="pass"/><test-case name="38353wildO015 tokoe:valid" result="pass"/><test-case name="38354wildO015.v tokoe:valid" result="pass"/><test-case name="38355wildO016 tokoe:valid" result="pass"/><test-case name="38356wildO016.v tokoe:valid" result="pass"/><test-case name="38357wildO017 tokoe:valid" result="pass"/><test-case name="38358wildO017.i tokoe:invalid" result="pass"/><test-case name="38359wildO018 tokoe:valid" result="pass"/><test-case name="38360wildO018.v tokoe:valid" result="pass"/><test-case name="38361wildO019 tokoe:valid" result="pass"/><test-case name="38362wildO019.v tokoe:valid" result="pass"/><test-case name="38363wildO020 tokoe:valid" result="pass"/><test-case name="38364wildO020.i tokoe:invalid" result="pass"/><test-case name="38365wildO021 tokoe:valid" result="pass"/><test-case name="38366wildO021.v tokoe:valid" result="pass"/><test-case name="38367wildO022 tokoe:valid" result="pass"/><test-case name="38368wildO022.i tokoe:invalid" result="pass"/><test-case name="38369wildO023 tokoe:valid" result="pass"/><test-case name="38370wildO023.v tokoe:valid" result="pass"/><test-case name="38371wildO024 tokoe:valid" result="pass"/><test-case name="38372wildO024.i tokoe:invalid" result="pass"/><test-case name="38373wildO025 tokoe:valid" result="pass"/><test-case name="38374wildO025.i tokoe:invalid" result="pass"/><test-case name="38375wildO026 tokoe:valid" result="pass"/><test-case name="38376wildO026.v tokoe:valid" result="pass"/><test-case name="38377wildO027 tokoe:valid" result="pass"/><test-case name="38378wildO027.v tokoe:valid" result="pass"/><test-case name="38379wildO028 tokoe:valid" result="pass"/><test-case name="38380wildO028.i tokoe:invalid" result="pass"/><test-case name="38381wildO029 tokoe:valid" result="pass"/><test-case name="38382wildO029.v tokoe:valid" result="pass"/><test-case name="38383wildO030 tokoe:valid" result="pass"/><test-case name="38384wildO030.i tokoe:invalid" result="pass"/><test-case name="38385wildO031 tokoe:valid" result="pass"/><test-case name="38386wildO031.v tokoe:valid" result="pass"/><test-case name="38387wildO032 tokoe:valid" result="pass"/><test-case name="38388wildO032.i tokoe:invalid" result="pass"/><test-case name="38389wildO033 tokoe:valid" result="pass"/><test-case name="38390wildO033.v tokoe:valid" result="pass"/><test-case name="38391wildO034 tokoe:valid" result="pass"/><test-case name="38392wildO034.i tokoe:invalid" result="pass"/><test-case name="38393wildO035 tokoe:valid" result="pass"/><test-case name="38394wildO035.i tokoe:invalid" result="pass"/><test-case name="38395wildO037 tokoe:valid" result="pass"/><test-case name="38396wildO037.v tokoe:valid" result="pass"/><test-case name="38397wildO038 tokoe:valid" result="pass"/><test-case name="38398wildO038.v tokoe:valid" result="pass"/><test-case name="38399wildO039 tokoe:valid" result="pass"/><test-case name="38400wildO039.i tokoe:invalid" result="pass"/><test-case name="38401wildO040 tokoe:valid" result="pass"/><test-case name="38402wildO040.v tokoe:valid" result="pass"/><test-case name="38403wildP001 tokoe:valid" result="pass"/><test-case name="38404wildP001.v tokoe:valid" result="pass"/><test-case name="38405wildP002 tokoe:valid" result="pass"/><test-case name="38406wildP002.i tokoe:invalid" result="pass"/><test-case name="38407wildP003 tokoe:valid" result="pass"/><test-case name="38408wildP003.v tokoe:valid" result="pass"/><test-case name="38409wildP004 tokoe:valid" result="pass"/><test-case name="38410wildP004.v tokoe:valid" result="pass"/><test-case name="38411wildP005 tokoe:valid" result="pass"/><test-case name="38412wildP005.v tokoe:valid" result="pass"/><test-case name="38413wildP006 tokoe:valid" result="pass"/><test-case name="38414wildP006.v tokoe:valid" result="pass"/><test-case name="38415wildZ001 tokoe:valid" result="pass"/><test-case name="38416wildZ001.i tokoe:invalid" result="pass"/><test-case name="38417wildZ002 tokoe:valid" result="pass"/><test-case name="38418wildZ002.v tokoe:valid" result="pass"/><test-case name="38419wildZ003 tokoe:valid" result="pass"/><test-case name="38420wildZ003.v tokoe:valid" result="fail"/><test-case name="38421wildZ004 tokoe:valid" result="pass"/><test-case name="38422wildZ004.v tokoe:valid" result="pass"/><test-case name="38423wildZ005 tokoe:valid" result="pass"/><test-case name="38424wildZ005.i tokoe:invalid" result="pass"/><test-case name="38425wildZ006 tokoe:valid" result="pass"/><test-case name="38426wildZ006.i tokoe:invalid" result="pass"/><test-case name="38427wildZ007 tokoe:valid" result="pass"/><test-case name="38428wildZ007.v tokoe:valid" result="pass"/><test-case name="38429wildZ008 tokoe:invalid" result="pass"/><test-case name="38430wildZ009 tokoe:invalid" result="pass"/><test-case name="38431wildZ009b tokoe:valid" result="pass"/><test-case name="38432wildZ011 tokoe:valid" result="pass"/><test-case name="38433wildZ011.i tokoe:invalid" result="pass"/><test-case name="38434wildZ013 tokoe:invalid" result="pass"/><test-case name="38435wildZ013a tokoe:valid" result="pass"/><test-case name="38436wildZ013a.i tokoe:invalid" result="pass"/><test-case name="38437wildZ013b tokoe:valid" result="pass"/><test-case name="38438wildZ013b.v tokoe:valid" result="pass"/><test-case name="38439wildZ013c tokoe:valid" result="pass"/><test-case name="38440wildZ013c.v tokoe:valid" result="pass"/><test-case name="38441wildZ013d tokoe:valid" result="pass"/><test-case name="38442wildZ013d.i tokoe:invalid" result="pass"/><test-case name="38443wildZ013e tokoe:valid" result="pass"/><test-case name="38444wildZ013e.i tokoe:invalid" result="pass"/><test-case name="38445wildZ013f tokoe:valid" result="pass"/><test-case name="38446wildZ013f.i tokoe:invalid" result="pass"/><test-case name="38447ipo1 tokoe:valid" result="pass"/><test-case name="38448ipo_1 tokoe:valid" result="pass"/><test-case name="38449ipo_2 tokoe:valid" result="pass"/><test-case name="38450ipo2 tokoe:valid" result="pass"/><test-case name="38451ipo_1 tokoe:valid" result="pass"/><test-case name="38452ipo_2 tokoe:valid" result="pass"/><test-case name="38453ipo3 tokoe:valid" result="pass"/><test-case name="38454ipo_1 tokoe:valid" result="pass"/><test-case name="38455ipo_2 tokoe:valid" result="pass"/><test-case name="38456ipo4 tokoe:valid" result="pass"/><test-case name="38457ipo_1 tokoe:valid" result="pass"/><test-case name="38458ipo_2 tokoe:valid" result="pass"/><test-case name="38459ipo5 tokoe:valid" result="pass"/><test-case name="38460ipo_1 tokoe:valid" result="pass"/><test-case name="38461ipo_2 tokoe:valid" result="pass"/><test-case name="38462ipo6 tokoe:valid" result="pass"/><test-case name="38463ipo_1 tokoe:valid" result="fail"/><test-case name="38464ipo_2 tokoe:valid" result="fail"/></test-suite-result> \ No newline at end of file
diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore b/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore
new file mode 100644
index 0000000..35cb85e
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/TESTSUITE/.gitignore
@@ -0,0 +1,3 @@
+testSuites.xml
+xmlschema2006-11-06
+xmlschema2006-11-06-new
diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl b/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl
new file mode 100644
index 0000000..325f626
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/TESTSUITE/unifyCatalog.xsl
@@ -0,0 +1,21 @@
+<xsl:stylesheet version="2.0"
+ xmlns:ts="http://www.w3.org/XML/2004/xml-schema-test-suite/"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+ <xsl:template match="ts:testSetRef">
+ <xsl:apply-templates select="document(@xlink:href)"/>
+ </xsl:template>
+
+ <!-- We make all URI references absolute. -->
+ <xsl:template match="@xlink:href">
+ <xsl:attribute name="xlink:href" select="resolve-uri(., base-uri())"/>
+ </xsl:template>
+
+ <xsl:template match="@*|node()">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()"/>
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh b/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh
new file mode 100755
index 0000000..1770f1e
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# This script updates the suite from W3C's server.
+#
+# NOTE: the files checked out CANNOT be added to Trolltech's
+# repository at the moment, due to legal complications.
+
+DIRECTORY_NAME="xmlschema2006-11-06"
+ARCHIVE_NAME="xsts-2007-06-20.tar.gz"
+
+rm -Rf $DIRECTORY_NAME
+
+wget http://www.w3.org/XML/2004/xml-schema-test-suite/xmlschema2006-11-06/$ARCHIVE_NAME
+tar -xzf $ARCHIVE_NAME
+rm $ARCHIVE_NAME
+
+CVSROOT=:pserver:anonymous@dev.w3.org:/sources/public cvs login
+CVSROOT=:pserver:anonymous@dev.w3.org:/sources/public cvs checkout -d xmlschema2006-11-06-new XML/xml-schema-test-suite/2004-01-14/xmlschema2006-11-06
+
+java net.sf.saxon.Transform -xsl:unifyCatalog.xsl $DIRECTORY_NAME/suite.xml > testSuites.xml
diff --git a/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp b/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp
new file mode 100644
index 0000000..7a6f4c8
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/tst_xmlpatternsschemats.cpp
@@ -0,0 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+
+#ifdef QTEST_XMLPATTERNS
+
+#include "tst_suitetest.h"
+
+/*!
+ \internal
+ \brief Test QXsdSchemaParser against W3C's XSD test suite.
+ */
+class tst_XmlPatternsSchemaTS : public tst_SuiteTest
+{
+ Q_OBJECT
+public:
+ tst_XmlPatternsSchemaTS();
+protected:
+ virtual void catalogPath(QString &write) const;
+};
+
+tst_XmlPatternsSchemaTS::tst_XmlPatternsSchemaTS()
+ : tst_SuiteTest(tst_SuiteTest::XsdSuite)
+{
+}
+
+void tst_XmlPatternsSchemaTS::catalogPath(QString &write) const
+{
+ write = QLatin1String("TESTSUITE/testSuites.xml");
+}
+
+QTEST_MAIN(tst_XmlPatternsSchemaTS)
+
+#include "tst_xmlpatternsschemats.moc"
+#else
+QTEST_NOOP_MAIN
+#endif
+
+// vim: et:ts=4:sw=4:sts=4
diff --git a/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro
new file mode 100644
index 0000000..4978c35
--- /dev/null
+++ b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro
@@ -0,0 +1,23 @@
+load(qttest_p4)
+SOURCES += tst_xmlpatternsschemats.cpp \
+ ../qxmlquery/TestFundament.cpp
+
+include (../xmlpatterns.pri)
+
+contains(QT_CONFIG,xmlpatterns) {
+HEADERS += ../xmlpatternsxqts/test/tst_suitetest.h
+SOURCES += ../xmlpatternsxqts/test/tst_suitetest.cpp
+}
+
+PATTERNIST_SDK = QtXmlPatternsSDK
+if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
+ win32:PATTERNIST_SDK = $${PATTERNIST_SDK}d
+ else: PATTERNIST_SDK = $${PATTERNIST_SDK}_debug
+}
+LIBS += -l$$PATTERNIST_SDK
+
+INCLUDEPATH += $$QT_SOURCE_TREE/tests/auto/xmlpatternsxqts/lib/ \
+ $$QT_BUILD_TREE/include/QtXmlPatterns/private \
+ $$QT_SOURCE_TREE/tests/auto/xmlpatternsxqts/test \
+ ../xmlpatternsxqts/test \
+ ../xmlpatternsxqts/lib
diff --git a/tests/auto/xmlpatternsvalidator/files/instance.xml b/tests/auto/xmlpatternsvalidator/files/instance.xml
new file mode 100644
index 0000000..544ff8c
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/instance.xml
@@ -0,0 +1,3 @@
+<hello>
+ <world/>
+</hello> \ No newline at end of file
diff --git a/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd
new file mode 100644
index 0000000..99e3525
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/invalid_schema.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="hello">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="world" type="xsd:string" maxOccurs="-2345"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd
new file mode 100644
index 0000000..850ed92
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/other_valid_schema.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="olleh">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="dlrow" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml b/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml
new file mode 100644
index 0000000..1804e88
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/sa_invalid_instance.xml
@@ -0,0 +1,3 @@
+<hello xsi:noNamespaceSchemaLocation="valid_schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <dlrow/>
+</hello>
diff --git a/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml b/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml
new file mode 100644
index 0000000..47c980e
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/sa_valid_instance.xml
@@ -0,0 +1,3 @@
+<hello xsi:noNamespaceSchemaLocation="valid_schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <world/>
+</hello>
diff --git a/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd b/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd
new file mode 100644
index 0000000..a1b765a
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/files/valid_schema.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:element name="hello">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="world" type="xsd:string" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+</xsd:schema>
diff --git a/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
new file mode 100644
index 0000000..9643e56
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/tst_xmlpatternsvalidator.cpp
@@ -0,0 +1,174 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+****************************************************************************/
+
+#include <QFile>
+#include <QtTest/QtTest>
+
+#ifdef QTEST_XMLPATTERNS
+
+#include "../qxmlquery/TestFundament.h"
+#include "../network-settings.h"
+
+/*!
+ \class tst_XmlPatterns
+ \internal
+ \since 4.6
+ \brief Tests the command line interface, \c xmlpatternsvalidator, for the XML validation code.
+ */
+class tst_XmlPatternsValidator : public QObject
+ , private TestFundament
+{
+ Q_OBJECT
+
+public:
+ tst_XmlPatternsValidator();
+
+private Q_SLOTS:
+ void initTestCase();
+ void xsdSupport();
+ void xsdSupport_data() const;
+
+private:
+ const QString m_command;
+ bool m_dontRun;
+};
+
+tst_XmlPatternsValidator::tst_XmlPatternsValidator()
+ : m_command(QLatin1String("xmlpatternsvalidator"))
+ , m_dontRun(false)
+{
+}
+
+void tst_XmlPatternsValidator::initTestCase()
+{
+ QProcess process;
+ process.start(m_command);
+
+ if(!process.waitForFinished())
+ {
+ m_dontRun = true;
+ QEXPECT_FAIL("", "The command line tool is not in the path, most likely because Qt "
+ "has been partically built, such as only the sub-src rule. No tests will be run.", Abort);
+ QVERIFY(false);
+ }
+}
+
+void tst_XmlPatternsValidator::xsdSupport()
+{
+ if(m_dontRun)
+ QSKIP("The command line utility is not in the path.", SkipAll);
+
+#ifdef Q_OS_WINCE
+ QSKIP("WinCE: This test uses unsupported WinCE functionality", SkipAll);
+#endif
+
+ QFETCH(int, expectedExitCode);
+ QFETCH(QStringList, arguments);
+ QFETCH(QString, cwd);
+
+ QProcess process;
+
+ if(!cwd.isEmpty())
+ process.setWorkingDirectory(inputFile(cwd));
+
+ process.start(m_command, arguments);
+
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QVERIFY(process.waitForFinished());
+
+ if(process.exitCode() != expectedExitCode)
+ QTextStream(stderr) << "foo:" << process.readAllStandardError();
+
+ QCOMPARE(process.exitCode(), expectedExitCode);
+}
+
+void tst_XmlPatternsValidator::xsdSupport_data() const
+{
+#ifdef Q_OS_WINCE
+ return;
+#endif
+
+ QTest::addColumn<int>("expectedExitCode");
+ QTest::addColumn<QStringList>("arguments");
+ QTest::addColumn<QString>("cwd");
+
+ QTest::newRow("No arguments")
+ << 2
+ << QStringList()
+ << QString();
+
+ QTest::newRow("A valid schema")
+ << 0
+ << QStringList(QLatin1String("files/valid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("An invalid schema")
+ << 1
+ << QStringList(QLatin1String("files/invalid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("An instance and valid schema")
+ << 0
+ << (QStringList() << QLatin1String("files/instance.xml")
+ << QLatin1String("files/valid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("An instance and invalid schema")
+ << 1
+ << (QStringList() << QLatin1String("files/instance.xml")
+ << QLatin1String("files/invalid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("An instance and not matching schema")
+ << 1
+ << (QStringList() << QLatin1String("files/instance.xml")
+ << QLatin1String("files/other_valid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("Two instance documents")
+ << 1
+ << (QStringList() << QLatin1String("files/instance.xml")
+ << QLatin1String("files/instance.xml"))
+ << QString();
+
+ QTest::newRow("Three instance documents")
+ << 2
+ << (QStringList() << QLatin1String("files/instance.xml")
+ << QLatin1String("files/instance.xml")
+ << QLatin1String("files/instance.xml"))
+ << QString();
+
+ QTest::newRow("Two schema documents")
+ << 1
+ << (QStringList() << QLatin1String("files/valid_schema.xsd")
+ << QLatin1String("files/valid_schema.xsd"))
+ << QString();
+
+ QTest::newRow("A schema aware valid instance document")
+ << 0
+ << (QStringList() << QLatin1String("files/sa_valid_instance.xml"))
+ << QString();
+
+ QTest::newRow("A schema aware invalid instance document")
+ << 1
+ << (QStringList() << QLatin1String("files/sa_invalid_instance.xml"))
+ << QString();
+
+ QTest::newRow("A non-schema aware instance document")
+ << 1
+ << (QStringList() << QLatin1String("files/instance.xml"))
+ << QString();
+}
+
+QTEST_MAIN(tst_XmlPatternsValidator)
+
+#include "tst_xmlpatternsvalidator.moc"
+#else
+QTEST_NOOP_MAIN
+#endif
+
+// vim: et:ts=4:sw=4:sts=4
diff --git a/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro b/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro
new file mode 100644
index 0000000..7091840
--- /dev/null
+++ b/tests/auto/xmlpatternsvalidator/xmlpatternsvalidator.pro
@@ -0,0 +1,5 @@
+load(qttest_p4)
+SOURCES += tst_xmlpatternsvalidator.cpp \
+ ../qxmlquery/TestFundament.cpp
+
+include (../xmlpatterns.pri)
diff --git a/tests/auto/xmlpatternsview/view/MainWindow.cpp b/tests/auto/xmlpatternsview/view/MainWindow.cpp
index 734c1be..2723b1d 100644
--- a/tests/auto/xmlpatternsview/view/MainWindow.cpp
+++ b/tests/auto/xmlpatternsview/view/MainWindow.cpp
@@ -220,7 +220,8 @@ void MainWindow::on_actionOpen_triggered()
if(fileName.isNull())
return;
- openCatalog(QUrl::fromLocalFile(fileName), true, false);
+ m_currentSuiteType = TestSuite::XQuerySuite;
+ openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XQuerySuite);
}
void MainWindow::on_actionOpenXSLTSCatalog_triggered()
@@ -234,18 +235,34 @@ void MainWindow::on_actionOpenXSLTSCatalog_triggered()
if(fileName.isNull())
return;
- openCatalog(QUrl::fromLocalFile(fileName), true, true);
+ m_currentSuiteType = TestSuite::XsltSuite;
+ openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XsltSuite);
+}
+
+void MainWindow::on_actionOpenXSDTSCatalog_triggered()
+{
+ const QString fileName(QFileDialog::getOpenFileName(this,
+ QLatin1String("Open Test Suite Catalog"),
+ m_previousOpenedCatalog.toLocalFile(),
+ QLatin1String("Test Suite Catalog file (*.xml)")));
+
+ /* "If the user presses Cancel, it returns a null string." */
+ if(fileName.isNull())
+ return;
+
+ m_currentSuiteType = TestSuite::XsdSuite;
+ openCatalog(QUrl::fromLocalFile(fileName), true, TestSuite::XsdSuite);
}
void MainWindow::openCatalog(const QUrl &fileName,
const bool reportError,
- const bool isXSLT)
+ const TestSuite::SuiteType suiteType)
{
setCurrentFile(fileName);
m_previousOpenedCatalog = fileName;
QString errorMsg;
- TestSuite *const loadedSuite = TestSuite::openCatalog(fileName, errorMsg, false, isXSLT);
+ TestSuite *const loadedSuite = TestSuite::openCatalog(fileName, errorMsg, false, suiteType);
if(!loadedSuite)
{
@@ -334,12 +351,12 @@ void MainWindow::readSettings()
focusURI->setText(settings.value(QLatin1String("focusURI")).toString());
isXSLT20->setChecked(settings.value(QLatin1String("isXSLT20")).toBool());
compileOnly->setChecked(settings.value(QLatin1String("compileOnly")).toBool());
+ m_currentSuiteType = (TestSuite::SuiteType)settings.value(QLatin1String("PreviousSuiteType"), isXSLT20->isChecked() ? TestSuite::XsltSuite : TestSuite::XQuerySuite).toInt();
/* Open the previously opened catalog. */
if(!m_previousOpenedCatalog.isEmpty())
{
- /* We don't know what kind of catalog it is, so we just take a chance. */
- openCatalog(m_previousOpenedCatalog, false, isXSLT20->isChecked());
+ openCatalog(m_previousOpenedCatalog, false, m_currentSuiteType);
}
sourceInput->setPlainText(settings.value(QLatin1String("sourceInput")).toString());
@@ -393,6 +410,7 @@ void MainWindow::writeSettings()
settings.setValue(QLatin1String("size"), size());
settings.setValue(QLatin1String("sourceInput"), sourceInput->toPlainText());
settings.setValue(QLatin1String("PreviousOpenedCatalogFile"), m_previousOpenedCatalog);
+ settings.setValue(QLatin1String("PreviousSuiteType"), m_currentSuiteType);
settings.setValue(QLatin1String("SelectedTab"), sourceTab->currentIndex());
settings.setValue(QLatin1String("ResultViewMethod"),
testResultView->resultViewSelection->currentIndex());
@@ -470,7 +488,7 @@ void MainWindow::openRecentFile()
{
const QAction *const action = qobject_cast<QAction *>(sender());
if(action)
- openCatalog(action->data().toUrl(), true, false);
+ openCatalog(action->data().toUrl(), true, TestSuite::XQuerySuite);
}
void MainWindow::closeEvent(QCloseEvent *ev)
diff --git a/tests/auto/xmlpatternsview/view/MainWindow.h b/tests/auto/xmlpatternsview/view/MainWindow.h
index a41ad77..21e1ecf 100644
--- a/tests/auto/xmlpatternsview/view/MainWindow.h
+++ b/tests/auto/xmlpatternsview/view/MainWindow.h
@@ -88,6 +88,7 @@
#include "ui_ui_MainWindow.h"
#include "DebugExpressionFactory.h"
+#include "TestSuite.h"
QT_BEGIN_HEADER
@@ -142,6 +143,8 @@ namespace QPatternistSDK
void on_actionOpenXSLTSCatalog_triggered();
+ void on_actionOpenXSDTSCatalog_triggered();
+
/**
* Executes the selected test case or test group.
*/
@@ -153,7 +156,7 @@ namespace QPatternistSDK
* an informative message box will be displayed, if any errors occurred.
*/
void openCatalog(const QUrl &file, const bool reportError,
- const bool isXSLT);
+ const TestSuite::SuiteType suitType);
void openRecentFile();
@@ -205,6 +208,7 @@ namespace QPatternistSDK
TestCaseView * testCaseView;
TestResultView * testResultView;
FunctionSignaturesView * functionView;
+ TestSuite::SuiteType m_currentSuiteType;
};
}
QT_END_NAMESPACE
diff --git a/tests/auto/xmlpatternsview/view/ui_MainWindow.ui b/tests/auto/xmlpatternsview/view/ui_MainWindow.ui
index 5d74331..0240350 100644
--- a/tests/auto/xmlpatternsview/view/ui_MainWindow.ui
+++ b/tests/auto/xmlpatternsview/view/ui_MainWindow.ui
@@ -234,6 +234,7 @@
</property>
<addaction name="actionOpen"/>
<addaction name="actionOpenXSLTSCatalog"/>
+ <addaction name="actionOpenXSDTSCatalog"/>
<addaction name="actionExecute"/>
<addaction name="separator"/>
<addaction name="actionRestart"/>
@@ -304,6 +305,14 @@
<string>Ctrl+L</string>
</property>
</action>
+ <action name="actionOpenXSDTSCatalog">
+ <property name="text">
+ <string>O&amp;pen XSDTS Catalog...</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+S</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections/>
diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp
index 78b58c6..dd10b51 100644
--- a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp
+++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.cpp
@@ -178,6 +178,7 @@ void TestBaseLine::toXML(XMLWriter &receiver) const
{
case XML: /* Fallthrough. */
case Fragment: /* Fallthrough. */
+ case SchemaIsValid: /* Fallthrough. */
case Text:
{
QXmlAttributes inspectAtts;
@@ -343,6 +344,8 @@ TestResult::Status TestBaseLine::verify(const QString &serializedInput) const
{
switch(m_type)
{
+ case SchemaIsValid:
+ /* Fall through. */
case Text:
{
if(serializedInput == details())
@@ -491,6 +494,8 @@ QString TestBaseLine::displayName(const Type id)
return QLatin1String("Inspect");
case ExpectedError:
return QLatin1String("ExpectedError");
+ case SchemaIsValid:
+ return QLatin1String("SchemaIsValid");
}
Q_ASSERT(false);
@@ -503,6 +508,8 @@ QString TestBaseLine::details() const
return QString();
if(m_type == ExpectedError) /* We're an error code. */
return m_details;
+ if(m_type == SchemaIsValid) /* We're a schema validation information . */
+ return m_details;
if(m_details.isEmpty())
return m_details;
diff --git a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h
index 4e1df67..07d14de 100644
--- a/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h
+++ b/tests/auto/xmlpatternsxqts/lib/TestBaseLine.h
@@ -168,7 +168,14 @@ namespace QPatternistSDK
* because an implementation does not support the feature is not
* considered a correct result.
*/
- ExpectedError
+ ExpectedError,
+
+ /**
+ * A special comparison for the schema validation tests. The details
+ * can only be 'true' or 'false' depending on whether it is a valid
+ * schema or not.
+ */
+ SchemaIsValid
};
/**
diff --git a/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp
index 40a3a9d..458a553 100644
--- a/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp
+++ b/tests/auto/xmlpatternsxqts/lib/TestGroup.cpp
@@ -94,7 +94,7 @@ TestGroup::TestGroup(TreeItem *p) : m_parent(p)
QVariant TestGroup::data(const Qt::ItemDataRole role, int column) const
{
- if(role != Qt::DisplayRole && role != Qt::BackgroundRole)
+ if(role != Qt::DisplayRole && role != Qt::BackgroundRole && role != Qt::ToolTipRole)
return QVariant();
/* In ResultSummary, the first is the amount of passes and the second is the total. */
@@ -154,6 +154,10 @@ QVariant TestGroup::data(const Qt::ItemDataRole role, int column) const
return QVariant();
}
}
+ case Qt::ToolTipRole:
+ {
+ return description();
+ }
default:
{
Q_ASSERT_X(false, Q_FUNC_INFO, "This shouldn't be reached");
diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp
index 34334ec..9122860 100644
--- a/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp
+++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.cpp
@@ -91,6 +91,7 @@
#include "TestSuiteResult.h"
#include "XMLWriter.h"
#include "XSLTTestSuiteHandler.h"
+#include "XSDTestSuiteHandler.h"
#include "qdebug_p.h"
#include "TestSuite.h"
@@ -132,7 +133,7 @@ TestSuiteResult *TestSuite::runSuite()
TestSuite *TestSuite::openCatalog(const QUrl &catalogURI,
QString &errorMsg,
const bool useExclusionList,
- const bool isXSLTCatalog)
+ SuiteType suiteType)
{
pDebug() << "Opening catalog:" << catalogURI.toString();
QFile ts(catalogURI.toLocalFile());
@@ -167,14 +168,14 @@ TestSuite *TestSuite::openCatalog(const QUrl &catalogURI,
return 0;
}
- return openCatalog(&ts, errorMsg, catalogURI, useExclusionList, isXSLTCatalog);
+ return openCatalog(&ts, errorMsg, catalogURI, useExclusionList, suiteType);
}
TestSuite *TestSuite::openCatalog(QIODevice *input,
QString &errorMsg,
const QUrl &fileName,
const bool useExclusionList,
- const bool isXSLTCatalog)
+ SuiteType suiteType)
{
Q_ASSERT(input);
@@ -183,10 +184,12 @@ TestSuite *TestSuite::openCatalog(QIODevice *input,
HandlerPtr loader;
- if(isXSLTCatalog)
- loader = HandlerPtr(new XSLTTestSuiteHandler(fileName));
- else
- loader = HandlerPtr(new TestSuiteHandler(fileName, useExclusionList));
+ switch (suiteType) {
+ case XQuerySuite: loader = HandlerPtr(new TestSuiteHandler(fileName, useExclusionList)); break;
+ case XsltSuite: loader = HandlerPtr(new XSLTTestSuiteHandler(fileName)); break;
+ case XsdSuite: loader = HandlerPtr(new XSDTestSuiteHandler(fileName)); break;
+ default: Q_ASSERT(false); break;
+ }
reader.setContentHandler(loader.data());
@@ -198,8 +201,13 @@ TestSuite *TestSuite::openCatalog(QIODevice *input,
return 0;
}
- TestSuite *const suite = isXSLTCatalog ? static_cast<XSLTTestSuiteHandler *>(loader.data())->testSuite()
- : static_cast<TestSuiteHandler *>(loader.data())->testSuite();
+ TestSuite *suite = 0;
+ switch (suiteType) {
+ case XQuerySuite: suite = static_cast<TestSuiteHandler *>(loader.data())->testSuite(); break;
+ case XsltSuite: suite = static_cast<XSLTTestSuiteHandler *>(loader.data())->testSuite(); break;
+ case XsdSuite: suite = static_cast<XSDTestSuiteHandler *>(loader.data())->testSuite(); break;
+ default: Q_ASSERT(false); break;
+ }
if(suite)
return suite;
diff --git a/tests/auto/xmlpatternsxqts/lib/TestSuite.h b/tests/auto/xmlpatternsxqts/lib/TestSuite.h
index 4fc489b..7b057b8 100644
--- a/tests/auto/xmlpatternsxqts/lib/TestSuite.h
+++ b/tests/auto/xmlpatternsxqts/lib/TestSuite.h
@@ -112,6 +112,16 @@ namespace QPatternistSDK
class Q_PATTERNISTSDK_EXPORT TestSuite : public TestContainer
{
public:
+ /**
+ * Describes the type of test suite.
+ */
+ enum SuiteType
+ {
+ XQuerySuite, ///< The test suite for XQuery
+ XsltSuite, ///< The test suite for XSLT
+ XsdSuite ///< The test suite for XML Schema
+ };
+
TestSuite();
virtual QVariant data(const Qt::ItemDataRole role, int column) const;
@@ -148,7 +158,7 @@ namespace QPatternistSDK
static TestSuite *openCatalog(const QUrl &catalogFile,
QString &errorMsg,
const bool useExclusionList,
- const bool isXSLTCatalog = false);
+ SuiteType type);
void toXML(XMLWriter &receiver, TestCase *const tc) const;
@@ -177,7 +187,7 @@ namespace QPatternistSDK
QString &errorMsg,
const QUrl &fileName,
const bool useExclusionList,
- const bool isXSLTCatalog);
+ SuiteType type);
QString m_version;
QDate m_designDate;
};
diff --git a/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp
index 172e68c..ff98b3e 100644
--- a/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp
+++ b/tests/auto/xmlpatternsxqts/lib/TreeModel.cpp
@@ -118,9 +118,14 @@ QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int rol
return QVariant();
}
-void TreeModel::childChanged(TreeItem *)
+void TreeModel::childChanged(TreeItem *item)
{
- layoutChanged();
+ if (item) {
+ const QModelIndex index = createIndex(item->row(), 0, item);
+ dataChanged(index, index);
+ } else {
+ layoutChanged();
+ }
}
QModelIndex TreeModel::index(int row, int column, const QModelIndex &p) const
diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp
new file mode 100644
index 0000000..b19eb91
--- /dev/null
+++ b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.cpp
@@ -0,0 +1,346 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Patternist project on Trolltech Labs.
+**
+** $TROLLTECH_GPL_LICENSE$
+**
+***************************************************************************
+*/
+
+#include <QColor>
+#include <QFile>
+#include <QFileInfo>
+#include <QVariant>
+#include <QtDebug>
+
+#include "XSDTSTestCase.h"
+
+#include "qxmlschema.h"
+#include "qxmlschemavalidator.h"
+
+using namespace QPatternistSDK;
+using namespace QPatternist;
+
+XSDTSTestCase::XSDTSTestCase(const Scenario scen, TreeItem *p, TestType testType)
+ : m_scenario(scen)
+ , m_parent(p)
+ , m_testType(testType)
+{
+}
+
+XSDTSTestCase::~XSDTSTestCase()
+{
+ qDeleteAll(m_baseLines);
+}
+
+TestResult::List XSDTSTestCase::execute(const ExecutionStage, TestSuite*)
+{
+ ErrorHandler errHandler;
+ ErrorHandler::installQtMessageHandler(&errHandler);
+
+ TestResult::List retval;
+ TestResult::Status resultStatus = TestResult::Unknown;
+ QString serialized;
+
+ if (m_testType == SchemaTest) {
+ executeSchemaTest(resultStatus, serialized, &errHandler);
+ } else {
+ executeInstanceTest(resultStatus, serialized, &errHandler);
+ }
+
+ resultStatus = TestBaseLine::scan(serialized, baseLines());
+ Q_ASSERT(resultStatus != TestResult::Unknown);
+
+ m_result = new TestResult(name(), resultStatus, 0, errHandler.messages(),
+ QPatternist::Item::List(), serialized);
+ retval.append(m_result);
+ ErrorHandler::installQtMessageHandler(0);
+ changed(this);
+ return retval;
+}
+
+void XSDTSTestCase::executeSchemaTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler)
+{
+ QFile file(m_schemaUri.path());
+ if (!file.open(QIODevice::ReadOnly)) {
+ resultStatus = TestResult::Fail;
+ serialized = QString();
+ return;
+ }
+
+ QXmlSchema schema;
+ schema.setMessageHandler(handler);
+ schema.load(&file, m_schemaUri);
+
+ if (schema.isValid()) {
+ resultStatus = TestResult::Pass;
+ serialized = QString::fromLatin1("true");
+ } else {
+ resultStatus = TestResult::Pass;
+ serialized = QString::fromLatin1("false");
+ }
+}
+
+void XSDTSTestCase::executeInstanceTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler)
+{
+ QFile instanceFile(m_instanceUri.path());
+ if (!instanceFile.open(QIODevice::ReadOnly)) {
+ resultStatus = TestResult::Fail;
+ serialized = QString();
+ return;
+ }
+
+ QXmlSchema schema;
+ if (m_schemaUri.isValid()) {
+ QFile file(m_schemaUri.path());
+ if (!file.open(QIODevice::ReadOnly)) {
+ resultStatus = TestResult::Fail;
+ serialized = QString();
+ return;
+ }
+
+ schema.setMessageHandler(handler);
+ schema.load(&file, m_schemaUri);
+
+ if (!schema.isValid()) {
+ resultStatus = TestResult::Pass;
+ serialized = QString::fromLatin1("false");
+ return;
+ }
+ }
+
+ QXmlSchemaValidator validator(schema);
+ validator.setMessageHandler(handler);
+
+ qDebug("check %s", qPrintable(m_instanceUri.path()));
+ if (validator.validate(&instanceFile, m_instanceUri)) {
+ resultStatus = TestResult::Pass;
+ serialized = QString::fromLatin1("true");
+ } else {
+ resultStatus = TestResult::Pass;
+ serialized = QString::fromLatin1("false");
+ }
+}
+
+QVariant XSDTSTestCase::data(const Qt::ItemDataRole role, int column) const
+{
+ if(role == Qt::DisplayRole)
+ {
+ if(column == 0)
+ return title();
+
+ const TestResult *const tr = testResult();
+ if(!tr)
+ {
+ if(column == 1)
+ return TestResult::displayName(TestResult::NotTested);
+ else
+ return QString();
+ }
+ const TestResult::Status status = tr->status();
+
+ switch(column)
+ {
+ case 1:
+ return status == TestResult::Pass ? QString(QChar::fromLatin1('1'))
+ : QString(QChar::fromLatin1('0'));
+ case 2:
+ return status == TestResult::Fail ? QString(QChar::fromLatin1('1'))
+ : QString(QChar::fromLatin1('0'));
+ default:
+ return QString();
+ }
+ }
+
+ if(role != Qt::BackgroundRole)
+ return QVariant();
+
+ const TestResult *const tr = testResult();
+
+ if(!tr)
+ {
+ if(column == 0)
+ return Qt::yellow;
+ else
+ return QVariant();
+ }
+
+ const TestResult::Status status = tr->status();
+
+ if(status == TestResult::NotTested || status == TestResult::Unknown)
+ return Qt::yellow;
+
+ switch(column)
+ {
+ case 1:
+ return status == TestResult::Pass ? Qt::green : QVariant();
+ case 2:
+ return status == TestResult::Fail ? Qt::red : QVariant();
+ default:
+ return QVariant();
+ }
+}
+
+QString XSDTSTestCase::sourceCode(bool &ok) const
+{
+ QFile file((m_testType == SchemaTest ? m_schemaUri : m_instanceUri).toLocalFile());
+
+ QString err;
+
+ if(!file.exists())
+ err = QString::fromLatin1("Error: %1 does not exist.").arg(file.fileName());
+ else if(!QFileInfo(file.fileName()).isFile())
+ err = QString::fromLatin1("Error: %1 is not a file, cannot display it.").arg(file.fileName());
+ else if(!file.open(QIODevice::ReadOnly))
+ err = QString::fromLatin1("Error: Could not open %1. Likely a permission error.")
+ .arg(file.fileName());
+
+ if(err.isNull()) /* No errors. */
+ {
+ ok = true;
+ /* Scary, we assume the query is stored in UTF-8. */
+ return QString::fromUtf8(file.readAll());
+ }
+ else
+ {
+ ok = false;
+ return err;
+ }
+}
+
+int XSDTSTestCase::columnCount() const
+{
+ return 2;
+}
+
+void XSDTSTestCase::addBaseLine(TestBaseLine *line)
+{
+ m_baseLines.append(line);
+}
+
+QString XSDTSTestCase::name() const
+{
+ return m_name;
+}
+
+QString XSDTSTestCase::creator() const
+{
+ return m_creator;
+}
+
+QString XSDTSTestCase::description() const
+{
+ return m_description;
+}
+
+QDate XSDTSTestCase::lastModified() const
+{
+ return m_lastModified;
+}
+
+bool XSDTSTestCase::isXPath() const
+{
+ return false;
+}
+
+TestCase::Scenario XSDTSTestCase::scenario() const
+{
+ return m_scenario;
+}
+
+void XSDTSTestCase::setName(const QString &n)
+{
+ m_name = n;
+}
+
+void XSDTSTestCase::setCreator(const QString &ctor)
+{
+ m_creator = ctor;
+}
+
+void XSDTSTestCase::setDescription(const QString &descriptionP)
+{
+ m_description = descriptionP;
+}
+
+void XSDTSTestCase::setLastModified(const QDate &date)
+{
+ m_lastModified = date;
+}
+
+void XSDTSTestCase::setSchemaUri(const QUrl &uri)
+{
+ m_schemaUri = uri;
+}
+
+void XSDTSTestCase::setInstanceUri(const QUrl &uri)
+{
+ m_instanceUri = uri;
+}
+
+TreeItem *XSDTSTestCase::parent() const
+{
+ return m_parent;
+}
+
+QString XSDTSTestCase::title() const
+{
+ return m_name;
+}
+
+TestBaseLine::List XSDTSTestCase::baseLines() const
+{
+ Q_ASSERT_X(!m_baseLines.isEmpty(), Q_FUNC_INFO,
+ qPrintable(QString::fromLatin1("The test %1 has no base lines, it should have at least one.").arg(name())));
+ return m_baseLines;
+}
+
+QUrl XSDTSTestCase::schemaUri() const
+{
+ return m_schemaUri;
+}
+
+QUrl XSDTSTestCase::instanceUri() const
+{
+ return m_instanceUri;
+}
+
+void XSDTSTestCase::setContextItemSource(const QUrl &uri)
+{
+ m_contextItemSource = uri;
+}
+
+QUrl XSDTSTestCase::contextItemSource() const
+{
+ return m_contextItemSource;
+}
+
+void XSDTSTestCase::setParent(TreeItem *const p)
+{
+ m_parent = p;
+}
+
+QPatternist::ExternalVariableLoader::Ptr XSDTSTestCase::externalVariableLoader() const
+{
+ return QPatternist::ExternalVariableLoader::Ptr();
+}
+
+TestResult *XSDTSTestCase::testResult() const
+{
+ return m_result;
+}
+
+TestItem::ResultSummary XSDTSTestCase::resultSummary() const
+{
+ if(m_result)
+ return ResultSummary(m_result->status() == TestResult::Pass ? 1 : 0,
+ 1);
+
+ return ResultSummary(0, 1);
+}
+
+// vim: et:ts=4:sw=4:sts=4
+
diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h
new file mode 100644
index 0000000..ce84988
--- /dev/null
+++ b/tests/auto/xmlpatternsxqts/lib/XSDTSTestCase.h
@@ -0,0 +1,130 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Patternist project on Trolltech Labs.
+**
+** $TROLLTECH_GPL_LICENSE$
+**
+***************************************************************************
+*/
+
+#ifndef PatternistSDK_XSDTSTestCase_H
+#define PatternistSDK_XSDTSTestCase_H
+
+#include <QDate>
+#include <QString>
+#include <QUrl>
+
+#include "TestBaseLine.h"
+#include "TestCase.h"
+
+QT_BEGIN_HEADER
+
+namespace QPatternistSDK
+{
+ /**
+ * @short Represents a test case in a test suite in the XML Query Test Suite.
+ *
+ * TestCase is a memory representation of a test case, and maps
+ * to the @c test-case element in the XQuery Test Suite test
+ * case catalog.
+ *
+ * @ingroup PatternistSDK
+ * @author Frans Englich <fenglich@trolltech.com>
+ */
+ class Q_PATTERNISTSDK_EXPORT XSDTSTestCase : public TestCase
+ {
+ public:
+ enum TestType
+ {
+ SchemaTest,
+ InstanceTest
+ };
+
+ XSDTSTestCase(const Scenario scen, TreeItem *parent, TestType testType);
+ virtual ~XSDTSTestCase();
+
+ /**
+ * Executes the test, and returns the result. The returned list
+ * will always contain exactly one TestResult.
+ *
+ * @p stage is ignored when running out-of-process.
+ */
+ virtual TestResult::List execute(const ExecutionStage stage,
+ TestSuite *ts);
+ /**
+ * The identifier, the name of the test. For example, "Literals034".
+ * The name of a test case must be unique.
+ */
+ virtual QString name() const;
+ virtual QString creator() const;
+ virtual QString description() const;
+ /**
+ * @returns the query inside the file, specified by testCasePath(). Loading
+ * of the file is not cached in order to avoid complications.
+ * @param ok is set to @c false if loading the query file fails
+ */
+ virtual QString sourceCode(bool &ok) const;
+ virtual QUrl schemaUri() const;
+ virtual QUrl instanceUri() const;
+ virtual QUrl testCasePath() const {return QUrl();}
+ virtual QDate lastModified() const;
+
+ bool isXPath() const;
+
+ /**
+ * What kind of test case this is, what kind of scenario it takes part
+ * of. For example, whether the test case should evaluate normally or fail.
+ */
+ Scenario scenario() const;
+
+ void setCreator(const QString &creator);
+ void setLastModified(const QDate &date);
+ void setDescription(const QString &description);
+ void setName(const QString &name);
+ void setSchemaUri(const QUrl &uri);
+ void setInstanceUri(const QUrl &uri);
+ void setTestCasePath(const QUrl &uri) {}
+ void setContextItemSource(const QUrl &uri);
+ void addBaseLine(TestBaseLine *lines);
+
+ virtual TreeItem *parent() const;
+
+ virtual QVariant data(const Qt::ItemDataRole role, int column) const;
+
+ virtual QString title() const;
+ virtual TestBaseLine::List baseLines() const;
+
+ virtual int columnCount() const;
+
+ virtual QUrl contextItemSource() const;
+ void setParent(TreeItem *const parent);
+ virtual QPatternist::ExternalVariableLoader::Ptr externalVariableLoader() const;
+ virtual TestResult *testResult() const;
+ virtual ResultSummary resultSummary() const;
+
+ private:
+ void executeSchemaTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler);
+ void executeInstanceTest(TestResult::Status &resultStatus, QString &serialized, QAbstractMessageHandler *handler);
+
+ QString m_name;
+ QString m_creator;
+ QString m_description;
+ QUrl m_schemaUri;
+ QUrl m_instanceUri;
+ QDate m_lastModified;
+ const Scenario m_scenario;
+ TreeItem * m_parent;
+ TestBaseLine::List m_baseLines;
+ QUrl m_contextItemSource;
+ TestType m_testType;
+ QPointer<TestResult> m_result;
+ };
+}
+
+QT_END_HEADER
+
+#endif
+// vim: et:ts=4:sw=4:sts=4
diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp
new file mode 100644
index 0000000..b6ee379
--- /dev/null
+++ b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.cpp
@@ -0,0 +1,881 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Patternist project on Trolltech Labs.
+**
+** $TROLLTECH_GPL_LICENSE$
+**
+***************************************************************************
+*/
+
+#include <QtDebug>
+
+#include "qacceltreeresourceloader_p.h"
+#include "qnetworkaccessdelegator_p.h"
+
+#include "Global.h"
+#include "TestBaseLine.h"
+#include "TestGroup.h"
+
+#include "XSDTestSuiteHandler.h"
+#include "XSDTSTestCase.h"
+
+using namespace QPatternistSDK;
+
+extern QNetworkAccessManager s_networkManager;
+
+XSDTestSuiteHandler::XSDTestSuiteHandler(const QUrl &catalogFile) : m_ts(0)
+ , m_catalogFile(catalogFile)
+ , m_inSchemaTest(false)
+ , m_inInstanceTest(false)
+ , m_inTestGroup(false)
+ , m_inDescription(false)
+ , m_schemaBlacklisted(false)
+ , m_counter(0)
+{
+ Q_ASSERT(!m_catalogFile.isRelative());
+ m_ts = new TestSuite();
+ m_topLevelGroup = new TestGroup(m_ts);
+ m_topLevelGroup->setTitle("XML Schema Test Suite");
+ m_ts->appendChild(m_topLevelGroup);
+
+ // exclude these test cases, as they break our current state machine
+ m_blackList << QLatin1String("addB099")
+ << QLatin1String("addB118")
+ << QLatin1String("elemJ003")
+ << QLatin1String("elemJ011")
+ << QLatin1String("elemZ004")
+ << QLatin1String("elemZ020")
+ << QLatin1String("groupH021v")
+ << QLatin1String("groupJ009v")
+ << QLatin1String("name00101m2")
+ << QLatin1String("schL5")
+ << QLatin1String("ste110")
+ << QLatin1String("stZ007")
+ << QLatin1String("stZ047")
+ << QLatin1String("stZ055")
+ << QLatin1String("addB049")
+ << QLatin1String("addB068")
+ << QLatin1String("addB078")
+ << QLatin1String("addB078A")
+ << QLatin1String("addB078B")
+ << QLatin1String("addB167")
+ << QLatin1String("addB191")
+ << QLatin1String("isDefault060_2")
+ << QLatin1String("isDefault069")
+ << QLatin1String("annotB025")
+ << QLatin1String("base64Binary_enumeration003_1321")
+ << QLatin1String("anyURI_a001_1336")
+ << QLatin1String("anyURI_a001_1336")
+ << QLatin1String("anyURI_a003_1338")
+ << QLatin1String("anyURI_a004_1339")
+ << QLatin1String("anyURI_b004_1354")
+ << QLatin1String("anyURI_b004_1354")
+ << QLatin1String("anyURI_b006_1356")
+ << QLatin1String("QName_length001_1357")
+ << QLatin1String("QName_length003_1359")
+ << QLatin1String("QName_minLength003_1362")
+ << QLatin1String("QName_maxLength001_1364")
+ << QLatin1String("NOTATION_length001_1372")
+ << QLatin1String("NOTATION_length003_1374")
+ << QLatin1String("NOTATION_minLength003_1377")
+ << QLatin1String("NOTATION_maxLength001_1379")
+ << QLatin1String("hexBinary003_2069")
+ << QLatin1String("QName009_2092")
+ << QLatin1String("dtZ107447_a_2245")
+ << QLatin1String("elemE001")
+ << QLatin1String("elemE002")
+ << QLatin1String("elemE003")
+ << QLatin1String("elemE004")
+ << QLatin1String("elemE005")
+ << QLatin1String("elemT026")
+ << QLatin1String("elemT027")
+ << QLatin1String("elemT028")
+ << QLatin1String("elemT029")
+ << QLatin1String("elemT054")
+ << QLatin1String("elemT055")
+ << QLatin1String("elemT056")
+ << QLatin1String("elemT057")
+ << QLatin1String("elemZ006")
+ << QLatin1String("elemZ007")
+ << QLatin1String("elemZ026")
+ << QLatin1String("elemZ027_c")
+ << QLatin1String("elemZ028c")
+ << QLatin1String("elemZ028d")
+ << QLatin1String("elemZ028f1")
+ << QLatin1String("elemZ028f1")
+ << QLatin1String("elemZ028f2")
+ << QLatin1String("elemZ028f2")
+ << QLatin1String("elemZ028f3")
+ << QLatin1String("elemZ028f3")
+ << QLatin1String("elemZ031")
+ << QLatin1String("errF001")
+ << QLatin1String("idC019")
+ << QLatin1String("idL100")
+ << QLatin1String("idZ011")
+ << QLatin1String("idZ015")
+ << QLatin1String("mgO013")
+ << QLatin1String("particlesA012")
+ << QLatin1String("particlesA013")
+ << QLatin1String("particlesA014")
+ << QLatin1String("particlesA015")
+ << QLatin1String("particlesHa161")
+ << QLatin1String("particlesHb008")
+ << QLatin1String("particlesHb011")
+ << QLatin1String("particlesIe003")
+ << QLatin1String("particlesIg003")
+ << QLatin1String("particlesIg004")
+ << QLatin1String("particlesJb003")
+ << QLatin1String("particlesJd003")
+ << QLatin1String("particlesJf003")
+ << QLatin1String("particlesJk003")
+ << QLatin1String("particlesOb001")
+ << QLatin1String("particlesOb002")
+ << QLatin1String("particlesOb004")
+ << QLatin1String("particlesOb008")
+ << QLatin1String("particlesOb009")
+ << QLatin1String("particlesOb013")
+ << QLatin1String("particlesOb018")
+ << QLatin1String("particlesQ005")
+ << QLatin1String("particlesS002")
+ << QLatin1String("particlesT002")
+ << QLatin1String("particlesT009")
+ << QLatin1String("particlesT014")
+ << QLatin1String("particlesV001")
+ << QLatin1String("particlesV002")
+ << QLatin1String("particlesV020")
+ << QLatin1String("particlesZ001")
+ << QLatin1String("particlesZ005")
+ << QLatin1String("particlesZ007")
+ << QLatin1String("particlesZ023")
+ << QLatin1String("particlesZ024")
+ << QLatin1String("particlesZ026")
+ << QLatin1String("particlesZ028")
+ << QLatin1String("particlesZ033_c")
+ << QLatin1String("particlesZ033_d")
+ << QLatin1String("particlesZ033_e")
+ << QLatin1String("particlesZ033_f")
+ << QLatin1String("particlesZ033_g")
+ << QLatin1String("particlesZ034_a1")
+ << QLatin1String("particlesZ034_a2")
+ << QLatin1String("particlesZ034_a3")
+ << QLatin1String("particlesZ034_b")
+ << QLatin1String("particlesZ035_a")
+ << QLatin1String("particlesZ035_b")
+ << QLatin1String("particlesZ036_a")
+ << QLatin1String("particlesZ036_b1")
+ << QLatin1String("particlesZ036_b2")
+ << QLatin1String("particlesZ036_c")
+/*
+ << QLatin1String("reC65")
+ << QLatin1String("reC66")
+ << QLatin1String("reC67")
+ << QLatin1String("reC68")
+ << QLatin1String("reF58")
+ << QLatin1String("reG50")
+ << QLatin1String("reJ11")
+ << QLatin1String("reJ13")
+ << QLatin1String("reJ19")
+ << QLatin1String("reJ21")
+ << QLatin1String("reJ23")
+ << QLatin1String("reJ25")
+ << QLatin1String("reJ29")
+ << QLatin1String("reJ31")
+ << QLatin1String("reJ33")
+ << QLatin1String("reJ35")
+ << QLatin1String("reJ61")
+ << QLatin1String("reJ69")
+ << QLatin1String("reJ75")
+ << QLatin1String("reJ77")
+ << QLatin1String("reL98")
+ << QLatin1String("reL99")
+ << QLatin1String("reM98")
+ << QLatin1String("reN99")
+ << QLatin1String("reS21")
+ << QLatin1String("reS42")
+ << QLatin1String("reT63")
+ << QLatin1String("reT84")
+ << QLatin1String("reDG2")
+ << QLatin1String("RegexTest_9")
+ << QLatin1String("RegexTest_11")
+ << QLatin1String("RegexTest_14")
+ << QLatin1String("RegexTest_15")
+ << QLatin1String("RegexTest_16")
+ << QLatin1String("RegexTest_17")
+ << QLatin1String("RegexTest_23")
+ << QLatin1String("RegexTest_24")
+ << QLatin1String("RegexTest_25")
+ << QLatin1String("RegexTest_26")
+ << QLatin1String("RegexTest_27")
+ << QLatin1String("RegexTest_28")
+ << QLatin1String("RegexTest_30")
+ << QLatin1String("RegexTest_30")
+ << QLatin1String("RegexTest_33")
+ << QLatin1String("RegexTest_34")
+ << QLatin1String("RegexTest_34")
+ << QLatin1String("RegexTest_43")
+ << QLatin1String("RegexTest_44")
+ << QLatin1String("RegexTest_45")
+ << QLatin1String("RegexTest_46")
+ << QLatin1String("RegexTest_47")
+ << QLatin1String("RegexTest_48")
+ << QLatin1String("RegexTest_49")
+ << QLatin1String("RegexTest_50")
+ << QLatin1String("RegexTest_51")
+ << QLatin1String("RegexTest_52")
+ << QLatin1String("RegexTest_53")
+ << QLatin1String("RegexTest_54")
+ << QLatin1String("RegexTest_55")
+ << QLatin1String("RegexTest_56")
+ << QLatin1String("RegexTest_57")
+ << QLatin1String("RegexTest_57")
+ << QLatin1String("RegexTest_58")
+ << QLatin1String("RegexTest_58")
+ << QLatin1String("RegexTest_65")
+ << QLatin1String("RegexTest_113")
+ << QLatin1String("RegexTest_116")
+ << QLatin1String("RegexTest_119")
+ << QLatin1String("RegexTest_120")
+ << QLatin1String("RegexTest_121")
+ << QLatin1String("RegexTest_141")
+ << QLatin1String("RegexTest_142")
+ << QLatin1String("RegexTest_143")
+ << QLatin1String("RegexTest_145")
+ << QLatin1String("RegexTest_146")
+ << QLatin1String("RegexTest_147")
+ << QLatin1String("RegexTest_148")
+ << QLatin1String("RegexTest_149")
+ << QLatin1String("RegexTest_150")
+ << QLatin1String("RegexTest_151")
+ << QLatin1String("RegexTest_152")
+ << QLatin1String("RegexTest_154")
+ << QLatin1String("RegexTest_155")
+ << QLatin1String("RegexTest_156")
+ << QLatin1String("RegexTest_157")
+ << QLatin1String("RegexTest_158")
+ << QLatin1String("RegexTest_163")
+ << QLatin1String("RegexTest_164")
+ << QLatin1String("RegexTest_165")
+ << QLatin1String("RegexTest_166")
+ << QLatin1String("RegexTest_167")
+ << QLatin1String("RegexTest_168")
+ << QLatin1String("RegexTest_169")
+ << QLatin1String("RegexTest_170")
+ << QLatin1String("RegexTest_171")
+ << QLatin1String("RegexTest_172")
+ << QLatin1String("RegexTest_173")
+ << QLatin1String("RegexTest_174")
+ << QLatin1String("RegexTest_178")
+ << QLatin1String("RegexTest_194")
+ << QLatin1String("RegexTest_194")
+ << QLatin1String("RegexTest_195")
+ << QLatin1String("RegexTest_195")
+ << QLatin1String("RegexTest_196")
+ << QLatin1String("RegexTest_196")
+ << QLatin1String("RegexTest_197")
+ << QLatin1String("RegexTest_198")
+ << QLatin1String("RegexTest_199")
+ << QLatin1String("RegexTest_200")
+ << QLatin1String("RegexTest_200")
+ << QLatin1String("RegexTest_201")
+ << QLatin1String("RegexTest_201")
+ << QLatin1String("RegexTest_202")
+ << QLatin1String("RegexTest_202")
+ << QLatin1String("RegexTest_203")
+ << QLatin1String("RegexTest_204")
+ << QLatin1String("RegexTest_205")
+ << QLatin1String("RegexTest_206")
+ << QLatin1String("RegexTest_207")
+ << QLatin1String("RegexTest_208")
+ << QLatin1String("RegexTest_209")
+ << QLatin1String("RegexTest_209")
+ << QLatin1String("RegexTest_210")
+ << QLatin1String("RegexTest_210")
+ << QLatin1String("RegexTest_211")
+ << QLatin1String("RegexTest_211")
+ << QLatin1String("RegexTest_212")
+ << QLatin1String("RegexTest_213")
+ << QLatin1String("RegexTest_214")
+ << QLatin1String("RegexTest_215")
+ << QLatin1String("RegexTest_216")
+ << QLatin1String("RegexTest_217")
+ << QLatin1String("RegexTest_218")
+ << QLatin1String("RegexTest_220")
+ << QLatin1String("RegexTest_221")
+ << QLatin1String("RegexTest_222")
+ << QLatin1String("RegexTest_226")
+ << QLatin1String("RegexTest_230")
+ << QLatin1String("RegexTest_232")
+ << QLatin1String("RegexTest_233")
+ << QLatin1String("RegexTest_294")
+ << QLatin1String("RegexTest_294")
+ << QLatin1String("RegexTest_295")
+ << QLatin1String("RegexTest_295")
+ << QLatin1String("RegexTest_299")
+ << QLatin1String("RegexTest_300")
+ << QLatin1String("RegexTest_301")
+ << QLatin1String("RegexTest_302")
+ << QLatin1String("RegexTest_303")
+ << QLatin1String("RegexTest_304")
+ << QLatin1String("RegexTest_305")
+ << QLatin1String("RegexTest_306")
+ << QLatin1String("RegexTest_307")
+ << QLatin1String("RegexTest_308")
+ << QLatin1String("RegexTest_309")
+ << QLatin1String("RegexTest_310")
+ << QLatin1String("RegexTest_311")
+ << QLatin1String("RegexTest_312")
+ << QLatin1String("RegexTest_313")
+ << QLatin1String("RegexTest_314")
+ << QLatin1String("RegexTest_315")
+ << QLatin1String("RegexTest_315")
+ << QLatin1String("RegexTest_316")
+ << QLatin1String("RegexTest_316")
+ << QLatin1String("RegexTest_317")
+ << QLatin1String("RegexTest_317")
+ << QLatin1String("RegexTest_440")
+ << QLatin1String("RegexTest_441")
+ << QLatin1String("RegexTest_442")
+ << QLatin1String("RegexTest_443")
+ << QLatin1String("RegexTest_448")
+ << QLatin1String("RegexTest_449")
+ << QLatin1String("RegexTest_450")
+ << QLatin1String("RegexTest_451")
+ << QLatin1String("RegexTest_458")
+ << QLatin1String("RegexTest_464")
+ << QLatin1String("RegexTest_464")
+ << QLatin1String("RegexTest_465")
+ << QLatin1String("RegexTest_469")
+ << QLatin1String("RegexTest_470")
+ << QLatin1String("RegexTest_471")
+ << QLatin1String("RegexTest_472")
+ << QLatin1String("RegexTest_473")
+ << QLatin1String("RegexTest_477")
+ << QLatin1String("RegexTest_478")
+ << QLatin1String("RegexTest_478")
+ << QLatin1String("RegexTest_479")
+ << QLatin1String("RegexTest_480")
+ << QLatin1String("RegexTest_481")
+ << QLatin1String("RegexTest_482")
+ << QLatin1String("RegexTest_482")
+ << QLatin1String("RegexTest_483")
+ << QLatin1String("RegexTest_483")
+ << QLatin1String("RegexTest_484")
+ << QLatin1String("RegexTest_487")
+ << QLatin1String("RegexTest_516")
+ << QLatin1String("RegexTest_516")
+ << QLatin1String("RegexTest_517")
+ << QLatin1String("RegexTest_517")
+ << QLatin1String("RegexTest_518")
+ << QLatin1String("RegexTest_518")
+ << QLatin1String("RegexTest_519")
+ << QLatin1String("RegexTest_519")
+ << QLatin1String("RegexTest_521")
+ << QLatin1String("RegexTest_523")
+ << QLatin1String("RegexTest_524")
+ << QLatin1String("RegexTest_524")
+ << QLatin1String("RegexTest_586")
+ << QLatin1String("RegexTest_587")
+ << QLatin1String("RegexTest_592")
+ << QLatin1String("RegexTest_593")
+ << QLatin1String("RegexTest_594")
+ << QLatin1String("RegexTest_595")
+ << QLatin1String("RegexTest_596")
+ << QLatin1String("RegexTest_597")
+ << QLatin1String("RegexTest_598")
+ << QLatin1String("RegexTest_599")
+ << QLatin1String("RegexTest_600")
+ << QLatin1String("RegexTest_601")
+ << QLatin1String("RegexTest_602")
+ << QLatin1String("RegexTest_603")
+ << QLatin1String("RegexTest_604")
+ << QLatin1String("RegexTest_605")
+ << QLatin1String("RegexTest_648")
+ << QLatin1String("RegexTest_655")
+ << QLatin1String("RegexTest_688")
+ << QLatin1String("RegexTest_696")
+ << QLatin1String("RegexTest_697")
+ << QLatin1String("RegexTest_698")
+ << QLatin1String("RegexTest_700")
+ << QLatin1String("RegexTest_701")
+ << QLatin1String("RegexTest_702")
+ << QLatin1String("RegexTest_703")
+ << QLatin1String("RegexTest_704")
+ << QLatin1String("RegexTest_705")
+ << QLatin1String("RegexTest_706")
+ << QLatin1String("RegexTest_707")
+ << QLatin1String("RegexTest_717")
+ << QLatin1String("RegexTest_718")
+ << QLatin1String("RegexTest_719")
+ << QLatin1String("RegexTest_724")
+ << QLatin1String("RegexTest_725")
+ << QLatin1String("RegexTest_726")
+ << QLatin1String("RegexTest_727")
+ << QLatin1String("RegexTest_728")
+ << QLatin1String("RegexTest_729")
+ << QLatin1String("RegexTest_730")
+ << QLatin1String("RegexTest_731")
+ << QLatin1String("RegexTest_732")
+ << QLatin1String("RegexTest_733")
+ << QLatin1String("RegexTest_743")
+ << QLatin1String("RegexTest_755")
+ << QLatin1String("RegexTest_756")
+ << QLatin1String("RegexTest_761")
+ << QLatin1String("RegexTest_762")
+ << QLatin1String("RegexTest_781")
+ << QLatin1String("RegexTest_782")
+ << QLatin1String("RegexTest_783")
+ << QLatin1String("RegexTest_790")
+ << QLatin1String("RegexTest_791")
+ << QLatin1String("RegexTest_824")
+ << QLatin1String("RegexTest_826")
+ << QLatin1String("RegexTest_827")
+ << QLatin1String("RegexTest_836")
+ << QLatin1String("RegexTest_837")
+ << QLatin1String("RegexTest_841")
+ << QLatin1String("RegexTest_842")
+ << QLatin1String("RegexTest_843")
+ << QLatin1String("RegexTest_844")
+ << QLatin1String("RegexTest_845")
+ << QLatin1String("RegexTest_846")
+ << QLatin1String("RegexTest_847")
+ << QLatin1String("RegexTest_848")
+ << QLatin1String("RegexTest_851")
+ << QLatin1String("RegexTest_852")
+ << QLatin1String("RegexTest_853")
+ << QLatin1String("RegexTest_854")
+ << QLatin1String("RegexTest_855")
+ << QLatin1String("RegexTest_856")
+ << QLatin1String("RegexTest_857")
+ << QLatin1String("RegexTest_861")
+ << QLatin1String("RegexTest_862")
+ << QLatin1String("RegexTest_863")
+ << QLatin1String("RegexTest_864")
+ << QLatin1String("RegexTest_865")
+ << QLatin1String("RegexTest_866")
+ << QLatin1String("RegexTest_870")
+ << QLatin1String("RegexTest_879")
+ << QLatin1String("RegexTest_880")
+ << QLatin1String("RegexTest_888")
+ << QLatin1String("RegexTest_889")
+ << QLatin1String("RegexTest_890")
+ << QLatin1String("RegexTest_891")
+ << QLatin1String("RegexTest_892")
+ << QLatin1String("RegexTest_893")
+ << QLatin1String("RegexTest_894")
+ << QLatin1String("RegexTest_895")
+ << QLatin1String("RegexTest_896")
+ << QLatin1String("RegexTest_897")
+ << QLatin1String("RegexTest_898")
+ << QLatin1String("RegexTest_899")
+ << QLatin1String("RegexTest_900")
+ << QLatin1String("RegexTest_901")
+ << QLatin1String("RegexTest_902")
+ << QLatin1String("RegexTest_903")
+ << QLatin1String("RegexTest_904")
+ << QLatin1String("RegexTest_905")
+ << QLatin1String("RegexTest_906")
+ << QLatin1String("RegexTest_907")
+ << QLatin1String("RegexTest_908")
+ << QLatin1String("RegexTest_909")
+ << QLatin1String("RegexTest_910")
+ << QLatin1String("RegexTest_911")
+ << QLatin1String("RegexTest_912")
+ << QLatin1String("RegexTest_913")
+ << QLatin1String("RegexTest_914")
+ << QLatin1String("RegexTest_915")
+ << QLatin1String("RegexTest_916")
+ << QLatin1String("RegexTest_917")
+ << QLatin1String("RegexTest_918")
+ << QLatin1String("RegexTest_919")
+ << QLatin1String("RegexTest_920")
+ << QLatin1String("RegexTest_921")
+ << QLatin1String("RegexTest_922")
+ << QLatin1String("RegexTest_923")
+ << QLatin1String("RegexTest_924")
+ << QLatin1String("RegexTest_925")
+ << QLatin1String("RegexTest_926")
+ << QLatin1String("RegexTest_928")
+ << QLatin1String("RegexTest_929")
+ << QLatin1String("RegexTest_930")
+ << QLatin1String("RegexTest_936")
+ << QLatin1String("RegexTest_937")
+ << QLatin1String("RegexTest_938")
+ << QLatin1String("RegexTest_939")
+ << QLatin1String("RegexTest_940")
+ << QLatin1String("RegexTest_941")
+ << QLatin1String("RegexTest_942")
+ << QLatin1String("RegexTest_943")
+ << QLatin1String("RegexTest_944")
+ << QLatin1String("RegexTest_945")
+ << QLatin1String("RegexTest_946")
+ << QLatin1String("RegexTest_949")
+ << QLatin1String("RegexTest_950")
+ << QLatin1String("RegexTest_951")
+ << QLatin1String("RegexTest_952")
+ << QLatin1String("RegexTest_953")
+ << QLatin1String("RegexTest_954")
+ << QLatin1String("RegexTest_955")
+ << QLatin1String("RegexTest_956")
+ << QLatin1String("RegexTest_957")
+ << QLatin1String("RegexTest_958")
+ << QLatin1String("RegexTest_959")
+ << QLatin1String("RegexTest_960")
+ << QLatin1String("RegexTest_961")
+ << QLatin1String("RegexTest_962")
+ << QLatin1String("RegexTest_963")
+ << QLatin1String("RegexTest_964")
+ << QLatin1String("RegexTest_976")
+ << QLatin1String("RegexTest_977")
+ << QLatin1String("RegexTest_988")
+ << QLatin1String("RegexTest_989")
+ << QLatin1String("RegexTest_990")
+ << QLatin1String("RegexTest_991")
+ << QLatin1String("RegexTest_994")
+ << QLatin1String("RegexTest_995")
+ << QLatin1String("RegexTest_996")
+ << QLatin1String("RegexTest_997")
+ << QLatin1String("RegexTest_1000")
+ << QLatin1String("RegexTest_1001")
+ << QLatin1String("RegexTest_1002")
+ << QLatin1String("RegexTest_1003")
+ << QLatin1String("RegexTest_1004")
+ << QLatin1String("RegexTest_1007")
+ << QLatin1String("RegexTest_1008")
+ << QLatin1String("RegexTest_1009")
+ << QLatin1String("RegexTest_1010")
+ << QLatin1String("RegexTest_1011")
+ << QLatin1String("RegexTest_1012")
+ << QLatin1String("RegexTest_1013")
+ << QLatin1String("RegexTest_1014")
+ << QLatin1String("RegexTest_1015")
+ << QLatin1String("RegexTest_1016")
+ << QLatin1String("RegexTest_1017")
+ << QLatin1String("RegexTest_1018")
+ << QLatin1String("RegexTest_1019")
+ << QLatin1String("RegexTest_1070")
+ << QLatin1String("RegexTest_1071")
+ << QLatin1String("RegexTest_1076")
+ << QLatin1String("RegexTest_1077")
+ << QLatin1String("RegexTest_1078")
+ << QLatin1String("RegexTest_1079")
+ << QLatin1String("RegexTest_1080")
+ << QLatin1String("RegexTest_1081")
+ << QLatin1String("RegexTest_1082")
+ << QLatin1String("RegexTest_1083")
+ << QLatin1String("RegexTest_1084")
+ << QLatin1String("RegexTest_1085")
+ << QLatin1String("RegexTest_1086")
+ << QLatin1String("RegexTest_1087")
+ << QLatin1String("RegexTest_1088")
+ << QLatin1String("RegexTest_1089")
+ << QLatin1String("RegexTest_1132")
+ << QLatin1String("RegexTest_1139")
+ << QLatin1String("RegexTest_1172")
+ << QLatin1String("RegexTest_1180")
+ << QLatin1String("RegexTest_1181")
+ << QLatin1String("RegexTest_1182")
+ << QLatin1String("RegexTest_1184")
+ << QLatin1String("RegexTest_1185")
+ << QLatin1String("RegexTest_1186")
+ << QLatin1String("RegexTest_1187")
+ << QLatin1String("RegexTest_1188")
+ << QLatin1String("RegexTest_1189")
+ << QLatin1String("RegexTest_1190")
+ << QLatin1String("RegexTest_1191")
+ << QLatin1String("RegexTest_1201")
+ << QLatin1String("RegexTest_1202")
+ << QLatin1String("RegexTest_1203")
+ << QLatin1String("RegexTest_1208")
+ << QLatin1String("RegexTest_1209")
+ << QLatin1String("RegexTest_1210")
+ << QLatin1String("RegexTest_1211")
+ << QLatin1String("RegexTest_1212")
+ << QLatin1String("RegexTest_1213")
+ << QLatin1String("RegexTest_1214")
+ << QLatin1String("RegexTest_1215")
+ << QLatin1String("RegexTest_1216")
+ << QLatin1String("RegexTest_1217")
+ << QLatin1String("RegexTest_1227")
+ << QLatin1String("RegexTest_1239")
+ << QLatin1String("RegexTest_1240")
+ << QLatin1String("RegexTest_1245")
+ << QLatin1String("RegexTest_1246")
+ << QLatin1String("RegexTest_1265")
+ << QLatin1String("RegexTest_1266")
+ << QLatin1String("RegexTest_1267")
+ << QLatin1String("RegexTest_1274")
+ << QLatin1String("RegexTest_1275")
+ << QLatin1String("RegexTest_1308")
+ << QLatin1String("RegexTest_1310")
+ << QLatin1String("RegexTest_1311")
+ << QLatin1String("RegexTest_1320")
+ << QLatin1String("RegexTest_1321")
+ << QLatin1String("RegexTest_1322")
+ << QLatin1String("RegexTest_1323")
+ << QLatin1String("RegexTest_1324")
+ << QLatin1String("RegexTest_1325")
+ << QLatin1String("RegexTest_1326")
+ << QLatin1String("RegexTest_1327")
+ << QLatin1String("RegexTest_1328")
+ << QLatin1String("RegexTest_1329")
+ << QLatin1String("RegexTest_1330")
+ << QLatin1String("RegexTest_1331")
+ << QLatin1String("RegexTest_1332")
+ << QLatin1String("RegexTest_1335")
+ << QLatin1String("RegexTest_1336")
+ << QLatin1String("RegexTest_1337")
+ << QLatin1String("RegexTest_1338")
+ << QLatin1String("RegexTest_1339")
+ << QLatin1String("RegexTest_1340")
+ << QLatin1String("RegexTest_1341")
+ << QLatin1String("RegexTest_1345")
+ << QLatin1String("RegexTest_1346")
+ << QLatin1String("RegexTest_1347")
+ << QLatin1String("RegexTest_1348")
+ << QLatin1String("RegexTest_1349")
+ << QLatin1String("RegexTest_1350")
+ << QLatin1String("RegexTest_1354")
+ << QLatin1String("RegexTest_1363")
+ << QLatin1String("RegexTest_1364")
+ << QLatin1String("RegexTest_1365")
+ << QLatin1String("RegexTest_1372")
+ << QLatin1String("RegexTest_1373")
+ << QLatin1String("RegexTest_1374")
+ << QLatin1String("RegexTest_1375")
+ << QLatin1String("RegexTest_1376")
+ << QLatin1String("RegexTest_1377")
+ << QLatin1String("RegexTest_1378")
+ << QLatin1String("RegexTest_1379")
+ << QLatin1String("RegexTest_1380")
+ << QLatin1String("RegexTest_1381")
+ << QLatin1String("RegexTest_1382")
+ << QLatin1String("RegexTest_1383")
+ << QLatin1String("RegexTest_1384")
+ << QLatin1String("RegexTest_1385")
+ << QLatin1String("RegexTest_1386")
+ << QLatin1String("RegexTest_1387")
+ << QLatin1String("RegexTest_1388")
+ << QLatin1String("RegexTest_1389")
+ << QLatin1String("RegexTest_1390")
+ << QLatin1String("RegexTest_1391")
+ << QLatin1String("RegexTest_1392")
+ << QLatin1String("RegexTest_1393")
+ << QLatin1String("RegexTest_1394")
+ << QLatin1String("RegexTest_1395")
+ << QLatin1String("RegexTest_1396")
+ << QLatin1String("RegexTest_1397")
+ << QLatin1String("RegexTest_1398")
+ << QLatin1String("RegexTest_1399")
+ << QLatin1String("RegexTest_1400")
+ << QLatin1String("RegexTest_1401")
+ << QLatin1String("RegexTest_1402")
+ << QLatin1String("RegexTest_1403")
+ << QLatin1String("RegexTest_1404")
+ << QLatin1String("RegexTest_1405")
+ << QLatin1String("RegexTest_1406")
+ << QLatin1String("RegexTest_1407")
+ << QLatin1String("RegexTest_1408")
+ << QLatin1String("RegexTest_1409")
+ << QLatin1String("RegexTest_1410")
+ << QLatin1String("RegexTest_1412")
+ << QLatin1String("RegexTest_1413")
+ << QLatin1String("RegexTest_1414")
+ << QLatin1String("RegexTest_1420")
+ << QLatin1String("RegexTest_1421")
+ << QLatin1String("RegexTest_1422")
+ << QLatin1String("RegexTest_1423")
+ << QLatin1String("RegexTest_1424")
+ << QLatin1String("RegexTest_1425")
+ << QLatin1String("RegexTest_1426")
+ << QLatin1String("RegexTest_1427")
+ << QLatin1String("RegexTest_1428")
+ << QLatin1String("RegexTest_1429")
+ << QLatin1String("RegexTest_1430")
+ << QLatin1String("RegexTest_1433")
+ << QLatin1String("RegexTest_1434")
+ << QLatin1String("RegexTest_1435")
+ << QLatin1String("RegexTest_1436")
+ << QLatin1String("RegexTest_1437")
+ << QLatin1String("RegexTest_1438")
+ << QLatin1String("RegexTest_1439")
+ << QLatin1String("RegexTest_1440")
+ << QLatin1String("RegexTest_1441")
+ << QLatin1String("RegexTest_1442")
+ << QLatin1String("RegexTest_1443")
+ << QLatin1String("RegexTest_1444")
+ << QLatin1String("RegexTest_1445")
+ << QLatin1String("RegexTest_1446")
+ << QLatin1String("RegexTest_1447")
+ << QLatin1String("RegexTest_1448")
+ << QLatin1String("RegexTest_1451")
+ << QLatin1String("RegexTest_1452")
+ << QLatin1String("RegexTest_1453")
+ << QLatin1String("RegexTest_1454")
+ << QLatin1String("RegexTest_1455")
+ << QLatin1String("RegexTest_1456")
+ << QLatin1String("RegexTest_1472")
+ << QLatin1String("RegexTest_1473")
+ << QLatin1String("RegexTest_1474")
+ << QLatin1String("RegexTest_1475")
+ << QLatin1String("RegexTest_1478")
+ << QLatin1String("RegexTest_1479")
+ << QLatin1String("RegexTest_1480")
+ << QLatin1String("RegexTest_1481")
+ << QLatin1String("RegexTest_1484")
+ << QLatin1String("RegexTest_1485")
+ << QLatin1String("RegexTest_1486")
+ << QLatin1String("RegexTest_1487")
+ << QLatin1String("RegexTest_1488")
+ << QLatin1String("RegexTest_1491")
+ << QLatin1String("RegexTest_1492")
+ << QLatin1String("RegexTest_1493")
+ << QLatin1String("RegexTest_1494")
+ << QLatin1String("RegexTest_1495")
+ << QLatin1String("RegexTest_1496")
+ << QLatin1String("RegexTest_1497")
+ << QLatin1String("RegexTest_1498")
+ << QLatin1String("RegexTest_1499")
+ << QLatin1String("RegexTest_1500")
+ << QLatin1String("RegexTest_1501")
+ << QLatin1String("RegexTest_1502")
+ << QLatin1String("RegexTest_1503")
+ << QLatin1String("RegexTest_1543")
+ << QLatin1String("RegexTest_1544")
+ << QLatin1String("reZ001")
+*/
+ << QLatin1String("schA2")
+ << QLatin1String("schA5")
+ << QLatin1String("schA7")
+ << QLatin1String("schD8")
+ << QLatin1String("schG3")
+ << QLatin1String("schG6")
+ << QLatin1String("schG9")
+ << QLatin1String("schG11")
+ << QLatin1String("schG12")
+ << QLatin1String("schU1")
+ << QLatin1String("schU3")
+ << QLatin1String("schU4")
+ << QLatin1String("schU5")
+ << QLatin1String("schZ004")
+ << QLatin1String("schZ005")
+ << QLatin1String("schZ012_a")
+ << QLatin1String("stZ041")
+ << QLatin1String("wildZ010");
+}
+
+bool XSDTestSuiteHandler::startElement(const QString &namespaceURI,
+ const QString &localName,
+ const QString &/*qName*/,
+ const QXmlAttributes &atts)
+{
+ if(namespaceURI != QString::fromLatin1("http://www.w3.org/XML/2004/xml-schema-test-suite/"))
+ return true;
+
+ if (localName == QLatin1String("testSet")) {
+ m_currentTestSet = new TestGroup(m_topLevelGroup);
+ Q_ASSERT(m_currentTestSet);
+ m_currentTestSet->setTitle(atts.value("name"));
+ m_topLevelGroup->appendChild(m_currentTestSet);
+ } else if (localName == QLatin1String("testGroup")) {
+ m_currentTestGroup = new TestGroup(m_currentTestSet);
+ Q_ASSERT(m_currentTestGroup);
+ m_currentTestGroup->setTitle(atts.value("name"));
+ m_currentTestSet->appendChild(m_currentTestGroup);
+ m_inTestGroup = true;
+ } else if (localName == QLatin1String("schemaTest")) {
+ if (m_blackList.contains(atts.value("name"))) {
+ m_currentTestCase = 0;
+ m_schemaBlacklisted = true;
+ return true;
+ }
+ m_schemaBlacklisted = false;
+
+ m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::SchemaTest);
+ Q_ASSERT(m_currentTestCase);
+ m_counter++;
+ m_currentTestCase->setName(QString::number(m_counter) + atts.value("name"));
+ m_currentTestGroup->appendChild(m_currentTestCase);
+ m_currentTestCase->setParent(m_currentTestGroup);
+
+ m_inSchemaTest = true;
+ } else if (localName == QLatin1String("instanceTest")) {
+ if (m_schemaBlacklisted) {
+ m_currentTestCase = 0;
+ return true;
+ }
+
+ m_currentTestCase = new XSDTSTestCase(TestCase::Standard, m_currentTestGroup, XSDTSTestCase::InstanceTest);
+ Q_ASSERT(m_currentTestCase);
+ m_counter++;
+ m_currentTestCase->setName(QString::number(m_counter) + atts.value("name"));
+ m_currentTestGroup->appendChild(m_currentTestCase);
+
+ m_inInstanceTest = true;
+ } else if (localName == QLatin1String("schemaDocument") || localName == QLatin1String("instanceDocument")) {
+ if (m_inSchemaTest) {
+ m_currentTestCase->setSchemaUri(QUrl(atts.value("xlink:href")));
+ if (m_currentSchemaLink.isEmpty()) // we only use the first schema document for validation
+ m_currentSchemaLink = atts.value("xlink:href");
+ }
+ if (m_inInstanceTest) {
+ m_currentTestCase->setInstanceUri(QUrl(atts.value("xlink:href")));
+ m_currentTestCase->setSchemaUri(QUrl(m_currentSchemaLink));
+ }
+ } else if (localName == QLatin1String("expected") && (m_inSchemaTest || m_inInstanceTest)) {
+ TestBaseLine *baseLine = new TestBaseLine(TestBaseLine::SchemaIsValid);
+ if (atts.value("validity") == QLatin1String("valid")) {
+ baseLine->setDetails(QLatin1String("true"));
+ m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:valid"));
+ } else {
+ baseLine->setDetails(QLatin1String("false"));
+ m_currentTestCase->setName(m_currentTestCase->name() + QLatin1String(" tokoe:invalid"));
+ }
+
+ m_currentTestCase->addBaseLine(baseLine);
+ } else if (localName == QLatin1String("documentation") && m_inTestGroup) {
+ m_inDescription = true;
+ }
+
+ return true;
+}
+
+bool XSDTestSuiteHandler::endElement(const QString &namespaceURI,
+ const QString &localName,
+ const QString &/*qName*/)
+{
+ if (localName == QLatin1String("testGroup")) {
+ m_inTestGroup = false;
+ m_currentTestGroup->setDescription(m_documentation);
+ m_documentation.clear();
+ m_currentSchemaLink.clear();
+
+ if (m_currentTestGroup->childCount() == 0)
+ m_currentTestSet->removeLast();
+ } else if (localName == QLatin1String("schemaTest"))
+ m_inSchemaTest = false;
+ else if (localName == QLatin1String("instanceTest"))
+ m_inInstanceTest = false;
+ else if (localName == QLatin1String("documentation"))
+ m_inDescription = false;
+
+ return true;
+}
+
+bool XSDTestSuiteHandler::characters(const QString &ch)
+{
+ if (m_inDescription)
+ m_documentation += ch;
+
+ return true;
+}
+
+TestSuite *XSDTestSuiteHandler::testSuite() const
+{
+ return m_ts;
+}
+
+// vim: et:ts=4:sw=4:sts=4
+
diff --git a/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h
new file mode 100644
index 0000000..8c57e82
--- /dev/null
+++ b/tests/auto/xmlpatternsxqts/lib/XSDTestSuiteHandler.h
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Patternist project on Trolltech Labs.
+**
+** $TROLLTECH_GPL_LICENSE$
+**
+***************************************************************************
+*/
+
+#ifndef PatternistSDK_XSDTestSuiteHandler_H
+#define PatternistSDK_XSDTestSuiteHandler_H
+
+#include <QUrl>
+#include <QXmlDefaultHandler>
+
+#include "ExternalSourceLoader.h"
+#include "TestSuite.h"
+#include "XQTSTestCase.h"
+
+QT_BEGIN_HEADER
+
+namespace QPatternistSDK
+{
+ class TestBaseLine;
+ class TestGroup;
+ class XSDTSTestCase;
+
+ /**
+ * @short Creates a TestSuite from the XSD Test Suite.
+ *
+ * The created TestSuite can be retrieved via testSuite().
+ *
+ * @note XSDTestSuiteHandler assumes the XML is valid by having been validated
+ * against the W3C XML Schema. It has no safety checks for that the XML format
+ * is correct but is hard coded for it. Thus, the behavior is undefined if
+ * the XML is invalid.
+ *
+ * @ingroup PatternistSDK
+ * @author Tobias Koenig <tobias.koenig@trolltech.com>
+ */
+ class Q_PATTERNISTSDK_EXPORT XSDTestSuiteHandler : public QXmlDefaultHandler
+ {
+ public:
+ /**
+ * @param catalogFile the URI for the catalog file being parsed. This
+ * URI is used for creating absolute URIs for files mentioned in
+ * the catalog with relative URIs.
+ * @param useExclusionList whether excludeTestGroups.txt should be used to ignore
+ * test groups when loading
+ */
+ XSDTestSuiteHandler(const QUrl &catalogFile);
+ virtual bool characters(const QString &ch);
+
+ virtual bool endElement(const QString &namespaceURI,
+ const QString &localName,
+ const QString &qName);
+ virtual bool startElement(const QString &namespaceURI,
+ const QString &localName,
+ const QString &qName,
+ const QXmlAttributes &atts);
+
+ virtual TestSuite *testSuite() const;
+
+ private:
+ TestSuite* m_ts;
+ const QUrl m_catalogFile;
+
+ TestGroup* m_topLevelGroup;
+ TestGroup* m_currentTestSet;
+ TestGroup* m_currentTestGroup;
+ XSDTSTestCase* m_currentTestCase;
+ bool m_inSchemaTest;
+ bool m_inInstanceTest;
+ bool m_inTestGroup;
+ bool m_inDescription;
+ bool m_schemaBlacklisted;
+ QString m_documentation;
+ QString m_currentSchemaLink;
+ int m_counter;
+ QSet<QString> m_blackList;
+ };
+}
+
+QT_END_HEADER
+
+#endif
+// vim: et:ts=4:sw=4:sts=4
diff --git a/tests/auto/xmlpatternsxqts/lib/lib.pro b/tests/auto/xmlpatternsxqts/lib/lib.pro
index 5b12d63..cb9453a 100644
--- a/tests/auto/xmlpatternsxqts/lib/lib.pro
+++ b/tests/auto/xmlpatternsxqts/lib/lib.pro
@@ -50,6 +50,8 @@ HEADERS = ASTItem.h \
Worker.h \
XMLWriter.h \
XQTSTestCase.h \
+ XSDTestSuiteHandler.h \
+ XSDTSTestCase.h \
XSLTTestSuiteHandler.h
SOURCES = ASTItem.cpp \
@@ -75,4 +77,6 @@ SOURCES = ASTItem.cpp \
Worker.cpp \
XMLWriter.cpp \
XQTSTestCase.cpp \
+ XSDTestSuiteHandler.cpp \
+ XSDTSTestCase.cpp \
XSLTTestSuiteHandler.cpp
diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp
index 5d61436..0f44058 100644
--- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp
+++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.cpp
@@ -55,11 +55,11 @@
using namespace QPatternistSDK;
-tst_SuiteTest::tst_SuiteTest(const bool isXSLT,
+tst_SuiteTest::tst_SuiteTest(const SuiteType suiteType,
const bool alwaysRun) : m_existingBaseline(inputFile(QLatin1String("Baseline.xml")))
, m_candidateBaseline(inputFile(QLatin1String("CandidateBaseline.xml")))
, m_abortRun(!alwaysRun && !QFile::exists(QLatin1String("runTests")))
- , m_isXSLT(isXSLT)
+ , m_suiteType(suiteType)
{
}
@@ -86,7 +86,16 @@ void tst_SuiteTest::runTestSuite() const
QString errMsg;
const QFileInfo fi(m_catalogPath);
const QUrl catalogPath(QUrl::fromLocalFile(fi.absoluteFilePath()));
- TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, m_isXSLT);
+
+ TestSuite::SuiteType suiteType;
+ switch (m_suiteType) {
+ case XQuerySuite: suiteType = TestSuite::XQuerySuite;
+ case XsltSuite: suiteType = TestSuite::XsltSuite;
+ case XsdSuite: suiteType = TestSuite::XsdSuite;
+ default: break;
+ }
+
+ TestSuite *const ts = TestSuite::openCatalog(catalogPath, errMsg, true, suiteType);
QVERIFY2(ts, qPrintable(QString::fromLatin1("Failed to open the catalog, maybe it doesn't exist or is broken: %1").arg(errMsg)));
diff --git a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h
index effa887..fdf82d5 100644
--- a/tests/auto/xmlpatternsxqts/test/tst_suitetest.h
+++ b/tests/auto/xmlpatternsxqts/test/tst_suitetest.h
@@ -50,13 +50,21 @@
\class tst_SuiteTest
\internal
\since 4.5
- \brief Base class for tst_XmlPatternsXQTS and tst_XmlPatternsXSLTS.
+ \brief Base class for tst_XmlPatternsXQTS, tst_XmlPatternsXSLTS and tst_XmlPatternsXSDTS.
*/
class tst_SuiteTest : public QObject
, private TestFundament
{
Q_OBJECT
+public:
+ enum SuiteType
+ {
+ XQuerySuite,
+ XsltSuite,
+ XsdSuite
+ };
+
protected:
/**
* @p isXSLT is @c true if the catalog opened is an
@@ -65,7 +73,7 @@ protected:
* @p alwaysRun is @c true if the test should always be run,
* regardless of if the file runTests exists.
*/
- tst_SuiteTest(const bool isXSLT,
+ tst_SuiteTest(SuiteType type,
const bool alwaysRun = false);
/**
@@ -91,7 +99,7 @@ private:
const QString m_existingBaseline;
const QString m_candidateBaseline;
const bool m_abortRun;
- const bool m_isXSLT;
+ const SuiteType m_suiteType;
};
#endif
diff --git a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp
index 6330784..4154b16 100644
--- a/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp
+++ b/tests/auto/xmlpatternsxqts/test/tst_xmlpatternsxqts.cpp
@@ -61,7 +61,7 @@ public:
virtual void catalogPath(QString &write) const;
};
-tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(false)
+tst_XmlPatternsXQTS::tst_XmlPatternsXQTS() : tst_SuiteTest(tst_SuiteTest::XQuerySuite)
{
}
diff --git a/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp b/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp
index 16091f6..d89974c 100644
--- a/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp
+++ b/tests/auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp
@@ -61,7 +61,7 @@ protected:
virtual void catalogPath(QString &write) const;
};
-tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(true)
+tst_XmlPatternsXSLTS::tst_XmlPatternsXSLTS() : tst_SuiteTest(tst_SuiteTest::XsltSuite)
{
}
diff --git a/tools/tools.pro b/tools/tools.pro
index d034dcd..eab9d48 100644
--- a/tools/tools.pro
+++ b/tools/tools.pro
@@ -25,7 +25,7 @@ mac {
embedded:SUBDIRS += kmap2qmap
contains(QT_CONFIG, dbus):SUBDIRS += qdbus
-!wince*:contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns
+!wince*:contains(QT_CONFIG, xmlpatterns): SUBDIRS += xmlpatterns xmlpatternsvalidator
embedded: SUBDIRS += makeqpf
CONFIG+=ordered
diff --git a/tools/xmlpatternsvalidator/main.cpp b/tools/xmlpatternsvalidator/main.cpp
new file mode 100644
index 0000000..d53c783
--- /dev/null
+++ b/tools/xmlpatternsvalidator/main.cpp
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+** This file is part of the Patternist project on Trolltech Labs.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "main.h"
+
+#include <QtCore/QDebug>
+#include <QtCore/QFile>
+#include <QtCore/QUrl>
+#include <QtXmlPatterns/QXmlSchema>
+#include <QtXmlPatterns/QXmlSchemaValidator>
+
+QT_USE_NAMESPACE
+
+int main(int argc, char **argv)
+{
+ enum ExitCode
+ {
+ Valid = 0,
+ Invalid,
+ ParseError
+ };
+
+ enum ExecutionMode
+ {
+ InvalidMode,
+ SchemaOnlyMode,
+ SchemaAndInstanceMode,
+ InstanceOnlyMode
+ };
+
+ const QCoreApplication app(argc, argv);
+ QCoreApplication::setApplicationName(QLatin1String("xmlpatternsvalidator"));
+
+ if (argc != 2 && argc != 3) {
+ qDebug() << QXmlPatternistCLI::tr("usage: xmlpatternsvalidator (<schema url> | <instance url> <schema url> | <instance url>)");
+ return ParseError;
+ }
+
+ // parse command line arguments
+ ExecutionMode mode = InvalidMode;
+
+ if (argc == 2) {
+ // either it is a schema or instance document
+
+ QString url = QFile::decodeName(argv[1]);
+ if (url.toLower().endsWith(QLatin1String(".xsd"))) {
+ mode = SchemaOnlyMode;
+ } else {
+ // as we could validate all types of xml documents, don't check the extension here
+ mode = InstanceOnlyMode;
+ }
+ } else if (argc == 3) {
+ mode = SchemaAndInstanceMode;
+ }
+
+ // do validation
+ QXmlSchema schema;
+
+ if (mode == SchemaOnlyMode) {
+ const QString schemaUri = QFile::decodeName(argv[1]);
+
+ schema.load(QUrl(schemaUri));
+
+ if (schema.isValid())
+ return Valid;
+ else
+ return Invalid;
+ } else if (mode == SchemaAndInstanceMode) {
+ const QString instanceUri = QFile::decodeName(argv[1]);
+ const QString schemaUri = QFile::decodeName(argv[2]);
+
+ schema.load(QUrl(schemaUri));
+
+ if (!schema.isValid())
+ return Invalid;
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(QUrl(instanceUri)))
+ return Valid;
+ else
+ return Invalid;
+ } else if (mode == InstanceOnlyMode) {
+ const QString instanceUri = QFile::decodeName(argv[1]);
+
+ QXmlSchemaValidator validator(schema);
+ if (validator.validate(QUrl(instanceUri)))
+ return Valid;
+ else
+ return Invalid;
+ }
+
+ Q_ASSERT(false);
+
+ return Invalid;
+}
diff --git a/tools/xmlpatternsvalidator/main.h b/tools/xmlpatternsvalidator/main.h
new file mode 100644
index 0000000..85a4561
--- /dev/null
+++ b/tools/xmlpatternsvalidator/main.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ ** Contact: Qt Software Information (qt-info@nokia.com)
+ **
+ ** This file is part of the Patternist project on Trolltech Labs. * **
+ ** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the either Technology Preview License Agreement or the
+** Beta Release License Agreement.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain
+** additional rights. These rights are described in the Nokia Qt LGPL
+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
+** package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at qt-sales@nokia.com.
+** $QT_END_LICENSE$
+ **
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ **
+ ****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+
+#ifndef Patternist_main_h
+#define Patternist_main_h
+
+#include <QtCore/QCoreApplication>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QXmlPatternistCLI
+{
+public:
+ Q_DECLARE_TR_FUNCTIONS(QXmlPatternistCLI)
+private:
+ inline QXmlPatternistCLI();
+ Q_DISABLE_COPY(QXmlPatternistCLI)
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro b/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro
new file mode 100644
index 0000000..dd5bd37
--- /dev/null
+++ b/tools/xmlpatternsvalidator/xmlpatternsvalidator.pro
@@ -0,0 +1,19 @@
+TEMPLATE = app
+TARGET = xmlpatternsvalidator
+DESTDIR = ../../bin
+QT -= gui
+QT += xmlpatterns
+
+target.path = $$[QT_INSTALL_BINS]
+INSTALLS += target
+
+# This ensures we get stderr and stdout on Windows.
+CONFIG += console
+
+# This ensures that this is a command-line program on OS X and not a GUI application.
+CONFIG -= app_bundle
+
+SOURCES = main.cpp
+HEADERS = main.h
+
+include(../src/common.pri)