schematron 0.1.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
1
+ <?xml version="1.0" ?><?xar XSLT?>
2
+ <!-- Implmentation for the Schematron XML Schema Language.
3
+ http://www.ascc.net/xml/resource/schematron/schematron.html
4
+
5
+ Copyright (c) 2000,2001 Rick Jelliffe and Academia Sinica Computing Center, Taiwan
6
+
7
+ This software is provided 'as-is', without any express or implied warranty.
8
+ In no event will the authors be held liable for any damages arising from
9
+ the use of this software.
10
+
11
+ Permission is granted to anyone to use this software for any purpose,
12
+ including commercial applications, and to alter it and redistribute it freely,
13
+ subject to the following restrictions:
14
+
15
+ 1. The origin of this software must not be misrepresented; you must not claim
16
+ that you wrote the original software. If you use this software in a product,
17
+ an acknowledgment in the product documentation would be appreciated but is
18
+ not required.
19
+
20
+ 2. Altered source versions must be plainly marked as such, and must not be
21
+ misrepresented as being the original software.
22
+
23
+ 3. This notice may not be removed or altered from any source distribution.
24
+ -->
25
+
26
+ <!-- Schematron message -->
27
+
28
+ <xsl:stylesheet
29
+ version="1.0"
30
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
31
+ xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">
32
+
33
+ <xsl:import href="iso_schematron_skeleton_for_xslt1.xsl"/>
34
+
35
+ <xsl:template name="process-prolog">
36
+ <axsl:output method="text" />
37
+ </xsl:template>
38
+
39
+ <!-- use default rule for process-root: copy contens / ignore title -->
40
+ <!-- use default rule for process-pattern: ignore name and see -->
41
+ <!-- use default rule for process-name: output name -->
42
+ <!-- use default rule for process-assert and process-report:
43
+ call process-message -->
44
+
45
+ <xsl:template name="process-message">
46
+ <xsl:param name="pattern" />
47
+ <xsl:param name="role" />
48
+ <axsl:message>
49
+ <xsl:apply-templates mode="text"
50
+ /> (<xsl:value-of select="$pattern" />
51
+ <xsl:if test="$role"> / <xsl:value-of select="$role" />
52
+ </xsl:if>)</axsl:message>
53
+ </xsl:template>
54
+
55
+ </xsl:stylesheet>
@@ -172,8 +172,24 @@
172
172
 
173
173
  3. This notice may not be removed or altered from any source distribution.
174
174
  -->
175
- <!--
176
- VERSION INFORMATION
175
+ <!--
176
+ NOTE: Compared to the iso_schematron_skeleton_for_saxon.xsl code, this version is currently missing
177
+ 1) localization
178
+ 2) properties
179
+ 3) pattern/@documents
180
+
181
+ VERSION INFORMATION
182
+
183
+ 2010-01-24 RJ
184
+ * Allow let elements to have direct content instead of @value
185
+ 2009-02-25 RJ
186
+ * Fix up variable names so none are used twice in same template
187
+ * Tested on SAXON 9, Xalan 2.7.1. Partly tested MSXML.
188
+ 2008-09-19 RJ
189
+ * Add mode schematron-select-full-path and param full-path-notation
190
+
191
+ 2008-08-11
192
+ * TT report/@flag was missing
177
193
  2008-08-06
178
194
  * TT Top-level lets need to be implemented using xsl:param not xsl:variable
179
195
  * TT xsl:param/@select must have XPath or not be specified
@@ -468,7 +484,14 @@
468
484
  <!-- e.g. saxon file.xml file.xsl "sch.exslt.imports=.../string.xsl;.../math.xsl" -->
469
485
  <xsl:param name="sch.exslt.imports"/>
470
486
 
471
- <xsl:param name="debug">false</xsl:param>
487
+ <!-- Set the language code for messages -->
488
+ <xsl:param name="langCode">default</xsl:param>
489
+
490
+ <xsl:param name="debug">false</xsl:param>
491
+
492
+
493
+ <!-- Set the default for schematron-select-full-path, i.e. the notation for svrl's @location-->
494
+ <xsl:param name="full-path-notation">1</xsl:param>
472
495
 
473
496
  <!-- Simple namespace check -->
474
497
  <xsl:template match="/">
@@ -591,7 +614,33 @@
591
614
  </xsl:if>
592
615
  </xsl:template>
593
616
 
594
- <xsl:template name="generate-default-rules">
617
+ <xsl:template name="generate-default-rules">
618
+ <xsl:text>&#10;&#10;</xsl:text>
619
+ <xsl:comment>MODE: SCHEMATRON-SELECT-FULL-PATH</xsl:comment><xsl:text>&#10;</xsl:text>
620
+ <xsl:comment>This mode can be used to generate an ugly though full XPath for locators</xsl:comment><xsl:text>&#10;</xsl:text>
621
+ <axsl:template match="*" mode="schematron-select-full-path">
622
+ <xsl:choose>
623
+ <xsl:when test=" $full-path-notation = '1' ">
624
+ <!-- Use for computers, but rather unreadable for humans -->
625
+ <axsl:apply-templates select="." mode="schematron-get-full-path"/>
626
+ </xsl:when>
627
+ <xsl:when test=" $full-path-notation = '2' ">
628
+ <!-- Use for humans, but no good for paths unless namespaces are known out-of-band -->
629
+ <axsl:apply-templates select="." mode="schematron-get-full-path-2"/>
630
+ </xsl:when>
631
+ <xsl:when test=" $full-path-notation = '3' ">
632
+ <!-- Obsolescent. Use for humans, but no good for paths unless namespaces are known out-of-band -->
633
+ <axsl:apply-templates select="." mode="schematron-get-full-path-3"/>
634
+ </xsl:when>
635
+
636
+ <xsl:otherwise >
637
+ <!-- Use for computers, but rather unreadable for humans -->
638
+ <axsl:apply-templates select="." mode="schematron-get-full-path"/>
639
+ </xsl:otherwise>
640
+ </xsl:choose>
641
+ </axsl:template>
642
+
643
+
595
644
  <xsl:text>&#10;&#10;</xsl:text>
596
645
  <xsl:comment>MODE: SCHEMATRON-FULL-PATH</xsl:comment><xsl:text>&#10;</xsl:text>
597
646
  <xsl:comment>This mode can be used to generate an ugly though full XPath for locators</xsl:comment><xsl:text>&#10;</xsl:text>
@@ -604,10 +653,10 @@
604
653
  <axsl:choose>
605
654
  <axsl:when test="namespace-uri()=''">
606
655
  <axsl:value-of select="name()"/>
607
- <axsl:variable name="p" select="1+
656
+ <axsl:variable name="p_1" select="1+
608
657
  count(preceding-sibling::*[name()=name(current())])" />
609
- <axsl:if test="$p&gt;1 or following-sibling::*[name()=name(current())]">
610
- <xsl:text/>[<axsl:value-of select="$p"/>]<xsl:text/>
658
+ <axsl:if test="$p_1&gt;1 or following-sibling::*[name()=name(current())]">
659
+ <xsl:text/>[<axsl:value-of select="$p_1"/>]<xsl:text/>
611
660
  </axsl:if>
612
661
  </axsl:when>
613
662
  <axsl:otherwise>
@@ -615,10 +664,10 @@
615
664
  <axsl:value-of select="local-name()"/><axsl:text>' and namespace-uri()='</axsl:text>
616
665
  <axsl:value-of select="namespace-uri()"/>
617
666
  <axsl:text>']</axsl:text>
618
- <axsl:variable name="p" select="1+
667
+ <axsl:variable name="p_2" select="1+
619
668
  count(preceding-sibling::*[local-name()=local-name(current())])" />
620
- <axsl:if test="$p&gt;1 or following-sibling::*[local-name()=local-name(current())]">
621
- <xsl:text/>[<axsl:value-of select="$p"/>]<xsl:text/>
669
+ <axsl:if test="$p_2&gt;1 or following-sibling::*[local-name()=local-name(current())]">
670
+ <xsl:text/>[<axsl:value-of select="$p_2"/>]<xsl:text/>
622
671
  </axsl:if>
623
672
  </axsl:otherwise>
624
673
  </axsl:choose>
@@ -868,7 +917,8 @@
868
917
  <xsl:call-template name="process-report">
869
918
  <xsl:with-param name="test" select="normalize-space(@test)" />
870
919
  <xsl:with-param name="diagnostics" select="@diagnostics"/>
