update windows build to Python 3.7
This commit is contained in:
parent
73105fa71e
commit
ddc59ab92d
5761 changed files with 750298 additions and 213405 deletions
|
|
@ -63,8 +63,8 @@ svrl_validation_errors = _etree.XPath(
|
|||
|
||||
|
||||
# RelaxNG validator for schematron schemas
|
||||
schematron_schema_valid = _etree.RelaxNG(_etree.parse(
|
||||
os.path.join(_resources_dir, 'rng', 'iso-schematron.rng')))
|
||||
schematron_schema_valid = _etree.RelaxNG(
|
||||
file=os.path.join(_resources_dir, 'rng', 'iso-schematron.rng'))
|
||||
|
||||
|
||||
def stylesheet_params(**kwargs):
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,9 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright © ISO/IEC 2015 -->
|
||||
<!--
|
||||
(c) International Organization for Standardization 2005.
|
||||
Permission to copy in any form is granted for use with conforming
|
||||
SGML systems and applications as defined in ISO 8879,
|
||||
provided this notice is included in all copies.
|
||||
The following permission notice and disclaimer shall be included in all
|
||||
copies of this XML schema ("the Schema"), and derivations of the Schema:
|
||||
|
||||
Permission is hereby granted, free of charge in perpetuity, to any
|
||||
person obtaining a copy of the Schema, to use, copy, modify, merge and
|
||||
distribute free of charge, copies of the Schema for the purposes of
|
||||
developing, implementing, installing and using software based on the
|
||||
Schema, and to permit persons to whom the Schema is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
THE SCHEMA IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SCHEMA OR THE USE OR
|
||||
OTHER DEALINGS IN THE SCHEMA.
|
||||
|
||||
In addition, any modified copy of the Schema shall include the following
|
||||
notice:
|
||||
|
||||
"THIS SCHEMA HAS BEEN MODIFIED FROM THE SCHEMA DEFINED IN ISO/IEC 19757-3,
|
||||
AND SHOULD NOT BE INTERPRETED AS COMPLYING WITH THAT STANDARD".
|
||||
-->
|
||||
<grammar ns="http://purl.oclc.org/dsdl/schematron" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||
<start>
|
||||
|
|
@ -63,6 +83,10 @@
|
|||
<optional>
|
||||
<ref name="diagnostics"/>
|
||||
</optional>
|
||||
<optional>
|
||||
<!-- edited (lxml): required in standard, optional here (since it can be empty anyway) -->
|
||||
<ref name="properties"/>
|
||||
</optional>
|
||||
</group>
|
||||
</interleave>
|
||||
</element>
|
||||
|
|
@ -105,6 +129,11 @@
|
|||
<data type="IDREFS"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name="properties">
|
||||
<data type="IDREFS"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<ref name="rich"/>
|
||||
<ref name="linkable"/>
|
||||
<interleave>
|
||||
|
|
@ -178,9 +207,14 @@
|
|||
</define>
|
||||
<define name="extends">
|
||||
<element name="extends">
|
||||
<attribute name="rule">
|
||||
<data type="IDREF"/>
|
||||
</attribute>
|
||||
<choice>
|
||||
<attribute name="rule">
|
||||
<data type="IDREF"/>
|
||||
</attribute>
|
||||
<attribute name="href">
|
||||
<ref name="uriValue"/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<ref name="foreign-empty"/>
|
||||
</element>
|
||||
</define>
|
||||
|
|
@ -189,9 +223,14 @@
|
|||
<attribute name="name">
|
||||
<ref name="nameValue"/>
|
||||
</attribute>
|
||||
<attribute name="value">
|
||||
<data type="string" datatypeLibrary=""/>
|
||||
</attribute>
|
||||
<choice>
|
||||
<attribute name="value">
|
||||
<data type="string" datatypeLibrary=""/>
|
||||
</attribute>
|
||||
<oneOrMore>
|
||||
<ref name="foreign-element"/>
|
||||
</oneOrMore>
|
||||
</choice>
|
||||
</element>
|
||||
</define>
|
||||
<define name="name">
|
||||
|
|
@ -257,6 +296,11 @@
|
|||
</define>
|
||||
<define name="pattern">
|
||||
<element name="pattern">
|
||||
<optional>
|
||||
<attribute name="documents">
|
||||
<ref name="pathValue"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<ref name="rich"/>
|
||||
<interleave>
|
||||
<ref name="foreign"/>
|
||||
|
|
@ -367,6 +411,41 @@
|
|||
</interleave>
|
||||
</element>
|
||||
</define>
|
||||
<define name="properties">
|
||||
<element name="properties">
|
||||
<zeroOrMore>
|
||||
<ref name="property"/>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</define>
|
||||
<define name="property">
|
||||
<element name="property">
|
||||
<attribute name="id">
|
||||
<data type="ID"/>
|
||||
</attribute>
|
||||
<optional>
|
||||
<attribute name="role">
|
||||
<ref name="roleValue"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name="scheme"/>
|
||||
</optional>
|
||||
<interleave>
|
||||
<ref name="foreign"/>
|
||||
<zeroOrMore>
|
||||
<choice>
|
||||
<text/>
|
||||
<ref name="name"/>
|
||||
<ref name="value-of"/>
|
||||
<ref name="emph"/>
|
||||
<ref name="dir"/>
|
||||
<ref name="span"/>
|
||||
</choice>
|
||||
</zeroOrMore>
|
||||
</interleave>
|
||||
</element>
|
||||
</define>
|
||||
<define name="report">
|
||||
<element name="report">
|
||||
<attribute name="test">
|
||||
|
|
@ -387,6 +466,11 @@
|
|||
<data type="IDREFS"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name="properties">
|
||||
<data type="IDREFS"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<ref name="rich"/>
|
||||
<ref name="linkable"/>
|
||||
<interleave>
|
||||
|
|
@ -434,6 +518,7 @@
|
|||
<ref name="assert"/>
|
||||
<ref name="report"/>
|
||||
<ref name="extends"/>
|
||||
<ref name="p"/>
|
||||
</choice>
|
||||
</oneOrMore>
|
||||
</group>
|
||||
|
|
@ -459,6 +544,7 @@
|
|||
<ref name="assert"/>
|
||||
<ref name="report"/>
|
||||
<ref name="extends"/>
|
||||
<ref name="p"/>
|
||||
</choice>
|
||||
</oneOrMore>
|
||||
</group>
|
||||
|
|
@ -501,6 +587,7 @@
|
|||
<attribute name="href">
|
||||
<ref name="uriValue"/>
|
||||
</attribute>
|
||||
<ref name="foreign-empty"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="rich">
|
||||
|
|
|
|||
|
|
@ -6,10 +6,11 @@
|
|||
This is a preprocessor for ISO Schematron, which implements abstract patterns.
|
||||
It also
|
||||
* extracts a particular schema using an ID, where there are multiple
|
||||
schemas, such as when they are embedded in the same NVDL script
|
||||
* experimentally, allows parameter recognition and substitution inside
|
||||
text as well as @context, @test, & @select.
|
||||
|
||||
schemas, such as when they are embedded in the same NVDL script
|
||||
* allows parameter substitution inside @context, @test, @select, @path
|
||||
* experimentally, allows parameter recognition and substitution inside
|
||||
text (NOTE: to be removed, for compataibility with other implementations,
|
||||
please do not use this)
|
||||
|
||||
This should be used after iso-dsdl-include.xsl and before the skeleton or
|
||||
meta-stylesheet (e.g. iso-svrl.xsl) . It only requires XSLT 1.
|
||||
|
|
@ -17,8 +18,45 @@
|
|||
Each kind of inclusion can be turned off (or on) on the command line.
|
||||
|
||||
-->
|
||||
<!--
|
||||
VERSION INFORMATION
|
||||
|
||||
<!--
|
||||
Open Source Initiative OSI - The MIT License:Licensing
|
||||
[OSI Approved License]
|
||||
|
||||
This source code was previously available under the zlib/libpng license.
|
||||
Attribution is polite.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2004-2010 Rick Jellife and Academia Sinica Computing Centre, Taiwan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
-->
|
||||
|
||||
<!--
|
||||
VERSION INFORMATION
|
||||
2013-09-19 RJ
|
||||
* Allow macro expansion in @path attributes, eg. for sch:name/@path
|
||||
|
||||
2010-07-10 RJ
|
||||
* Move to MIT license
|
||||
|
||||
2008-09-18 RJ
|
||||
* move out param test from iso:schema template to work with XSLT 1. (Noah Fontes)
|
||||
|
||||
|
|
@ -40,35 +78,11 @@
|
|||
* Original written for old namespace
|
||||
* http://www.topologi.com/resources/iso-pre-pro.xsl
|
||||
-->
|
||||
<!--
|
||||
LEGAL INFORMATION
|
||||
|
||||
Copyright (c) 2000-2008 Rick Jelliffe and Academia Sinica Computing Center, Taiwan
|
||||
|
||||
This software is provided 'as-is', without any express or implied warranty.
|
||||
In no event will the authors be held liable for any damages arising from
|
||||
the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it freely,
|
||||
subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not claim
|
||||
that you wrote the original software. If you use this software in a product,
|
||||
an acknowledgment in the product documentation would be appreciated but is
|
||||
not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
-->
|
||||
<xslt:stylesheet version="1.0" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:iso="http://purl.oclc.org/dsdl/schematron"
|
||||
xmlns:nvdl="http://purl.oclc.org/dsdl/nvdl"
|
||||
|
||||
|
||||
xmlns:iae="http://www.schematron.com/namespace/iae"
|
||||
|
||||
>
|
||||
|
|
@ -231,7 +245,7 @@
|
|||
<xslt:template mode="iae:do-pattern" match="*">
|
||||
<xslt:param name="caller"/>
|
||||
<xslt:copy>
|
||||
<xslt:for-each select="@*[name()='test' or name()='context' or name()='select']">
|
||||
<xslt:for-each select="@*[name()='test' or name()='context' or name()='select' or name()='path' ]">
|
||||
<xslt:attribute name="{name()}">
|
||||
<xslt:call-template name="iae:macro-expand">
|
||||
<xslt:with-param name="text"><xslt:value-of select="."/></xslt:with-param>
|
||||
|
|
@ -239,12 +253,13 @@
|
|||
</xslt:call-template>
|
||||
</xslt:attribute>
|
||||
</xslt:for-each>
|
||||
<xslt:copy-of select="@*[name()!='test'][name()!='context'][name()!='select']" />
|
||||
<xslt:copy-of select="@*[name()!='test'][name()!='context'][name()!='select'][name()!='path']" />
|
||||
<xsl:for-each select="node()">
|
||||
<xsl:choose>
|
||||
<!-- Experiment: replace macros in text as well, to allow parameterized assertions
|
||||
and so on, without having to have spurious <iso:value-of> calls and multiple
|
||||
delimiting -->
|
||||
delimiting.
|
||||
NOTE: THIS FUNCTIONALITY WILL BE REMOVED IN THE FUTURE -->
|
||||
<xsl:when test="self::text()">
|
||||
<xslt:call-template name="iae:macro-expand">
|
||||
<xslt:with-param name="text"><xslt:value-of select="."/></xslt:with-param>
|
||||
|
|
@ -293,4 +308,6 @@
|
|||
</xsl:choose>
|
||||
</xslt:template>
|
||||
|
||||
|
||||
|
||||
</xslt:stylesheet>
|
||||
|
|
@ -1,83 +1,84 @@
|
|||
ISO SCHEMATRON 2009
|
||||
|
||||
XSLT implementation by Rick Jelliffe with assistance from members of Schematron-love-in maillist.
|
||||
|
||||
2009-03-18
|
||||
|
||||
Two distributions are available. One is for XSLT1 engines.
|
||||
The other is for XSLT2 engines, such as SAXON 9.
|
||||
|
||||
|
||||
This version of Schematron splits the process into a pipeline of several different XSLT stages.
|
||||
|
||||
1) First, preprocess your Schematron schema with iso_dsdl_include.xsl.
|
||||
This is a macro processor to assemble the schema from various parts.
|
||||
If your schema is not in separate parts, you can skip this stage.
|
||||
|
||||
2) Second, preprocess the output from stage 1 with iso_abstract_expand.xsl.
|
||||
This is a macro processor to convert abstract patterns to real patterns.
|
||||
If your schema does not use abstract patterns, you can skip this
|
||||
stage.
|
||||
|
||||
3) Third, compile the Schematron schema into an XSLT script.
|
||||
This will typically use iso_svrl_for_xslt1.xsl or iso_svrl_for_xslt2.xsl
|
||||
(which in turn invoke iso_schematron_skeleton_for_xslt1.xsl or iso_schematron_skeleton_for_saxon.xsl)
|
||||
However, other "meta-styleseets" are also in common use; the principle of operation is the same.
|
||||
If your schema uses Schematron phases, supply these as command line/invocation parameters
|
||||
to this process.
|
||||
|
||||
4) Fourth, run the script generated by stage 3 against the document being validated.
|
||||
If you are using the SVRL script, then the output of validation will be an XML document.
|
||||
If your schema uses Schematron parameters, supply these as command line/invocation parameters
|
||||
to this process.
|
||||
|
||||
|
||||
The XSLT2 distribution also features several next generation features,
|
||||
such as validating multiple documents. See the source code for details.
|
||||
|
||||
Schematron assertions can be written in any language, of course; the file
|
||||
sch-messages-en.xhtml contains the diagnostics messages from the XSLT2 skeleton
|
||||
in English, and this can be used as template to localize the skeleton's
|
||||
error messages. Note that typically programming errors in Schematron are XPath
|
||||
errors, which requires localized messages from the XSLT engine.
|
||||
|
||||
ANT
|
||||
---
|
||||
To give an example of how to process a document, here is a sample ANT task.
|
||||
|
||||
<target name="schematron-compile-test" >
|
||||
|
||||
<!-- expand inclusions -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_dsdl_include.xsl" in="test.sch" out="test1.sch">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
<!-- expand abstract patterns -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_abstract_expand.xsl" in="test1.sch" out="test2.sch">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
|
||||
|
||||
<!-- compile it -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_svrl_for_xslt2.xsl" in="test2.sch" out="test.xsl">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
<!-- validate -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="test.xsl" in="instance.xml" out="instance.svrlt">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
</target>
|
||||
ISO SCHEMATRON 2010
|
||||
|
||||
XSLT implementation by Rick Jelliffe with assistance from members of Schematron-love-in maillist.
|
||||
|
||||
2010-04-21
|
||||
|
||||
Two distributions are available. One is for XSLT1 engines.
|
||||
The other is for XSLT2 engines, such as SAXON 9.
|
||||
|
||||
|
||||
This version of Schematron splits the process into a pipeline of several different XSLT stages.
|
||||
|
||||
1) First, preprocess your Schematron schema with iso_dsdl_include.xsl.
|
||||
This is a macro processor to assemble the schema from various parts.
|
||||
If your schema is not in separate parts, you can skip this stage.
|
||||
This stage also generates error messages for some common XPath syntax problems.
|
||||
|
||||
2) Second, preprocess the output from stage 1 with iso_abstract_expand.xsl.
|
||||
This is a macro processor to convert abstract patterns to real patterns.
|
||||
If your schema does not use abstract patterns, you can skip this
|
||||
stage.
|
||||
|
||||
3) Third, compile the Schematron schema into an XSLT script.
|
||||
This will typically use iso_svrl_for_xslt1.xsl or iso_svrl_for_xslt2.xsl
|
||||
(which in turn invoke iso_schematron_skeleton_for_xslt1.xsl or iso_schematron_skeleton_for_saxon.xsl)
|
||||
However, other "meta-stylesheets" are also in common use; the principle of operation is the same.
|
||||
If your schema uses Schematron phases, supply these as command line/invocation parameters
|
||||
to this process.
|
||||
|
||||
4) Fourth, run the script generated by stage 3 against the document being validated.
|
||||
If you are using the SVRL script, then the output of validation will be an XML document.
|
||||
If your schema uses Schematron parameters, supply these as command line/invocation parameters
|
||||
to this process.
|
||||
|
||||
|
||||
The XSLT2 distribution also features several next generation features,
|
||||
such as validating multiple documents. See the source code for details.
|
||||
|
||||
Schematron assertions can be written in any language, of course; the file
|
||||
sch-messages-en.xhtml contains the diagnostics messages from the XSLT2 skeleton
|
||||
in English, and this can be used as template to localize the skeleton's
|
||||
error messages. Note that typically programming errors in Schematron are XPath
|
||||
errors, which requires localized messages from the XSLT engine.
|
||||
|
||||
ANT
|
||||
---
|
||||
To give an example of how to process a document, here is a sample ANT task.
|
||||
|
||||
<target name="schematron-compile-test" >
|
||||
|
||||
<!-- expand inclusions -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_dsdl_include.xsl" in="test.sch" out="test1.sch">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
<!-- expand abstract patterns -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_abstract_expand.xsl" in="test1.sch" out="test2.sch">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
|
||||
|
||||
<!-- compile it -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="iso_svrl_for_xslt2.xsl" in="test2.sch" out="test.xsl">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
|
||||
<!-- validate -->
|
||||
<xslt basedir="test/schematron"
|
||||
style="test.xsl" in="instance.xml" out="instance.svrlt">
|
||||
<classpath>
|
||||
<pathelement location="${lib.dir}/saxon9.jar"/>
|
||||
</classpath>
|
||||
</xslt>
|
||||
</target>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue