diff --git a/CHANGELOG.md b/CHANGELOG.md
index 53708cb..cc55b93 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changes
+## 0.4.11
+
+- adds utilities for generating SEED config for chained transformations (fixes issue #20)
+- adds a testing package for SEED with chained transformation
+
## 0.4.10
- adds saxon config for SEED with assertions enabled (fixes issue #18)
diff --git a/build.xml b/build.xml
index fb98b13..dfd95c7 100644
--- a/build.xml
+++ b/build.xml
@@ -27,6 +27,11 @@
+
+
+
+
+
@@ -77,4 +82,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/assembly.xml b/distribution/seed/assembly.xml
index f2fe437..502f8dd 100644
--- a/distribution/seed/assembly.xml
+++ b/distribution/seed/assembly.xml
@@ -37,6 +37,16 @@
wiki/**
+
+ ${project.build.directory}/generated-resources/xml/xslt
+ /${project.artifactId}
+
+ **/*.seed.json
+
+
+ test/**
+
+
target/dependencies
@@ -59,6 +69,9 @@
saxon.*.xml
+
+ test/**
+
distribution/seed
@@ -75,14 +88,17 @@
${project.artifactId}.yaml
-
-
- ${project.basedir}
- /
-
- ${project.artifactId}.yaml
-
-
+
+
+ ${project.build.directory}/generated-resources/xml/xslt/pom.json
+ ${project.artifactId}.json
+
+
+ ${project.build.directory}/generated-resources/yml/pom.yml
+ ${project.artifactId}.yaml
+
+
+
diff --git a/distribution/seed/chain.xsl b/distribution/seed/chain.xsl
new file mode 100644
index 0000000..6171e17
--- /dev/null
+++ b/distribution/seed/chain.xsl
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ media-type-package
+
+ xs:string?
+
+
+ media-type-package-version
+
+ xs:string
+
+
+ media-type-component
+
+ xs:string
+
+
+ media-type-processor
+
+ xs:string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/chain.xspec b/distribution/seed/chain.xspec
new file mode 100644
index 0000000..3cc085e
--- /dev/null
+++ b/distribution/seed/chain.xspec
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/merge.xsl b/distribution/seed/merge.xsl
new file mode 100644
index 0000000..3c4b312
--- /dev/null
+++ b/distribution/seed/merge.xsl
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ collection URI:
+
+
+
+
+
+ No JSON files
+
+
+
+
+
+
+ JSON files:
+
+
+
+
+
+
+
+ JSON files:
+
+
+
+
+
+
diff --git a/distribution/seed/merge.xspec b/distribution/seed/merge.xspec
new file mode 100644
index 0000000..8914fd0
--- /dev/null
+++ b/distribution/seed/merge.xspec
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/seed-config-chain.xsl b/distribution/seed/seed-config-chain.xsl
new file mode 100644
index 0000000..de42355
--- /dev/null
+++ b/distribution/seed/seed-config-chain.xsl
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ media-type-package
+
+
+
+
+ media-type-package-version
+
+
+
+
+ media-type-component
+
+
+
+
+ media-type-processor
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/seed-config-chain.xspec b/distribution/seed/seed-config-chain.xspec
new file mode 100644
index 0000000..016cf72
--- /dev/null
+++ b/distribution/seed/seed-config-chain.xspec
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/seed-config.xsl b/distribution/seed/seed-config.xsl
index 52212cf..897fa0c 100644
--- a/distribution/seed/seed-config.xsl
+++ b/distribution/seed/seed-config.xsl
@@ -48,8 +48,7 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
otherwise they are prefixed with $upload-uri. -->
-
+
@@ -60,11 +59,13 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
}
}"/>
-
+
+
-
+
+
@@ -78,6 +79,23 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -98,8 +118,7 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
-
+
@@ -114,31 +133,62 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
/>
-
-
-
+
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -147,9 +197,72 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ package not found:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ selecting package
+
+
+
@@ -181,17 +294,14 @@ target/bin/xslt.sh -xsl:distribution/seed/seed-config.xsl saxon-config-uri=https
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
diff --git a/distribution/seed/seed-config.xspec b/distribution/seed/seed-config.xspec
new file mode 100644
index 0000000..cdc0403
--- /dev/null
+++ b/distribution/seed/seed-config.xspec
@@ -0,0 +1,63 @@
+
+
+
+ dts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/seed/test-assembly.xml b/distribution/seed/test-assembly.xml
new file mode 100644
index 0000000..197a840
--- /dev/null
+++ b/distribution/seed/test-assembly.xml
@@ -0,0 +1,65 @@
+
+
+ seed-testing
+ true
+
+
+
+ tar.gz
+
+
+
+
+ ${project.basedir}/test
+ /${project.artifactId}-testing
+
+ **/tei2txt.xsl
+
+
+ post-proc-*
+ specs/**
+ **/xspec/**.xsl
+ distribution/**
+ scripts/**
+ doc/**
+ test/**
+ utils/**
+ target/**
+ frameworks/**
+ cases/**
+ dist/**
+ wiki/**
+
+
+
+ ${project.build.directory}/generated-resources/xml/xslt/test
+ /${project.artifactId}-testing
+
+ **/*.seed.json
+ **/*.chain.json
+
+
+
+ ${project.basedir}/testing
+ /${project.artifactId}-test
+
+ saxon.xml
+ saxon-no-local.xml
+
+
+
+
+
+
+ ${project.build.directory}/generated-resources/xml/xslt/build.json
+ ${project.artifactId}-testing.json
+
+
+ ${project.build.directory}/generated-resources/yml/build.yml
+ ${project.artifactId}-testing.yaml
+
+
+
+
diff --git a/pom.xml b/pom.xml
index e6a9de1..c39e4a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,10 @@
${project.basedir}/distribution/seed/seed-config.xsl
+ ${project.basedir}/distribution/seed/merge.xsl
+ ${project.basedir}/distribution/seed/chain.xsl
${project.basedir}/distribution/seed/sef-config.xsl
+ ${project.build.directory}/generated-resources/xml/xslt
@@ -402,7 +405,7 @@
-
+
+ ${project.basedir}
+
+ pom.xml
+
+
+
+ json-collection
+ file:${project.build.directory}/generated-resources/xml/xslt/xsl?select=*.seed.json;recurse=yes
+
+
+ ${seed-merge-xsl.url}
+
+
+ .json
+
+
+
+
+
+ ${project.basedir}
+
+
+ test/media-type/tei2txt.xsl
+
+
+
+ saxon-config-uri
+ ${project.basedir}/test/saxon.xml
+
+
+ id-prefix
+ ${project.artifactId}-testing
+
+
+ ${seed-config-xsl.url}
+
+
+ .chain.json
+
+
+
+
+
+ ${project.basedir}
+
+ test/media-type/tei2txt.xsl
+
+
+
+ document-config-uri
+ ${seed-json-config.dir}/xsl/document.seed.json
+
+
+ chained-config-uri
+ ${seed-json-config.dir}/test/media-type/tei2txt.chain.json
+
+
+ media-type-package
+ http://example.com/xsl/tei2txt
+
+
+ media-type-package-version
+ 1.0.0
+
+
+ media-type-component
+ mode
+
+
+ media-type-processor
+ tei
+
+
+ ${seed-chain-xsl.url}
+
+
+ .seed.json
+
+
+
+
+
+ ${project.basedir}
+
+ build.xml
+
+
+
+ json-collection
+ file:${project.build.directory}/generated-resources/xml/xslt?select=*.seed.json;recurse=yes
+
+
+ ${seed-merge-xsl.url}
@@ -500,27 +609,8 @@
${project.build.directory}/generated-resources/xml/xslt
false
- **/*.json
-
-
-
- yml
- ${project.build.directory}/generated-resources/yml
-
-
-
- seed-config-yaml-2-yaml
- generate-resources
-
- json-2-yaml
-
-
-
-
- ${project.build.directory}/generated-resources/xml/xslt
- false
-
- **/*.json
+ pom.json
+ build.json
@@ -611,32 +701,6 @@
-
-
- concat-seed-xml-transformer-configurations
- generate-resources
-
- run
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -689,6 +753,21 @@
+
+
+ seed-test
+ package
+
+ single
+
+
+ ${project.artifactId}-${project.version}
+ ${project.basedir}
+
+ distribution/seed/test-assembly.xml
+
+
+
diff --git a/test/media-type/a.xsl b/test/media-type/a.xsl
new file mode 100644
index 0000000..65fb311
--- /dev/null
+++ b/test/media-type/a.xsl
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/test/media-type/b.xsl b/test/media-type/b.xsl
new file mode 100644
index 0000000..3ff2b66
--- /dev/null
+++ b/test/media-type/b.xsl
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/test/media-type/id.xsl b/test/media-type/id.xsl
new file mode 100644
index 0000000..0c11838
--- /dev/null
+++ b/test/media-type/id.xsl
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/test/media-type/tei2txt.xsl b/test/media-type/tei2txt.xsl
new file mode 100644
index 0000000..7a4721c
--- /dev/null
+++ b/test/media-type/tei2txt.xsl
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CHAINED PROC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dropping text in
+
+ : '
+
+ '
+
+
+
+
diff --git a/test/media-type/tei2txt.xspec b/test/media-type/tei2txt.xspec
new file mode 100644
index 0000000..0e36793
--- /dev/null
+++ b/test/media-type/tei2txt.xspec
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/saxon.xml b/test/saxon.xml
index 2f5767a..b0fed8e 100644
--- a/test/saxon.xml
+++ b/test/saxon.xml
@@ -41,6 +41,12 @@ This configuration
version="1.0.0" sourceLocation="post-proc-call.xsl"/>
+
+
+
+
diff --git a/xsl/document.xsl b/xsl/document.xsl
index 819b16c..7d5a50c 100644
--- a/xsl/document.xsl
+++ b/xsl/document.xsl
@@ -13,7 +13,7 @@ target/bin/xslt.sh \
-it \
resource=test/matt.xml
-All the entpoints parameters are supported through stylesheet parameters.
+All the endpoints parameters are supported through stylesheet parameters.
Post-processing for returning another mediaType than application/tei+xml can be customized
by the static parameters $media-type-*. It is turned of by default. Set to $media-type-package