From 3b45bab7859fa1c1ce276750a9327462e4041992 Mon Sep 17 00:00:00 2001 From: eduarddrenth Date: Thu, 23 Sep 2021 06:54:15 +0200 Subject: [PATCH 01/20] improve overridability for docx to TEI conversion --- docx/build-from.xml | 1 + docx/from/docxtotei.xsl | 4 ++-- docx/from/textruns.xsl | 45 ++++++++++++++++++++++++++--------------- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/docx/build-from.xml b/docx/build-from.xml index e11a1df7d..0e8f10afb 100644 --- a/docx/build-from.xml +++ b/docx/build-from.xml @@ -25,6 +25,7 @@ + diff --git a/docx/from/docxtotei.xsl b/docx/from/docxtotei.xsl index 4c3ec6043..77550bbe7 100644 --- a/docx/from/docxtotei.xsl +++ b/docx/from/docxtotei.xsl @@ -38,7 +38,8 @@ - + + true mml @@ -65,7 +66,6 @@ - diff --git a/docx/from/textruns.xsl b/docx/from/textruns.xsl index f0214153b..0d6e9a9cb 100644 --- a/docx/from/textruns.xsl +++ b/docx/from/textruns.xsl @@ -96,7 +96,11 @@ of this software, even if advised of the possibility of such damage. - + + Creates appropriate elements from word style, calls basicStyles. When word style starts with "TEI " or "tei_" calls elementFromStyle. + + + @@ -128,27 +132,21 @@ of this software, even if advised of the possibility of such damage. - - - true - - + + + - - - true - - + + + - - - true - - + + + @@ -166,12 +164,27 @@ of this software, even if advised of the possibility of such damage. + + + Creates an element named $style. $style is the word style name with prefix "TEI " or "tei_" stripped off. + Override this method if you need to, for example preprocess $style and call the super. + + + + + + + true + + + Look at the Word underlying basic formatting. We can ignore the run's font change if a) it's not a special para AND the font is the ISO default, OR b) the font for the run is the same as its parent paragraph. + Param parented is true when calling template created an element. false From 71d837945c79bfde512f59aaecf249b236c2a289 Mon Sep 17 00:00:00 2001 From: eduarddrenth Date: Thu, 23 Sep 2021 07:30:12 +0200 Subject: [PATCH 02/20] improve overridability for docx to TEI conversion --- docx/from/textruns.xsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docx/from/textruns.xsl b/docx/from/textruns.xsl index 0d6e9a9cb..5f3d51879 100644 --- a/docx/from/textruns.xsl +++ b/docx/from/textruns.xsl @@ -166,8 +166,8 @@ of this software, even if advised of the possibility of such damage. - Creates an element named $style. $style is the word style name with prefix "TEI " or "tei_" stripped off. - Override this method if you need to, for example preprocess $style and call the super. + Creates an element named $style and calls basicStyles with parented=true. $style is the word style name with prefix "TEI " or "tei_" stripped off. + Override this method if you need to, for example preprocess $style. From 1c8c069c3e996300a627e6384670c9ad1f15adba Mon Sep 17 00:00:00 2001 From: eduarddrenth Date: Fri, 24 Sep 2021 11:08:10 +0200 Subject: [PATCH 03/20] no import needed (yet) --- docx/from/docxtotei.xsl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docx/from/docxtotei.xsl b/docx/from/docxtotei.xsl index 77550bbe7..e5ce852d5 100644 --- a/docx/from/docxtotei.xsl +++ b/docx/from/docxtotei.xsl @@ -38,8 +38,7 @@ - - + true mml @@ -55,8 +54,8 @@ false false 890 - 576 - + 576 + @@ -67,8 +66,9 @@ - - + + +

TEI stylesheet for converting Word docx files to TEI

From e6fc5516e3cc6cbe6a20d7f3a059fc91967e13ef Mon Sep 17 00:00:00 2001 From: eduarddrenth Date: Fri, 24 Sep 2021 11:11:49 +0200 Subject: [PATCH 04/20] layout --- docx/from/docxtotei.xsl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docx/from/docxtotei.xsl b/docx/from/docxtotei.xsl index e5ce852d5..213d603c7 100644 --- a/docx/from/docxtotei.xsl +++ b/docx/from/docxtotei.xsl @@ -55,7 +55,6 @@ false 890 576 - @@ -65,8 +64,8 @@ - + From ba91e72bfa0810dfef9815b9228be1ccb2fbb4df Mon Sep 17 00:00:00 2001 From: eduarddrenth Date: Fri, 24 Sep 2021 11:13:24 +0200 Subject: [PATCH 05/20] layout --- docx/from/docxtotei.xsl | 1 - 1 file changed, 1 deletion(-) diff --git a/docx/from/docxtotei.xsl b/docx/from/docxtotei.xsl index 213d603c7..b1e1b924c 100644 --- a/docx/from/docxtotei.xsl +++ b/docx/from/docxtotei.xsl @@ -38,7 +38,6 @@ - true mml From dc4a3c4448ff338a35849f4b0cca3024e0037029 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 2 Mar 2023 15:39:56 -0500 Subject: [PATCH 06/20] Stylesheets group takes one giant leap towards a structured attribute list. (More to do, but we got a lot done.) --- common/common_tagdocs.xsl | 205 ++++++++++++++++++++------------------ 1 file changed, 106 insertions(+), 99 deletions(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index f1ce661c0..4a4ee9839 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2078,64 +2078,79 @@ - - - - - - - - ( - - - - - unusedattribute - - - , + + + + + + + + + + + + + + + + + + + unusedattribute + + + + + - - - @ - - , - - ) - - - + + + + + + + + [odds] display attribute list + - - - - - - - - attList - - - - - - - - - - - + + + + + + + + + attList + + + + + + + + + + + + + + + + DEBUG::output + + + [odds] display list of model parents @@ -2771,60 +2786,52 @@
+ - 1 - - - - - - ( - - - - - ( - - - attribute - - @ - - - - - , - - - ) - - - - - - ( - - + + + + + + + + + + - ) - - - - - - - ) - - - - - - - - - - + + + + + + attribute + + + + + + + + + + + + + + + + + + + + + + + + + + Date: Mon, 1 May 2023 12:09:47 -0400 Subject: [PATCH 07/20] Fix #607, I hope: With @trishaoconnor, change the "makeTEIVersion" template in odds/teiodds.xsl so that a) it does not output the string "P5 Version " as part of the version URL; and b) it outputs the version information on 1 line instead of two. --- odds/teiodds.xsl | 366 ++++++++++++++++++++++------------------------- 1 file changed, 175 insertions(+), 191 deletions(-) diff --git a/odds/teiodds.xsl b/odds/teiodds.xsl index 679921114..f35173710 100644 --- a/odds/teiodds.xsl +++ b/odds/teiodds.xsl @@ -23,7 +23,7 @@ Unported License http://creativecommons.org/licenses/by-sa/3.0/ 2. http://www.opensource.org/licenses/BSD-2-Clause - + Redistribution and use in source and binary forms, with or without @@ -153,7 +153,7 @@ of this software, even if advised of the possibility of such damage. - /xml/tei/odd/p5subset.xml + /xml/tei/odd/p5subset.xml @@ -194,13 +194,13 @@ of this software, even if advised of the possibility of such damage. - - This formatted version of the Guidelines was created on - . - + + This formatted version of the Guidelines was created on + . + - + @@ -232,7 +232,7 @@ of this software, even if advised of the possibility of such damage. /> - + @@ -257,10 +257,10 @@ of this software, even if advised of the possibility of such damage. - + - + @@ -272,10 +272,10 @@ of this software, even if advised of the possibility of such damage. - + - +
@@ -296,11 +296,11 @@ of this software, even if advised of the possibility of such damage. - - + + - + @@ -308,7 +308,7 @@ of this software, even if advised of the possibility of such damage. - + @@ -345,11 +345,11 @@ of this software, even if advised of the possibility of such damage. - + - + @@ -432,7 +432,7 @@ of this software, even if advised of the possibility of such damage. false - - - - - - - - - - - - - - - - - TEI Edition: - - TEI Edition Location: - - - - - Edition: - - + + + + + + + + + + + + + Edition: + + - + @@ -1914,8 +1898,8 @@ select="$makeDecls"/> @@ -1990,28 +1974,28 @@ select="$makeDecls"/> - - - - - - /@ - - - - - - @ - - - - - - - - + + + + + + /@ + + + + + + @ + + + + + + + + @@ -2019,7 +2003,7 @@ select="$makeDecls"/> - + @@ -2035,10 +2019,10 @@ select="$makeDecls"/> + if (@ns='http://www.tei-c.org/ns/1.0') then '' + else if (@ns) then @ns + else if (ancestor::tei:schemaSpec/@ns) then + ancestor::tei:schemaSpec/@ns else '',@ident)"/> @@ -2062,21 +2046,21 @@ select="$makeDecls"/> + select="*|@*|processing-instruction()|text()" mode="justcopy"/> + select="*|@*|processing-instruction()|text()" mode="justcopy"/> + select="*|@*|processing-instruction()|text()" mode="justcopy"/> @@ -2183,7 +2167,7 @@ select="$makeDecls"/> - + @@ -2195,7 +2179,7 @@ select="$makeDecls"/> - + @@ -2332,22 +2316,22 @@ select="$makeDecls"/> - - - - - - - - + + + + + + + + - - - - - - + + + + + + @@ -2374,40 +2358,40 @@ select="$makeDecls"/> + select="ancestor::*[@prefix][1]/@prefix"/> - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -2417,11 +2401,11 @@ select="$makeDecls"/> - true - true - false - false - true + true + true + false + false + true From 4d17c5f453bb24fd5fe3fde7e4b8c65eb8062d9c Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Mon, 1 May 2023 13:18:40 -0400 Subject: [PATCH 08/20] =?UTF-8?q?More=20work=20on=20#607:=20Get=20output?= =?UTF-8?q?=20to=20pass=20tests:=20=20*=20Update=20routine=20so=20that=20i?= =?UTF-8?q?t=20deals=20with=20both=20=E2=80=9CP5=20Version=20=E2=80=A6?= =?UTF-8?q?=E2=80=9D=20and=20=E2=80=9CVersion=20=E2=80=A6=E2=80=9D=20=20*?= =?UTF-8?q?=20Update=20Makefile=20so=20that=20test35.rnc=20has=20these=20c?= =?UTF-8?q?omments=20stripped=20out=20correctly=20=20*=20Update=20some=20e?= =?UTF-8?q?xpected=20results=20because=20of=20*slight*=20comment=20differe?= =?UTF-8?q?nces=20that=20should=20be=20ignored?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Test/Makefile | 4 ++-- Test/expected-results/test-pure.rnc | 2 -- Test/expected-results/test-pure2.rnc | 2 -- Test/expected-results/test15.odd.rnc | 2 -- Test/expected-results/test21.odd.rnc | 8 +++----- Test/expected-results/test30.rnc | 8 +++----- Test/expected-results/test33.rnc | 2 -- Test/expected-results/test34.rnc | 2 -- debian-tei-xsl/debian/changelog | 6 ++++++ odds/teiodds.xsl | 4 ++-- 10 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Test/Makefile b/Test/Makefile index 98de952aa..fda052bfd 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -751,11 +751,11 @@ test-namespaces: actual $(BINDIR)/teitornc $(FLAGS) test35.odd $(AR)/test35.rnc perl -p -i -e 's/generated from ODD source .*//' $(AR)/test35.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test35.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test35.rnc if [ $(DIFFNOW) -eq 1 ]; \ then diff -bBw $(AR)/test35.rnc $(ER)/test35.rnc; \ else echo "==deferring: \` diff -bBw $(AR)/test35.rnc $(ER)/test35.rnc \`"; fi - + #HBS 2022-04-30 tests attributes @include and @except $(BINDIR)/teitornc $(FLAGS) testClass.odd $(AR)/testClass.rnc perl -p -i -e 's/generated from ODD source .*//' $(AR)/testClass.rnc diff --git a/Test/expected-results/test-pure.rnc b/Test/expected-results/test-pure.rnc index e2e64620b..0cf4f8342 100644 --- a/Test/expected-results/test-pure.rnc +++ b/Test/expected-results/test-pure.rnc @@ -6,8 +6,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xlink = "http://www.w3.org/1999/xlink" -# - sch:ns [ prefix = "tei" uri = "http://www.tei-c.org/ns/1.0" ] stuff = diff --git a/Test/expected-results/test-pure2.rnc b/Test/expected-results/test-pure2.rnc index f2104220e..7458800bc 100644 --- a/Test/expected-results/test-pure2.rnc +++ b/Test/expected-results/test-pure2.rnc @@ -5,8 +5,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xlink = "http://www.w3.org/1999/xlink" -# - sch:ns [ prefix = "tei" uri = "http://www.tei-c.org/ns/1.0" ] stuffPart = bob | bit stuff = diff --git a/Test/expected-results/test15.odd.rnc b/Test/expected-results/test15.odd.rnc index 1a69302d5..97df284d6 100644 --- a/Test/expected-results/test15.odd.rnc +++ b/Test/expected-results/test15.odd.rnc @@ -7,8 +7,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" - -# macro.abContent = (text | model.paraPart | ab)* macro.paraContent = (text | model.paraPart)* macro.limitedContent = (text | model.limitedPhrase | model.inter)* diff --git a/Test/expected-results/test21.odd.rnc b/Test/expected-results/test21.odd.rnc index b6ed8ccd6..33cd31fbd 100644 --- a/Test/expected-results/test21.odd.rnc +++ b/Test/expected-results/test21.odd.rnc @@ -7,8 +7,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" - -# macro.abContent = (text | model.paraPart | ab)* macro.paraContent = (text | model.paraPart)* macro.limitedContent = (text | model.limitedPhrase | model.inter)* @@ -8093,9 +8091,9 @@ facsimile = sch:report [ test = "child::text()[ normalize-space(.) ne '']" "\x{a}" ~ - " A facsimile element represents a text with images, thus\x{a}" ~ - " transcribed text should not be present within it.\x{a}" ~ - " " + " A facsimile element represents a text with images, thus\x{a}" ~ + " transcribed text should not be present within it.\x{a}" ~ + " " ] "\x{a}" ~ " " diff --git a/Test/expected-results/test30.rnc b/Test/expected-results/test30.rnc index 3d5ef19d6..0c8e66532 100644 --- a/Test/expected-results/test30.rnc +++ b/Test/expected-results/test30.rnc @@ -8,8 +8,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" - -# Tmacro.abContent = (text | Tmodel.paraPart | Tab)* Tmacro.paraContent = (text | Tmodel.paraPart)* Tmacro.limitedContent = (text | Tmodel.limitedPhrase | Tmodel.inter)* @@ -6488,9 +6486,9 @@ Tfacsimile = sch:report [ test = "child::text()[ normalize-space(.) ne '']" "\x{a}" ~ - " A facsimile element represents a text with images, thus\x{a}" ~ - " transcribed text should not be present within it.\x{a}" ~ - " " + " A facsimile element represents a text with images, thus\x{a}" ~ + " transcribed text should not be present within it.\x{a}" ~ + " " ] "\x{a}" ~ " " diff --git a/Test/expected-results/test33.rnc b/Test/expected-results/test33.rnc index d14e38820..c7920a1bc 100644 --- a/Test/expected-results/test33.rnc +++ b/Test/expected-results/test33.rnc @@ -9,8 +9,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" - -# tei_macro.abContent = (text | tei_model.paraPart | tei_ab)* tei_macro.paraContent = (text | tei_model.paraPart)* tei_macro.limitedContent = diff --git a/Test/expected-results/test34.rnc b/Test/expected-results/test34.rnc index b8b34fac4..ca16a1306 100644 --- a/Test/expected-results/test34.rnc +++ b/Test/expected-results/test34.rnc @@ -10,8 +10,6 @@ namespace teix = "http://www.tei-c.org/ns/Examples" namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" - -# tei_macro.abContent = (text | tei_model.paraPart | tei_ab)* tei_macro.paraContent = (text | tei_model.paraPart)* tei_macro.limitedContent = diff --git a/debian-tei-xsl/debian/changelog b/debian-tei-xsl/debian/changelog index 36f1cd55d..94cba8d54 100644 --- a/debian-tei-xsl/debian/changelog +++ b/debian-tei-xsl/debian/changelog @@ -1,3 +1,9 @@ +tei-xsl (7.56.0a) natty; urgency=low + + * new release from upstream + + -- TEI Mon, 01 May 2023 12:16:18 -0400 + tei-xsl (7.55.0a) natty; urgency=low * new release from upstream diff --git a/odds/teiodds.xsl b/odds/teiodds.xsl index f35173710..6990b6ae7 100644 --- a/odds/teiodds.xsl +++ b/odds/teiodds.xsl @@ -1869,13 +1869,13 @@ select="$makeDecls"/> - + From 4c2488a5dc8be79a73685234020bdbcb826a822b Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Mon, 1 May 2023 18:16:20 -0400 Subject: [PATCH 09/20] Oops, forgot one --- Test/expected-results/testClass.rnc | 2 -- 1 file changed, 2 deletions(-) diff --git a/Test/expected-results/testClass.rnc b/Test/expected-results/testClass.rnc index d508164ef..5a3d22e98 100644 --- a/Test/expected-results/testClass.rnc +++ b/Test/expected-results/testClass.rnc @@ -8,8 +8,6 @@ namespace xi = "http://www.w3.org/2001/XInclude" namespace xlink = "http://www.w3.org/1999/xlink" -# - sch:ns [ prefix = "tei" uri = "http://www.tei-c.org/ns/1.0" ] macro.paraContent = (text | model.paraPart)* att.written.attributes = att.written.attribute.hand From 05fa02814f8b2fd9aa529cd8194559a33982aa98 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 25 May 2023 15:44:14 -0400 Subject: [PATCH 10/20] Stylesheets group works on #592: * Use ATTCLASSES key instead of CLASSES, as we are not playing with model classes * Use generic output elements instead of output-specific output elements --- common/common_tagdocs.xsl | 72 +++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index 4a4ee9839..32826697c 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2079,7 +2079,7 @@ - + @@ -2091,26 +2091,30 @@ - + + - + + unusedattribute - + - + - + + - + + - + - - + + @@ -2144,12 +2148,12 @@ - - - DEBUG::output - - - + + + DEBUG::output + + + @@ -2788,48 +2792,50 @@ - + + - + - + + - + + - + + attribute - + - + - + + - + - + + + - + - - - - - - + From e74d0451c49168ecc8f9fe35167eae8b6517ae70 Mon Sep 17 00:00:00 2001 From: John Bampton Date: Fri, 26 May 2023 08:14:12 +1000 Subject: [PATCH 11/20] Fix spelling --- docx/to/mml2omml.xsl | 2 +- docx/tools/build.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docx/to/mml2omml.xsl b/docx/to/mml2omml.xsl index 8faa9ab5a..4ca7e6926 100644 --- a/docx/to/mml2omml.xsl +++ b/docx/to/mml2omml.xsl @@ -181,7 +181,7 @@ - diff --git a/docx/tools/build.xml b/docx/tools/build.xml index bffa11166..f9879204a 100644 --- a/docx/tools/build.xml +++ b/docx/tools/build.xml @@ -1,7 +1,7 @@ From c07f8294882773d9da0e3c8bf1ef20fe8b91b9c7 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 22 Jun 2023 15:46:24 -0400 Subject: [PATCH 12/20] =?UTF-8?q?Stylesheets=20group=20(HBS,=20SB,&=20JT)?= =?UTF-8?q?=20fix=20the=20remaining=20bug=20from=20last=20month=20?= =?UTF-8?q?=E2=80=94=20we=20think=20this=20is=20structurally=20ready,=20st?= =?UTF-8?q?ill=20needs=20CSS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/common_tagdocs.xsl | 154 ++++++++++++++++++-------------------- 1 file changed, 74 insertions(+), 80 deletions(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index 32826697c..3d4ef06d2 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2079,7 +2079,7 @@ - + @@ -2091,25 +2091,21 @@ - - + - - + unusedattribute - + - - + - - + @@ -2125,37 +2121,35 @@ the context node. —Syd, 2023-03-02. --> - + - - - - - - attList - - - - - - - - - - - + - - - DEBUG::output - - - - + + + + + + + + + + + + + + + + + + + + + [odds] display list of model parents @@ -2738,6 +2732,7 @@ + false @@ -2792,52 +2787,51 @@ - - - - - - - - - - - - - - - - - - - - - attribute - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + attribute + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - + Date: Thu, 22 Jun 2023 17:29:20 -0400 Subject: [PATCH 13/20] Update an expected result for new HTML output --- Test/expected-results/test15.odd.html | 736 +++++++++++++++++--------- 1 file changed, 497 insertions(+), 239 deletions(-) diff --git a/Test/expected-results/test15.odd.html b/Test/expected-results/test15.odd.html index 24039dbc2..b4cdda1f4 100644 --- a/Test/expected-results/test15.odd.html +++ b/Test/expected-results/test15.odd.html @@ -346,77 +346,177 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.divLike( - @org, - @sample) ( - att.fragmentable( - @part)) - att.declaring( - @decls) - att.written( - @hand) - att.typed( - type, @subtype) -
- - - - - -
typ - caracteriza el elemento utilizando una clasificación o tipología funcional. -
- - - - - - - - - - - - - -
- Derivado de - - att.typed -
- Estado - - Opcional -
- Tipo de datos - teidata.enumerated
-
-
-
+ +
+ + + + + +
typ + caracteriza el elemento utilizando una clasificación o tipología funcional. +
+ + + + + + + + + + + + + +
+ Derivado de + + att.typed +
+ Estado + + Opcional +
+ Tipo de datos + teidata.enumerated
+
+
+
+ @@ -542,7 +642,7 @@

Ejemplo -
+
<body>  <div  typ=" @@ -606,7 +706,7 @@

Content model -
+                  
 <content>
  <sequence minOccurs="1" maxOccurs="1">
   <alternate minOccurs="0"
@@ -658,7 +758,7 @@ 

</sequence> </content> - +

@@ -667,7 +767,7 @@

Declaración -
+                  
 element div
 {
    
@@ -707,7 +807,7 @@ 

)? ) } - +

@@ -740,36 +840,117 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.declaring( - @decls) - att.fragmentable( - @part) - att.written( - @hand) + + @@ -982,7 +1163,7 @@

Ejemplo -
+
<para>Hallgerd was outside. <q>There is blood on your axe, </q>she said. @@ -1026,12 +1207,12 @@

Content model -
+                  
 <content>
  <macroRef key="macro.paraContent"/>
 </content>
     
-
+
 
@@ -1040,7 +1221,7 @@

Declaración -
+                  
 element para
 {
    
@@ -1054,7 +1235,7 @@ 

macro.paraContent } - +

@@ -1086,125 +1267,202 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.ascribed.directed( - @toWhom) ( - att.ascribed( - @who)) -
- - - - - -
typ( - type) - Puede usarse para indicar si el material citado es hablado o pensado, o para caracterizarlo con más precisión. -
- - - - - - - - - - - - - -
- Estado - - Opcional -
- Tipo de datos - teidata.enumerated
- Los valores sugeridos incluyen: - -
-
- spoken -
-
( - spoken) - representación del estilo directo, normalmente marcado mediante comillas.
-
- thought -
-
( - thought) - representación de un pensamiento o reflexión, p.ej. un monólogo interno.
-
- written -
-
( - written) - cita de una fuente escrita.
-
- soCalled -
-
( - so called) - distancia autorial
-
- foreign -
-
( - foreign) - palabras extranjeras
-
- distinct -
-
( - distinct) - lingüisticamente distinto
-
- term -
-
- término técnico -
-
- emph -
-
( - emph) - énfasis retórico
-
- mentioned -
-
( - mentioned) - se refiere a sí mismo, no a su referente habitual
-
-
-
-
+ +
+ + + + + +
typ( + type) + Puede usarse para indicar si el material citado es hablado o pensado, o para caracterizarlo con más precisión. +
+ + + + + + + + + + + + + +
+ Estado + + Opcional +
+ Tipo de datos + teidata.enumerated
+ Los valores sugeridos incluyen: + +
+
+ spoken +
+
( + spoken) + representación del estilo directo, normalmente marcado mediante comillas.
+
+ thought +
+
( + thought) + representación de un pensamiento o reflexión, p.ej. un monólogo interno.
+
+ written +
+
( + written) + cita de una fuente escrita.
+
+ soCalled +
+
( + so called) + distancia autorial
+
+ foreign +
+
( + foreign) + palabras extranjeras
+
+ distinct +
+
( + distinct) + lingüisticamente distinto
+
+ term +
+
+ término técnico +
+
+ emph +
+
( + emph) + énfasis retórico
+
+ mentioned +
+
( + mentioned) + se refiere a sí mismo, no a su referente habitual
+
+
+
+
+ @@ -1487,7 +1745,7 @@

Ejemplo -
It is spelled +
It is spelled <q>Tübingen </q>— to enter the letter <q>u @@ -1503,12 +1761,12 @@

Content model -
+                  
 <content>
  <macroRef key="macro.specialPara"/>
 </content>
     
-
+
 
@@ -1517,7 +1775,7 @@

Declaración -
+                  
 element q
 {
    
@@ -1539,7 +1797,7 @@ 

macro.specialPara } - +

@@ -1655,12 +1913,12 @@

Content model -
+                  
 <content>
  <dataRef key="teidata.word"/>
 </content>
     
-
+
 
@@ -1669,10 +1927,10 @@

Declaración -
+                  
 teidata.enumerated = 
 teidata.word
-
+
 
From ee3397283496897cf02b64d4ce454f36cb4acb68 Mon Sep 17 00:00:00 2001 From: Joey Takeda Date: Fri, 23 Jun 2023 13:43:47 -0700 Subject: [PATCH 14/20] Small adjustments for consistency --- common/common_tagdocs.xsl | 31 +++++++++++++++++-------------- odds/guidelines.xsl | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index 3d4ef06d2..aca410279 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2080,6 +2080,7 @@ + @@ -2090,23 +2091,25 @@ - - - - - - - unusedattribute - - - - - - + + + + + + + unusedattribute + + + + - + + attribute + + diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 851a77231..c425b5e75 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -16,7 +16,7 @@ * MAINTAINERs: Bear in mind that the code you are looking for may * * well be in TEI/P5/Utilities/guidelines.xsl.model instead. * ******************************************************************* --> - + . /OPS - true - false - false - false - false - 890 - 576 - - - - - - - - - - - - - - - -

TEI stylesheet for converting Word docx files to TEI

-

This software is dual-licensed: - + + + + + + + + + true + mml + tei + tei + false + false + false + true + true + false + false + false + false + 890 + 576 + + + + + + + + + + + + + + + +

TEI stylesheet for converting Word docx files to TEI

+

This software is dual-licensed: + 1. Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/ 2. http://www.opensource.org/licenses/BSD-2-Clause - + Redistribution and use in source and binary forms, with or without @@ -101,87 +101,73 @@ data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. -

-

Author: See AUTHORS

- -

Copyright: 2013, TEI Consortium

-
-
- - - - - 1234567890 - ~!@#$%^&*()<>{}[]|:;,.?`'"=+-_ - - - - - - - - - - - - - - - - - -

The main template that starts the conversion from docx to TEI

-

IMPORTING STYLESHEETS AND OVERRIDING MATCHED TEMPLATES:

- -

When importing a stylesheet (xsl:import) all the templates - in the imported stylesheet get a lower import-precedence than - the ones in the importing stylesheet. If the importing - stylesheet wants to override, let's say a general template to - match all <w:p> elements where no more specialized rule - applies it can't, since it will automatically override all - w:p[somepredicate] template in the imported stylesheet as - well. In this case we have outsourced the processing of the - general template into a named template and all the imported - stylesheet does is to call the named template. Now, the - importing stylesheet can simply override the named template, - and everything works out fine.

- -

See templates: - w:p (mode: paragraph)

- -

Modes:

-
    -
  • pass0: a normalization process for styles. Can also - detect illegal styles.
  • - -
  • pass2: templates that apply in the second stage - of the conversion, cleaning TEI elements created in the - first ise."
  • - -
  • inSectionGroup: defines a template that works on a - group of consecutive elements (w:p or w:tbl elements) that - form a section (a normal section, not to be confused with - w:sectPr).
  • - -
  • paragraph: defines that the template - works on an individual element (usually - starting with a w:p element).
  • - -
  • iden: simply copies the content
  • -
- +

+

Author: See AUTHORS

+

Copyright: 2013, TEI Consortium

+
+
+ + + + + 1234567890 + ~!@#$%^&*()<>{}[]|:;,.?`'"=+-_ + + + + + + + + + + + + + + +

The main template that starts the conversion from docx to TEI

+

IMPORTING STYLESHEETS AND OVERRIDING MATCHED TEMPLATES:

+ +

When importing a stylesheet (xsl:import) all the templates + in the imported stylesheet get a lower import-precedence than + the ones in the importing stylesheet. If the importing + stylesheet wants to override, let's say a general template to + match all <w:p> elements where no more specialized rule + applies it can't, since it will automatically override all + w:p[somepredicate] template in the imported stylesheet as + well. In this case we have outsourced the processing of the + general template into a named template and all the imported + stylesheet does is to call the named template. Now, the + importing stylesheet can simply override the named template, + and everything works out fine.

+

See templates: - w:p (mode: paragraph)

+

Modes:

+
    +
  • pass0: a normalization process for styles. Can also + detect illegal styles.
  • +
  • pass2: templates that apply in the second stage + of the conversion, cleaning TEI elements created in the + first ise."
  • +
  • inSectionGroup: defines a template that works on a + group of consecutive elements (w:p or w:tbl elements) that + form a section (a normal section, not to be confused with + w:sectPr).
  • +
  • paragraph: defines that the template + works on an individual element (usually + starting with a w:p element).
  • +
  • iden: simply copies the content
  • +
- - The file cannot be read - - - The file cannot be read - + + The file cannot be read + + + The file cannot be read + @@ -189,14 +175,13 @@ of this software, even if advised of the possibility of such damage. - + - +
- @@ -204,9 +189,7 @@ of this software, even if advised of the possibility of such damage. - - @@ -215,7 +198,7 @@ of this software, even if advised of the possibility of such damage. - + @@ -223,239 +206,229 @@ of this software, even if advised of the possibility of such damage. Main document template - - - - - - - - - - - - - Create the basic text; worry later about dividing it up - - - - - - - - - - - - - - - - - Process the text by high-level divisions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Bookmarks in section mode

-

- There are certain elements that we don't really care about, but that - force us to regroup everything from the next sibling on. - - @see grouping in construction of headline outline. -

-
-
- - - - - - - - - -

Bookmarks in normal mode

-

Copy bookmarks for processing in pass 2

-
-
- - - - - - - - - - - - - - - - - -

Grouping consecutive elements that belong together

-

- We are now working on a group of all elements inside some group bounded by - headings. These need to be further split up into smaller groups for figures, - list etc. and into individual groups for simple paragraphs... -

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creating a group of a figure + + + + + + + + + + + + Create the basic text; worry later about dividing it up - -
- - - -
-
+ + + + + + + + + + + + + + Process the text by high-level divisions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Bookmarks in section mode

+

+ There are certain elements that we don't really care about, but that + force us to regroup everything from the next sibling on. + + @see grouping in construction of headline outline. +

+
+
+ + + + + - - Creating a group of a caption (figure or table) + + +

Bookmarks in normal mode

+

Copy bookmarks for processing in pass 2

+
- - - - - - - + + + + + + + + + + + + + + + + + +

Grouping consecutive elements that belong together

+

+ We are now working on a group of all elements inside some group bounded by + headings. These need to be further split up into smaller groups for figures, + list etc. and into individual groups for simple paragraphs... +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Creating a gloss list + + Creating a group of a figure + +
+ + + +
+
- - - - - - - + + Creating a group of a caption (figure or table) + + + + + + + + - - Creating a group of a figure + + Creating a gloss list - - - - - - - + + + + + + + - - Creating a group of a front/title page - - - - - - - - - - + + Creating a group of a figure + + + + + + + + - - Groups the document by headings and thereby creating the document structure. - + + Creating a group of a front/title page + + + + + + + + + + + Groups the document by headings and thereby creating the document structure. + @@ -463,225 +436,227 @@ of this software, even if advised of the possibility of such damage.
- + - - - - - - - - + group-starting-with="w:p[w:pPr/w:pStyle/@w:val=$NextHeader]"> + + + + + + + +
-

Looks through the document to find forme work related sections.

- Creates a <fw> element for each forme work related section. These include - running headers and footers. The corresponding elements in OOXML are w:headerReference - and w:footerReference. These elements only define a reference that to a header or - footer definition file. The reference itself is resolved in the file word/_rels/document.xml.rels. + Creates a <fw> element for each forme work related section. These include + running headers and footers. The corresponding elements in OOXML are w:headerReference + and w:footerReference. These elements only define a reference that to a header or + footer definition file. The reference itself is resolved in the file word/_rels/document.xml.rels.

- - - - - - - - - - header - footer - - - - - - - - - - - - - - - - - - - + + + + + + + + + + header + footer + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - simple teiHeader. For a more sophisticated header, think about overriding - this template - - - - - - - <xsl:call-template name="getDocTitle"/> - - - - - - - - - - - - - -

unknown

-
- -

Converted from a Word document

-
-
- - - - - - - - - - - - - - - -
-
- - - generates a section heading. If you need something specific, feel free - to overwrite this template - - - - - - - - + + simple teiHeader. For a more sophisticated header, think about overriding + this template + + + + + + + <xsl:call-template name="getDocTitle"/> + + + + + + + + + + + + + +

unknown

+
+ +

Converted from a Word document

+
+
+ + + + + + + + + + + + + + + +
+
+ + + generates a section heading. If you need something specific, feel free + to overwrite this template + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - unknown title - - - + + + + + + + unknown title + + + - - - - - - - unknown author - - - + + + + + + + unknown author + + + - - - - - - - unknown date - - - + + + + + + + unknown date + + + - - - - # - - - - - + + + + # + + + + + diff --git a/docx/from/functions.xsl b/docx/from/functions.xsl index 2a8b0fa13..71dfc6b6d 100644 --- a/docx/from/functions.xsl +++ b/docx/from/functions.xsl @@ -21,16 +21,16 @@ version="2.0" exclude-result-prefixes="cals ve o r m v wp w10 w wne mml tbx iso tei a xs pic fn"> - - -

TEI Utility stylesheet for making TEI XML from Word docx files

-

This software is dual-licensed: - + + +

TEI Utility stylesheet for making TEI XML from Word docx files

+

This software is dual-licensed: + 1. Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/ 2. http://www.opensource.org/licenses/BSD-2-Clause - + Redistribution and use in source and binary forms, with or without @@ -55,171 +55,177 @@ data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. -

-

Author: See AUTHORS

-

Id: $Id: functions.xsl 11232 2012-12-18 18:06:19Z rahtz $

-

Copyright: 2013, TEI Consortium

-
- - - - Defines whether or not a word paragraph is a first level heading. - - - - - true - false - - - - - Defines whether or not a word paragraph is a heading. - - - - - true - true - true - false - - - - - Defines whether or not a word paragraph is a front page element. - - - - - true - true - true - true - false - - - - - Defines whether or not a word paragraph is a list element. - - - - - - true - true - true - true - false - - +

+

Author: See AUTHORS

+

Id: $Id: functions.xsl 11232 2012-12-18 18:06:19Z rahtz $

+

Copyright: 2013, TEI Consortium

+ +
- - Defines whether or not a word paragraph is a table of contents. - - - - true - true - false - - - - - Defines whether or not a word paragraph is a figure element. - - - - true - true - false - - - - - Defines whether or not a word paragraph is a caption. - - - - true - true - false - - + + Defines whether or not a word paragraph is a first level heading. + + + + + true + false + + + + Defines whether or not a word paragraph is a heading. + + + + + + true + true + true + false + + - - Defines whether or not a word paragraph is a line of poetry. - - - - true - false - - - - - Defines whether or not a word paragraph is gloss list. - - - - true - false - - - - - Is given a header style and returns the style for the next level header. - - - - + + Defines whether or not a word paragraph is a front page element. + + + + + + true + true + true + true + false + + + + + Defines whether or not a word paragraph is a list element. + + + + + + + true + true + true + true + false + + + + Defines whether or not a word paragraph is a table of contents. + + + + + true + true + false + + + + + Defines whether or not a word paragraph is a figure element. + + + + + true + true + false + + + + + Defines whether or not a word paragraph is a caption. + + + + + true + true + false + + - - Returns a listtype for a given stylename (return empty string to figure it out dynamically). - - - - - - gloss - - - bulleted - - - bulleted - - - numbered - - - numbered - - - - - - - - - insert a note that a docx conversion cannot proceed - - - - - - docx conversion issue: - + + Defines whether or not a word paragraph is a line of poetry. + + + + + true + false + + + + + Defines whether or not a word paragraph is gloss list. + + + + + true + false + + + + + Is given a header style and returns the style for the next level header. + + + + + + + + Returns a listtype for a given stylename (return empty string to figure it out dynamically). + + + + + + gloss + + + bulleted + + + bulleted + + + numbered + + + numbered + + + + + + + + insert a note that a docx conversion cannot proceed + + + + + + docx conversion issue: + - - process a Word w:instrText + + process a Word w:instrText + @@ -228,8 +234,7 @@ of this software, even if advised of the possibility of such damage. - + @@ -260,11 +265,10 @@ of this software, even if advised of the possibility of such damage. - - - Whether a w:instrText can be discarded on not. ignore all - the bibliographic addins + + Whether a w:instrText can be discarded on not. ignore all the bibliographic addins + @@ -275,10 +279,11 @@ of this software, even if advised of the possibility of such damage. true false - - - - Whether a w:instrText is a bibliographic addin + + + + Whether a w:instrText is a bibliographic addin + @@ -287,7 +292,7 @@ of this software, even if advised of the possibility of such damage. true false - + Returns true or false for value types that may be "on" or "off". From 611befaa28c3740f501fad783658ccd980b8af69 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Mon, 16 Oct 2023 11:06:34 -0400 Subject: [PATCH 17/20] Fix #635: (#636) Added clause testing for type=deprecationInfo so we don't get 2+ nodes being tested on one side of 'gt'. --- common/functions.xsl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/common/functions.xsl b/common/functions.xsl index 0a91361bb..f3d91c6dd 100644 --- a/common/functions.xsl +++ b/common/functions.xsl @@ -1233,12 +1233,14 @@ of this software, even if advised of the possibility of such damage. whether there is an out-of-date desc or gloss in the translation language - + - + From f1aa9a34b2fc1f9f48d7a0a69f6c098332b3e589 Mon Sep 17 00:00:00 2001 From: Patricia O CONNOR Date: Tue, 17 Oct 2023 19:16:51 +0200 Subject: [PATCH 18/20] Update P5subset and tests --- Test/expected-results/test.isosch | 82 ++++---- Test/expected-results/test.rng | 121 +++++------ Test/expected-results/test15.odd.rnc | 127 +++++++---- Test/expected-results/test21.odd.rnc | 161 ++++++++------ Test/expected-results/test30.dtd | 6 +- Test/expected-results/test30.rnc | 155 +++++++++----- Test/expected-results/test33.rnc | 126 +++++++---- Test/expected-results/test34.combined.json | 32 +-- Test/expected-results/test34.rnc | 126 +++++++---- Test/expected-results/test35.rnc | 126 +++++++---- Test/expected-results/testdrama.compiled.xml | 144 ++++++------- Test2/expected-results/testAttValQuant.rng | 101 +++++---- Test2/expected-results/testPure1.rng | 119 ++++++----- source/p5subset.xml | 210 ++++++++----------- 14 files changed, 915 insertions(+), 721 deletions(-) diff --git a/Test/expected-results/test.isosch b/Test/expected-results/test.isosch index 10001b2c6..37877cec8 100644 --- a/Test/expected-results/test.isosch +++ b/Test/expected-results/test.isosch @@ -30,14 +30,26 @@ The @to and @notAfter attributes cannot be used together. - + @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this element has no textual content. - + + + + + + + + + + + + @@ -47,50 +59,50 @@ - + The @unit attribute may be unnecessary when @unitRef is present. - + The element should not be categorized in detail with @subtype unless also categorized in general with @type - + @targetLang should only be used on if @target is specified. - + The element indicated by @spanTo () must follow the current element - + @schemeVersion can only be used if @scheme is specified. - + Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements. - + Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. - + Information about a deprecation should only be present in a specification element @@ -99,43 +111,43 @@ The element indicated by @spanTo () must follow the type="deprecationInfo">. - + When target= is present, neither from= nor to= should be. - + When from= is present, the to= attribute of is required. - + When to= is present, the from= attribute of is required. - + Only one of the attributes @target and @cRef may be supplied on . - + Only one of the attributes @target' and @cRef' may be supplied on - + The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element - + If the @target attribute on is used, the @@ -144,43 +156,43 @@ relatedItem element must be empty or a child element to indicate the related bibliographic item - + Abstract model violation: Lines may not contain lines or lg elements. - + An lg element must contain at least one child l, lg, or gap element. - + Abstract model violation: Lines may not contain line groups. - + On , either the @marks attribute should be used, or a paragraph of description provided - + An XPath in @match on the outer must start with '/'. - + An XPath in @match must not start with '/' except on the outer . - + A facsimile element represents a text with images, thus @@ -188,7 +200,7 @@ On , either the @marks attribute should be used, or a paragraph of descri - + , either the @marks attribute should be used, or a paragraph of descri the zone element rather than the path element. - + The @spanTo attribute of is required. - + The @spanTo attribute of is required. - + The @spanTo attribute of is required. - + must have at least one child add and at least one child del or surplus - + Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. - + Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. - + You must supply at least two values for @target or on - + Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText. - + You must supply at least two values for @target on - + This element must have a @type attribute, since it is diff --git a/Test/expected-results/test.rng b/Test/expected-results/test.rng index e2a2bd35c..cb492ea2c 100644 --- a/Test/expected-results/test.rng +++ b/Test/expected-results/test.rng @@ -537,17 +537,28 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke - + @calendar indicates one or more systems or calendars to which the date represented by the content of this element belongs, but this element has no textual content. + + + + + + + + + + + - supplies pointers to one or more definitions of named periods of time (typically <category>s or <calendar>s) within which the datable item is understood to have occurred. + supplies pointers to one or more definitions of named periods of time (typically <category>s, <date>s or <event>s) within which the datable item is understood to have occurred. @@ -850,7 +861,7 @@ Suggested values include: 1] internal; 2] external; 3] conjecture - + @@ -1174,7 +1185,7 @@ Suggested values include: 1] m (metre); 2] kg (kilogram); 3] s (second); 4] Hz ( - + The @unit attribute may be unnecessary when @unitRef is present. @@ -1293,7 +1304,7 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf - + The element should not be categorized in detail with @subtype unless also categorized in general with @type @@ -1317,7 +1328,7 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf - + @targetLang should only be used on if @target is specified. @@ -1470,7 +1481,7 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf - + The element indicated by @spanTo () must follow the current element @@ -1508,7 +1519,7 @@ The element indicated by @spanTo () must follow - + @schemeVersion can only be used if @scheme is specified. @@ -4129,14 +4140,14 @@ Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] cant (paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents] - + Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements. - + Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. @@ -4335,7 +4346,7 @@ Suggested values include: 1] spoken (spoken); 2] thought (thought); 3] written ( (description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented. [22.4.1. Description of Components] - + Information about a deprecation should only be present in a specification element @@ -4428,7 +4439,7 @@ Suggested values include: 1] deprecationInfo (deprecation information) - + When target= is present, neither from= nor to= should be. @@ -4442,7 +4453,7 @@ Suggested values include: 1] deprecationInfo (deprecation information) - + When from= is present, the to= attribute of is required. @@ -4456,7 +4467,7 @@ Suggested values include: 1] deprecationInfo (deprecation information) - + When to= is present, the from= attribute of is required. @@ -4897,7 +4908,7 @@ Sample values include: 1] suspension (suspension); 2] contraction (contraction); (pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 16.1. Links] - + Only one of the attributes @target and @cRef may be supplied on . @@ -4916,7 +4927,7 @@ attributes @target and @cRef may be supplied on . (reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 16.1. Links] - + Only one of the attributes @target' and @cRef' may be supplied on @@ -4984,7 +4995,7 @@ attributes @target and @cRef may be supplied on . - + The content of a "gloss" list should include a sequence of one or more pairs of a label element followed by an item element @@ -5669,7 +5680,7 @@ Sample values include: 1] main; 2] sub (subordinate); 3] alt (alternate); 4] sho - + If the @target attribute on is used, the @@ -5703,7 +5714,7 @@ relatedItem element must be empty - + Abstract model violation: Lines may not contain lines or lg elements. @@ -5751,13 +5762,13 @@ relatedItem element must be empty - + An lg element must contain at least one child l, lg, or gap element. - + Abstract model violation: Lines may not contain line groups. @@ -6441,7 +6452,7 @@ Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] - + On , either the @marks attribute should be used, or a paragraph of description provided @@ -6614,9 +6625,11 @@ On , either the @marks attribute should be used, or a paragraph of descri specifies the full formal name of the namespace concerned. - - \S* - + + + \S+ + + @@ -6707,12 +6720,12 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after(match) supplies an XPath selection pattern using the syntax defined in which identifies a set of nodes which are citable structural components. The expression may be absolute (beginning with `/`) or relative. @match on a <citeStructure> without a <citeStructure> parent must be an absolute XPath. If it is relative, its context is set by the @match of the parent <citeStructure>. - + An XPath in @match on the outer must start with '/'. - + An XPath in @match must not start with '/' except on the outer . @@ -7289,8 +7302,12 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] - - + + + + + + @@ -7499,7 +7516,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 - + A facsimile element represents a text with images, thus @@ -7622,7 +7639,7 @@ Sample values include: 1] glued; 2] pinned; 3] sewn (path) defines any line passing through two or more points within a <surface> element. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription] - + @@ -7668,12 +7685,12 @@ Sample values include: 1] glued; 2] pinned; 3] sewn (added span of text) marks the beginning of a longer sequence of text added by an author, scribe, annotator or corrector (see also <add>). [11.3.1.4. Additions and Deletions] - + The @spanTo attribute of is required. - + L'attribut spanTo est requis. @@ -7701,12 +7718,12 @@ Sample values include: 1] glued; 2] pinned; 3] sewn (damaged span of text) marks the beginning of a longer sequence of text which is damaged in some way but still legible. [11.3.3.1. Damage, Illegibility, and Supplied Text] - + The @spanTo attribute of is required. - + L'attribut spanTo est requis. @@ -7722,12 +7739,12 @@ Sample values include: 1] glued; 2] pinned; 3] sewn (deleted span of text) marks the beginning of a longer sequence of text deleted, marked as deleted, or otherwise signaled as superfluous or spurious by an author, scribe, annotator, or corrector. [11.3.1.4. Additions and Deletions] - + The @spanTo attribute of is required. - + L'attribut spanTo est requis. @@ -7892,7 +7909,7 @@ Sample values include: 1] header; 2] footer; 3] pageNum (page number); 4] lineNu - + must have at least one child add and at least one child del or surplus @@ -8962,14 +8979,14 @@ Suggested values include: 1] initial; 2] final - + Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. - + Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. @@ -9726,21 +9743,7 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat (document date) contains the date of a document, as given on a title page or in a dateline. [4.6. Title Pages] - - - (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - - - - - - - - - - - - + @@ -9963,7 +9966,7 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat (link) defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [16.1. Links] - + You must supply at least two values for @target or on @@ -9998,7 +10001,7 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat (anonymous block) contains any component-level unit of text, acting as a container for phrase or inter level elements analogous to, but without the same constraints as, a paragraph. [16.3. Blocks, Segments, and Anchors] - + Abstract model violation: Lines may not contain higher-level divisions such as p or ab, unless ab is a child of figure or note, or is a descendant of floatingText. @@ -10166,7 +10169,7 @@ Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (sec - + You must supply at least two values for @target on @@ -10312,7 +10315,7 @@ You must supply at least two values for @target on - + This element must have a @type attribute, since it is diff --git a/Test/expected-results/test15.odd.rnc b/Test/expected-results/test15.odd.rnc index 5d8dbe21e..e4cc04d35 100644 --- a/Test/expected-results/test15.odd.rnc +++ b/Test/expected-results/test15.odd.rnc @@ -360,7 +360,8 @@ att.datable.attribute.calendar = } }? sch:pattern [ - id = "test15-att.datable-calendar-calendar-constraint-rule-4" + id = + "test15-att.datable-calendar-calendar-check-deprecated-constraint-rule-4" "\x{a}" ~ " " sch:rule [ @@ -381,13 +382,62 @@ sch:pattern [ "\x{a}" ~ " " ] +sch:pattern [ + id = + "test15-att.datable-calendar-calendar-deprecated-constraint-rule-5" + "\x{a}" ~ + " " + sch:rule [ + context = + "tei:*[@calendar][ not( self::tei:date | self::tei:time | self::tei:origDate ) ]" + "\x{a}" ~ + " " + sch:let [ + name = "me_phrase" + value = "concat( 'Attribute calendar on ', local-name(.))" + ] + "\x{a}" ~ + " " + sch:assert [ + test = "'2024-11-11' cast as xs:date ge current-date()" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' construct is outdated (as of 2024-11-11); ODD processors may ignore it, and its use is no longer supported' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + sch:report [ + role = "nonfatal" + test = "@calendar" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' becomes outdated on 2024-11-11' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " +] att.datable.attribute.period = [ a:documentation [ "supplies pointers to one or more definitions of named periods of time (typically " ns1:code [ "" ] + "s, " + ns1:code [ "" ] "s or " - ns1:code [ "" ] + ns1:code [ "" ] "s) within which the datable item is understood to have occurred." ] ] @@ -628,7 +678,7 @@ att.global.source.attribute.source = }? sch:pattern [ id = - "test15-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "test15-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -917,7 +967,7 @@ att.measurement.attribute.commodity = }? sch:pattern [ id = - "test15-att.measurement-att-measurement-unitRef-constraint-rule-6" + "test15-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1023,7 +1073,7 @@ att.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "test15-att.typed-subtypeTyped-constraint-rule-7" + id = "test15-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1066,7 +1116,7 @@ att.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "test15-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "test15-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1187,7 +1237,7 @@ att.spanning.attribute.spanTo = }? sch:pattern [ id = - "test15-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "test15-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1243,7 +1293,7 @@ att.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "test15-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "test15-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -1999,7 +2049,7 @@ p = macro.paraContent >> sch:pattern [ id = - "test15-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "test15-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2021,7 +2071,7 @@ p = ] >> sch:pattern [ id = - "test15-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "test15-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2202,7 +2252,7 @@ desc = macro.limitedContent >> sch:pattern [ id = - "test15-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "test15-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2290,7 +2340,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test15-rt-target-rt-target-not-span-constraint-report-8" + id = "test15-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2314,7 +2364,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test15-rt-from-rt-from-constraint-assert-7" + id = "test15-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2340,7 +2390,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test15-rt-to-rt-to-constraint-assert-8" + id = "test15-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -2696,7 +2746,7 @@ ptr = element ptr { empty >> sch:pattern [ - id = "test15-ptr-ptrAtts-constraint-report-9" + id = "test15-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -2730,7 +2780,7 @@ ref = element ref { macro.paraContent >> sch:pattern [ - id = "test15-ref-refAtts-constraint-report-10" + id = "test15-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -2771,7 +2821,7 @@ ref = (model.divBottom, model.global*)*) >> sch:pattern [ id = - "test15-list-gloss-list-must-have-labels-constraint-rule-12" + "test15-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3259,7 +3309,7 @@ relatedItem = element relatedItem { ((model.biblLike | model.ptrLike)?) >> sch:pattern [ - id = "test15-relatedItem-targetorcontent1-constraint-report-11" + id = "test15-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3303,7 +3353,7 @@ l = ((text | model.gLike | model.phrase | model.inter | model.global)*) >> sch:pattern [ id = - "test15-l-abstractModel-structure-l-in-l-constraint-report-12" + "test15-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3345,7 +3395,7 @@ lg = | lg)*, (model.divBottom, model.global*)*) >> sch:pattern [ - id = "test15-lg-atleast1oflggapl-constraint-assert-11" + id = "test15-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3366,7 +3416,7 @@ lg = ] >> sch:pattern [ id = - "test15-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "test15-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -3888,7 +3938,7 @@ quotation = element quotation { (model.pLike*) >> sch:pattern [ - id = "test15-quotation-quotationContents-constraint-report-14" + id = "test15-quotation-quotationContents-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -4063,7 +4113,7 @@ tagUsage = ## specifies the full formal name of the namespace concerned. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -4139,7 +4189,7 @@ citeStructure = attribute match { text } >> sch:pattern [ id = - "test15-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "test15-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -4160,7 +4210,7 @@ citeStructure = ] >> sch:pattern [ id = - "test15-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "test15-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -4599,7 +4649,7 @@ revisionDesc = ## (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element revisionDesc { - (\list | listChange | change+), + (\list+ | listChange+ | change+), att.global.attributes, att.docStatus.attributes, empty @@ -4745,7 +4795,7 @@ floatingText = (model.divBottom, model.global*)*)?) >> sch:pattern [ id = - "test15-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15" + "test15-div-abstractModel-structure-div-in-l-or-lg-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -4767,7 +4817,7 @@ floatingText = ] >> sch:pattern [ id = - "test15-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16" + "test15-div-abstractModel-structure-div-in-ab-or-p-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -5105,18 +5155,7 @@ docDate = element docDate { macro.phraseSeq, att.global.attributes, - - ## (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + att.datable.attributes, empty } front = @@ -5225,7 +5264,7 @@ link = element link { empty >> sch:pattern [ - id = "test15-link-linkTargets3-constraint-assert-14" + id = "test15-link-linkTargets3-constraint-assert-15" "\x{a}" ~ " " sch:rule [ @@ -5266,7 +5305,7 @@ ab = macro.abContent >> sch:pattern [ id = - "test15-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17" + "test15-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18" "\x{a}" ~ " " sch:rule [ @@ -5442,7 +5481,7 @@ join = element join { ((model.descLike | model.certLike)*) >> sch:pattern [ - id = "test15-join-joinTargets3-constraint-assert-15" + id = "test15-join-joinTargets3-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -5590,7 +5629,7 @@ standOff = (model.standOffPart+) >> sch:pattern [ id = - "test15-standOff-nested_standOff_should_be_typed-constraint-assert-16" + "test15-standOff-nested_standOff_should_be_typed-constraint-assert-17" "\x{a}" ~ " " sch:rule [ diff --git a/Test/expected-results/test21.odd.rnc b/Test/expected-results/test21.odd.rnc index 33cd31fbd..250dfea0e 100644 --- a/Test/expected-results/test21.odd.rnc +++ b/Test/expected-results/test21.odd.rnc @@ -400,7 +400,8 @@ att.datable.attribute.calendar = } }? sch:pattern [ - id = "test21-att.datable-calendar-calendar-constraint-rule-4" + id = + "test21-att.datable-calendar-calendar-check-deprecated-constraint-rule-4" "\x{a}" ~ " " sch:rule [ @@ -421,6 +422,53 @@ sch:pattern [ "\x{a}" ~ " " ] +sch:pattern [ + id = + "test21-att.datable-calendar-calendar-deprecated-constraint-rule-5" + "\x{a}" ~ + " " + sch:rule [ + context = + "tei:*[@calendar][ not( self::tei:date | self::tei:time | self::tei:origDate ) ]" + "\x{a}" ~ + " " + sch:let [ + name = "me_phrase" + value = "concat( 'Attribute calendar on ', local-name(.))" + ] + "\x{a}" ~ + " " + sch:assert [ + test = "'2024-11-11' cast as xs:date ge current-date()" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' construct is outdated (as of 2024-11-11); ODD processors may ignore it, and its use is no longer supported' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + sch:report [ + role = "nonfatal" + test = "@calendar" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' becomes outdated on 2024-11-11' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " +] att.datable.attribute.period = ## fournit un pointeur vers un emplacement donné définissant une période de temps nommée durant laquelle l'item concerné s'inscrit. @@ -661,7 +709,7 @@ att.global.source.attribute.source = }? sch:pattern [ id = - "test21-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "test21-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -712,7 +760,7 @@ att.global.attribute.xmllang = [ a:documentation [ "(langue) indique la langue du contenu de l'élément en utilisant les codes du " - ns1:a [ href = "http://www.ietf.org/rfc/rfc3066.txt" "RFC 3066" ] + ns1:a [ href = "https://www.ietf.org/rfc/rfc3066.txt" "RFC 3066" ] "\x{a}" ~ " " ] @@ -952,7 +1000,7 @@ att.measurement.attribute.commodity = }? sch:pattern [ id = - "test21-att.measurement-att-measurement-unitRef-constraint-rule-6" + "test21-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1068,7 +1116,7 @@ att.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "test21-att.typed-subtypeTyped-constraint-rule-7" + id = "test21-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1111,7 +1159,7 @@ att.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "test21-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "test21-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1232,7 +1280,7 @@ att.spanning.attribute.spanTo = }? sch:pattern [ id = - "test21-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "test21-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1288,7 +1336,7 @@ att.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "test21-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "test21-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -2513,7 +2561,7 @@ p = }*) >> sch:pattern [ id = - "test21-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "test21-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2535,7 +2583,7 @@ p = ] >> sch:pattern [ id = - "test21-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "test21-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2738,7 +2786,7 @@ desc = macro.limitedContent >> sch:pattern [ id = - "test21-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "test21-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2826,7 +2874,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test21-rt-target-rt-target-not-span-constraint-report-8" + id = "test21-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2850,7 +2898,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test21-rt-from-rt-from-constraint-assert-7" + id = "test21-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2876,7 +2924,7 @@ rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "test21-rt-to-rt-to-constraint-assert-8" + id = "test21-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -3241,7 +3289,7 @@ ptr = element ptr { empty >> sch:pattern [ - id = "test21-ptr-ptrAtts-constraint-report-9" + id = "test21-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -3285,7 +3333,7 @@ ref = element ref { macro.paraContent >> sch:pattern [ - id = "test21-ref-refAtts-constraint-report-10" + id = "test21-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -3326,7 +3374,7 @@ ref = (model.divBottom, model.global*)*) >> sch:pattern [ id = - "test21-list-gloss-list-must-have-labels-constraint-rule-12" + "test21-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3827,7 +3875,7 @@ relatedItem = element relatedItem { ((model.biblLike | model.ptrLike)?) >> sch:pattern [ - id = "test21-relatedItem-targetorcontent1-constraint-report-11" + id = "test21-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3871,7 +3919,7 @@ l = ((text | model.gLike | model.phrase | model.inter | model.global)*) >> sch:pattern [ id = - "test21-l-abstractModel-structure-l-in-l-constraint-report-12" + "test21-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3913,7 +3961,7 @@ lg = | lg)*, (model.divBottom, model.global*)*) >> sch:pattern [ - id = "test21-lg-atleast1oflggapl-constraint-assert-11" + id = "test21-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3934,7 +3982,7 @@ lg = ] >> sch:pattern [ id = - "test21-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "test21-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -5078,7 +5126,7 @@ relation = element relation { (desc?) >> sch:pattern [ - id = "test21-relation-reforkeyorname-constraint-assert-12" + id = "test21-relation-reforkeyorname-constraint-assert-13" "\x{a}" ~ " " sch:rule [ @@ -5096,7 +5144,7 @@ relation = " " ] >> sch:pattern [ - id = "test21-relation-activemutual-constraint-report-14" + id = "test21-relation-activemutual-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -5114,7 +5162,7 @@ relation = " " ] >> sch:pattern [ - id = "test21-relation-activepassive-constraint-report-15" + id = "test21-relation-activepassive-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -5737,7 +5785,7 @@ quotation = element quotation { (model.pLike*) >> sch:pattern [ - id = "test21-quotation-quotationContents-constraint-report-16" + id = "test21-quotation-quotationContents-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -5907,7 +5955,7 @@ tagUsage = ## le nom formel complet de l'espace de noms concerné. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -5983,7 +6031,7 @@ citeStructure = attribute match { text } >> sch:pattern [ id = - "test21-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "test21-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -6004,7 +6052,7 @@ citeStructure = ] >> sch:pattern [ id = - "test21-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "test21-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -6438,7 +6486,7 @@ revisionDesc = ## (descriptif des révisions) fournit un résumé de l’historique des révisions d’un fichier. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element revisionDesc { - (\list | listChange | change+), + (\list+ | listChange+ | change+), att.global.attributes, att.docStatus.attributes, empty @@ -6561,7 +6609,7 @@ link = element link { empty >> sch:pattern [ - id = "test21-link-linkTargets3-constraint-assert-15" + id = "test21-link-linkTargets3-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -6602,7 +6650,7 @@ ab = macro.abContent >> sch:pattern [ id = - "test21-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17" + "test21-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18" "\x{a}" ~ " " sch:rule [ @@ -6804,7 +6852,7 @@ join = element join { ((model.descLike | model.certLike)*) >> sch:pattern [ - id = "test21-join-joinTargets3-constraint-assert-16" + id = "test21-join-joinTargets3-constraint-assert-17" "\x{a}" ~ " " sch:rule [ @@ -6954,7 +7002,7 @@ standOff = (model.standOffPart+) >> sch:pattern [ id = - "test21-standOff-nested_standOff_should_be_typed-constraint-assert-17" + "test21-standOff-nested_standOff_should_be_typed-constraint-assert-18" "\x{a}" ~ " " sch:rule [ @@ -7147,7 +7195,7 @@ catchwords = macro.phraseSeq >> sch:pattern [ id = - "test21-catchwords-catchword_in_msDesc-constraint-assert-18" + "test21-catchwords-catchword_in_msDesc-constraint-assert-19" "\x{a}" ~ " " sch:rule [ @@ -7175,7 +7223,7 @@ dimensions = element dimensions { ((dim | model.dimLike)*) >> sch:pattern [ - id = "test21-dimensions-duplicateDim-constraint-report-18" + id = "test21-dimensions-duplicateDim-constraint-report-19" "\x{a}" ~ " " sch:rule [ @@ -7359,7 +7407,7 @@ secFol = element secFol { macro.phraseSeq >> sch:pattern [ - id = "test21-secFol-secFol_in_msDesc-constraint-assert-19" + id = "test21-secFol-secFol_in_msDesc-constraint-assert-20" "\x{a}" ~ " " sch:rule [ @@ -7388,7 +7436,7 @@ signatures = macro.specialPara >> sch:pattern [ id = - "test21-signatures-signatures_in_msDesc-constraint-assert-20" + "test21-signatures-signatures_in_msDesc-constraint-assert-21" "\x{a}" ~ " " sch:rule [ @@ -7441,7 +7489,7 @@ msIdentifier = idno*), (msName | objectName | altIdentifier)*) >> sch:pattern [ - id = "test21-msIdentifier-msId_minimal-constraint-report-21" + id = "test21-msIdentifier-msId_minimal-constraint-report-22" "\x{a}" ~ " " sch:rule [ @@ -8081,7 +8129,7 @@ facsimile = (front?, (model.graphicLike | surface | surfaceGrp)+, back?) >> sch:pattern [ id = - "test21-facsimile-no_facsimile_text_nodes-constraint-rule-15" + "test21-facsimile-no_facsimile_text_nodes-constraint-rule-16" "\x{a}" ~ " " sch:rule [ @@ -8190,7 +8238,7 @@ path = element path { empty >> sch:pattern [ - id = "test21-path-pathmustnotbeclosed-constraint-rule-16" + id = "test21-path-pathmustnotbeclosed-constraint-rule-17" "\x{a}" ~ " " sch:rule [ @@ -8283,7 +8331,7 @@ addSpan = empty >> sch:pattern [ id = - "test21-addSpan-addSpan-requires-spanTo-constraint-assert-21" + "test21-addSpan-addSpan-requires-spanTo-constraint-assert-22" "\x{a}" ~ " " sch:rule [ @@ -8304,7 +8352,7 @@ addSpan = ] >> sch:pattern [ id = - "test21-addSpan-addSpan-requires-spanTo-fr-constraint-assert-22" + "test21-addSpan-addSpan-requires-spanTo-fr-constraint-assert-23" "\x{a}" ~ " " sch:rule [ @@ -8333,7 +8381,7 @@ addSpan = } >> sch:pattern [ id = - "test21-addSpan-spanTo-spanTo-points-to-following-constraint-rule-17" + "test21-addSpan-spanTo-spanTo-points-to-following-constraint-rule-18" "\x{a}" ~ " " sch:rule [ @@ -8376,7 +8424,7 @@ damageSpan = empty >> sch:pattern [ id = - "test21-damageSpan-damageSpan-requires-spanTo-constraint-assert-24" + "test21-damageSpan-damageSpan-requires-spanTo-constraint-assert-25" "\x{a}" ~ " " sch:rule [ @@ -8397,7 +8445,7 @@ damageSpan = ] >> sch:pattern [ id = - "test21-damageSpan-damageSpan-requires-spanTo-fr-constraint-assert-25" + "test21-damageSpan-damageSpan-requires-spanTo-fr-constraint-assert-26" "\x{a}" ~ " " sch:rule [ @@ -8427,7 +8475,7 @@ delSpan = empty >> sch:pattern [ id = - "test21-delSpan-delSpan-requires-spanTo-constraint-assert-26" + "test21-delSpan-delSpan-requires-spanTo-constraint-assert-27" "\x{a}" ~ " " sch:rule [ @@ -8448,7 +8496,7 @@ delSpan = ] >> sch:pattern [ id = - "test21-delSpan-delSpan-requires-spanTo-fr-constraint-assert-27" + "test21-delSpan-delSpan-requires-spanTo-fr-constraint-assert-28" "\x{a}" ~ " " sch:rule [ @@ -8594,7 +8642,7 @@ subst = element subst { ((add | surplus | del | model.milestoneLike)+) >> sch:pattern [ - id = "test21-subst-substContents1-constraint-assert-28" + id = "test21-subst-substContents1-constraint-assert-29" "\x{a}" ~ " " sch:rule [ @@ -8867,7 +8915,7 @@ group = (model.divBottom, model.global*)*)?) >> sch:pattern [ id = - "test21-div-abstractModel-structure-div-in-l-or-lg-constraint-report-24" + "test21-div-abstractModel-structure-div-in-l-or-lg-constraint-report-25" "\x{a}" ~ " " sch:rule [ @@ -8889,7 +8937,7 @@ group = ] >> sch:pattern [ id = - "test21-div-abstractModel-structure-div-in-ab-or-p-constraint-report-25" + "test21-div-abstractModel-structure-div-in-ab-or-p-constraint-report-26" "\x{a}" ~ " " sch:rule [ @@ -9232,18 +9280,7 @@ docDate = element docDate { macro.phraseSeq, att.global.attributes, - - ## (when) donne la date dans une forme standard, c'est-à-dire. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + att.datable.attributes, empty } front = diff --git a/Test/expected-results/test30.dtd b/Test/expected-results/test30.dtd index 69eb5b67b..72a0fb25e 100644 --- a/Test/expected-results/test30.dtd +++ b/Test/expected-results/test30.dtd @@ -1779,7 +1779,7 @@ type %teidata.enumerated; #IMPLIED > + %Tatt.datable.attributes; > @@ -2469,7 +2469,7 @@ Elements] --> +name CDATA #REQUIRED > @@ -2946,7 +2946,7 @@ type %teidata.enumerated; #IMPLIED > %Tatt.transcriptional.attributes; %Tatt.dimensions.attributes; > - + " ] + "s, " + ns1:code [ "" ] "s or " - ns1:code [ "" ] + ns1:code [ "" ] "s) within which the datable item is understood to have occurred." ] ] @@ -693,7 +743,7 @@ Tatt.global.source.attribute.source = }? sch:pattern [ id = - "testbasic-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "testbasic-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -937,7 +987,7 @@ Tatt.measurement.attribute.commodity = }? sch:pattern [ id = - "testbasic-att.measurement-att-measurement-unitRef-constraint-rule-6" + "testbasic-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1043,7 +1093,7 @@ Tatt.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "testbasic-att.typed-subtypeTyped-constraint-rule-7" + id = "testbasic-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1086,7 +1136,7 @@ Tatt.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "testbasic-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "testbasic-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1207,7 +1257,7 @@ Tatt.spanning.attribute.spanTo = }? sch:pattern [ id = - "testbasic-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "testbasic-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1263,7 +1313,7 @@ Tatt.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "testbasic-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "testbasic-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -2428,7 +2478,7 @@ Tp = Tmacro.paraContent >> sch:pattern [ id = - "testbasic-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "testbasic-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2450,7 +2500,7 @@ Tp = ] >> sch:pattern [ id = - "testbasic-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "testbasic-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2628,7 +2678,7 @@ Tdesc = Tmacro.limitedContent >> sch:pattern [ id = - "testbasic-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "testbasic-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2720,7 +2770,7 @@ Trt = }?) >> sch:pattern [ id = - "testbasic-rt-target-rt-target-not-span-constraint-report-8" + "testbasic-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2744,7 +2794,7 @@ Trt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "testbasic-rt-from-rt-from-constraint-assert-7" + id = "testbasic-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2770,7 +2820,7 @@ Trt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "testbasic-rt-to-rt-to-constraint-assert-8" + id = "testbasic-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -3126,7 +3176,7 @@ Tptr = element ptr { empty >> sch:pattern [ - id = "testbasic-ptr-ptrAtts-constraint-report-9" + id = "testbasic-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -3160,7 +3210,7 @@ Tref = element ref { Tmacro.paraContent >> sch:pattern [ - id = "testbasic-ref-refAtts-constraint-report-10" + id = "testbasic-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -3201,7 +3251,7 @@ Tlist = (Tmodel.divBottom, Tmodel.global*)*) >> sch:pattern [ id = - "testbasic-list-gloss-list-must-have-labels-constraint-rule-12" + "testbasic-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3717,7 +3767,7 @@ TrelatedItem = ((Tmodel.biblLike | Tmodel.ptrLike)?) >> sch:pattern [ id = - "testbasic-relatedItem-targetorcontent1-constraint-report-11" + "testbasic-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3765,7 +3815,7 @@ Tl = | Tmodel.global)*) >> sch:pattern [ id = - "testbasic-l-abstractModel-structure-l-in-l-constraint-report-12" + "testbasic-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3807,7 +3857,7 @@ Tlg = | Tlg)*, (Tmodel.divBottom, Tmodel.global*)*) >> sch:pattern [ - id = "testbasic-lg-atleast1oflggapl-constraint-assert-11" + id = "testbasic-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3828,7 +3878,7 @@ Tlg = ] >> sch:pattern [ id = - "testbasic-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "testbasic-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -4351,7 +4401,7 @@ Tquotation = (Tmodel.pLike*) >> sch:pattern [ id = - "testbasic-quotation-quotationContents-constraint-report-14" + "testbasic-quotation-quotationContents-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -4526,7 +4576,7 @@ Tnamespace = ## specifies the full formal name of the namespace concerned. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -4602,7 +4652,7 @@ TciteStructure = attribute match { text } >> sch:pattern [ id = - "testbasic-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "testbasic-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -4623,7 +4673,7 @@ TciteStructure = ] >> sch:pattern [ id = - "testbasic-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "testbasic-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -5071,7 +5121,7 @@ TrevisionDesc = ## (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element revisionDesc { - (Tlist | TlistChange | Tchange+), + (Tlist+ | TlistChange+ | Tchange+), Tatt.global.attributes, Tatt.docStatus.attributes, empty @@ -6090,7 +6140,7 @@ Trelation = element relation { (Tdesc?) >> sch:pattern [ - id = "testbasic-relation-reforkeyorname-constraint-assert-14" + id = "testbasic-relation-reforkeyorname-constraint-assert-15" "\x{a}" ~ " " sch:rule [ @@ -6108,7 +6158,7 @@ Trelation = " " ] >> sch:pattern [ - id = "testbasic-relation-activemutual-constraint-report-15" + id = "testbasic-relation-activemutual-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -6126,7 +6176,7 @@ Trelation = " " ] >> sch:pattern [ - id = "testbasic-relation-activepassive-constraint-report-16" + id = "testbasic-relation-activepassive-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -6476,7 +6526,7 @@ Tfacsimile = (Tfront?, (Tmodel.graphicLike | Tsurface | TsurfaceGrp)+, Tback?) >> sch:pattern [ id = - "testbasic-facsimile-no_facsimile_text_nodes-constraint-rule-15" + "testbasic-facsimile-no_facsimile_text_nodes-constraint-rule-16" "\x{a}" ~ " " sch:rule [ @@ -6586,7 +6636,7 @@ Tpath = element path { empty >> sch:pattern [ - id = "testbasic-path-pathmustnotbeclosed-constraint-rule-16" + id = "testbasic-path-pathmustnotbeclosed-constraint-rule-17" "\x{a}" ~ " " sch:rule [ @@ -6679,7 +6729,7 @@ TaddSpan = empty >> sch:pattern [ id = - "testbasic-addSpan-addSpan-requires-spanTo-constraint-assert-15" + "testbasic-addSpan-addSpan-requires-spanTo-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -6700,7 +6750,7 @@ TaddSpan = ] >> sch:pattern [ id = - "testbasic-addSpan-addSpan-requires-spanTo-fr-constraint-assert-16" + "testbasic-addSpan-addSpan-requires-spanTo-fr-constraint-assert-17" "\x{a}" ~ " " sch:rule [ @@ -6742,7 +6792,7 @@ TdamageSpan = empty >> sch:pattern [ id = - "testbasic-damageSpan-damageSpan-requires-spanTo-constraint-assert-17" + "testbasic-damageSpan-damageSpan-requires-spanTo-constraint-assert-18" "\x{a}" ~ " " sch:rule [ @@ -6763,7 +6813,7 @@ TdamageSpan = ] >> sch:pattern [ id = - "testbasic-damageSpan-damageSpan-requires-spanTo-fr-constraint-assert-18" + "testbasic-damageSpan-damageSpan-requires-spanTo-fr-constraint-assert-19" "\x{a}" ~ " " sch:rule [ @@ -6793,7 +6843,7 @@ TdelSpan = empty >> sch:pattern [ id = - "testbasic-delSpan-delSpan-requires-spanTo-constraint-assert-19" + "testbasic-delSpan-delSpan-requires-spanTo-constraint-assert-20" "\x{a}" ~ " " sch:rule [ @@ -6814,7 +6864,7 @@ TdelSpan = ] >> sch:pattern [ id = - "testbasic-delSpan-delSpan-requires-spanTo-fr-constraint-assert-20" + "testbasic-delSpan-delSpan-requires-spanTo-fr-constraint-assert-21" "\x{a}" ~ " " sch:rule [ @@ -6961,7 +7011,7 @@ Tsubst = element subst { ((Tadd | Tsurplus | Tdel | Tmodel.milestoneLike)+) >> sch:pattern [ - id = "testbasic-subst-substContents1-constraint-assert-21" + id = "testbasic-subst-substContents1-constraint-assert-22" "\x{a}" ~ " " sch:rule [ @@ -7257,7 +7307,7 @@ Tlink = element link { empty >> sch:pattern [ - id = "testbasic-link-linkTargets3-constraint-assert-22" + id = "testbasic-link-linkTargets3-constraint-assert-23" "\x{a}" ~ " " sch:rule [ @@ -7298,7 +7348,7 @@ Tab = Tmacro.abContent >> sch:pattern [ id = - "testbasic-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-19" + "testbasic-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-20" "\x{a}" ~ " " sch:rule [ @@ -7474,7 +7524,7 @@ Tjoin = element join { ((Tmodel.descLike | Tmodel.certLike)*) >> sch:pattern [ - id = "testbasic-join-joinTargets3-constraint-assert-23" + id = "testbasic-join-joinTargets3-constraint-assert-24" "\x{a}" ~ " " sch:rule [ @@ -7622,7 +7672,7 @@ TstandOff = (Tmodel.standOffPart+) >> sch:pattern [ id = - "testbasic-standOff-nested_standOff_should_be_typed-constraint-assert-24" + "testbasic-standOff-nested_standOff_should_be_typed-constraint-assert-25" "\x{a}" ~ " " sch:rule [ @@ -7870,7 +7920,7 @@ Tdiv = (Tmodel.divBottom, Tmodel.global*)*)?) >> sch:pattern [ id = - "testbasic-div-abstractModel-structure-div-in-l-or-lg-constraint-report-20" + "testbasic-div-abstractModel-structure-div-in-l-or-lg-constraint-report-21" "\x{a}" ~ " " sch:rule [ @@ -7892,7 +7942,7 @@ Tdiv = ] >> sch:pattern [ id = - "testbasic-div-abstractModel-structure-div-in-ab-or-p-constraint-report-21" + "testbasic-div-abstractModel-structure-div-in-ab-or-p-constraint-report-22" "\x{a}" ~ " " sch:rule [ @@ -8143,18 +8193,7 @@ TdocDate = element docDate { Tmacro.phraseSeq, Tatt.global.attributes, - - ## (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + Tatt.datable.attributes, empty } Tfront = @@ -8301,7 +8340,7 @@ Tplatypus = ## attribute bill { "duck" }?) >> sch:pattern [ - id = "testbasic-platypus-bill-silly-test-constraint-report-23" + id = "testbasic-platypus-bill-silly-test-constraint-report-24" "\x{a}" ~ " " sch:rule [ @@ -8334,7 +8373,7 @@ TMenu = } start = TTEI | Tdiv sch:pattern [ - id = "testbasic-outerconstraint-constraint-rule-17" + id = "testbasic-outerconstraint-constraint-rule-18" "\x{a}" ~ " " sch:rule [ diff --git a/Test/expected-results/test33.rnc b/Test/expected-results/test33.rnc index e7a452db1..efbad019b 100644 --- a/Test/expected-results/test33.rnc +++ b/Test/expected-results/test33.rnc @@ -366,7 +366,8 @@ tei_att.datable.attribute.calendar = } }? sch:pattern [ - id = "foo-att.datable-calendar-calendar-constraint-rule-4" + id = + "foo-att.datable-calendar-calendar-check-deprecated-constraint-rule-4" "\x{a}" ~ " " sch:rule [ @@ -387,13 +388,61 @@ sch:pattern [ "\x{a}" ~ " " ] +sch:pattern [ + id = "foo-att.datable-calendar-calendar-deprecated-constraint-rule-5" + "\x{a}" ~ + " " + sch:rule [ + context = + "tei:*[@calendar][ not( self::tei:date | self::tei:time | self::tei:origDate ) ]" + "\x{a}" ~ + " " + sch:let [ + name = "me_phrase" + value = "concat( 'Attribute calendar on ', local-name(.))" + ] + "\x{a}" ~ + " " + sch:assert [ + test = "'2024-11-11' cast as xs:date ge current-date()" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' construct is outdated (as of 2024-11-11); ODD processors may ignore it, and its use is no longer supported' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + sch:report [ + role = "nonfatal" + test = "@calendar" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' becomes outdated on 2024-11-11' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " +] tei_att.datable.attribute.period = [ a:documentation [ "supplies pointers to one or more definitions of named periods of time (typically " ns1:code [ "" ] + "s, " + ns1:code [ "" ] "s or " - ns1:code [ "" ] + ns1:code [ "" ] "s) within which the datable item is understood to have occurred." ] ] @@ -636,7 +685,7 @@ tei_att.global.source.attribute.source = }? sch:pattern [ id = - "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "foo-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -925,7 +974,7 @@ tei_att.measurement.attribute.commodity = } }? sch:pattern [ - id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6" + id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1031,7 +1080,7 @@ tei_att.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "foo-att.typed-subtypeTyped-constraint-rule-7" + id = "foo-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1074,7 +1123,7 @@ tei_att.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "foo-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1195,7 +1244,7 @@ tei_att.spanning.attribute.spanTo = }? sch:pattern [ id = - "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1252,7 +1301,7 @@ tei_att.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -2145,7 +2194,7 @@ tei_p = tei_macro.paraContent >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2167,7 +2216,7 @@ tei_p = ] >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2356,7 +2405,7 @@ tei_desc = tei_macro.limitedContent >> sch:pattern [ id = - "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2450,7 +2499,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-target-rt-target-not-span-constraint-report-8" + id = "foo-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2474,7 +2523,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-from-rt-from-constraint-assert-7" + id = "foo-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2500,7 +2549,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-to-rt-to-constraint-assert-8" + id = "foo-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -2868,7 +2917,7 @@ tei_ptr = element tei:ptr { empty >> sch:pattern [ - id = "foo-ptr-ptrAtts-constraint-report-9" + id = "foo-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -2902,7 +2951,7 @@ tei_ref = element tei:ref { tei_macro.paraContent >> sch:pattern [ - id = "foo-ref-refAtts-constraint-report-10" + id = "foo-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -2942,7 +2991,7 @@ tei_list = (tei_label, tei_model.global*, tei_item, tei_model.global*)+)), (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-list-gloss-list-must-have-labels-constraint-rule-12" + id = "foo-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3459,7 +3508,7 @@ tei_relatedItem = element tei:relatedItem { ((tei_model.biblLike | tei_model.ptrLike)?) >> sch:pattern [ - id = "foo-relatedItem-targetorcontent1-constraint-report-11" + id = "foo-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3507,7 +3556,7 @@ tei_l = | tei_model.global)*) >> sch:pattern [ id = - "foo-l-abstractModel-structure-l-in-l-constraint-report-12" + "foo-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3549,7 +3598,7 @@ tei_lg = | tei_lg)*, (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-lg-atleast1oflggapl-constraint-assert-11" + id = "foo-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3570,7 +3619,7 @@ tei_lg = ] >> sch:pattern [ id = - "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "foo-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -4105,7 +4154,7 @@ tei_quotation = element tei:quotation { (tei_model.pLike*) >> sch:pattern [ - id = "foo-quotation-quotationContents-constraint-report-14" + id = "foo-quotation-quotationContents-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -4280,7 +4329,7 @@ tei_namespace = ## specifies the full formal name of the namespace concerned. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -4359,7 +4408,7 @@ tei_citeStructure = attribute match { text } >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -4380,7 +4429,7 @@ tei_citeStructure = ] >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -4827,7 +4876,7 @@ tei_revisionDesc = ## (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element tei:revisionDesc { - (tei_list | tei_listChange | tei_change+), + (tei_list+ | tei_listChange+ | tei_change+), tei_att.global.attributes, tei_att.docStatus.attributes, empty @@ -4979,7 +5028,7 @@ tei_div = (tei_model.divBottom, tei_model.global*)*)?) >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15" + "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -5001,7 +5050,7 @@ tei_div = ] >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16" + "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -5355,18 +5404,7 @@ tei_docDate = element tei:docDate { tei_macro.phraseSeq, tei_att.global.attributes, - - ## (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + tei_att.datable.attributes, empty } tei_front = @@ -5481,7 +5519,7 @@ tei_link = element tei:link { empty >> sch:pattern [ - id = "foo-link-linkTargets3-constraint-assert-14" + id = "foo-link-linkTargets3-constraint-assert-15" "\x{a}" ~ " " sch:rule [ @@ -5522,7 +5560,7 @@ tei_ab = tei_macro.abContent >> sch:pattern [ id = - "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17" + "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18" "\x{a}" ~ " " sch:rule [ @@ -5698,7 +5736,7 @@ tei_join = element tei:join { ((tei_model.descLike | tei_model.certLike)*) >> sch:pattern [ - id = "foo-join-joinTargets3-constraint-assert-15" + id = "foo-join-joinTargets3-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -5846,7 +5884,7 @@ tei_standOff = (tei_model.standOffPart+) >> sch:pattern [ id = - "foo-standOff-nested_standOff_should_be_typed-constraint-assert-16" + "foo-standOff-nested_standOff_should_be_typed-constraint-assert-17" "\x{a}" ~ " " sch:rule [ diff --git a/Test/expected-results/test34.combined.json b/Test/expected-results/test34.combined.json index c16e11fdb..896d04c8a 100644 --- a/Test/expected-results/test34.combined.json +++ b/Test/expected-results/test34.combined.json @@ -4408,30 +4408,12 @@ "model.divWrapper", "model.pLike.front" ], "atts" : - [ "att.global" ], + [ "att.global", + "att.datable" ], "unknown" : [ ] }, "attributes" : - [ - { "onElement" : true, - "ident" : "when", - "mode" : "add", - "ns" : "", - "usage" : "opt", - "desc" : - [ "gives the value of the date in standard form, i.e. YYYY-MM-DD.<\/desc>" ], - "shortDesc" : "(when) gives the value of the date in standard form, i.e. YYYY-MM-DD.", - "gloss" : - [ "when<\/gloss>" ], - "altIdent" : - [ ], - "valDesc" : - [ ], - "datatype" : - { "min" : "1", - "max" : "1", - "dataRef" : - { "key" : "teidata.temporal.w3c" } } } ], + [ ], "content" : [ { "type" : "macroRef", @@ -7614,7 +7596,7 @@ "valDesc" : [ ], "datatype" : - { "min" : "1", + { "min" : "0", "max" : "1", "dataRef" : { "key" : "teidata.namespace" } } } ], @@ -13739,8 +13721,8 @@ "ns" : "", "usage" : "opt", "desc" : - [ "supplies pointers to one or more definitions of \n named periods of time (typically category<\/gi>s or calendar<\/gi>s) within which the datable item is understood to have occurred.<\/desc>" ], - "shortDesc" : "supplies pointers to one or more definitions of \n named periods of time (typically categorys or calendars) within which the datable item is understood to have occurred.", + [ "supplies pointers to one or more definitions of \n named periods of time (typically category<\/gi>s, date<\/gi>s or event<\/gi>s) within which the datable item is understood to have occurred.<\/desc>" ], + "shortDesc" : "supplies pointers to one or more definitions of \n named periods of time (typically categorys, dates or events) within which the datable item is understood to have occurred.", "gloss" : [ ], "altIdent" : @@ -17427,7 +17409,7 @@ [ { "type" : "dataRef", "name" : "anyURI", - "restriction" : "\\S*" } ] }, + "restriction" : "\\S+" } ] }, { "ident" : "teidata.numeric", "ns" : "http:\/\/foo.foo\/foo", diff --git a/Test/expected-results/test34.rnc b/Test/expected-results/test34.rnc index 2749ee8b6..4aee7c558 100644 --- a/Test/expected-results/test34.rnc +++ b/Test/expected-results/test34.rnc @@ -367,7 +367,8 @@ tei_att.datable.attribute.calendar = } }? sch:pattern [ - id = "foo-att.datable-calendar-calendar-constraint-rule-4" + id = + "foo-att.datable-calendar-calendar-check-deprecated-constraint-rule-4" "\x{a}" ~ " " sch:rule [ @@ -388,13 +389,61 @@ sch:pattern [ "\x{a}" ~ " " ] +sch:pattern [ + id = "foo-att.datable-calendar-calendar-deprecated-constraint-rule-5" + "\x{a}" ~ + " " + sch:rule [ + context = + "tei:*[@calendar][ not( self::tei:date | self::tei:time | self::tei:origDate ) ]" + "\x{a}" ~ + " " + sch:let [ + name = "me_phrase" + value = "concat( 'Attribute calendar on ', local-name(.))" + ] + "\x{a}" ~ + " " + sch:assert [ + test = "'2024-11-11' cast as xs:date ge current-date()" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' construct is outdated (as of 2024-11-11); ODD processors may ignore it, and its use is no longer supported' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + sch:report [ + role = "nonfatal" + test = "@calendar" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' becomes outdated on 2024-11-11' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " +] tei_att.datable.attribute.period = [ a:documentation [ "supplies pointers to one or more definitions of named periods of time (typically " ns1:code [ "" ] + "s, " + ns1:code [ "" ] "s or " - ns1:code [ "" ] + ns1:code [ "" ] "s) within which the datable item is understood to have occurred." ] ] @@ -637,7 +686,7 @@ tei_att.global.source.attribute.source = }? sch:pattern [ id = - "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "foo-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -926,7 +975,7 @@ tei_att.measurement.attribute.commodity = } }? sch:pattern [ - id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6" + id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1032,7 +1081,7 @@ tei_att.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "foo-att.typed-subtypeTyped-constraint-rule-7" + id = "foo-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1075,7 +1124,7 @@ tei_att.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "foo-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1196,7 +1245,7 @@ tei_att.spanning.attribute.spanTo = }? sch:pattern [ id = - "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1253,7 +1302,7 @@ tei_att.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -2150,7 +2199,7 @@ tei_p = tei_macro.paraContent >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2172,7 +2221,7 @@ tei_p = ] >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2361,7 +2410,7 @@ tei_desc = tei_macro.limitedContent >> sch:pattern [ id = - "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2455,7 +2504,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-target-rt-target-not-span-constraint-report-8" + id = "foo-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2479,7 +2528,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-from-rt-from-constraint-assert-7" + id = "foo-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2505,7 +2554,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-to-rt-to-constraint-assert-8" + id = "foo-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -2873,7 +2922,7 @@ tei_ptr = element ptr { empty >> sch:pattern [ - id = "foo-ptr-ptrAtts-constraint-report-9" + id = "foo-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -2907,7 +2956,7 @@ tei_ref = element ref { tei_macro.paraContent >> sch:pattern [ - id = "foo-ref-refAtts-constraint-report-10" + id = "foo-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -2947,7 +2996,7 @@ tei_list = (tei_label, tei_model.global*, tei_item, tei_model.global*)+)), (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-list-gloss-list-must-have-labels-constraint-rule-12" + id = "foo-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3464,7 +3513,7 @@ tei_relatedItem = element relatedItem { ((tei_model.biblLike | tei_model.ptrLike)?) >> sch:pattern [ - id = "foo-relatedItem-targetorcontent1-constraint-report-11" + id = "foo-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3512,7 +3561,7 @@ tei_l = | tei_model.global)*) >> sch:pattern [ id = - "foo-l-abstractModel-structure-l-in-l-constraint-report-12" + "foo-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3554,7 +3603,7 @@ tei_lg = | tei_lg)*, (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-lg-atleast1oflggapl-constraint-assert-11" + id = "foo-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3575,7 +3624,7 @@ tei_lg = ] >> sch:pattern [ id = - "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "foo-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -4110,7 +4159,7 @@ tei_quotation = element quotation { (tei_model.pLike*) >> sch:pattern [ - id = "foo-quotation-quotationContents-constraint-report-14" + id = "foo-quotation-quotationContents-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -4285,7 +4334,7 @@ tei_namespace = ## specifies the full formal name of the namespace concerned. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -4364,7 +4413,7 @@ tei_citeStructure = attribute match { text } >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -4385,7 +4434,7 @@ tei_citeStructure = ] >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -4830,7 +4879,7 @@ tei_revisionDesc = ## (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element revisionDesc { - (tei_list | tei_listChange | tei_change+), + (tei_list+ | tei_listChange+ | tei_change+), tei_att.global.attributes, tei_att.docStatus.attributes, empty @@ -4982,7 +5031,7 @@ tei_div = (tei_model.divBottom, tei_model.global*)*)?) >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15" + "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -5004,7 +5053,7 @@ tei_div = ] >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16" + "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -5358,18 +5407,7 @@ tei_docDate = element docDate { tei_macro.phraseSeq, tei_att.global.attributes, - - ## (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + tei_att.datable.attributes, empty } tei_front = @@ -5484,7 +5522,7 @@ tei_link = element link { empty >> sch:pattern [ - id = "foo-link-linkTargets3-constraint-assert-14" + id = "foo-link-linkTargets3-constraint-assert-15" "\x{a}" ~ " " sch:rule [ @@ -5525,7 +5563,7 @@ tei_ab = tei_macro.abContent >> sch:pattern [ id = - "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17" + "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18" "\x{a}" ~ " " sch:rule [ @@ -5701,7 +5739,7 @@ tei_join = element join { ((tei_model.descLike | tei_model.certLike)*) >> sch:pattern [ - id = "foo-join-joinTargets3-constraint-assert-15" + id = "foo-join-joinTargets3-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -5849,7 +5887,7 @@ tei_standOff = (tei_model.standOffPart+) >> sch:pattern [ id = - "foo-standOff-nested_standOff_should_be_typed-constraint-assert-16" + "foo-standOff-nested_standOff_should_be_typed-constraint-assert-17" "\x{a}" ~ " " sch:rule [ diff --git a/Test/expected-results/test35.rnc b/Test/expected-results/test35.rnc index cfba7812e..05a88b255 100644 --- a/Test/expected-results/test35.rnc +++ b/Test/expected-results/test35.rnc @@ -367,7 +367,8 @@ tei_att.datable.attribute.calendar = } }? sch:pattern [ - id = "foo-att.datable-calendar-calendar-constraint-rule-4" + id = + "foo-att.datable-calendar-calendar-check-deprecated-constraint-rule-4" "\x{a}" ~ " " sch:rule [ @@ -388,13 +389,61 @@ sch:pattern [ "\x{a}" ~ " " ] +sch:pattern [ + id = "foo-att.datable-calendar-calendar-deprecated-constraint-rule-5" + "\x{a}" ~ + " " + sch:rule [ + context = + "tei:*[@calendar][ not( self::tei:date | self::tei:time | self::tei:origDate ) ]" + "\x{a}" ~ + " " + sch:let [ + name = "me_phrase" + value = "concat( 'Attribute calendar on ', local-name(.))" + ] + "\x{a}" ~ + " " + sch:assert [ + test = "'2024-11-11' cast as xs:date ge current-date()" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' construct is outdated (as of 2024-11-11); ODD processors may ignore it, and its use is no longer supported' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + sch:report [ + role = "nonfatal" + test = "@calendar" + "\x{a}" ~ + " " + sch:value-of [ + select = + "concat( $me_phrase, ' becomes outdated on 2024-11-11' )" + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " + ] + "\x{a}" ~ + " " +] tei_att.datable.attribute.period = [ a:documentation [ "supplies pointers to one or more definitions of named periods of time (typically " ns1:code [ "" ] + "s, " + ns1:code [ "" ] "s or " - ns1:code [ "" ] + ns1:code [ "" ] "s) within which the datable item is understood to have occurred." ] ] @@ -637,7 +686,7 @@ tei_att.global.source.attribute.source = }? sch:pattern [ id = - "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5" + "foo-att.global.source-source-only_1_ODD_source-constraint-rule-6" "\x{a}" ~ " " sch:rule [ @@ -926,7 +975,7 @@ tei_att.measurement.attribute.commodity = } }? sch:pattern [ - id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6" + id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-7" "\x{a}" ~ " " sch:rule [ @@ -1032,7 +1081,7 @@ tei_att.typed.attribute.subtype = xsd:token { pattern = "[^\p{C}\p{Z}]+" } }? sch:pattern [ - id = "foo-att.typed-subtypeTyped-constraint-rule-7" + id = "foo-att.typed-subtypeTyped-constraint-rule-8" "\x{a}" ~ " " sch:rule [ @@ -1075,7 +1124,7 @@ tei_att.pointing.attribute.targetLang = "") }? sch:pattern [ - id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8" + id = "foo-att.pointing-targetLang-targetLang-constraint-rule-9" "\x{a}" ~ " " sch:rule [ @@ -1196,7 +1245,7 @@ tei_att.spanning.attribute.spanTo = }? sch:pattern [ id = - "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9" + "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10" "\x{a}" ~ " " sch:rule [ @@ -1253,7 +1302,7 @@ tei_att.styleDef.attribute.schemeVersion = }? sch:pattern [ id = - "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10" + "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11" "\x{a}" ~ " " sch:rule [ @@ -2145,7 +2194,7 @@ tei_p = tei_macro.paraContent >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6" + "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7" "\x{a}" ~ " " sch:rule [ @@ -2167,7 +2216,7 @@ tei_p = ] >> sch:pattern [ id = - "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7" + "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8" "\x{a}" ~ " " sch:rule [ @@ -2356,7 +2405,7 @@ tei_desc = tei_macro.limitedContent >> sch:pattern [ id = - "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11" + "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-12" "\x{a}" ~ " " sch:rule [ @@ -2450,7 +2499,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-target-rt-target-not-span-constraint-report-8" + id = "foo-rt-target-rt-target-not-span-constraint-report-9" "\x{a}" ~ " " sch:rule [ @@ -2474,7 +2523,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-from-rt-from-constraint-assert-7" + id = "foo-rt-from-rt-from-constraint-assert-8" "\x{a}" ~ " " sch:rule [ @@ -2500,7 +2549,7 @@ tei_rt = xsd:anyURI { pattern = "\S+" } }?) >> sch:pattern [ - id = "foo-rt-to-rt-to-constraint-assert-8" + id = "foo-rt-to-rt-to-constraint-assert-9" "\x{a}" ~ " " sch:rule [ @@ -2868,7 +2917,7 @@ tei_ptr = element tei:ptr { empty >> sch:pattern [ - id = "foo-ptr-ptrAtts-constraint-report-9" + id = "foo-ptr-ptrAtts-constraint-report-10" "\x{a}" ~ " " sch:rule [ @@ -2902,7 +2951,7 @@ tei_ref = element tei:ref { tei_macro.paraContent >> sch:pattern [ - id = "foo-ref-refAtts-constraint-report-10" + id = "foo-ref-refAtts-constraint-report-11" "\x{a}" ~ " " sch:rule [ @@ -2942,7 +2991,7 @@ tei_list = (tei_label, tei_model.global*, tei_item, tei_model.global*)+)), (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-list-gloss-list-must-have-labels-constraint-rule-12" + id = "foo-list-gloss-list-must-have-labels-constraint-rule-13" "\x{a}" ~ " " sch:rule [ @@ -3459,7 +3508,7 @@ tei_relatedItem = element tei:relatedItem { ((tei_model.biblLike | tei_model.ptrLike)?) >> sch:pattern [ - id = "foo-relatedItem-targetorcontent1-constraint-report-11" + id = "foo-relatedItem-targetorcontent1-constraint-report-12" "\x{a}" ~ " " sch:rule [ @@ -3507,7 +3556,7 @@ tei_l = | tei_model.global)*) >> sch:pattern [ id = - "foo-l-abstractModel-structure-l-in-l-constraint-report-12" + "foo-l-abstractModel-structure-l-in-l-constraint-report-13" "\x{a}" ~ " " sch:rule [ @@ -3549,7 +3598,7 @@ tei_lg = | tei_lg)*, (tei_model.divBottom, tei_model.global*)*) >> sch:pattern [ - id = "foo-lg-atleast1oflggapl-constraint-assert-11" + id = "foo-lg-atleast1oflggapl-constraint-assert-12" "\x{a}" ~ " " sch:rule [ @@ -3570,7 +3619,7 @@ tei_lg = ] >> sch:pattern [ id = - "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13" + "foo-lg-abstractModel-structure-lg-in-l-constraint-report-14" "\x{a}" ~ " " sch:rule [ @@ -4086,7 +4135,7 @@ tei_quotation = element tei:quotation { (tei_model.pLike*) >> sch:pattern [ - id = "foo-quotation-quotationContents-constraint-report-14" + id = "foo-quotation-quotationContents-constraint-report-15" "\x{a}" ~ " " sch:rule [ @@ -4261,7 +4310,7 @@ tei_namespace = ## specifies the full formal name of the namespace concerned. attribute name { - xsd:anyURI { pattern = "\S*" } + xsd:anyURI { pattern = "\S+" }? }, empty } @@ -4340,7 +4389,7 @@ tei_citeStructure = attribute match { text } >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13" + "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14" "\x{a}" ~ " " sch:rule [ @@ -4361,7 +4410,7 @@ tei_citeStructure = ] >> sch:pattern [ id = - "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14" + "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15" "\x{a}" ~ " " sch:rule [ @@ -4808,7 +4857,7 @@ tei_revisionDesc = ## (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] element tei:revisionDesc { - (tei_list | tei_listChange | tei_change+), + (tei_list+ | tei_listChange+ | tei_change+), tei_att.global.attributes, tei_att.docStatus.attributes, empty @@ -4960,7 +5009,7 @@ tei_div = (tei_model.divBottom, tei_model.global*)*)?) >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15" + "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-16" "\x{a}" ~ " " sch:rule [ @@ -4982,7 +5031,7 @@ tei_div = ] >> sch:pattern [ id = - "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16" + "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-17" "\x{a}" ~ " " sch:rule [ @@ -5336,18 +5385,7 @@ tei_docDate = element tei:docDate { tei_macro.phraseSeq, tei_att.global.attributes, - - ## (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - attribute when { - xsd:date - | xsd:gYear - | xsd:gMonth - | xsd:gDay - | xsd:gYearMonth - | xsd:gMonthDay - | xsd:time - | xsd:dateTime - }?, + tei_att.datable.attributes, empty } tei_front = @@ -5462,7 +5500,7 @@ tei_link = element tei:link { empty >> sch:pattern [ - id = "foo-link-linkTargets3-constraint-assert-14" + id = "foo-link-linkTargets3-constraint-assert-15" "\x{a}" ~ " " sch:rule [ @@ -5503,7 +5541,7 @@ tei_ab = tei_macro.abContent >> sch:pattern [ id = - "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17" + "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18" "\x{a}" ~ " " sch:rule [ @@ -5679,7 +5717,7 @@ tei_join = element tei:join { ((tei_model.descLike | tei_model.certLike)*) >> sch:pattern [ - id = "foo-join-joinTargets3-constraint-assert-15" + id = "foo-join-joinTargets3-constraint-assert-16" "\x{a}" ~ " " sch:rule [ @@ -5827,7 +5865,7 @@ tei_standOff = (tei_model.standOffPart+) >> sch:pattern [ id = - "foo-standOff-nested_standOff_should_be_typed-constraint-assert-16" + "foo-standOff-nested_standOff_should_be_typed-constraint-assert-17" "\x{a}" ~ " " sch:rule [ diff --git a/Test/expected-results/testdrama.compiled.xml b/Test/expected-results/testdrama.compiled.xml index 9dd6f59b2..267d6ce23 100644 --- a/Test/expected-results/testdrama.compiled.xml +++ b/Test/expected-results/testdrama.compiled.xml @@ -146,7 +146,7 @@

In the following example from Hamlet, speeches (sp) in the body of the play - are linked to castItem elements in the castList using the who + are linked to role elements in the castList using the who attribute.

@@ -901,6 +901,8 @@ Elements
+ + indicates one or more systems or calendars to which the date represented by the content of this element belongs. @@ -916,7 +918,7 @@ Elements
- + @calendar indicates one or more @@ -925,6 +927,19 @@ Elements
+ + + + + + + + + + + + + He was born on Feb. 22, 1732 (Feb. 11, 1731/32, O.S.). @@ -960,7 +975,7 @@ Elements supplies pointers to one or more definitions of - named periods of time (typically categorys or calendars) within which the datable item is understood to have occurred. + named periods of time (typically categorys, dates or events) within which the datable item is understood to have occurred.
시간을 명시할 수 있는 항목이 일어난 시간의 기간명을 정의하는 특정 위치로의 포인터를 제공한다. suministra un indicador a una localización @@ -2199,17 +2214,17 @@ the TEI header.

according to BCP 47.
BCP 47에 따라 생성된 tag를 사용하는 요소 내용의 언어를 나타낸다. - 使用RFC3066的代碼,指出該元素內容的使用語言 + 使用RFC3066的代碼,指出該元素內容的使用語言 BCP 47に従って生成されたタグを用いて要素の内容の言語を示す。 indique la langue du contenu de l'élément en - utilisant les codes du RFC 3066 + utilisant les codes du RFC 3066 indica la lengua del contenido del elemento - utilizando los códigos extraídos de RFC + utilizando los códigos extraídos de RFC 3066 indica la lingua del contenuto dell'elemento - utilizzando i codici tratti da RFC + utilizzando i codici tratti da RFC 3066 @@ -2231,7 +2246,7 @@ the TEI header.

and that a single TEI document may contain texts in many languages.

Only attributes with free text values (rare in these guidelines) will be in the scope of xml:lang.

The authoritative list of registered language subtags is maintained by IANA and - is available at . + is available at . For a good general overview of the construction of language tags, see , and for a practical step-by-step guide, see @@ -2259,7 +2274,7 @@ the TEI header.

Si no se especifica ningún valor para xml:lang, el valor de xml:lang para el elemento inmediatamente englobado, se hereda; por esta razón, un valor se debe especificar siempre en el elemento exterior (TEI).

-

xml:lang の値は、直接の親要素、そのまた親要素からというように、文書の上位階層から継承されてくる。できるだけ高い適切な階層に xml:lang を指定するのが一般には望ましいが、teiHeader には関連するリソース要素と異なるデフォルト値が必要となったり、一つのTEI文書が多くの言語のテキストを含みうることには注意されたい。登録された言語タグの正式なリストはIANAが管理しており、 から確認できる。言語タグの構造についての良い概説は を、手順を追った実用的なガイドは を参照されたい。利用する値は、BCP 47 に準拠しなければならない。もし値が私用コード(x- から始まったり -x- を含む)ならば、その ident 属性と一致する値を持つ language 要素をTEIヘッダ内に追加して内容を説明すべきである。この説明は私用コード以外にも任意で追加できるが、IETFInternet Engineering Task Force による定義と整合していなければならない。

+

xml:lang の値は、直接の親要素、そのまた親要素からというように、文書の上位階層から継承されてくる。できるだけ高い適切な階層に xml:lang を指定するのが一般には望ましいが、teiHeader には関連するリソース要素と異なるデフォルト値が必要となったり、一つのTEI文書が多くの言語のテキストを含みうることには注意されたい。登録された言語タグの正式なリストはIANAが管理しており、 から確認できる。言語タグの構造についての良い概説は を、手順を追った実用的なガイドは を参照されたい。利用する値は、BCP 47 に準拠しなければならない。もし値が私用コード(x- から始まったり -x- を含む)ならば、その ident 属性と一致する値を持つ language 要素をTEIヘッダ内に追加して内容を説明すべきである。この説明は私用コード以外にも任意で追加できるが、IETFInternet Engineering Task Force による定義と整合していなければならない。

@@ -2503,8 +2518,8 @@ ressource informatique selon une taxinomie normalisée. using a value taken from a standard taxonomy. At present only a single taxonomy is supported, the Multipurpose Internet Mail Extensions (MIME) Media Type system. This typology of media types is - defined by the Internet Engineering Task Force in RFC 2046. The - list of + defined by the Internet Engineering Task Force in RFC 2046. The + list of types is maintained by the Internet Assigned Numbers Authority (IANA). The mimeType attribute must have a value taken from this list.

@@ -2513,17 +2528,17 @@ ressource informatique selon une taxinomie normalisée. informatique, en général disponible sur internet, selon les taxinomies normalisées. Actuellement une seule taxinomie est reconnue : le système "Multipurpose Internet Mail Extensions Media Type". Ce système de typologie des types de média est définie - par l'Internet Engineering Task Force dansRFC 2046. La liste des types + par l'Internet Engineering Task Force dansRFC 2046. La liste des types est maintenue par l'Internet Assigned Numbers Authority.

Esta clase de atributo proporciona los atributos para describir un recurso del ordenador, típicamente disponibles en Internet, según las taxonomías estándar. Solamente una única taxonomía se utiliza actualmente, el sistema Multipurpose Internet Mail Extensions - Media Type. Este sistema de tipología de los tipos de media es definido por el Internet Engineering Task Force RFC 2046. - . La lista de tipos es mantenida por el Internet Assigned Numbers Authority.

+ Media Type. Este sistema de tipología de los tipos de media es definido por el Internet Engineering Task Force RFC 2046. + . La lista de tipos es mantenida por el Internet Assigned Numbers Authority.

-当該属性クラスは、コンピューターリソースを示すためのもので、通常、インターネット上にあるリソースを標準的な用語で示す。現時点では、MIME(Multipurpose Internet Mail Extensions)タイプのみが標準的な用語として使用可能である。このMIMEタイプについては、IETF(Internet Engineering Task Force)のRFC 2046で規定されている。使用できるタイプ名のリストの管理は、IANA(Internet Assigned Numbers Authority)によって行われている。mimeType属性は上記のタイプ名リストにより定義された値を含んでいなくてはならない。 +当該属性クラスは、コンピューターリソースを示すためのもので、通常、インターネット上にあるリソースを標準的な用語で示す。現時点では、MIME(Multipurpose Internet Mail Extensions)タイプのみが標準的な用語として使用可能である。このMIMEタイプについては、IETF(Internet Engineering Task Force)のRFC 2046で規定されている。使用できるタイプ名のリストの管理は、IANA(Internet Assigned Numbers Authority)によって行われている。mimeType属性は上記のタイプ名リストにより定義された値を含んでいなくてはならない。

@@ -6180,13 +6195,13 @@ value. The IANA-registered code for the language. This is almost always the same as the ISO 639 2-letter language code if there is one. The list of available registered language - subtags can be found at . It is recommended + subtags can be found at . It is recommended that this code be written in lower case. The ISO 15924 code for the script. These codes consist of 4 letters, and it is recommended they be written with an initial capital, the other three letters in lower case. The canonical list of codes is maintained by the Unicode Consortium, and is - available at . The IETF + available at . The IETF recommends this code be omitted unless it is necessary to make a distinction you need. Either an ISO 3166 country code or a UN M.49 region code that is registered with IANA @@ -6211,7 +6226,7 @@ value. language element must be present in the TEI header.

-

There are two exceptions to the above format. First, there are language tags in the IANA registry that +

There are two exceptions to the above format. First, there are language tags in the IANA registry that do not match the above syntax, but are present because they have been grandfathered from previous specifications.

Second, an entire language tag can consist of only a private use subtag. These tags start @@ -6262,11 +6277,11 @@ value. variantとextensionは複数回、他は1回のみ出現出現する。この下位タグ のグループは繰り返し可能である。 IANAの言語コード。この殆どは、該当言語が既にあれば、ISO 639の2文字 (以下、この場合の文字はラテン文字)言語コードと同じである。利用可能 - な言語下位タグのリストは + な言語下位タグのリストは にある。言語コードは、小文字で書かれることが推奨されている。 ISO 15924による文字を示すコード。4文字から構成され、冒頭文字は大文 字で、残り3文字は小文字で書かれることが推奨されている。このコード - は、ユニコードコンソーシアムで管理され、 か + は、ユニコードコンソーシアムで管理され、 か ら入手することができる。IETFでは、不要であれば当該コードを省略する ことを推奨している。 ISO 3166またはUN M.49による国または地域コード。このコードはIANAに 登録されている(但し全てではない。例えば、UNコードには経済圏や、 ISO @@ -6285,7 +6300,7 @@ value.

-

上記記述形式には、2つの例外がある。ひとつは、ここにある言語タグは、 +

上記記述形式には、2つの例外がある。ひとつは、ここにある言語タグは、 IANAにある統語規則に違反しているものがある。 これはIANAでは昔の規定を継承しているからであ る。

ふたつめは、言語タグを、下位タグprivateだけで構成することができる ことである。x-で始まるタグの内容は、IETFにある規定に も当該TEIガイドラインにある規定にも従う必要はない。他の言語タグと 同様に、このタグを使用した場合には、TEIヘダーにある要素 @@ -6338,13 +6353,13 @@ value. Code de langue enregistré par l'IANA. Il est presque toujours identique au code de langue alphabétique ISO 639-2, s'il y en a un. La liste des sous-étiquettes de langue - enregistrées est disponible à : . Il est recommandé + enregistrées est disponible à : . Il est recommandé d'écrire ce code en minuscules. Code ISO 15924 pour l'écriture. Ces codes sont constitués de 4 lettres, et il est recommandé d'écrire la première lettre en majuscule, les trois autres en minuscules. La liste canonique des codes est maintenue par le Consortium Unicode, et elle est disponible - à : . L'IETF recommande + à : . L'IETF recommande d'omettre ce code, sauf s'il est nécessaire pour établir une distinction. Soit un code de pays ISO 3166, soit un code de région UN M.49 enregistré par @@ -6372,7 +6387,7 @@ value.

Il y a deux exceptions au format ci-dessus. Premièrement, il y a des codes de langue dans - le registre de l'IANA + le registre de l'IANA qui ne correspondent pas à la syntaxe ci-dessus, mais qui sont présents car ils ont été hérités de spécifications antérieures.

En second lieu, une étiquette complète de langue peut consister seulement en une sous-étiquette d'usage privé. Ces étiquettes commencent par x- ; il n'est pas @@ -6439,21 +6454,21 @@ value. indicare i nomi degli spazi in XML come stabilito dalle raccomandazioni tecniche del W3C per gli spazi dei nomi in XML. - + -

The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier + <p>The range of syntactically valid values is defined by <ref target="https://www.ietf.org/rfc/rfc3986.txt">RFC 3986 <title>Uniform Resource Identifier (URI): Generic Syntax

-

当該データ値は、RFC 2396 Uniform Resource + <p> 当該データ値は、<ref target="https://www.ietf.org/rfc/rfc2396.txt">RFC 2396 <title>Uniform Resource Identifier (URI) Reference に定義されている。

-

La gamme des valeurs syntaxiquement valides est définie par RFC 3986 Uniform Resource Identifier + <p>La gamme des valeurs syntaxiquement valides est définie par <ref target="https://www.ietf.org/rfc/rfc3986.txt">RFC 3986 <title>Uniform Resource Identifier (URI): Generic Syntax .

@@ -6593,10 +6608,10 @@ resource, either within the current document or elsewhere.

The range of syntactically valid values is defined by - RFC 3986 + RFC 3986 Uniform Resource Identifier (URI): Generic Syntax. Note that the values themselves are encoded using - RFC + RFC 3987 Internationalized Resource Identifiers (IRIs) mapping to URIs. For example, @@ -6609,14 +6624,14 @@ resource, either within the current document or elsewhere.

当該属性値は、 - RFC 3986 + RFC 3986 Uniform Resource Identifier (URI) Reference に定義されている。

-

La gamme des valeurs valides syntaxiquement est définie parRFC 3986 +

La gamme des valeurs valides syntaxiquement est définie parRFC 3986 Uniform Resource Identifier (URI): Generic Syntax @@ -6646,7 +6661,7 @@ resource, either within the current document or elsewhere.

The value of this attribute follows the pattern specified by - the Unicode consortium for its version number (). A version number + the Unicode consortium for its version number (). A version number contains digits and fullstop characters only. The first number supplied identifies the major version number. A second and third number, for minor and sub-minor version numbers, may also be @@ -6655,7 +6670,7 @@ resource, either within the current document or elsewhere.

La valeur de cet attribut devrait suivre le format proposé par - le Consortium Unicode pour identifier les versions (). Un numéro de version + le Consortium Unicode pour identifier les versions (). Un numéro de version ne contient que des chiffres et des points. Le numéro initiale identifie le numéro majeur de la version. Un deuxième et un troisième numéro sont aussi disponibles pour la numérotation @@ -6784,7 +6799,7 @@ which contain an XPath expression.

This datatype is used to constrain a string of characters to - one that can be used as a URI scheme name according to RFC 3986, section + one that can be used as a URI scheme name according to RFC 3986, section 3.1. Thus only the 26 lowercase letters a–z, the 10 digits 0–9, the plus sign, the period, and the hyphen are permitted, and the value must start with a letter.

@@ -11295,6 +11310,7 @@ Measures
+ @@ -11310,7 +11326,7 @@ Measures - + early February 1980 @@ -11392,6 +11408,7 @@ Measures + @@ -20404,9 +20421,7 @@ On , either the @marks attribute should be used, or a paragraph of descri - - - + @@ -20419,7 +20434,7 @@ On , either the @marks attribute should be used, or a paragraph of descri Namensraums an. el nombre formal completo del namespace concerniente. l'intero nome formale del namespace in questione. - + @@ -23506,11 +23521,9 @@ should be supplied for the scheme attribute.

- - - - - + + + @@ -27258,48 +27271,13 @@ on a title page or in a dateline. + + - - - when - wann - gives the value of the date in standard form, i.e. YYYY-MM-DD. - 표준형식으로 날짜의 값을 제시한다. 예, YYYY-MM-DD. - proporciona el valor de una fecha en el formato estándar, es decir AAAA-MM-DD. - 当該日付を標準形式、例えば、YYYY-MM-DDで示す。 - donne la date dans une forme standard, -c'est-à-dire. YYYY-MM-DD. - assegna un valore alla data nel formato standard aaaa-mm-gg - gibt den Wert des Datums in einer standardisierten Form an, z. B. YYYY-MM-DD. - - -

For simple dates, the when attribute should give - the Gregorian or proleptic Gregorian date in one of the formats specified in XML - Schema Part 2: Datatypes Second Edition.

-
- -

Pour les dates dont la forme est simple, il est recommandé que l'attribut - when donne la date dans le calendrier grégorien ou grégorien - proleptique au format AAAA-MM-JJ spécifié par le standard XML Schema - Part 2.

-
- -

- 簡単な例は、属性whenの値として、グレゴリオ暦を - XML Schema Part 2で定義された形式 - (YYYY-MM-DD)で示す。 -

-
- -

Für einfache Datierungen sollte das when-Attribut ein gregorianisches oder - proleptisches gregorianisches Datum in dem spezifizierten Format XML Schema - Part 2: Datatypes Second Edition enthalten.

-
-
-
+ Oxford, Clarendon Press, 1987 diff --git a/Test2/expected-results/testAttValQuant.rng b/Test2/expected-results/testAttValQuant.rng index eb6be5e95..1943d7dd4 100644 --- a/Test2/expected-results/testAttValQuant.rng +++ b/Test2/expected-results/testAttValQuant.rng @@ -494,7 +494,7 @@ Sample values include: 1] all; 2] most; 3] range + id="tavq-att.datable-calendar-calendar-check-deprecated-constraint-rule-4"> but this element has no textual content. + + + + + + + + + + + - supplies pointers to one or more definitions of named periods of time (typically <category>s or <calendar>s) within which the datable item is understood to have occurred. + supplies pointers to one or more definitions of named periods of time (typically <category>s, <date>s or <event>s) within which the datable item is understood to have occurred. @@ -824,7 +841,7 @@ Suggested values include: 1] internal; 2] external; 3] conjecture + id="tavq-att.global.source-source-only_1_ODD_source-constraint-rule-6"> + id="tavq-att.measurement-att-measurement-unitRef-constraint-rule-7"> + id="tavq-att.typed-subtypeTyped-constraint-rule-8"> + id="tavq-att.pointing-targetLang-targetLang-constraint-rule-9"> + id="tavq-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10"> ) must follow + id="tavq-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11"> (paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents] + id="tavq-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7"> + id="tavq-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8"> (description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented. [22.4.1. Description of Components] + id="tavq-desc-deprecationInfo-only-in-deprecated-constraint-rule-12"> + id="tavq-rt-target-rt-target-not-span-constraint-report-9"> + id="tavq-rt-from-rt-from-constraint-assert-8"> + id="tavq-rt-to-rt-to-constraint-assert-9"> (pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 16.1. Links] + id="tavq-ptr-ptrAtts-constraint-report-10"> Only one of the attributes @target and @cRef may be supplied on . @@ -4321,7 +4338,7 @@ attributes @target and @cRef may be supplied on . (reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 16.1. Links] + id="tavq-ref-refAtts-constraint-report-11"> Only one of the attributes @target' and @cRef' may be supplied on @@ -4390,7 +4407,7 @@ attributes @target and @cRef may be supplied on . + id="tavq-list-gloss-list-must-have-labels-constraint-rule-13"> + id="tavq-relatedItem-targetorcontent1-constraint-report-12"> + id="tavq-l-abstractModel-structure-l-in-l-constraint-report-13"> + id="tavq-lg-atleast1oflggapl-constraint-assert-12"> + id="tavq-lg-abstractModel-structure-lg-in-l-constraint-report-14"> + id="tavq-quotation-quotationContents-constraint-report-15"> , either the @marks attribute should be used, or a paragraph of descri specifies the full formal name of the namespace concerned. - - \S* - + + + \S+ + + @@ -6149,7 +6168,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after + id="tavq-citeStructure-match-citestructure-outer-match-constraint-rule-14"> @@ -6157,7 +6176,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after + id="tavq-citeStructure-match-citestructure-inner-match-constraint-rule-15"> @@ -6730,8 +6749,12 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] - - + + + + + + @@ -7118,7 +7141,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 + id="tavq-div-abstractModel-structure-div-in-l-or-lg-constraint-report-16"> + id="tavq-div-abstractModel-structure-div-in-ab-or-p-constraint-report-17"> (document date) contains the date of a document, as given on a title page or in a dateline. [4.6. Title Pages] - - - (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - - - - - - - - - - - - + diff --git a/Test2/expected-results/testPure1.rng b/Test2/expected-results/testPure1.rng index 97bb0a7ec..496f6f76d 100644 --- a/Test2/expected-results/testPure1.rng +++ b/Test2/expected-results/testPure1.rng @@ -511,7 +511,7 @@ Sample values include: 1] all; 2] most; 3] range + id="testPure1-att.datable-calendar-calendar-check-deprecated-constraint-rule-4"> but this element has no textual content. + + + + + + + + + + + - supplies pointers to one or more definitions of named periods of time (typically <category>s or <calendar>s) within which the datable item is understood to have occurred. + supplies pointers to one or more definitions of named periods of time (typically <category>s, <date>s or <event>s) within which the datable item is understood to have occurred. @@ -841,7 +858,7 @@ Suggested values include: 1] internal; 2] external; 3] conjecture + id="testPure1-att.global.source-source-only_1_ODD_source-constraint-rule-6"> + id="testPure1-att.measurement-att-measurement-unitRef-constraint-rule-7"> + id="testPure1-att.typed-subtypeTyped-constraint-rule-8"> + id="testPure1-att.pointing-targetLang-targetLang-constraint-rule-9"> + id="testPure1-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-10"> ) must follow + id="testPure1-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-11"> (paragraph) marks paragraphs in prose. [3.1. Paragraphs 7.2.5. Speech Contents] + id="testPure1-p-abstractModel-structure-p-in-ab-or-p-constraint-report-7"> + id="testPure1-p-abstractModel-structure-p-in-l-or-lg-constraint-report-8"> (description) contains a short description of the purpose, function, or use of its parent element, or when the parent is a documentation element, describes or defines the object being documented. [22.4.1. Description of Components] + id="testPure1-desc-deprecationInfo-only-in-deprecated-constraint-rule-12"> + id="testPure1-rt-target-rt-target-not-span-constraint-report-9"> + id="testPure1-rt-from-rt-from-constraint-assert-8"> + id="testPure1-rt-to-rt-to-constraint-assert-9"> (pointer) defines a pointer to another location. [3.7. Simple Links and Cross-References 16.1. Links] + id="testPure1-ptr-ptrAtts-constraint-report-10"> . (reference) defines a reference to another location, possibly modified by additional text or comment. [3.7. Simple Links and Cross-References 16.1. Links] + id="testPure1-ref-refAtts-constraint-report-11"> . + id="testPure1-list-gloss-list-must-have-labels-constraint-rule-13"> + id="testPure1-relatedItem-targetorcontent1-constraint-report-12"> + id="testPure1-l-abstractModel-structure-l-in-l-constraint-report-13"> + id="testPure1-lg-atleast1oflggapl-constraint-assert-12"> + id="testPure1-lg-abstractModel-structure-lg-in-l-constraint-report-14"> + id="testPure1-quotation-quotationContents-constraint-report-15"> , either the @marks attribute should be used, or a paragraph of descri specifies the full formal name of the namespace concerned. - - \S* - + + + \S+ + + @@ -6449,7 +6468,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after + id="testPure1-citeStructure-match-citestructure-outer-match-constraint-rule-14"> + id="testPure1-citeStructure-match-citestructure-inner-match-constraint-rule-15"> (revision description) summarizes the revision history for a file. [2.6. The Revision Description 2.1.1. The TEI Header and Its Components] - - + + + + + + @@ -7199,7 +7222,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 (s-unit) contains a sentence-like division of a text. [17.1. Linguistic Segment Categories 8.4.1. Segmentation] + id="testPure1-s-noNestedS-constraint-report-16"> associates an interpretative annotation directly with a span of text. [17.3. Spans and Interpretations] + id="testPure1-span-targetfrom-constraint-report-17"> + id="testPure1-span-targetto-constraint-report-18"> + id="testPure1-span-tonotfrom-constraint-report-19"> , @from must be supplied as well + id="testPure1-span-tofrom-constraint-report-20"> may each contain only a single value(link) defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. [16.1. Links] + id="testPure1-link-linkTargets3-constraint-assert-15"> may each contain only a single value + id="testPure1-linkGrp-eight_is_enough-constraint-report-21"> may each contain only a single value(anonymous block) contains any component-level unit of text, acting as a container for phrase or inter level elements analogous to, but without the same constraints as, a paragraph. [16.3. Blocks, Segments, and Anchors] + id="testPure1-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-22"> + id="testPure1-standOff-nested_standOff_should_be_typed-constraint-assert-16"> + id="testPure1-div-abstractModel-structure-div-in-l-or-lg-constraint-report-23"> + id="testPure1-div-abstractModel-structure-div-in-ab-or-p-constraint-report-24"> (document date) contains the date of a document, as given on a title page or in a dateline. [4.6. Title Pages] - - - (when) gives the value of the date in standard form, i.e. YYYY-MM-DD. - - - - - - - - - - - - + diff --git a/source/p5subset.xml b/source/p5subset.xml index 9097c810e..eda84273a 100644 --- a/source/p5subset.xml +++ b/source/p5subset.xml @@ -7,7 +7,7 @@ P5 Version 4.7.0a. Last updated on - 16th July 2023, revision df882688d + 12th October 2023, revision c27b080d0 TEI Consortium @@ -286,7 +286,7 @@ Instance

In the following example from Hamlet, speeches (sp) in the body of the play - are linked to castItem elements in the castList using the who + are linked to role elements in the castList using the who attribute.

@@ -1337,6 +1337,15 @@ of any adjacent whitespace + + indicates one or more systems or calendars to which the date represented by the content of this element belongs. @@ -1352,7 +1361,7 @@ of any adjacent whitespace - + @calendar indicates one or more @@ -1361,6 +1370,19 @@ of any adjacent whitespace + + + + + + + + + + + + + He was born on Feb. 22, 1732 (Feb. 11, 1731/32, O.S.). @@ -1396,7 +1418,7 @@ of any adjacent whitespace supplies pointers to one or more definitions of - named periods of time (typically categorys or calendars) within which the datable item is understood to have occurred. + named periods of time (typically categorys, dates or events) within which the datable item is understood to have occurred. 시간을 명시할 수 있는 항목이 일어난 시간의 기간명을 정의하는 특정 위치로의 포인터를 제공한다. suministra un indicador a una localización @@ -2775,17 +2797,17 @@ the TEI header.

according to BCP 47.
BCP 47에 따라 생성된 tag를 사용하는 요소 내용의 언어를 나타낸다. - 使用RFC3066的代碼,指出該元素內容的使用語言 + 使用RFC3066的代碼,指出該元素內容的使用語言 BCP 47に従って生成されたタグを用いて要素の内容の言語を示す。 indique la langue du contenu de l'élément en - utilisant les codes du RFC 3066 + utilisant les codes du RFC 3066 indica la lengua del contenido del elemento - utilizando los códigos extraídos de RFC + utilizando los códigos extraídos de RFC 3066 indica la lingua del contenuto dell'elemento - utilizzando i codici tratti da RFC + utilizzando i codici tratti da RFC 3066 @@ -2807,7 +2829,7 @@ the TEI header.

and that a single TEI document may contain texts in many languages.

Only attributes with free text values (rare in these guidelines) will be in the scope of xml:lang.

The authoritative list of registered language subtags is maintained by IANA and - is available at . + is available at . For a good general overview of the construction of language tags, see , and for a practical step-by-step guide, see @@ -2835,7 +2857,7 @@ the TEI header.

Si no se especifica ningún valor para xml:lang, el valor de xml:lang para el elemento inmediatamente englobado, se hereda; por esta razón, un valor se debe especificar siempre en el elemento exterior (TEI).

-

xml:lang の値は、直接の親要素、そのまた親要素からというように、文書の上位階層から継承されてくる。できるだけ高い適切な階層に xml:lang を指定するのが一般には望ましいが、teiHeader には関連するリソース要素と異なるデフォルト値が必要となったり、一つのTEI文書が多くの言語のテキストを含みうることには注意されたい。登録された言語タグの正式なリストはIANAが管理しており、 から確認できる。言語タグの構造についての良い概説は を、手順を追った実用的なガイドは を参照されたい。利用する値は、BCP 47 に準拠しなければならない。もし値が私用コード(x- から始まったり -x- を含む)ならば、その ident 属性と一致する値を持つ language 要素をTEIヘッダ内に追加して内容を説明すべきである。この説明は私用コード以外にも任意で追加できるが、IETFInternet Engineering Task Force による定義と整合していなければならない。

+

xml:lang の値は、直接の親要素、そのまた親要素からというように、文書の上位階層から継承されてくる。できるだけ高い適切な階層に xml:lang を指定するのが一般には望ましいが、teiHeader には関連するリソース要素と異なるデフォルト値が必要となったり、一つのTEI文書が多くの言語のテキストを含みうることには注意されたい。登録された言語タグの正式なリストはIANAが管理しており、 から確認できる。言語タグの構造についての良い概説は を、手順を追った実用的なガイドは を参照されたい。利用する値は、BCP 47 に準拠しなければならない。もし値が私用コード(x- から始まったり -x- を含む)ならば、その ident 属性と一致する値を持つ language 要素をTEIヘッダ内に追加して内容を説明すべきである。この説明は私用コード以外にも任意で追加できるが、IETFInternet Engineering Task Force による定義と整合していなければならない。

@@ -3119,8 +3141,8 @@ ressource informatique selon une taxinomie normalisée. using a value taken from a standard taxonomy. At present only a single taxonomy is supported, the Multipurpose Internet Mail Extensions (MIME) Media Type system. This typology of media types is - defined by the Internet Engineering Task Force in RFC 2046. The - list of + defined by the Internet Engineering Task Force in RFC 2046. The + list of types is maintained by the Internet Assigned Numbers Authority (IANA). The mimeType attribute must have a value taken from this list.

@@ -3129,17 +3151,17 @@ ressource informatique selon une taxinomie normalisée. informatique, en général disponible sur internet, selon les taxinomies normalisées. Actuellement une seule taxinomie est reconnue : le système "Multipurpose Internet Mail Extensions Media Type". Ce système de typologie des types de média est définie - par l'Internet Engineering Task Force dansRFC 2046. La liste des types + par l'Internet Engineering Task Force dansRFC 2046. La liste des types est maintenue par l'Internet Assigned Numbers Authority.

Esta clase de atributo proporciona los atributos para describir un recurso del ordenador, típicamente disponibles en Internet, según las taxonomías estándar. Solamente una única taxonomía se utiliza actualmente, el sistema Multipurpose Internet Mail Extensions - Media Type. Este sistema de tipología de los tipos de media es definido por el Internet Engineering Task Force RFC 2046. - . La lista de tipos es mantenida por el Internet Assigned Numbers Authority.

+ Media Type. Este sistema de tipología de los tipos de media es definido por el Internet Engineering Task Force RFC 2046. + . La lista de tipos es mantenida por el Internet Assigned Numbers Authority.

-当該属性クラスは、コンピューターリソースを示すためのもので、通常、インターネット上にあるリソースを標準的な用語で示す。現時点では、MIME(Multipurpose Internet Mail Extensions)タイプのみが標準的な用語として使用可能である。このMIMEタイプについては、IETF(Internet Engineering Task Force)のRFC 2046で規定されている。使用できるタイプ名のリストの管理は、IANA(Internet Assigned Numbers Authority)によって行われている。mimeType属性は上記のタイプ名リストにより定義された値を含んでいなくてはならない。 +当該属性クラスは、コンピューターリソースを示すためのもので、通常、インターネット上にあるリソースを標準的な用語で示す。現時点では、MIME(Multipurpose Internet Mail Extensions)タイプのみが標準的な用語として使用可能である。このMIMEタイプについては、IETF(Internet Engineering Task Force)のRFC 2046で規定されている。使用できるタイプ名のリストの管理は、IANA(Internet Assigned Numbers Authority)によって行われている。mimeType属性は上記のタイプ名リストにより定義された値を含んでいなくてはならない。

@@ -7923,13 +7945,13 @@ value. The IANA-registered code for the language. This is almost always the same as the ISO 639 2-letter language code if there is one. The list of available registered language - subtags can be found at . It is recommended + subtags can be found at . It is recommended that this code be written in lower case. The ISO 15924 code for the script. These codes consist of 4 letters, and it is recommended they be written with an initial capital, the other three letters in lower case. The canonical list of codes is maintained by the Unicode Consortium, and is - available at . The IETF + available at . The IETF recommends this code be omitted unless it is necessary to make a distinction you need. Either an ISO 3166 country code or a UN M.49 region code that is registered with IANA @@ -7955,7 +7977,7 @@ value. language element must be present in the TEI header.

-

There are two exceptions to the above format. First, there are language tags in the IANA registry that +

There are two exceptions to the above format. First, there are language tags in the IANA registry that do not match the above syntax, but are present because they have been grandfathered from previous specifications.

Second, an entire language tag can consist of only a private use subtag. These tags start @@ -8006,11 +8028,11 @@ value. variantとextensionは複数回、他は1回のみ出現出現する。この下位タグ のグループは繰り返し可能である。 IANAの言語コード。この殆どは、該当言語が既にあれば、ISO 639の2文字 (以下、この場合の文字はラテン文字)言語コードと同じである。利用可能 - な言語下位タグのリストは + な言語下位タグのリストは にある。言語コードは、小文字で書かれることが推奨されている。 ISO 15924による文字を示すコード。4文字から構成され、冒頭文字は大文 字で、残り3文字は小文字で書かれることが推奨されている。このコード - は、ユニコードコンソーシアムで管理され、 か + は、ユニコードコンソーシアムで管理され、 か ら入手することができる。IETFでは、不要であれば当該コードを省略する ことを推奨している。 ISO 3166またはUN M.49による国または地域コード。このコードはIANAに 登録されている(但し全てではない。例えば、UNコードには経済圏や、 ISO @@ -8029,7 +8051,7 @@ value.

-

上記記述形式には、2つの例外がある。ひとつは、ここにある言語タグは、 +

上記記述形式には、2つの例外がある。ひとつは、ここにある言語タグは、 IANAにある統語規則に違反しているものがある。 これはIANAでは昔の規定を継承しているからであ る。

ふたつめは、言語タグを、下位タグprivateだけで構成することができる ことである。x-で始まるタグの内容は、IETFにある規定に も当該TEIガイドラインにある規定にも従う必要はない。他の言語タグと 同様に、このタグを使用した場合には、TEIヘダーにある要素 @@ -8082,13 +8104,13 @@ value. Code de langue enregistré par l'IANA. Il est presque toujours identique au code de langue alphabétique ISO 639-2, s'il y en a un. La liste des sous-étiquettes de langue - enregistrées est disponible à : . Il est recommandé + enregistrées est disponible à : . Il est recommandé d'écrire ce code en minuscules. Code ISO 15924 pour l'écriture. Ces codes sont constitués de 4 lettres, et il est recommandé d'écrire la première lettre en majuscule, les trois autres en minuscules. La liste canonique des codes est maintenue par le Consortium Unicode, et elle est disponible - à : . L'IETF recommande + à : . L'IETF recommande d'omettre ce code, sauf s'il est nécessaire pour établir une distinction. Soit un code de pays ISO 3166, soit un code de région UN M.49 enregistré par @@ -8117,7 +8139,7 @@ value.

Il y a deux exceptions au format ci-dessus. Premièrement, il y a des codes de langue dans - le registre de l'IANA + le registre de l'IANA qui ne correspondent pas à la syntaxe ci-dessus, mais qui sont présents car ils ont été hérités de spécifications antérieures.

En second lieu, une étiquette complète de langue peut consister seulement en une sous-étiquette d'usage privé. Ces étiquettes commencent par x- ; il n'est pas @@ -8185,21 +8207,21 @@ value. indicare i nomi degli spazi in XML come stabilito dalle raccomandazioni tecniche del W3C per gli spazi dei nomi in XML. - + -

The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier + <p>The range of syntactically valid values is defined by <ref target="https://www.ietf.org/rfc/rfc3986.txt">RFC 3986 <title>Uniform Resource Identifier (URI): Generic Syntax

-

当該データ値は、RFC 2396 Uniform Resource + <p> 当該データ値は、<ref target="https://www.ietf.org/rfc/rfc2396.txt">RFC 2396 <title>Uniform Resource Identifier (URI) Reference に定義されている。

-

La gamme des valeurs syntaxiquement valides est définie par RFC 3986 Uniform Resource Identifier + <p>La gamme des valeurs syntaxiquement valides est définie par <ref target="https://www.ietf.org/rfc/rfc3986.txt">RFC 3986 <title>Uniform Resource Identifier (URI): Generic Syntax .

@@ -8402,10 +8424,10 @@ resource, either within the current document or elsewhere.

The range of syntactically valid values is defined by - RFC 3986 + RFC 3986 Uniform Resource Identifier (URI): Generic Syntax. Note that the values themselves are encoded using - RFC + RFC 3987 Internationalized Resource Identifiers (IRIs) mapping to URIs. For example, @@ -8418,14 +8440,14 @@ resource, either within the current document or elsewhere.

当該属性値は、 - RFC 3986 + RFC 3986 Uniform Resource Identifier (URI) Reference に定義されている。

-

La gamme des valeurs valides syntaxiquement est définie parRFC 3986 +

La gamme des valeurs valides syntaxiquement est définie parRFC 3986 Uniform Resource Identifier (URI): Generic Syntax @@ -8457,7 +8479,7 @@ resource, either within the current document or elsewhere.

The value of this attribute follows the pattern specified by - the Unicode consortium for its version number (). A version number + the Unicode consortium for its version number (). A version number contains digits and fullstop characters only. The first number supplied identifies the major version number. A second and third number, for minor and sub-minor version numbers, may also be @@ -8466,7 +8488,7 @@ resource, either within the current document or elsewhere.

La valeur de cet attribut devrait suivre le format proposé par - le Consortium Unicode pour identifier les versions (). Un numéro de version + le Consortium Unicode pour identifier les versions (). Un numéro de version ne contient que des chiffres et des points. Le numéro initiale identifie le numéro majeur de la version. Un deuxième et un troisième numéro sont aussi disponibles pour la numérotation @@ -8603,7 +8625,7 @@ which contain an XPath expression.

This datatype is used to constrain a string of characters to - one that can be used as a URI scheme name according to RFC 3986, section + one that can be used as a URI scheme name according to RFC 3986, section 3.1. Thus only the 26 lowercase letters a–z, the 10 digits 0–9, the plus sign, the period, and the hyphen are permitted, and the value must start with a letter.

@@ -11956,9 +11978,7 @@ On , either the @marks attribute should be used, or a paragraph of descri - - - + @@ -11971,7 +11991,7 @@ On , either the @marks attribute should be used, or a paragraph of descri Namensraums an. el nombre formal completo del namespace concerniente. l'intero nome formale del namespace in questione. - + @@ -15325,11 +15345,9 @@ should be supplied for the scheme attribute.

- - - - - + + + @@ -19643,6 +19661,7 @@ my twenty-first birthday

+ @@ -19658,7 +19677,7 @@ my twenty-first birthday

- + early February 1980 @@ -19741,6 +19760,7 @@ my twenty-first birthday

+ @@ -29051,54 +29071,13 @@ on a title page or in a dateline. + + - - - when - wann - gives the value of the date in standard form, i.e. YYYY-MM-DD. - 표준형식으로 날짜의 값을 제시한다. 예, YYYY-MM-DD. - proporciona el valor de una fecha en el formato estándar, es decir AAAA-MM-DD. - 当該日付を標準形式、例えば、YYYY-MM-DDで示す。 - donne la date dans une forme standard, -c'est-à-dire. YYYY-MM-DD. - assegna un valore alla data nel formato standard aaaa-mm-gg - gibt den Wert des Datums in einer standardisierten Form an, z. B. YYYY-MM-DD. - - -

For simple dates, the when attribute should give - the Gregorian or proleptic Gregorian date in one of the formats specified in XML - Schema Part 2: Datatypes Second Edition.

-
- -

Pour les dates dont la forme est simple, il est recommandé que l'attribut - when donne la date dans le calendrier grégorien ou grégorien - proleptique au format AAAA-MM-JJ spécifié par le standard XML Schema - Part 2.

-
- -

- 簡単な例は、属性whenの値として、グレゴリオ暦を - XML Schema Part 2で定義された形式 - (YYYY-MM-DD)で示す。 -

-
- -

Für einfache Datierungen sollte das when-Attribut ein gregorianisches oder - proleptisches gregorianisches Datum in dem spezifizierten Format XML Schema - Part 2: Datatypes Second Edition enthalten.

-
-
-
+ Oxford, Clarendon Press, 1987 @@ -40825,6 +40804,7 @@ externally.

+ @@ -66399,7 +66379,7 @@ the associated TEI header.

- + datatype specification documents a datatype. @@ -66423,6 +66403,15 @@ the associated TEI header.

+ + + + + A datatype specification should not refer to an element or a class. + + + + @@ -68797,6 +68786,7 @@ déclaration de même nom dans la définition courante. + @@ -68897,25 +68887,6 @@ déclaration de même nom dans la définition courante. - - namespace - 이름 공간 - 名稱空間 - espace de noms - espacio de nombre - spazio del nome - specifies the namespace to which this attribute belongs - 이 속성이 소속된 이름 공간을 명시한다. - 指明該屬性所屬的名稱空間。 - 当該属性が属する名前空間を示す。 - précise l'espace de noms auquel appartient cet - attribut. - especifica el espacio del nombre al que pertenece el - atributo. - indica lo spazio del nome al quale appartiene - l'attributo - -
@@ -69134,7 +69105,7 @@ déclaration de même nom dans la définition courante. Data facets can only be specified for references to datatypes specified by - XML Schemas: Part 2: Datatypes — that is, for there to be a 'dataFacet' child there must be a @name attribute. + XML Schema Part 2: Datatypes Second Edition — that is, for there to be a 'dataFacet' child there must be a @name attribute. Data facets and restrictions cannot both be expressed on the same data reference — that is, the @restriction attribute cannot be used when a 'dataFacet' element is present. @@ -69143,7 +69114,7 @@ déclaration de même nom dans la définition courante. Restrictions can only be specified for references to datatypes specified by - XML Schemas: Part 2: Datatypes — that is, for there to be a @restriction attribute there must be a @name attribute, too. + XML Schema Part 2: Datatypes Second Edition — that is, for there to be a @restriction attribute there must be a @name attribute, too. @@ -69155,7 +69126,7 @@ déclaration de même nom dans la définition courante. the name of a datatype in the list provided by - XML Schemas: Part 2: Datatypes + XML Schema Part 2: Datatypes Second Edition @@ -69197,7 +69168,7 @@ déclaration de même nom dans la définition courante.

Only one of the attributes key, name, and ref may be used on any given instance of dataRef.

-

Neither a restriction attribute not a dataFacet child element may be used unless the dataRef refers to a datatype from the specification XML Schemas: Part 2: Datatypes with a name attribute.

+

Neither a restriction attribute nor a dataFacet child element may be used unless the dataRef refers to a datatype from the specification XML Schema Part 2: Datatypes Second Edition with a name attribute.

@@ -69205,7 +69176,7 @@ déclaration de même nom dans la définition courante. Restricts the value of the strings used to represent values of a datatype, - according to XML Schemas: Part 2: Datatypes. + according to XML Schema Part 2: Datatypes Second Edition. @@ -69260,7 +69231,7 @@ déclaration de même nom dans la définition courante.

This element is only allowed when the parent dataRef refers with - name to a datatype from the specification XML Schemas: Part 2: Datatypes. + name to a datatype from the specification XML Schema Part 2: Datatypes Second Edition.

@@ -70014,7 +69985,7 @@ should correspond to an existing module, via a moduleSpec or - + @@ -70073,7 +70044,7 @@ should correspond to an existing module, via a moduleSpec or précise l'espace de noms auquel appartient cet élément. especifica el espacio de nombre al que pertenece tal elemento. indica lo spazio del nome al quale appartiene tale elemento - + http://www.tei-c.org/ns/1.0

When specified on an elementSpec, this attribute @@ -70083,7 +70054,7 @@ should correspond to an existing module, via a moduleSpec or is added, deleted, replaced, or changed by elementSpec children of the schemaSpec, or by elementSpecs referred to by specGrpRef - children of the schemSpec, unless + children of the schemaSpec, unless overridden by an ns attribute on the elementSpec.

Note that the value of ns of attDef is @@ -70174,6 +70145,7 @@ should correspond to an existing module, via a moduleSpec or + From 5de8e65c17926aea7d1e2ee35378e8ce47a0875c Mon Sep 17 00:00:00 2001 From: Joey Takeda Date: Wed, 18 Oct 2023 13:40:47 -0700 Subject: [PATCH 19/20] Update expected results --- Test/expected-results/test15.odd.html | 830 +++++++++++++++++--------- 1 file changed, 544 insertions(+), 286 deletions(-) diff --git a/Test/expected-results/test15.odd.html b/Test/expected-results/test15.odd.html index ac950cddd..ea13960b7 100644 --- a/Test/expected-results/test15.odd.html +++ b/Test/expected-results/test15.odd.html @@ -92,7 +92,7 @@

@@ -316,7 +316,7 @@

Schematron

- att.typed + att.typed  proporciona atributos genéricos utilizables para cualquier clasificación o subclasificación de elementos.[ 1.3.1. Attribute Classes 17.1.1. Words and Above @@ -245,26 +245,26 @@

- <div + <div  typ=" - verse"> + verse">  <head>Night in Tarras - </head> - <lg + </head>  + <lg  type=" - stanza"> + stanza">   <l>At evening tramping on the hot white road - </l> + </l>   <l>… - </l> - </lg> - <lg + </l>  + </lg>  + <lg  type=" - stanza"> + stanza">   <l>A wind sprang up from nowhere as the sky - </l> + </l>   <l>… - </l> + </l>  </lg> </div>
-
<sch:rule context="tei:*[@subtype]"> <sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype unless also categorized in general with @type</sch:assert> </sch:rule>
+
<sch:rule context="tei:*[@subtype]"> <sch:assert test="@type">The <sch:name/> element should not be categorized in detail with @subtype unless also categorized in general with @type</sch:assert> </sch:rule>
@@ -347,77 +347,177 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.divLike( - @org, - @sample) ( - att.fragmentable( - @part)) - att.declaring( - @decls) - att.written( - @hand) - att.typed( - type, @subtype) -
- - - - - -
typ - caracteriza el elemento utilizando una clasificación o tipología funcional. -
- - - - - - - - - - - - - -
- Derivado de - - att.typed -
- Estado - - Opcional -
- Tipo de datos - teidata.enumerated
-
-
-
+ +
+ + + + + +
typ + caracteriza el elemento utilizando una clasificación o tipología funcional. +
+ + + + + + + + + + + + + +
+ Derivado de + + att.typed +
+ Estado + + Opcional +
+ Tipo de datos + teidata.enumerated
+
+
+
+ @@ -544,44 +644,44 @@

- <body> - <div + <body>  + <div  typ=" - part"> + part">   <head>Fallacies of Authority - </head> - <para>The subject of which is Authority in various shapes, and the object, to repress all exercise of the reasoning faculty. - </para> - <div + </head>   + <para>The subject of which is Authority in various shapes, and the object, to repress all      exercise of the reasoning faculty. + </para>   + <div  n=" - 1" + 1typ=" - chapter"> + chapter">    <head>The Nature of Authority - </head> - <para>With reference to any proposed measures having for their object the greatest happiness of the greatest number [...] - </para> - <div + </head>    + <para>With reference to any proposed measures having for their object the greatest        happiness of the greatest number [...] + </para>    + <div  n=" - 1.1" + 1.1typ=" - section"> + section">     <head>Analysis of Authority - </head> - <para>What on any given occasion is the legitimate weight or influence to be attached to authority [...] - </para> - </div> - <div + </head>     + <para>What on any given occasion is the legitimate weight or influence to be attached to          authority [...] + </para>    + </div>    + <div  n=" - 1.2" + 1.2typ=" - section"> + section">     <head>Appeal to Authority, in What Cases Fallacious. - </head> + </head>     <para>Reference to authority is open to the charge of fallacy when [...] - </para> - </div> - </div> + </para>    + </div>   + </div>  </div> </body>
@@ -591,7 +691,7 @@

Schematron -
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not(ancestor::tei:floatingText)"> Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. </sch:report>
+
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not(ancestor::tei:floatingText)"> Abstract model violation: Lines may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. </sch:report>
@@ -599,7 +699,7 @@

Schematron -
<sch:report test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)"> Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. </sch:report>
+
<sch:report test="(ancestor::tei:p or ancestor::tei:ab) and not(ancestor::tei:floatingText)"> Abstract model violation: p and ab may not contain higher-level structural elements such as div, unless div is a descendant of floatingText. </sch:report>
@@ -741,36 +841,117 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.declaring( - @decls) - att.fragmentable( - @part) - att.written( - @hand) + + @@ -983,22 +1164,22 @@

Ejemplo -
+
<para>Hallgerd was outside. <q>There is blood on your axe, </q>she said. - <q>What have you done? + <q>What have you    done? </q> </para> - <para> + <para>  <q>I have now arranged that you can be married a second time, </q>replied Thjostolf. </para> - <para> + <para>  <q>Then you must mean that Thorvald is dead, </q>she said. </para> - <para> + <para>  <q>Yes, </q>said Thjostolf. <q>And now you must think up some plan for me. @@ -1011,7 +1192,7 @@

Schematron -
<sch:report test="(ancestor::tei:ab or ancestor::tei:p) and not( ancestor::tei:floatingText |parent::tei:exemplum |parent::tei:item |parent::tei:note |parent::tei:q |parent::tei:quote |parent::tei:remarks |parent::tei:said |parent::tei:sp |parent::tei:stage |parent::tei:cell |parent::tei:figure )"> Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements. </sch:report>
+
<sch:report test="(ancestor::tei:ab or ancestor::tei:p) and not( ancestor::tei:floatingText |parent::tei:exemplum |parent::tei:item |parent::tei:note |parent::tei:q |parent::tei:quote |parent::tei:remarks |parent::tei:said |parent::tei:sp |parent::tei:stage |parent::tei:cell |parent::tei:figure )"> Abstract model violation: Paragraphs may not occur inside other paragraphs or ab elements. </sch:report>
@@ -1019,7 +1200,7 @@

Schematron -
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not( ancestor::tei:floatingText |parent::tei:figure |parent::tei:note )"> Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. </sch:report>
+
<sch:report test="(ancestor::tei:l or ancestor::tei:lg) and not( ancestor::tei:floatingText |parent::tei:figure |parent::tei:note )"> Abstract model violation: Lines may not contain higher-level structural elements such as div, p, or ab, unless p is a child of figure or note, or is a descendant of floatingText. </sch:report>
@@ -1027,12 +1208,12 @@

Content model -
+                  
 <content>
  <macroRef key="macro.paraContent"/>
 </content>
     
-
+
 
@@ -1041,7 +1222,7 @@

Declaración -
+                  
 element para
 {
    
@@ -1055,7 +1236,7 @@ 

macro.paraContent } - +

@@ -1087,125 +1268,202 @@

Atributos - att.global( - @xml:id, - @n, - @xml:lang, - @xml:base, - @xml:space) ( - att.global.rendition( - @rend, - @style, - @rendition)) ( - att.global.linking( - @corresp, - @synch, - @sameAs, - @copyOf, - @next, - @prev, - @exclude, - @select)) ( - att.global.responsibility( - @cert, - @resp)) ( - att.global.source( - @source)) - att.ascribed.directed( - @toWhom) ( - att.ascribed( - @who)) -
- - - - - -
typ( - type) - Puede usarse para indicar si el material citado es hablado o pensado, o para caracterizarlo con más precisión. -
- - - - - - - - - - - - - -
- Estado - - Opcional -
- Tipo de datos - teidata.enumerated
- Los valores sugeridos incluyen: - -
-
- spoken -
-
( - spoken) - representación del estilo directo, normalmente marcado mediante comillas.
-
- thought -
-
( - thought) - representación de un pensamiento o reflexión, p.ej. un monólogo interno.
-
- written -
-
( - written) - cita de una fuente escrita.
-
- soCalled -
-
( - so called) - distancia autorial
-
- foreign -
-
( - foreign) - palabras extranjeras
-
- distinct -
-
( - distinct) - lingüisticamente distinto
-
- term -
-
- término técnico -
-
- emph -
-
( - emph) - énfasis retórico
-
- mentioned -
-
( - mentioned) - se refiere a sí mismo, no a su referente habitual
-
-
-
-
+ +
+ + + + + +
typ( + type) + Puede usarse para indicar si el material citado es hablado o pensado, o para caracterizarlo con más precisión. +
+ + + + + + + + + + + + + +
+ Estado + + Opcional +
+ Tipo de datos + teidata.enumerated
+ Los valores sugeridos incluyen: + +
+
+ spoken +
+
( + spoken) + representación del estilo directo, normalmente marcado mediante comillas.
+
+ thought +
+
( + thought) + representación de un pensamiento o reflexión, p.ej. un monólogo interno.
+
+ written +
+
( + written) + cita de una fuente escrita.
+
+ soCalled +
+
( + so called) + distancia autorial
+
+ foreign +
+
( + foreign) + palabras extranjeras
+
+ distinct +
+
( + distinct) + lingüisticamente distinto
+
+ term +
+
+ término técnico +
+
+ emph +
+
( + emph) + énfasis retórico
+
+ mentioned +
+
( + mentioned) + se refiere a sí mismo, no a su referente habitual
+
+
+
+
+ @@ -1488,7 +1746,7 @@

Ejemplo -
It is spelled +
It is spelled <q>Tübingen </q>— to enter the letter <q>u @@ -1504,12 +1762,12 @@

Content model -
+                  
 <content>
  <macroRef key="macro.specialPara"/>
 </content>
     
-
+
 
@@ -1518,7 +1776,7 @@

Declaración -
+                  
 element q
 {
    
@@ -1540,7 +1798,7 @@ 

macro.specialPara } - +

@@ -1556,7 +1814,7 @@

@@ -1656,12 +1914,12 @@

Content model

@@ -1670,10 +1928,10 @@

Declaración

@@ -5051,8 +5309,8 @@

+ TEI  + Home 
Sebastian Rahtz.
- \ No newline at end of file + From ba2d56c8429609c98761765b19e6136193cd0175 Mon Sep 17 00:00:00 2001 From: Joey Takeda Date: Wed, 18 Oct 2023 13:40:58 -0700 Subject: [PATCH 20/20] For #592, update CSS But note that this also will require a change in the GL's CSS in the TEI repo, I think --- css/odd.css | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/css/odd.css b/css/odd.css index 6090a1849..a3c2a2b7c 100644 --- a/css/odd.css +++ b/css/odd.css @@ -318,6 +318,30 @@ div.moduleSpec{ span.moduleSpecHead{ font-style:italic; } + +/** Vertical, compressd attlists */ +ul.attList{} + +/* Display attList children as a inline list */ +ul.attList ul.classSpecAttDefs, +ul.attList ul.classSpecAttDefs > li{ + display:inline; + margin:0; + padding:0; +} + +/* class name links should have a colon after */ +ul.attList a.link_odd + ul.classSpecAttDefs::before{ + content: ": "; + text-decoration: none; +} + +/* All classes and defined attributes (i.e. items in the lists) + should be comma separated */ +ul.attList ul.classSpecAttDefs > li:not(:last-child)::after{ + content: ", "; +} + ul.specList li{ list-style:none; }

- enum + enum  define la gama de valores de atributos expresados como una única palabra o señal tomada de una lista de posibilidades documentadas.
-
+                  
 <content>
  <dataRef key="teidata.word"/>
 </content>
     
-
+
 
-
+                  
 teidata.enumerated = 
 teidata.word
-
+