871
-
920
+ <xsl:with-param name="flag" select="@flag"/>
921
+
872
922
  <!-- "Rich" properties -->
873
923
  <xsl:with-param name="fpi" select="@fpi"/>
874
924
  <xsl:with-param name="icon" select="@icon"/>
@@ -1019,22 +1069,22 @@
1019
1069
  </xsl:when>
1020
1070
 
1021
1071
  <xsl:when test="string-length( $fragment-id ) &gt; 0">
1022
- <xsl:variable name="theDocument" select="document( $document-uri,/ )" />
1023
- <xsl:variable name="theFragment" select="$theDocument//iso:*[@id= $fragment-id ]" />
1024
- <xsl:if test=" $theFragment/self::iso:schema ">
1072
+ <xsl:variable name="theDocument_1" select="document( $document-uri,/ )" />
1073
+ <xsl:variable name="theFragment_1" select="$theDocument_1//iso:*[@id= $fragment-id ]" />
1074
+ <xsl:if test=" $theFragment_1/self::iso:schema ">
1025
1075
  <xsl:message>Schema error: Use include to include fragments, not a whole schema</xsl:message>
1026
1076
  </xsl:if>
1027
- <xsl:apply-templates select=" $theFragment"/>
1077
+ <xsl:apply-templates select=" $theFragment_1"/>
1028
1078
  </xsl:when>
1029
1079
 
1030
1080
  <xsl:otherwise>
1031
- <xsl:variable name="theDocument" select="document( $document-uri,/ )" />
1032
- <xsl:variable name="theFragment" select="$theDocument/iso:*" />
1033
- <xsl:variable name="theContainedFragments" select="$theDocument/*/iso:*" />
1034
- <xsl:if test=" $theFragment/self::iso:schema or $theContainedFragments/self::iso:schema">
1081
+ <xsl:variable name="theDocument_2" select="document( $document-uri,/ )" />
1082
+ <xsl:variable name="theFragment_2" select="$theDocument_2/iso:*" />
1083
+ <xsl:variable name="theContainedFragments" select="$theDocument_2/*/iso:*" />
1084
+ <xsl:if test=" $theFragment_2/self::iso:schema or $theContainedFragments/self::iso:schema">
1035
1085
  <xsl:message>Schema error: Use include to include fragments, not a whole schema</xsl:message>
1036
1086
  </xsl:if>
1037
- <xsl:apply-templates select="$theFragment | $theContainedFragments "/>
1087
+ <xsl:apply-templates select="$theFragment_2 | $theContainedFragments "/>
1038
1088
  </xsl:otherwise>
1039
1089
  </xsl:choose>
1040
1090
  </xsl:template>
@@ -1051,24 +1101,24 @@
1051
1101
  </xsl:when>
1052
1102
 
1053
1103
  <xsl:when test="string-length( $fragment-id ) &gt; 0">
1054
- <xsl:variable name="theDocument" select="document( $document-uri,/ )" />
1055
- <xsl:variable name="theFragment" select="$theDocument//iso:*[@id= $fragment-id ]" />
1056
- <xsl:if test=" $theFragment/self::iso:schema ">
1104
+ <xsl:variable name="theDocument_1" select="document( $document-uri,/ )" />
1105
+ <xsl:variable name="theFragment_1" select="$theDocument_1//iso:*[@id= $fragment-id ]" />
1106
+ <xsl:if test=" $theFragment_1/self::iso:schema ">
1057
1107
  <xsl:message>Schema error: Use include to include fragments, not a whole schema</xsl:message>
1058
1108
  </xsl:if>
1059
- <xsl:apply-templates select=" $theFragment" mode="do-all-patterns"/>
1109
+ <xsl:apply-templates select=" $theFragment_1" mode="do-all-patterns"/>
1060
1110
  </xsl:when>
1061
1111
 
1062
1112
  <xsl:otherwise>
1063
1113
  <!-- Import the top-level element if it is in schematron namespace,
1064
1114
  or its children otherwise, to allow a simple containment mechanism. -->
1065
- <xsl:variable name="theDocument" select="document( $document-uri,/ )" />
1066
- <xsl:variable name="theFragment" select="$theDocument/iso:*" />
1067
- <xsl:variable name="theContainedFragments" select="$theDocument/*/iso:*" />
1068
- <xsl:if test=" $theFragment/self::iso:schema or $theContainedFragments/self::iso:schema">
1115
+ <xsl:variable name="theDocument_2" select="document( $document-uri,/ )" />
1116
+ <xsl:variable name="theFragment_2" select="$theDocument_2/iso:*" />
1117
+ <xsl:variable name="theContainedFragments" select="$theDocument_2/*/iso:*" />
1118
+ <xsl:if test=" $theFragment_2/self::iso:schema or $theContainedFragments/self::iso:schema">
1069
1119
  <xsl:message>Schema error: Use include to include fragments, not a whole schema</xsl:message>
1070
1120
  </xsl:if>
1071
- <xsl:apply-templates select="$theFragment | $theContainedFragments "
1121
+ <xsl:apply-templates select="$theFragment_2 | $theContainedFragments "
1072
1122
  mode="do-all-patterns" />
1073
1123
  </xsl:otherwise>
1074
1124
  </xsl:choose>
@@ -1080,19 +1130,41 @@
1080
1130
  <xsl:message>Warning: Variables should not be used with the "xpath" query language binding.</xsl:message>
1081
1131
  </xsl:if>
1082
1132
 
1083
- <!-- lets at the top-level are implemented as parameters -->
1133
+ <!-- lets at the top-level are implemented as parameters unless they have contents -->
1084
1134
 
1085
1135
  <xsl:choose>
1136
+ <!-- TODO: what about top-level lets that include data? -->
1086
1137
  <xsl:when test="parent::iso:schema">
1087
1138
  <!-- it is an error to have an empty param/@select because an XPath is expected -->
1088
- <axsl:param name="{@name}" select="{@value}">
1089
- <xsl:if test="string-length(@value) &gt; 0">
1090
- <xsl:attribute name="select"><xsl:value-of select="@value"/></xsl:attribute>
1091
- </xsl:if>
1092
- </axsl:param>
1139
+ <!-- So why is the select="{@value}" still there? because the let always has a value! -->
1140
+ <!-- TODO: remove spurious let. -->
1141
+ <xsl:choose>
1142
+ <xsl:when test="@value">
1143
+ <axsl:param name="{@name}" select="{@value}">
1144
+ <xsl:if test="string-length(@value) &gt; 0">
1145
+ <xsl:attribute name="select"><xsl:value-of select="@value"/></xsl:attribute>
1146
+ </xsl:if>
1147
+ </axsl:param>
1148
+ </xsl:when>
1149
+ <xsl:otherwise>
1150
+ <axsl:variable name="{@name}" >
1151
+ <xsl:copy-of select="child::node()" />
1152
+ </axsl:variable>
1153
+ </xsl:otherwise>
1154
+ </xsl:choose>
1093
1155
  </xsl:when>
1094
1156
  <xsl:otherwise>
1095
- <axsl:variable name="{@name}" select="{@value}"/>
1157
+ <xsl:choose>
1158
+ <xsl:when test="@value">
1159
+ <axsl:variable name="{@name}" select="{@value}"/>
1160
+ </xsl:when>
1161
+ <xsl:otherwise>
1162
+ <axsl:variable name="{@name}" >
1163
+ <xsl:copy-of select="child::node()" />
1164
+ </axsl:variable>
1165
+ </xsl:otherwise>
1166
+ </xsl:choose>
1167
+
1096
1168
  </xsl:otherwise>
1097
1169
  </xsl:choose>
1098
1170
 
@@ -29,7 +29,9 @@
29
29
  validate with schemas from either namespace.
30
30
 
31
31
 
32
- History:
32
+ History:
33
+ 2009-03-18
34
+ * Fix atrribute with space "see " which generates wrong name in some processors
33
35
  2008-08-11
34
36
  * RJ Fix attribute/@select which saxon allows in XSLT 1
35
37
  2008-08-07
@@ -113,7 +115,7 @@
113
115
 
114
116
  <!-- The command-line parameters are:
115
117
  phase NMTOKEN | "#ALL" (default) Select the phase for validation
116
- allow-foreign "true" | "false" (default) Pass non-Schematron elements to the generated stylesheet
118
+ allow-foreign "true" | "false" (default) Pass non-Schematron elements and rich markup to the generated stylesheet
117
119
  diagnose= true | false|yes|no Add the diagnostics to the assertion test in reports (yes|no are obsolete)
118
120
  generate-paths=true|false|yes|no generate the @location attribute with XPaths (yes|no are obsolete)
119
121
  sch.exslt.imports semi-colon delimited string of filenames for some EXSLT implementations
@@ -133,12 +135,15 @@
133
135
  >
134
136
 
135
137
  <!-- Select the import statement and adjust the path as
136
- necessary for your system.
137
- -->
138
- <xsl:import href="iso_schematron_skeleton_for_xslt1.xsl"/>
138
+ necessary for your system.
139
+ If not XSLT2 then also remove svrl:active-pattern/@document="{document-uri()}" from process-pattern()
140
+ -->
139
141
  <!--
140
142
  <xsl:import href="iso_schematron_skeleton_for_saxon.xsl"/>
141
-
143
+ -->
144
+
145
+ <xsl:import href="iso_schematron_skeleton_for_xslt1.xsl"/>
146
+ <!--
142
147
  <xsl:import href="iso_schematron_skeleton.xsl"/>
143
148
  <xsl:import href="skeleton1-5.xsl"/>
144
149
  <xsl:import href="skeleton1-6.xsl"/>
@@ -474,7 +479,7 @@
474
479
  <xsl:param name="lang" />
475
480
  <xsl:param name="see" />
476
481
  <xsl:param name="space" />
477
- <svrl:active-pattern >
482
+ <svrl:active-pattern >
478
483
  <xsl:if test=" string( $id )">
479
484
  <axsl:attribute name="id">
480
485
  <xsl:value-of select=" $id " />
@@ -537,17 +542,17 @@
537
542
  <xsl:if test=" $allow-foreign = 'true'">
538
543
  <xsl:if test="string($fpi)">
539
544
  <axsl:attribute name="fpi">
540
- <xsl:value-of select="$fpi "/>
545
+ <xsl:value-of select="$fpi"/>
541
546
  </axsl:attribute>
542
547
  </xsl:if>
543
548
  <xsl:if test="string($icon)">
544
549
  <axsl:attribute name="icon">
545
- <xsl:value-of select="$icon "/>
550
+ <xsl:value-of select="$icon"/>
546
551
  </axsl:attribute>
547
552
  </xsl:if>
548
553
  <xsl:if test="string($see)">
549
- <axsl:attribute name="see ">
550
- <xsl:value-of select="$see "/>
554
+ <axsl:attribute name="see">
555
+ <xsl:value-of select="$see"/>
551
556
  </axsl:attribute>
552
557
  </xsl:if>
553
558
  </xsl:if>
@@ -0,0 +1,83 @@
1
+ ISO SCHEMATRON 2010
2
+
3
+ XSLT implementation by Rick Jelliffe with assistance from members of Schematron-love-in maillist.
4
+
5
+ 2010-01-25
6
+
7
+ Two distributions are available. One is for XSLT1 engines.
8
+ The other is for XSLT2 engines, such as SAXON 9.
9
+
10
+
11
+ This version of Schematron splits the process into a pipeline of several different XSLT stages.
12
+
13
+ 1) First, preprocess your Schematron schema with iso_dsdl_include.xsl.
14
+ This is a macro processor to assemble the schema from various parts.
15
+ If your schema is not in separate parts, you can skip this stage.
16
+
17
+ 2) Second, preprocess the output from stage 1 with iso_abstract_expand.xsl.
18
+ This is a macro processor to convert abstract patterns to real patterns.
19
+ If your schema does not use abstract patterns, you can skip this
20
+ stage.
21
+
22
+ 3) Third, compile the Schematron schema into an XSLT script.
23
+ This will typically use iso_svrl_for_xslt1.xsl or iso_svrl_for_xslt2.xsl
24
+ (which in turn invoke iso_schematron_skeleton_for_xslt1.xsl or iso_schematron_skeleton_for_saxon.xsl)
25
+ However, other "meta-styleseets" are also in common use; the principle of operation is the same.
26
+ If your schema uses Schematron phases, supply these as command line/invocation parameters
27
+ to this process.
28
+
29
+ 4) Fourth, run the script generated by stage 3 against the document being validated.
30
+ If you are using the SVRL script, then the output of validation will be an XML document.
31
+ If your schema uses Schematron parameters, supply these as command line/invocation parameters
32
+ to this process.
33
+
34
+
35
+ The XSLT2 distribution also features several next generation features,
36
+ such as validating multiple documents. See the source code for details.
37
+
38
+ Schematron assertions can be written in any language, of course; the file
39
+ sch-messages-en.xhtml contains the diagnostics messages from the XSLT2 skeleton
40
+ in English, and this can be used as template to localize the skeleton's
41
+ error messages. Note that typically programming errors in Schematron are XPath
42
+ errors, which requires localized messages from the XSLT engine.
43
+
44
+ ANT
45
+ ---
46
+ To give an example of how to process a document, here is a sample ANT task.
47
+
48
+ <target name="schematron-compile-test" >
49
+
50
+ <!-- expand inclusions -->
51
+ <xslt basedir="test/schematron"
52
+ style="iso_dsdl_include.xsl" in="test.sch" out="test1.sch">
53
+ <classpath>
54
+ <pathelement location="${lib.dir}/saxon9.jar"/>
55
+ </classpath>
56
+ </xslt>
57
+
58
+ <!-- expand abstract patterns -->
59
+ <xslt basedir="test/schematron"
60
+ style="iso_abstract_expand.xsl" in="test1.sch" out="test2.sch">
61
+ <classpath>
62
+ <pathelement location="${lib.dir}/saxon9.jar"/>
63
+ </classpath>
64
+ </xslt>
65
+
66
+
67
+
68
+ <!-- compile it -->
69
+ <xslt basedir="test/schematron"
70
+ style="iso_svrl_for_xslt2.xsl" in="test2.sch" out="test.xsl">
71
+ <classpath>
72
+ <pathelement location="${lib.dir}/saxon9.jar"/>
73
+ </classpath>
74
+ </xslt>
75
+
76
+ <!-- validate -->
77
+ <xslt basedir="test/schematron"
78
+ style="test.xsl" in="instance.xml" out="instance.svrlt">
79
+ <classpath>
80
+ <pathelement location="${lib.dir}/saxon9.jar"/>
81
+ </classpath>
82
+ </xslt>
83
+ </target>
data/lib/schematron.rb CHANGED
@@ -7,12 +7,12 @@ module Schematron
7
7
  include LibXSLT
8
8
 
9
9
  # The location of the ISO schematron implemtation lives
10
- ISO_IMPL_DIR = File.join File.dirname(__FILE__), "..", 'iso_impl'
10
+ ISO_IMPL_DIR = File.join File.dirname(__FILE__), "..", 'iso-schematron-xslt1'
11
11
 
12
12
  # The file names of the compilation stages
13
13
  ISO_FILES = [ 'iso_dsdl_include.xsl',
14
14
  'iso_abstract_expand.xsl',
15
- 'iso_svrl.xsl' ]
15
+ 'iso_svrl_for_xslt1.xsl' ]
16
16
 
17
17
  # Namespace prefix declarations for use in XPaths
18
18
  NS_PREFIXES = {
@@ -27,7 +27,7 @@ module Schematron
27
27
  xforms = ISO_FILES.map do |file|
28
28
 
29
29
  Dir.chdir(ISO_IMPL_DIR) do
30
- doc = XML::Document.file file
30
+ doc = open(file) { |io| XML::Document.string io.read }
31
31
  LibXSLT::XSLT::Stylesheet.new doc
32
32
  end
33
33
 
data/schematron.gemspec CHANGED
@@ -1,38 +1,19 @@
1
+ require 'semver'
2
+
1
3
  Gem::Specification.new do |spec|
2
4
  spec.name = "schematron"
3
- spec.version = '0.1.2'
5
+ spec.version = SemVer.find.format '%M.%m.%p'
4
6
  spec.summary = "ISO Schematron Validation"
5
7
  spec.email = "flazzarino@gmail.com"
6
8
  spec.homepage = 'http://github.com/flazz/schematron'
7
9
  spec.authors = ["Francesco Lazzarino"]
8
- #spec.rubyforge_project = 'schematron'
9
-
10
10
  spec.executables << 'stron'
11
11
 
12
- spec.files = ["Rakefile", "schematron.gemspec", "README.md", "LICENSE.txt",
13
- "bin/stron",
14
- "lib/schematron.rb",
15
- "iso_impl/iso_abstract_expand.xsl",
16
- "iso_impl/iso_dsdl_include.xsl",
17
- "iso_impl/iso_schematron_skeleton_for_saxon.xsl",
18
- "iso_impl/iso_schematron_skeleton_for_xslt1.xsl",
19
- "iso_impl/iso_schematron_text.xsl",
20
- "iso_impl/iso_svrl.xsl",
21
- "spec/command_spec.rb",
22
- "spec/feature_requests_spec.rb",
23
- "spec/instances",
24
- "spec/instances/daitss-sip",
25
- "spec/instances/daitss-sip/Example1.xml",
26
- "spec/instances/daitss-sip/Example2.xml",
27
- "spec/instances/premis-in-mets",
28
- "spec/instances/premis-in-mets/bad.xml",
29
- "spec/instances/premis-in-mets/good.xml",
30
- "spec/schema",
31
- "spec/schema/fda_sip.sch",
32
- "spec/schema/pim.sch",
33
- "spec/schema_spec.rb",
34
- "spec/spec_helper.rb"]
35
-
12
+ spec.files = ["schematron.gemspec", "README.md", "LICENSE.txt", '.semver']
13
+ spec.files += Dir['lib/*.rb']
14
+ spec.files += Dir['spec/**/*']
15
+ spec.files += Dir['iso-schematron-xslt1/*']
16
+ spec.add_dependency 'semver', '~> 0.1.0'
36
17
  spec.add_dependency 'libxml-ruby', '~> 1.1.2'
37
18
  spec.add_dependency 'libxslt-ruby', '>= 0.9.1'
38
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schematron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Francesco Lazzarino
@@ -9,9 +9,19 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-28 00:00:00 -05:00
12
+ date: 2010-03-08 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: semver
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 0.1.0
24
+ version:
15
25
  - !ruby/object:Gem::Dependency
16
26
  name: libxml-ruby
17
27
  type: :runtime
@@ -41,18 +51,12 @@ extensions: []
41
51
  extra_rdoc_files: []
42
52
 
43
53
  files:
44
- - Rakefile
45
54
  - schematron.gemspec
46
55
  - README.md
47
56
  - LICENSE.txt
57
+ - .semver
48
58
  - bin/stron
49
59
  - lib/schematron.rb
50
- - iso_impl/iso_abstract_expand.xsl
51
- - iso_impl/iso_dsdl_include.xsl
52
- - iso_impl/iso_schematron_skeleton_for_saxon.xsl
53
- - iso_impl/iso_schematron_skeleton_for_xslt1.xsl
54
- - iso_impl/iso_schematron_text.xsl
55
- - iso_impl/iso_svrl.xsl
56
60
  - spec/command_spec.rb
57
61
  - spec/feature_requests_spec.rb
58
62
  - spec/instances/daitss-sip/Example1.xml
@@ -63,6 +67,12 @@ files:
63
67
  - spec/schema/pim.sch
64
68
  - spec/schema_spec.rb
65
69
  - spec/spec_helper.rb
70
+ - iso-schematron-xslt1/iso_abstract_expand.xsl
71
+ - iso-schematron-xslt1/iso_dsdl_include.xsl
72
+ - iso-schematron-xslt1/iso_schematron_message.xsl
73
+ - iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl
74
+ - iso-schematron-xslt1/iso_svrl_for_xslt1.xsl
75
+ - iso-schematron-xslt1/readme.txt
66
76
  has_rdoc: true
67
77
  homepage: http://github.com/flazz/schematron
68
78
  licenses: []
data/Rakefile DELETED
@@ -1,14 +0,0 @@
1
- require 'rake'
2
- require 'rake/rdoctask'
3
- require 'spec/rake/spectask'
4
-
5
- Spec::Rake::SpecTask.new('spec') do |t|
6
- t.libs << 'lib'
7
- t.libs << 'spec'
8
- t.spec_opts << "--color"
9
- # t.warning = true
10
- # t.rcov = true
11
- # t.rcov_opts += ["-x /Library", "-x spec"]
12
- end
13
-
14
- task :default => [:spec]