From 86da9b28de997e4e661bf02164acdc9cd5b350d4 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 13 Aug 2020 01:24:31 -0400 Subject: [PATCH 01/58] Re-work usual test system: Modify Makefile just to make it somewhat easier to read. Removed an unused target, added some whitespace, and changed REGENERATING variable to DIFFNOW (with flipped semantics), but mostly put the output of the various tests and builds into a directory of its own. Also remove quite a few expected_results/ files that are never used. This commit does not quite represent a finshed job -- still a bit more work to do. --- Test/Makefile | 913 ++++++++++-------- Test/expected-results/content.xml.odt | 760 --------------- Test/expected-results/mdtest1.md.xml | 66 -- Test/expected-results/mdtest1.tei | 66 -- Test/expected-results/test.isosch | 2 +- Test/expected-results/test.odd.html | 4 +- Test/expected-results/test.xml.odt.listing | 26 +- ...l.odt.listing => test.xml.odt_content.xml} | 0 Test/expected-results/test10.xml.odt.listing | 28 - Test/expected-results/test15.odd.html | 6 +- Test/expected-results/test15.odd.rnc | 20 +- Test/expected-results/test21.odd.rnc | 18 +- Test/expected-results/test26.fo | 1 - Test/expected-results/test26.html | 4 - Test/expected-results/test26.tex | 322 ------ Test/expected-results/test30.dtd | 15 +- Test/expected-results/test30.rnc | 20 +- Test/expected-results/test33.rnc | 20 +- Test/expected-results/test34.combined.json | 31 +- Test/expected-results/test34.odd.html | 4 +- Test/expected-results/test34.rnc | 20 +- Test/expected-results/test35.rnc | 20 +- Test/expected-results/test8.epub.listing | 26 - Test/expected-results/testdrama.compiled.xml | 55 +- Test/expected-results/testnotes/index.html | 2 +- Test/expected-results/testnotes/one.html | 2 +- Test/expected-results/testnotes/three.html | 2 +- Test/expected-results/testnotes/two.html | 2 +- Test/expected-results/testnotes2/index.html | 2 +- Test/expected-results/testnotes2/one.html | 2 +- Test/expected-results/testnotes2/three.html | 2 +- Test/expected-results/testnotes3/index.html | 2 +- Test/expected-results/testnotes3/one.html | 2 +- Test/expected-results/testnotes3/three.html | 2 +- Test/expected-results/testnotes3/two.html | 2 +- Test/xml.xsd | 3 +- source/p5subset.xml | 138 ++- 37 files changed, 711 insertions(+), 1899 deletions(-) delete mode 100644 Test/expected-results/content.xml.odt delete mode 100644 Test/expected-results/mdtest1.md.xml delete mode 100644 Test/expected-results/mdtest1.tei rename Test/expected-results/{content.xml.odt.listing => test.xml.odt_content.xml} (100%) delete mode 100644 Test/expected-results/test10.xml.odt.listing delete mode 100644 Test/expected-results/test26.fo delete mode 100644 Test/expected-results/test26.html delete mode 100644 Test/expected-results/test26.tex delete mode 100644 Test/expected-results/test8.epub.listing diff --git a/Test/Makefile b/Test/Makefile index 660f4d428..51fb1d1a7 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -1,12 +1,15 @@ -#added REGERATION option (LB 2015-12-16) VERSION=`cat VERSION` -REGENERATING=0 -# 0 = do diff; 1 = dont do diff +DIFFNOW=1 +# 1 = do diff; 0 = don't do diffs now, just put into actual_results/ +AR=actual-results +ER=expected-results +ARTN=$(AR)/testnotes BINDIR=../bin DEFAULTSOURCE=../source/p5subset.xml SAXONOPT=useFixedDate=true SAXON=java -Djava.awt.headless=true -jar ../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) -DOTDOTSAXON=java -Djava.awt.headless=true -jar ../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) +UP1SAXON=java -Djava.awt.headless=true -jar ../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) +UP2SAXON=java -Djava.awt.headless=true -jar ../../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) JING=java -Djava.awt.headless=true -jar ../lib/lib/jing-20120724.0.0.jar # flags used for the commands running from $(BINDIR), e.g. `bin/teitorelaxng` FLAGS=--localsource=$(DEFAULTSOURCE) @@ -31,382 +34,444 @@ SCHEMASCRIPTS=teitornc \ teitoxsd \ teitodtd -default: test.rng test-to-html test-p4top5 test-oddity test-scripts test-namespaces test-from-html test-latex test-fo test-to-docx test-from-docx test-xlsx test-rdf test-text test-odt test-markdown test-cocoa test-epub +default: actual test.rng test-to-html test-p4top5 test-oddity test-scripts test-namespaces test-from-html test-latex test-fo test-to-docx test-from-docx test-xlsx test-rdf test-text test-odt test-markdown test-cocoa test-epub -test.rng: +actual: + mkdir -p $(AR) + +test.rng: actual $(BINDIR)/teitorelaxng $(FLAGS) --odd test.odd test.rng - perl -i -p -e 's/generated from ODD source.*//' test.rng - xmllint --format test.rng > temp; mv temp test.rng - perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' test30.dtd - $(JING) -c test30.rnc test36.xml - xmllint --noout --dtdvalid test30.dtd test36.xml - #MDH 2020-03-18: commenting this out because of discrepancy between dev and p5 release trees. Add back after release of P5 4.1. - #if [ $(REGENERATING) -ne 1 ]; \ - #then diff test30.rnc expected-results/test30.rnc; fi - #if [ $(REGENERATING) -ne 1 ]; \ - #then diff test30.dtd expected-results/test30.dtd; fi + + $(BINDIR)/teitohtml5 $(FLAGS) --summaryDoc --odd test.odd $(AR)/test.odd.html + xmllint --encode utf-8 --format $(AR)/test.odd.html | perl cleanup.pl> test.temp ; mv test.temp $(AR)/test.odd.html + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test.odd.html $(ER)/test.odd.html; fi + + $(BINDIR)/teitoodd $(FLAGS) test.odd $(AR)/test.processedodd + $(SAXON) $(AR)/test.processedodd ../odds/extract-isosch.xsl > $(AR)/test.isosch + perl -i -p -e 's/This file generated [0-9T:Z-]+ by .extract-isosch.xsl./DELETED TIMESTAMP/' $(AR)/test.isosch + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test.isosch $(ER)/test.isosch; fi + + $(BINDIR)/teitornc $(FLAGS) test21.odd $(AR)/test21.odd.rnc + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test21.odd.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test21.odd.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test21.odd.rnc $(ER)/test21.odd.rnc; fi + + $(BINDIR)/teitornc $(FLAGS) test15.odd $(AR)/test15.odd.rnc + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test15.odd.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test15.odd.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test15.odd.rnc $(ER)/test15.odd.rnc; fi + + $(BINDIR)/teitohtml5 $(FLAGS) --summaryDoc --lang=es --profile=tei --odd test15.odd $(AR)/test15.odd.html + xmllint --encode utf-8 --format $(AR)/test15.odd.html | perl cleanup.pl> test.temp ; mv test.temp $(AR)/test15.odd.html + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test15.odd.html $(ER)/test15.odd.html; fi + + $(SAXON) -it:main -xsl:../tools/oddbyexample.xsl corpus=`pwd`/bare | sed 's/

Derived from.*//' > $(AR)/oddbyexample.odd + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/oddbyexample.odd $(ER)/oddbyexample.odd; fi + $(BINDIR)/teitoxsd $(FLAGS) $(AR)/oddbyexample.odd $(AR)/oddbyexample.xsd + $(BINDIR)/teitornc $(FLAGS) $(AR)/oddbyexample.odd $(AR)/oddbyexample.rnc + $(BINDIR)/teitodtd $(FLAGS) $(AR)/oddbyexample.odd $(AR)/oddbyexample.dtd + $(JING) -c $(AR)/oddbyexample.rnc bare/test2.xml + $(JING) $(AR)/oddbyexample.xsd bare/test2.xml + xmllint --noout --dtdvalid $(AR)/oddbyexample.dtd bare/test2.xml + $(JING) -c $(AR)/oddbyexample.rnc bare/test.xml + $(JING) $(AR)/oddbyexample.xsd bare/test.xml + xmllint --noout --dtdvalid $(AR)/oddbyexample.dtd bare/test.xml + + $(SAXON) -s:testdrama.odd -xsl:../odds/odd2odd.xsl -o:$(AR)/testdrama.compiled.xml + perl -p -i -e 's+ xml:base=".*testdrama.odd"++' $(AR)/testdrama.compiled.xml + perl -i -pe 'BEGIN{undef $$/;} s/<\?TEIVERSION[^?]+\?>//smg' $(AR)/testdrama.compiled.xml + perl -i -pe 's+(schemaSpec.*source=")$(DEFAULTSOURCE)+$$1https://www.tei-c.org/Vault/P5/current/xml/tei/odd/p5subset.xml+' $(AR)/testdrama.compiled.xml + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/testdrama.compiled.xml $(ER)/testdrama.compiled.xml; fi + + $(BINDIR)/teitornc $(FLAGS) test30.odd $(AR)/test30.rnc + $(BINDIR)/teitodtd $(FLAGS) test30.odd $(AR)/test30.dtd + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test30.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test30.rnc + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test30.dtd + perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' $(AR)/test30.dtd + $(JING) -c $(AR)/test30.rnc test36.xml + xmllint --noout --dtdvalid $(AR)/test30.dtd test36.xml + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test30.rnc $(ER)/test30.rnc; fi + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test30.dtd $(ER)/test30.dtd; fi + # MDH 2017-01-07: THE FOLLOWING LINES WILL integrate LB's new pure ODD # master test to replace originals, BUT ONLY WHEN THINGS ARE WORKING PROPERLY. # Generate DTD from ODD. @@ -419,98 +484,102 @@ test-oddity: css # perl -p -i -e 's/generated from ODD source .*//' testODD.rnc # perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' testODD.rnc # diff against expected results. -# if [ $(REGENERATING) -ne 1 ]; \ -# then diff testODD.dtd expected-results/testODD.dtd; fi -# if [ $(REGENERATING) -ne 1 ]; \ -# then diff testODD.rnc expected-results/testODD.rnc; fi +# if [ $(DIFFNOW) -eq 1 ]; \ +# then diff testODD.dtd $(ER)/testODD.dtd; fi +# if [ $(DIFFNOW) -eq 1 ]; \ +# then diff testODD.rnc $(ER)/testODD.rnc; fi # NOTE: THERE SHOULD BE VALIDATION OF AN INSTANCE FILE AGAINST THE DTD HERE. # OLD ORIGINAL CODE STILL BEING USED FOR THE MOMENT. - $(BINDIR)/teitodtd $(FLAGS) test-pure.odd test-pure.dtd - $(BINDIR)/teitornc $(FLAGS) test-pure.odd test-pure.rnc - xmllint --noout --dtdvalid test-pure.dtd test-pure.xml - perl -p -i -e 's/generated from ODD source .*//' test-pure.dtd - perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' test-pure.dtd - perl -p -i -e 's/generated from ODD source .*//' test-pure.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' test-pure.rnc - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure.rnc expected-results/test-pure.rnc; fi - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure.dtd expected-results/test-pure.dtd; fi - $(BINDIR)/teitohtml $(FLAGS) --odd test-pure.odd test-pure.odd.html - xmllint --encode utf-8 --format test-pure.odd.html | perl cleanup.pl> test.temp ; mv test.temp test-pure.odd.html - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure.odd.html expected-results/test-pure.odd.html; fi - $(BINDIR)/teitodtd $(FLAGS) test-pure2.odd test-pure2.dtd - $(BINDIR)/teitornc $(FLAGS) test-pure2.odd test-pure2.rnc - $(BINDIR)/teitohtml $(FLAGS) --odd test-pure2.odd test-pure2.odd.html - xmllint --noout --dtdvalid test-pure2.dtd test-pure2.xml - xmllint --encode utf-8 --format test-pure2.odd.html | perl cleanup.pl> test.temp ; mv test.temp test-pure2.odd.html - perl -p -i -e 's/generated from ODD source .*//' test-pure2.dtd - perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' test-pure2.dtd - perl -p -i -e 's/generated from ODD source .*//' test-pure2.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' test-pure2.rnc - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure2.rnc expected-results/test-pure2.rnc; fi - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure2.dtd expected-results/test-pure2.dtd; fi - if [ $(REGENERATING) -ne 1 ]; \ - then diff test-pure2.odd.html expected-results/test-pure2.odd.html; fi - $(SAXON) test.odd ../odds/odd2odd.xsl > test.odd2odd - $(SAXON) test.odd2odd ../odds/odd2dtd.xsl > test.odd2dtd - $(SAXON) test.odd2odd ../odds/odd2html.xsl > test.odd2html - $(SAXON) test.odd2odd ../odds/odd2json.xsl > test.odd2json - $(SAXON) test.odd2odd ../odds/odd2lite.xsl > test.odd2lite - $(SAXON) test.odd2odd ../odds/odd2relax.xsl > test.odd2relax - $(SAXON) test.odd2odd ../odds/odd2xslstripspace.xsl > test.odd2xslstripspace - rm test.odd2odd - rm test.odd2dtd - rm test.odd2html - rm test.odd2json - rm test.odd2lite - rm test.odd2relax - rm test.odd2xslstripspace - -moreoddity: - $(BINDIR)/teitoxsd $(FLAGS) test.odd test.xsd - $(BINDIR)/teitodtd $(FLAGS) test.odd test.dtd - $(BINDIR)/teitornc $(FLAGS) test.odd test.rnc - -test-namespaces: + $(BINDIR)/teitodtd $(FLAGS) test-pure.odd $(AR)/test-pure.dtd + $(BINDIR)/teitornc $(FLAGS) test-pure.odd $(AR)/test-pure.rnc + xmllint --noout --dtdvalid $(AR)/test-pure.dtd test-pure.xml + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test-pure.dtd + perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' $(AR)/test-pure.dtd + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test-pure.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test-pure.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure.rnc $(ER)/test-pure.rnc; fi + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure.dtd $(ER)/test-pure.dtd; fi + $(BINDIR)/teitohtml $(FLAGS) --odd test-pure.odd $(AR)/test-pure.odd.html + xmllint --encode utf-8 --format $(AR)/test-pure.odd.html | perl cleanup.pl> test.temp ; mv test.temp $(AR)/test-pure.odd.html + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure.odd.html $(ER)/test-pure.odd.html; fi + + $(BINDIR)/teitodtd $(FLAGS) test-pure2.odd $(AR)/test-pure2.dtd + $(BINDIR)/teitornc $(FLAGS) test-pure2.odd $(AR)/test-pure2.rnc + $(BINDIR)/teitohtml $(FLAGS) --odd test-pure2.odd $(AR)/test-pure2.odd.html + xmllint --noout --dtdvalid $(AR)/test-pure2.dtd test-pure2.xml + xmllint --encode utf-8 --format $(AR)/test-pure2.odd.html | perl cleanup.pl> test.temp ; mv test.temp $(AR)/test-pure2.odd.html + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test-pure2.dtd + perl -i -pe 'BEGIN{undef $$/;} s/\n//smg' $(AR)/test-pure2.dtd + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test-pure2.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test-pure2.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure2.rnc $(ER)/test-pure2.rnc; fi + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure2.dtd $(ER)/test-pure2.dtd; fi + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test-pure2.odd.html $(ER)/test-pure2.odd.html; fi + + $(SAXON) test.odd ../odds/odd2odd.xsl > $(AR)/test.odd2odd + $(SAXON) $(AR)/test.odd2odd ../odds/odd2dtd.xsl > $(AR)/test.odd2dtd + $(SAXON) $(AR)/test.odd2odd ../odds/odd2html.xsl > $(AR)/test.odd2html + $(SAXON) $(AR)/test.odd2odd ../odds/odd2json.xsl > $(AR)/test.odd2json + $(SAXON) $(AR)/test.odd2odd ../odds/odd2lite.xsl > $(AR)/test.odd2lite + $(SAXON) $(AR)/test.odd2odd ../odds/odd2relax.xsl > $(AR)/test.odd2relax + $(SAXON) $(AR)/test.odd2odd ../odds/odd2xslstripspace.xsl > $(AR)/test.odd2xslstripspace + rm $(AR)/test.odd2odd + rm $(AR)/test.odd2dtd + rm $(AR)/test.odd2html + rm $(AR)/test.odd2json + rm $(AR)/test.odd2lite + rm $(AR)/test.odd2relax + rm $(AR)/test.odd2xslstripspace + +moreoddity: actual + $(BINDIR)/teitoxsd $(FLAGS) test.odd $(AR)/test.xsd + $(BINDIR)/teitodtd $(FLAGS) test.odd $(AR)/test.dtd + $(BINDIR)/teitornc $(FLAGS) test.odd $(AR)/test.rnc + +test-namespaces: actual @echo BUILD: testing namespaces # This test checks the rnc files so that to make sure we are testing # what we think we are testing. - $(BINDIR)/teitornc $(FLAGS) test33.odd test33.rnc - perl -p -i -e 's/generated from ODD source .*//' test33.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' test33.rnc - if [ $(REGENERATING) -ne 1 ]; \ - then diff test33.rnc expected-results/test33.rnc; fi - $(SAXON) test33.odd ../odds/odd2json.xsl > test33.json - perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' test33.json - if [ $(REGENERATING) -ne 1 ]; \ - then diff test33.json expected-results/test33.json; fi - $(BINDIR)/teitornc $(FLAGS) test34.odd test34.rnc - perl -p -i -e 's/generated from ODD source .*//' test34.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' test34.rnc - if [ $(REGENERATING) -ne 1 ]; \ - then diff test34.rnc expected-results/test34.rnc; fi - $(SAXON) test34.odd ../odds/odd2json.xsl > test34.json - perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' test34.json - if [ $(REGENERATING) -ne 1 ]; \ - then diff test34.json expected-results/test34.json; fi - $(SAXON) test34.odd ../odds/odd2odd.xsl > test34.combined.odd - $(SAXON) test34.combined.odd ../odds/odd2json.xsl > test34.combined.json - perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' test34.combined.json - if [ $(REGENERATING) -ne 1 ]; \ - then diff test34.combined.json expected-results/test34.combined.json; fi - $(BINDIR)/teitohtml $(FLAGS) --odd --summaryDoc test34.odd test34.odd.html - xmllint --encode utf-8 --format test34.odd.html | perl cleanup.pl> test.temp ; mv test.temp test34.odd.html - if [ $(REGENERATING) -ne 1 ]; \ - then diff test34.odd.html expected-results/test34.odd.html; fi - $(BINDIR)/teitornc $(FLAGS) test35.odd test35.rnc - perl -p -i -e 's/generated from ODD source .*//' test35.rnc - perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' test35.rnc - if [ $(REGENERATING) -ne 1 ]; \ - then diff test35.rnc expected-results/test35.rnc; fi + $(BINDIR)/teitornc $(FLAGS) test33.odd $(AR)/test33.rnc + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test33.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test33.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test33.rnc $(ER)/test33.rnc; fi + $(SAXON) test33.odd ../odds/odd2json.xsl > $(AR)/test33.json + perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' $(AR)/test33.json + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test33.json $(ER)/test33.json; fi + + $(BINDIR)/teitornc $(FLAGS) test34.odd $(AR)/test34.rnc + perl -p -i -e 's/generated from ODD source .*//' $(AR)/test34.rnc + perl -i -pe 'BEGIN{undef $$/;} s/# ?Schema[^#]+#[^#]+#[^#]+#[^#]+#\n//smg' $(AR)/test34.rnc + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test34.rnc $(ER)/test34.rnc; fi + $(SAXON) test34.odd ../odds/odd2json.xsl > $(AR)/test34.json + perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' $(AR)/test34.json + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test34.json $(ER)/test34.json; fi + $(SAXON) test34.odd ../odds/odd2odd.xsl > $(AR)/test34.combined.odd + $(SAXON) $(AR)/test34.combined.odd ../odds/odd2json.xsl > $(AR)/test34.combined.json + perl -p -i -e 's/"date" : "\d+-\d+\-\d+T\d+:\d+:\d+Z",//' $(AR)/test34.combined.json + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test34.combined.json $(ER)/test34.combined.json; fi + $(BINDIR)/teitohtml $(FLAGS) --odd --summaryDoc test34.odd $(AR)/test34.odd.html + xmllint --encode utf-8 --format $(AR)/test34.odd.html | perl cleanup.pl> test.temp ; mv test.temp $(AR)/test34.odd.html + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test34.odd.html $(ER)/test34.odd.html; fi + + $(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 + if [ $(DIFFNOW) -eq 1 ]; \ + then diff $(AR)/test35.rnc $(ER)/test35.rnc; fi test-scripts: for i in $(SCRIPTS); do $(BINDIR)/$$i $(FLAGS) maria.xml $$i.result && rm $$i.result; done @@ -566,14 +635,8 @@ clean: rm -f test.xlsx.xml *.result.tex *.result.pdf _slidelogo.png rm -f content.xml rm -f cocoatest*.xml + rm -fr $(AR)/ oddtree: $(SAXON) -s:http://www.tei-c.org/release/xml/tei/odd/p5subset.xml -xsl:../tools/odd-to-tree.xsl -o:oddtree.xml ../bin/teitohtml --profile=oxford oddtree.xml oddtree.html - -regenerate: - mkdir new-expected-results - cd expected-results - for f in *; do echo $f; cp ../$f ../new-expected-results; done - cd .. - diff new-expected-results expected-results diff --git a/Test/expected-results/content.xml.odt b/Test/expected-results/content.xml.odt deleted file mode 100644 index 7fbac9e74..000000000 --- a/Test/expected-results/content.xml.odt +++ /dev/null @@ -1,760 +0,0 @@ - - - - - - - - - - - - - - - - - - - - (half title note) - The Original Edition of A CHRISTMAS CAROL has been out of print for many years, and this Edition is a reprint from the stereotype plates of that Edition. - A Christmas carol. in prose. - being A Ghost Story of Christmas - by Charles Dickens. - With illustrations by John Leech - London: Chapman and Hall, Ltd. 1893. - PREFACE - I have endeavoured in this Ghostly little book, to raise the Ghost of an Idea, which shall not put my readers out of humour with themselves, with each other, with the season, or with me. May it haunt their houses pleasantly, and no one wish to lay it. - Their faithful Friend and Servant, C.D. December, 1843. - Contents. - Stave I - Marley's ghost 1 - Stave II - The first of the three spirits - Stave III - The second of the three spirits - Stave IV - The last of the spirits - Stave V - The end of it - (Bits of) A CHRISTMAS CAROL, and other things - Simple rendition tests - Who-e debel you? — he at last said — you no speak-e, damme, I kill-e. And so saying, the lighted tomahawk began flourishing about me in the dark. - Who-e debel you? — he at last said — you no speak-e, damme, I kill-e. And so saying, the lighted tomahawk began flourishing about me in the dark. - - - - - - - Effect - - - Example - - - - - - hi - - - This is hi rend="special" tag - - - - - emph - - - This is emph tag - - - - - hi - - - This is hi tag - - - - - typewriter - - - This is typewriter effect - - - - - bold - - - This is bold effect - - - - - normalweight - - - This is normalweight effect - - - - - smallcaps - - - This is smallcaps effect - - - - - capsall - - - This is capsall effect - - - - - strikethrough - - - This is strikethrough effect - - - - - strikedoublethrough - - - This is strikedoublethrough effect - - - - - color(red) - - - This is color(red) effect - - - - - underline - - - This is underline effect - - - - - underwavyline - - - This is underwavyline effect - - - - - underdoubleline - - - This is underdoubleline effect - - - - - subscript - - - This is subscript effect - - - - - superscript - - - This is superscript effect - - - - - bold italic red, done separately - - - - - - rend test 1 - - - - - - - - bold italic smallcaps - - - - rend test 1 - - 1 - - Cairns 2003: 11. My work is Muellner 1996. - - - - - - - Quotations - A paragraph with a footnote containing a block-level object2We start with a quotation:This is the way the world endsThis is the way the world endsThis is the way the world endsNot with a bang but a whimper.which is from TS Eliot's Hollow men - Consider quotations: ‘This is a quote which is run on within the text and will have quote marks of some kind around it.’ - Another quotation: - This is a block quote set off as such from the rest of the text - Here, by contrast is an ‘inline quotation’. Another strange thing about quotes is this: - You can put line breaksto determine where the line breaksInside a block! - Use of xml:lang - He used a French radiateur. - Languages: Deutsch; Italiano; Español; Français; Portugues; Russian; Svenska; 日本語; 中文. - del, gap, add, unclear etc - [...]. The interest & — affor [...] the amount over so small the interest afforded compared with cash, [...] by the Annuity note paper to those who tutor think it, or keep it, with a view to circulation, will, when compared with cash be it ever so small be so much profit: compared with a the preceding higher rate of interest, the reduced rate afforded by the Annuity note paper, to those who, tutor if they tutor it, will, have to depend upon to the extent of their respective capitals so invested, have nothing else to depend upon for their respective incomes, will, [...] by the amount of the difference, foremost itself as so much less. - Drama - Roderigo - Where shall we meet i' the morning? - Iago - At my lodging. - Roderigo - I'll be with thee betimes. - Iago - Go to; farewell. Do you hear, Roderigo? - Roderigo - What say you? - Iago - No more of drowning, do you hear? - Roderigo - I am changed: I'll go sell all my land. - Footnotes - 1 Zur Entstehung der Philosophischen Untersuchungen3Zu Textauszeichnungen und Siglen siehe die Legende. - Iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 4Zu Textauszeichnungen und Siglen siehe die Legende. Iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod - emph and links - The <emph> element is used for linguistic emphasis. ‘highlighting’ (<soCalled>) nor with shouting (<mentioned>), transmogrification, (a technical <term>), for which the <gloss> tag might be used to supply a technical definition). - Now for some links! We will start by cross-referring to a later section. - Here is a simple <ptr> to it: 9. Lists. Here is a simple <ref>, a reference to it. - An external link as ref and as ptr: http://www.bbc.co.uk. - Tables - Tables may have cells that span multiple columns and rows. - - - - - - - - Image - - - Description - - - Camera direction - - - - - - SVG, JPEG, GIF or PNG format - - - - - - All pictures were taken on Jun 27, 2007 - - - - - - - - - - - - - - Mountain flowers. - - - north - - - - - - - - - - - - Sunset over a secondary ridge. - - - north-east - - - - - - - - - - - - Glacier lake at 2100m altitude. - - - east - - - - Pictures from Fagaras mountains - - - - - - - - - - Spans Horizontally - - - - Header 3 - - - Spans Horizontally - - - - - - - Spans Vertically - - - a - - - b - - - c - - - d - - - - - e - - - Spans both - - - - f - - - - - g - - - g - - - - - i - - - j - - - Spans Horizontally - - - - - - k - - - l - - - m - - - n - - - o - - - - - TEI Span Sample - - Lists - Various sorts of list are legal within paragraphs, and you can reference items in lists... - - - Dogs - - - Zebras - - - Birds - - - Cats - - - - 100 - first item - 200 - second item - 300 - third item - The preceding lists was between paragraphs. - - This untyped list has a heading and a nested glosslist - - - first item - - - 25 - first item - 35 - second item - 45 - third item - - - third item - - - - Pictures - - - - - - - - - - - - - - - - width="2.5in" - - - - - - - - - - - - width=".5in" - - - - - - - - - - - - scale=".5" - - - - - - - - - - - - width="1in" - - - - - - - - - - - - width="1in" style="border:solid green 2pt" - - - - - - - - - - - - height="1in" - - - - - - - - - - - - height="1in" width="2in" - - - - - - - - - - - - height="2in" width="1in" - - - - - - - - - - - - width="10%" - - - - - - - - - - - - height="10%" width="10%" - - - - - - - - - - - MS catalogue - - Identification - - where is it, repository name, identifier - Extended prose: MARLEY'S GHOST - - Marley was dead: to begin with. There is no doubt whatever about that. The register of his burial was signed by the clergyman, the clerk, the undertaker, and the chief mourner. Scrooge signed it. And Scrooge's name was good upon 'Change, for anything he chose to put his hand to. Old Marley was as dead as a door-nail. - Mind! I don't mean to say that I know, of my own knowledge, what there is particularly dead about a door-nail. I might have been inclined, myself, to regard a coffin-nail as the deadest piece of ironmongery in the trade. But the wisdom of our ancestors is in the simile; and my unhallowed - - hands shall not disturb it, or the Country's done for. You will therefore permit me to repeat, emphatically, that Marley was as dead as a door-nail. - Scrooge knew he was dead? Of course he did. How could it be otherwise? Scrooge and he were partners for I don't know how many years. Scrooge was his sole executor, his sole administrator, his sole assign, his sole residuary legatee, his sole friend, and sole mourner. And even Scrooge was not so dreadfully cut up by the sad event, but that he was an excellent man of business on the very day of the funeral, and solemnised it with an undoubted bargain. - The mention of Marley's funeral brings me back to the point I started from. There is no doubt that Marley was dead. This must be distinctly understood, or nothing wonderful can come of the story I am going to relate. If we were not perfectly convinced that Hamlet's Father died before the play began, there would be nothing more remarkable in his taking a stroll at night, in an easterly wind, upon his own ramparts, than there - - would be in any other middle-aged gentleman rashly turning out after dark in a breezy spot — say Saint Paul's Churchyard for instance — literally to astonish his son's weak mind. - Scrooge never painted out Old Marley's name. There it stood, years afterwards, above the ware-house door: Scrooge and Marley. The firm was known as Scrooge and Marley. Sometimes people new to the business called Scrooge Scrooge, and sometimes Marley, but he answered to both names. It was all the same to him. - Oh! But he was a tight-fisted hand at the grindstone, Scrooge! a squeezing, wrenching, grasping, scraping, clutching, covetous old sinner! Hard and sharp as flint, from which no steel had ever struck out generous fire; secret, and self-contained, and solitary as an oyster. The cold within him froze his old features, nipped his pointed nose, shrivelled his cheek, stiffened his gait; made his eyes red, his thin lips blue; and spoke out shrewdly in his grating voice. A frosty rime was on his head, and on his eyebrows, and his wiry chin. He - - carried his own low temperature always about with him; he iced his office in the dog-days; and didn't thaw it one degree at Christmas. - External heat and cold had little influence on Scrooge. No warmth could warm, no wintry weather chill him. No wind that blew was bitterer than he, no falling snow was more intent upon its purpose, no pelting rain less open to entreaty. Foul weather didn't know where to have him. The heaviest rain, and snow, and hail, and sleet, could boast of the advantage over him in only one respect. They often ‘came down’ handsomely, and Scrooge never did. - Nobody ever stopped him in the street to say, with gladsome looks, My dear Scrooge, how are you. When will you come to see me. No beggars implored him to bestow a trifle, no children asked him what it was o'clock, no man or woman ever once in all his life inquired the way to such and such a place, of Scrooge. Even the blindmen's dogs appeared to know him; and when they saw him coming on, would tug their owners into doorways - - and up courts; and then would wag their tails as though they said, No eye at all is better than an evil eye, dark master! - But what did Scrooge care! It was the very thing he liked. To edge his way along the crowded paths of life, warning all human sympathy to keep its distance, was what the knowing ones call ‘nuts’ to Scrooge. - Once upon a time — of all the good days in the year, on Christmas Eve — old Scrooge sat busy in his counting-house. It was cold, bleak, biting weather: foggy withal: and he could hear the people in the court outside, go wheezing up and down, beating their hands upon their breasts, and stamping their feet upon the pavement stones to warm them. The city clocks had only just gone three, but it was quite dark already: it had not been light all day: and candles were flaring in the windows of the neighbouring offices, like ruddy smears upon the palpable brown air. The fog came pouring in at every chink and keyhole, and was so dense without, that although the court was of the - - narrowest, the houses opposite were mere phantoms. To see the dingy cloud come drooping down, obscuring everything, one might have thought that Nature lived hard by, and was brewing on a large scale. - The door of Scrooge's counting-house was open that he might keep his eye upon his clerk, who in a dismal little cell beyond, a sort of tank, was copying letters. Scrooge had a very small fire, but the clerk's fire was so very much smaller that it looked like one coal. But he couldn't replenish it, for Scrooge kept the coal-box in his own room; and so surely as the clerk came in with the shovel, the master predicted that it would be necessary for them to part. Wherefore the clerk put on his white comforter, and tried to warm himself at the candle; in which effort, not being a man of a strong imagination, he failed. - A merry Christmas, uncle! God save you! cried a cheerful voice. It was the voice of Scrooge's nephew, who came upon him so quickly that this was the first intimation he had of his approach. - - - Bah! said Scrooge, Humbug! - He had so heated himself with rapid walking in the fog and frost, this nephew of Scrooge's, that he was all in a glow; his face was ruddy and handsome; his eyes sparkled, and his breath smoked again. - Christmas a humbug, uncle! said Scrooge's nephew. You don't mean that, I am sure. - I do, said Scrooge. Merry Christmas! What right have you to be merry? what reason have you to be merry? You're poor enough. - Come, then, returned the nephew gaily. What right have you to be dismal? what reason have you to be morose? You're rich enough. - Scrooge having no better answer ready on the spur of the moment, said, Bah! again; and followed it up with Humbug. - Don't be cross, uncle, said the nephew. - What else can I be, returned the uncle, when I live in such a world of fools as this Merry Christmas! Out upon merry Christmas. What's Christmas time to you but a time for paying bills without money; a time for finding yourself a year older, but not an hour richer; a time for balancing your books and having every item in 'em through a round dozen of months presented dead against you? If I could work my will, said Scrooge indignantly, every idiot who goes about with Merry Christmas on his lips, should be boiled with his own pudding, and buried with a stake of holly through his heart. He should! - Uncle! pleaded the nephew. - Nephew! returned the uncle, sternly, keep Christmas in your own way, and let me keep it in mine. - Keep it! repeated Scrooge's nephew. But you don't keep it. - Let me leave it alone, then, said Scrooge. Much good may it do you! Much good it has ever done you! - There are many things from which I might have derived good, by which I have not profited, I dare say, returned the nephew: Christmas among the rest. But I am sure I have always thought of Christmas time, when it has come round — apart from the veneration due to its sacred name and origin, if anything belonging to it can be apart from that — as a good time: a kind, forgiving, charitable, pleasant time: the only time I know of, in the long calendar of the year, when men and women seem by one consent to open their shut-up hearts freely, and to think of people below them as if they really were fellow-passengers to the grave, and not another race of creatures bound on other journeys. And therefore, uncle, though it has never put a scrap of gold or silver in my pocket, I believe that it has done me good, and will do me good; and I say, God bless it! - The clerk in the tank involuntarily applauded. Becoming immediately sensible of the impropriety, he poked the fire, and extinguished the last frail spark for ever. - Let me hear another sound from you, said Scrooge, and you'll keep your Christmas by losing your situation. You're quite a powerful speaker, sir, he added, turning to his nephew. I wonder you don't go into Parliament. - - - Don't be angry, uncle. Come! Dine with us to-morrow. - Scrooge said that he would see him — yes, indeed he did. He went the whole length of the expression, and said that he would see him in that extremity first. - But why? cried Scrooge's nephew. Why? - Why did you get married? said Scrooge. - Because I fell in love. - Because you fell in love! growled Scrooge, as if that were the only one thing in the world more ridiculous than a merry Christmas. Good afternoon! - Nay, uncle, but you never came to see me before that happened. Why give it as a reason for not coming now? - Good afternoon, said Scrooge. - I want nothing from you; I ask nothing of you; why cannot we be friends? - Good afternoon, said Scrooge. - I am sorry, with all my heart, to find you so resolute. We have never had any quarrel, to which I have been a party. But I have made the trial in homage to Christmas, and I'll keep my Christmas humour to the last. So A Merry Christmas, uncle! - Good afternoon! said Scrooge. - And A Happy New Year! - Good afternoon! said Scrooge. - His nephew left the room without an angry word, notwithstanding. He stopped at the outer door to bestow the greeting of the season on the clerk, who, cold as he was, was warmer than Scrooge; for he returned them cordially. - There's another fellow, muttered Scrooge; who overheard him: my clerk, with fifteen shillings a week, and a wife and family, talking about a merry Christmas. I'll retire to Bedlam. - This lunatic, in letting Scrooge's nephew out, had let two other people in. They were portly gentlemen, pleasant to behold, and now stood, with their hats off, in Scrooge's office. They had books and papers in their hands, and bowed to him. - Scrooge and Marley's, I believe, said one of the - - gentlemen, referring to his list. Have I the pleasure of addressing Mr Scrooge, or Mr Marley? - Mr Marley has been dead these seven years, Scrooge replied. He died seven years ago, this very night. - We have no doubt his liberality is well represented by his surviving partner, said the gentleman, presenting his credentials. - It certainly was; for they had been two kindred spirits. At the ominous word liberality, Scrooge frowned, and shook his head, and handed the credentials back. - At this festive season of the year, Mr Scrooge, said the gentleman, taking up a pen, it is more than usually desirable that we should make some slight provision for the Poor and destitute, who suffer greatly at the present time. Many thousands are in want of common necessaries; hundreds of thousands are in want of common comforts, sir. - Are there no prisons? asked Scrooge. - Plenty of prisons, said the gentleman, laying down the pen again. - - - And the Union workhouses? demanded Scrooge. Are they still in operation? - They are. Still, returned the gentleman, I wish I could say they were not. - The Treadmill and the Poor Law are in full vigour, then? said Scrooge. - Both very busy, sir. - Oh! I was afraid, from what you said at first, that something had occurred to stop them in their useful course, said Scrooge. I'm very glad to hear it. - Under the impression that they scarcely furnish Christian cheer of mind or body to the multitude, returned the gentleman, a few of us are endeavouring to raise a fund to buy the Poor some meat and drink, and means of warmth. We choose this time, because it is a time, of all others, when Want is keenly felt, and Abundance rejoices. What shall I put you down for? - Nothing! Scrooge replied. - You wish to be anonymous? - I wish to be left alone, said Scrooge. Since you ask me what I wish, gentlemen, that is my answer. I don't make merry myself at Christmas and I can't afford to make idle people merry. I help to support the establishments I have mentioned: they cost enough: and those who are badly off must go there. - Many can't go there; and many would rather die. - If they would rather die, said Scrooge, they had better do it, and decrease the surplus population. Besides — excuse me — I don't know that. - But you might know it, observed the gentleman. - It's not my business, Scrooge returned. It's enough for a man to understand his own business, and not to interfere with other people's. Mine occupies me constantly. Good afternoon, gentlemen! - Seeing clearly that it would be useless to pursue their point, the gentlemen withdrew. Scrooge resumed his labours with an improved opinion of himself, and in a more facetious temper than was usual with him. - - - Foggier yet, and colder! Piercing, searching, biting cold. If the good Saint Dunstan had but nipped the Evil Spirit's nose with a touch of such weather as that, [Note: test of a note] instead of using his familiar weapons, then indeed he would have roared to lusty purpose. The owner of one scant young nose, gnawed and mumbled by the hungry cold as bones are gnawed by dogs, stooped down at Scrooge's keyhole to regale him with a Christmas carol: but at the first sound of - God bless you, merry gentleman! - May nothing you dismay! - Scrooge seized the ruler with such energy of action - - that the singer fled in terror, leaving the keyhole to the fog and even more congenial frost. - Linking - - http://www.bbc.co.uk - - - https://staff.oucs.ox.ac.uk - - foo - - Fred - - - Jones 76 - - Testing preservation of ID - Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. With references to - - - Quotation - - - Citation - - - Paragraph - - - Reference - - - Anchor - - - Title - - - - I wonder what are the xml-ids preserved in a transformation to XHTML, in particular in the case of quotations. So, let’s try : - Something longer. Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet. - In Somewhere. - Choice, sic, corr, reg, orig - voro þav sammędd syskin in heilagri olafr konvngr ok fyrnefnd [gvnnhilldr]. - Lastly, That, upon his solemn oath to observe all the above articles, the said man-mountain shall have a daily allowance of meat and drink sufficient for the support of [1728] of our subjects, with free access to our royal person, and other marks of our favor. - Verbatim - an egXML in a list: - - - <div xml:id="test99" rend="whatever"> -  <head>Choice, sic, corr, reg, orig</head> -  <p>v<ex>oro</ex> þav sam<ex>m</ex>ędd syskin in -    hei<ex>lagr</ex>i <lb/> ol<ex>afr</ex> k<ex>onvng</ex>r -  <ex>ok</ex> fyrnefnd -  <choice> -    <sic>gvn<ex>n</ex>hillde</sic> -    <corr>gvn<ex>n</ex>hilldr</corr> -   </choice>.</p> - </div> - - - - - - diff --git a/Test/expected-results/mdtest1.md.xml b/Test/expected-results/mdtest1.md.xml deleted file mode 100644 index 34a759a03..000000000 --- a/Test/expected-results/mdtest1.md.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - </titleStmt> - <publicationStmt> - <p>from markdown</p> - </publicationStmt> - <sourceDesc> - <p>new born</p> - </sourceDesc> - </fileDesc> - </teiHeader> - <text> - <body> - <p>Paragraphs are separated by a blank line.</p> - <p>2nd paragraph. <hi rend="italic">Italic</hi>, <hi rend="bold">bold</hi>, <code>monospace</code>, <del>deleted</del>. Itemized lists</p> - <p>look like:</p> - <list type="unordered"> - <item>this one</item> - <item>that one</item> - <item>the other one</item> - </list> - <p>3rd paragraph. <hi rend="italic">Italic</hi>, <hi rend="bold">bold</hi>, <code>monospace</code>. Itemized lists</p> - <p>Note that --- not considering the asterisk --- the actual text</p> - <p>content starts at 4-columns in.</p> - <q> - <p> Block quotes are</p> - <p> written like so.</p> - <p> They can span multiple paragraphs,</p> - <p> if you like.</p> - </q> - <eg> - <l>Block of code indented</l> - <l>written like so.</l> - <l>They can span multiple paragraphs,</l> - <l>End of indented code</l> - </eg> - <eg> - <p>Blocks of FENCED code</p> - <p>written like so.</p> - <p>End of of fenced code</p> - </eg> - <p>http://github.org</p> - <div> - <head>An h2 header</head> - </div> - <div> - <head>Another h2 header</head> - <div> - <head>Another h3 header</head> - <p>Note again how the actual text starts at 4 columns in (4 characters</p> - <p>from the left side). Here's a code sample:</p> - <eg> - <l># Let me re-iterate ...</l> - <l>for i in 1 .. 10 { do-something(i) }</l> - </eg> - <p>As you probably guessed, indented 4 spaces. By the way, instead of</p> - <p>Indenting the block, you can use delimited blocks see link <ref target="www.github.com">Visit GitHub!</ref> , if you like.</p> - <p>Done.</p> - </div> - </div> - </body> - </text> -</TEI> diff --git a/Test/expected-results/mdtest1.tei b/Test/expected-results/mdtest1.tei deleted file mode 100644 index 34a759a03..000000000 --- a/Test/expected-results/mdtest1.tei +++ /dev/null @@ -1,66 +0,0 @@ -<TEI xmlns="http://www.tei-c.org/ns/1.0"> - <teiHeader> - <fileDesc> - <titleStmt> - <title/> - </titleStmt> - <publicationStmt> - <p>from markdown</p> - </publicationStmt> - <sourceDesc> - <p>new born</p> - </sourceDesc> - </fileDesc> - </teiHeader> - <text> - <body> - <p>Paragraphs are separated by a blank line.</p> - <p>2nd paragraph. <hi rend="italic">Italic</hi>, <hi rend="bold">bold</hi>, <code>monospace</code>, <del>deleted</del>. Itemized lists</p> - <p>look like:</p> - <list type="unordered"> - <item>this one</item> - <item>that one</item> - <item>the other one</item> - </list> - <p>3rd paragraph. <hi rend="italic">Italic</hi>, <hi rend="bold">bold</hi>, <code>monospace</code>. Itemized lists</p> - <p>Note that --- not considering the asterisk --- the actual text</p> - <p>content starts at 4-columns in.</p> - <q> - <p> Block quotes are</p> - <p> written like so.</p> - <p> They can span multiple paragraphs,</p> - <p> if you like.</p> - </q> - <eg> - <l>Block of code indented</l> - <l>written like so.</l> - <l>They can span multiple paragraphs,</l> - <l>End of indented code</l> - </eg> - <eg> - <p>Blocks of FENCED code</p> - <p>written like so.</p> - <p>End of of fenced code</p> - </eg> - <p>http://github.org</p> - <div> - <head>An h2 header</head> - </div> - <div> - <head>Another h2 header</head> - <div> - <head>Another h3 header</head> - <p>Note again how the actual text starts at 4 columns in (4 characters</p> - <p>from the left side). Here's a code sample:</p> - <eg> - <l># Let me re-iterate ...</l> - <l>for i in 1 .. 10 { do-something(i) }</l> - </eg> - <p>As you probably guessed, indented 4 spaces. By the way, instead of</p> - <p>Indenting the block, you can use delimited blocks see link <ref target="www.github.com">Visit GitHub!</ref> , if you like.</p> - <p>Done.</p> - </div> - </div> - </body> - </text> -</TEI> diff --git a/Test/expected-results/test.isosch b/Test/expected-results/test.isosch index 74988683c..51e2bec23 100644 --- a/Test/expected-results/test.isosch +++ b/Test/expected-results/test.isosch @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <schema xmlns="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2"> <title>ISO Schematron rules - + diff --git a/Test/expected-results/test.odd.html b/Test/expected-results/test.odd.html index 81cbcdb17..3e03a66b7 100644 --- a/Test/expected-results/test.odd.html +++ b/Test/expected-results/test.odd.html @@ -693,7 +693,7 @@

listForest: provides for lists of forests. [19.3. Another Tree Notation] - listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] listTranspose: supplies a list of transpositions, each of which is indicated at some point in a document typically by means of metamarks. [11.3.4.5. Transpositions] @@ -1098,7 +1098,7 @@

postscript: contains a postscript, e.g. to a letter. [4.2. Elements Common to All Divisions] - prefixDef: (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + prefixDef: (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] principal: (principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. The Title Statement] diff --git a/Test/expected-results/test.xml.odt.listing b/Test/expected-results/test.xml.odt.listing index c564d96a0..2322da737 100644 --- a/Test/expected-results/test.xml.odt.listing +++ b/Test/expected-results/test.xml.odt.listing @@ -1,25 +1,31 @@ - testing: Configurations2/ OK - testing: Configurations2/accelerator/ OK +Archive: actual-results/test.xml.odt +No errors detected in compressed data of actual-results/test.xml.odt. testing: Configurations2/accelerator/current.xml OK + testing: Configurations2/accelerator/ OK testing: Configurations2/floater/ OK - testing: Configurations2/images/ OK testing: Configurations2/images/Bitmaps/ OK + testing: Configurations2/images/ OK testing: Configurations2/menubar/ OK + testing: Configurations2/ OK testing: Configurations2/popupmenu/ OK testing: Configurations2/progressbar/ OK testing: Configurations2/statusbar/ OK testing: Configurations2/toolbar/ OK testing: Configurations2/toolpanel/ OK - testing: META-INF/ OK + testing: content.xml OK + testing: manifest.rdf OK testing: META-INF/manifest.xml OK + testing: META-INF/ OK + testing: meta.xml OK + testing: mimetype OK testing: Pictures/ OK testing: Pictures/pageimage1.jpg OK - testing: Pictures/resource1.jpg OK testing: Pictures/resource10.jpg OK testing: Pictures/resource11.jpg OK testing: Pictures/resource12.jpg OK testing: Pictures/resource13.jpg OK testing: Pictures/resource14.jpg OK + testing: Pictures/resource1.jpg OK testing: Pictures/resource2.jpg OK testing: Pictures/resource3.jpg OK testing: Pictures/resource4.jpg OK @@ -28,13 +34,7 @@ testing: Pictures/resource7.jpg OK testing: Pictures/resource8.jpg OK testing: Pictures/resource9.jpg OK - testing: Thumbnails/ OK - testing: Thumbnails/thumbnail.png OK - testing: content.xml OK - testing: manifest.rdf OK - testing: meta.xml OK - testing: mimetype OK testing: settings.xml OK testing: styles.xml OK -Archive: test.xml.odt -No errors detected in compressed data of test.xml.odt. + testing: Thumbnails/ OK + testing: Thumbnails/thumbnail.png OK diff --git a/Test/expected-results/content.xml.odt.listing b/Test/expected-results/test.xml.odt_content.xml similarity index 100% rename from Test/expected-results/content.xml.odt.listing rename to Test/expected-results/test.xml.odt_content.xml diff --git a/Test/expected-results/test10.xml.odt.listing b/Test/expected-results/test10.xml.odt.listing deleted file mode 100644 index 522e04e44..000000000 --- a/Test/expected-results/test10.xml.odt.listing +++ /dev/null @@ -1,28 +0,0 @@ -Archive: test10.xml.odt - testing: Configurations2/ OK - testing: Configurations2/accelerator/ OK - testing: Configurations2/floater/ OK - testing: Configurations2/images/ OK - testing: Configurations2/images/Bitmaps/ OK - testing: Configurations2/menubar/ OK - testing: Configurations2/popupmenu/ OK - testing: Configurations2/progressbar/ OK - testing: Configurations2/statusbar/ OK - testing: Configurations2/toolbar/ OK - testing: Configurations2/toolpanel/ OK - testing: META-INF/ OK - testing: Pictures/ OK - testing: Thumbnails/ OK - testing: Configurations2/accelerator/current.xml OK - testing: META-INF/manifest.xml OK - testing: Pictures/resource1.jpg OK - testing: Pictures/resource2.jpg OK - testing: Pictures/resource3.jpg OK - testing: Thumbnails/thumbnail.png OK - testing: content.xml OK - testing: manifest.rdf OK - testing: meta.xml OK - testing: mimetype OK - testing: settings.xml OK - testing: styles.xml OK -No errors detected in compressed data of test10.xml.odt. diff --git a/Test/expected-results/test15.odd.html b/Test/expected-results/test15.odd.html index f3ca83d7f..8ae9d433d 100644 --- a/Test/expected-results/test15.odd.html +++ b/Test/expected-results/test15.odd.html @@ -564,7 +564,7 @@

langUsage licence normalization - prefixDef + prefixDef projectDesc publicationStmt punctuation @@ -1690,7 +1690,7 @@

listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] - listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] macro.limitedContent: (contenido del párrafo) define el contenido de elementos de prosa que no se usan para la transcripción de materiales existentes. [1.3. The TEI Class System] @@ -2029,7 +2029,7 @@

postscript: contiene una posdata, p.ej. en una carta. [4.2. Elements Common to All Divisions] - prefixDef: (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + prefixDef: (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] principal: (investigador principal) proporciona el nombre del investigador principal de la creación de un texto electrónico. [2.2.1. The Title Statement] diff --git a/Test/expected-results/test15.odd.rnc b/Test/expected-results/test15.odd.rnc index 1a59e99d8..c0d5bd53d 100644 --- a/Test/expected-results/test15.odd.rnc +++ b/Test/expected-results/test15.odd.rnc @@ -1903,12 +1903,13 @@ cit = ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element cit { - (model.qLike + (model.biblLike | model.egLike - | model.biblLike - | model.ptrLike + | model.entryPart | model.global - | model.entryPart)+, + | model.graphicLike + | model.ptrLike + | model.qLike)+, att.global.attributes, att.typed.attributes, empty @@ -3138,7 +3139,7 @@ fileDesc = editionStmt?, extent?, publicationStmt, - seriesStmt?, + seriesStmt*, notesStmt?), sourceDesc+), att.global.attributes, @@ -3307,6 +3308,7 @@ seriesStmt = (model.pLike+ | (title+, (editor | respStmt)*, (idno | biblScope)*)), att.global.attributes, + att.declarable.attributes, empty } notesStmt = @@ -3333,7 +3335,7 @@ biblFull = editionStmt?, extent?, publicationStmt, - seriesStmt?, + seriesStmt*, notesStmt?), sourceDesc*) | (fileDesc, profileDesc)), @@ -3682,7 +3684,7 @@ cRefPattern = } prefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element prefixDef { model.pLike*, att.global.attributes, @@ -3696,7 +3698,7 @@ prefixDef = } listPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element listPrefixDef { (desc*, (prefixDef | listPrefixDef)+), att.global.attributes, @@ -4804,7 +4806,7 @@ when = | xsd:token { pattern = "[^\p{C}\p{Z}]+" } }?, - ## specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + ## specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval attribute interval { xsd:float | ( diff --git a/Test/expected-results/test21.odd.rnc b/Test/expected-results/test21.odd.rnc index a28e13527..6d31b7975 100644 --- a/Test/expected-results/test21.odd.rnc +++ b/Test/expected-results/test21.odd.rnc @@ -2334,12 +2334,13 @@ cit = ## (citation) citation provenant d'un autre document comprenant la référence bibliographique de sa source. Dans un dictionnaire il peut contenir un exemple avec au moins une occurrence du mot employé dans l’acception qui est décrite, ou une traduction du mot-clé, ou un exemple. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element cit { - (model.qLike + (model.biblLike | model.egLike - | model.biblLike - | model.ptrLike + | model.entryPart | model.global - | model.entryPart)+, + | model.graphicLike + | model.ptrLike + | model.qLike)+, att.global.attributes, att.typed.attributes, empty @@ -4800,7 +4801,7 @@ fileDesc = editionStmt?, extent?, publicationStmt, - seriesStmt?, + seriesStmt*, notesStmt?), sourceDesc+), att.global.attributes, @@ -4969,6 +4970,7 @@ seriesStmt = (model.pLike+ | (title+, (editor | respStmt)*, (idno | biblScope)*)), att.global.attributes, + att.declarable.attributes, empty } notesStmt = @@ -4995,7 +4997,7 @@ biblFull = editionStmt?, extent?, publicationStmt, - seriesStmt?, + seriesStmt*, notesStmt?), sourceDesc*) | (fileDesc, profileDesc)), @@ -5339,7 +5341,7 @@ cRefPattern = } prefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element prefixDef { model.pLike*, att.global.attributes, @@ -5353,7 +5355,7 @@ prefixDef = } listPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element listPrefixDef { (desc*, (prefixDef | listPrefixDef)+), att.global.attributes, diff --git a/Test/expected-results/test26.fo b/Test/expected-results/test26.fo deleted file mode 100644 index 68bdcd67d..000000000 --- a/Test/expected-results/test26.fo +++ /dev/null @@ -1 +0,0 @@ -Identificationwhere is it, repository name, identifier \ No newline at end of file diff --git a/Test/expected-results/test26.html b/Test/expected-results/test26.html deleted file mode 100644 index df2fb4168..000000000 --- a/Test/expected-results/test26.html +++ /dev/null @@ -1,4 +0,0 @@ -Title

A TEI Project

Title

Identification

where is it, repository name, identifier
Date: 1970-01-01
\ No newline at end of file diff --git a/Test/expected-results/test26.tex b/Test/expected-results/test26.tex deleted file mode 100644 index 088220ac6..000000000 --- a/Test/expected-results/test26.tex +++ /dev/null @@ -1,322 +0,0 @@ -\documentclass[11pt,twoside]{article}\makeatletter - -\IfFileExists{xcolor.sty}% - {\RequirePackage{xcolor}}% - {\RequirePackage{color}} -\usepackage{colortbl} - -\IfFileExists{utf8x.def}% - {\usepackage[utf8x]{inputenc} - \PrerenderUnicode{–} - }% - {\usepackage[utf8]{inputenc}} - - -\usepackage[english]{babel} - -\usepackage[T1]{fontenc} -\usepackage{float} -\usepackage[]{ucs} -\uc@dclc{8421}{default}{\textbackslash } -\uc@dclc{10100}{default}{\{} -\uc@dclc{10101}{default}{\}} -\uc@dclc{8491}{default}{\AA{}} -\uc@dclc{8239}{default}{\,} -\uc@dclc{20154}{default}{ } -\uc@dclc{10148}{default}{>} -\def\textschwa{\rotatebox{-90}{e}} -\def\textJapanese{} -\def\textChinese{} - -\DeclareTextSymbol{\textpi}{OML}{25} -\usepackage{relsize} -\def\textsubscript#1{% - \@textsubscript{\selectfont#1}} -\def\@textsubscript#1{% - {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} -\def\textquoted#1{‘#1’} -\def\textsmall#1{{\small #1}} -\def\textlarge#1{{\large #1}} -\def\textoverbar#1{\ensuremath{\overline{#1}}} -\def\textgothic#1{{\fontspec{Lucida Blackletter}#1}} -\def\textcal#1{{\fontspec{Lucida Calligraphy}#1}} -\RequirePackage{array} -\def\@testpach{\@chclass - \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else - \ifnum \@lastchclass=7 5 \else - \ifnum \@lastchclass=8 \tw@ \else - \ifnum \@lastchclass=9 \thr@@ - \else \z@ - \ifnum \@lastchclass = 10 \else - \edef\@nextchar{\expandafter\string\@nextchar}% - \@chnum - \if \@nextchar c\z@ \else - \if \@nextchar l\@ne \else - \if \@nextchar r\tw@ \else - \z@ \@chclass - \if\@nextchar |\@ne \else - \if \@nextchar !6 \else - \if \@nextchar @7 \else - \if \@nextchar (8 \else - \if \@nextchar )9 \else - 10 - \@chnum - \if \@nextchar m\thr@@\else - \if \@nextchar p4 \else - \if \@nextchar b5 \else - \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi - \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} - -\gdef\arraybackslash{\let\\=\@arraycr} -\def\textxi{\ensuremath{\xi}} -\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}} - -\newcolumntype{L}[1]{){\raggedright\arraybackslash}p{#1}} -\newcolumntype{C}[1]{){\centering\arraybackslash}p{#1}} -\newcolumntype{R}[1]{){\raggedleft\arraybackslash}p{#1}} -\newcolumntype{P}[1]{){\arraybackslash}p{#1}} -\newcolumntype{B}[1]{){\arraybackslash}b{#1}} -\newcolumntype{M}[1]{){\arraybackslash}m{#1}} -\definecolor{label}{gray}{0.75} -\def\unusedattribute#1{\sout{\textcolor{label}{#1}}} -\DeclareRobustCommand*{\xref}{\hyper@normalise\xref@} -\def\xref@#1#2{\hyper@linkurl{#2}{#1}} -\def\Div[#1]#2{\section*{#2}} -\begingroup -\catcode`\_=\active -\gdef_#1{\ensuremath{\sb{\mathrm{#1}}}} -\endgroup -\mathcode`\_=\string"8000 -\catcode`\_=12\relax - -\usepackage[a4paper,twoside,lmargin=1in,rmargin=1in,tmargin=1in,bmargin=1in]{geometry} -\usepackage{framed} - -\definecolor{shadecolor}{gray}{0.95} -\usepackage{longtable} -\usepackage[normalem]{ulem} -\usepackage{fancyvrb} -\usepackage{fancyhdr} -\usepackage{marginnote} -\renewcommand*{\marginfont}{\itshape\footnotesize} -\setlength\marginparwidth{.75in} -\usepackage{graphicx} - -\def\Gin@extensions{.pdf,.png,.jpg,.mps,.tif} - -\IfFileExists{tipa.sty}{\usepackage{tipa}}{} -\usepackage{times} - - \pagestyle{fancy} - -\usepackage[pdftitle={Title}, - pdfauthor={}]{hyperref} -\hyperbaseurl{} - - \paperwidth210mm - \paperheight297mm - -\def\@pnumwidth{1.55em} -\def\@tocrmarg {2.55em} -\def\@dotsep{4.5} -\setcounter{tocdepth}{3} -\clubpenalty=8000 -\emergencystretch 3em -\hbadness=4000 -\hyphenpenalty=400 -\pretolerance=750 -\tolerance=2000 -\vbadness=4000 -\widowpenalty=10000 - -\renewcommand\section{\@startsection {section}{1}{\z@}% - {-1.75ex \@plus -0.5ex \@minus -.2ex}% - {0.5ex \@plus .2ex}% - {\reset@font\Large\bfseries\sffamily}} -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {-1.75ex\@plus -0.5ex \@minus- .2ex}% - {0.5ex \@plus .2ex}% - {\reset@font\Large\sffamily}} -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {-1.5ex\@plus -0.35ex \@minus -.2ex}% - {0.5ex \@plus .2ex}% - {\reset@font\large\sffamily}} -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {-1ex \@plus-0.35ex \@minus -0.2ex}% - {0.5ex \@plus .2ex}% - {\reset@font\normalsize\sffamily}} -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% - {1.5ex \@plus1ex \@minus .2ex}% - {-1em}% - {\reset@font\normalsize\bfseries}} - - -\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt} - \@tempdima 1.5em \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \bfseries \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par - \endgroup} -\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}} -\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}} -\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}} -\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}} -\@ifundefined{c@section}{\newcounter{section}}{} -\@ifundefined{c@chapter}{\newcounter{chapter}}{} -\newif\if@mainmatter -\@mainmattertrue -\def\chaptername{Chapter} -\def\frontmatter{% - \pagenumbering{roman} - \def\thechapter{\@roman\c@chapter} - \def\theHchapter{\alph{chapter}} - \def\@chapapp{}% -} -\def\mainmatter{% - \cleardoublepage - \def\thechapter{\@arabic\c@chapter} - \setcounter{chapter}{0} - \setcounter{section}{0} - \pagenumbering{arabic} - \setcounter{secnumdepth}{6} - \def\@chapapp{\chaptername}% - \def\theHchapter{\arabic{chapter}} -} -\def\backmatter{% - \cleardoublepage - \setcounter{chapter}{0} - \setcounter{section}{0} - \setcounter{secnumdepth}{0} - \def\@chapapp{\appendixname}% - \def\thechapter{\@Alph\c@chapter} - \def\theHchapter{\Alph{chapter}} - \appendix -} -\newenvironment{bibitemlist}[1]{% - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv}% - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}% - }% - \sloppy - \clubpenalty4000 - \@clubpenalty \clubpenalty - \widowpenalty4000% - \sfcode`\.\@m}% - {\def\@noitemerr - {\@latex@warning{Empty `bibitemlist' environment}}% - \endlist} - -\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}} -\parskip0pt -\parindent1em -\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}} -\newenvironment{reflist}{% - \begin{raggedright}\begin{list}{} - {% - \setlength{\topsep}{0pt}% - \setlength{\rightmargin}{0.25in}% - \setlength{\itemsep}{0pt}% - \setlength{\itemindent}{0pt}% - \setlength{\parskip}{0pt}% - \setlength{\parsep}{2pt}% - \def\makelabel##1{\itshape ##1}}% - } - {\end{list}\end{raggedright}} -\newenvironment{sansreflist}{% - \begin{raggedright}\begin{list}{} - {% - \setlength{\topsep}{0pt}% - \setlength{\rightmargin}{0.25in}% - \setlength{\itemindent}{0pt}% - \setlength{\parskip}{0pt}% - \setlength{\itemsep}{0pt}% - \setlength{\parsep}{2pt}% - \def\makelabel##1{\upshape\sffamily ##1}}% - } - {\end{list}\end{raggedright}} -\newenvironment{specHead}[2]% - {\vspace{20pt}\hrule\vspace{10pt}% - \hypertarget{#1}{}% - \markright{#2}% - - \pdfbookmark[2]{#2}{#1}% - \hspace{-0.75in}{\bfseries\fontsize{16pt}{18pt}\selectfont#2}% - }{} - -\@ifundefined{chapter}{% - \def\DivI{\section} - \def\DivII{\subsection} - \def\DivIII{\subsubsection} - \def\DivIV{\paragraph} - \def\DivV{\subparagraph} - \def\DivIStar[#1]#2{\section*{#2}} - \def\DivIIStar[#1]#2{\subsection*{#2}} - \def\DivIIIStar[#1]#2{\subsubsection*{#2}} - \def\DivIVStar[#1]#2{\paragraph*{#2}} - \def\DivVStar[#1]#2{\subparagraph*{#2}} -}{% - \def\DivI{\chapter} - \def\DivII{\section} - \def\DivIII{\subsection} - \def\DivIV{\subsubsection} - \def\DivV{\paragraph} - \def\DivIStar[#1]#2{\chapter*{#2}} - \def\DivIIStar[#1]#2{\section*{#2}} - \def\DivIIIStar[#1]#2{\subsection*{#2}} - \def\DivIVStar[#1]#2{\subsubsection*{#2}} - \def\DivVStar[#1]#2{\paragraph*{#2}} -} -\def\TheFullDate{1970-01-01} -\def\TheID{\makeatother } -\def\TheDate{1970-01-01} -\title{Title} -\author{}\let\tabcellsep& - \catcode`\&=12\relax \makeatletter -\makeatletter -\thispagestyle{empty} -\markright{\@title}\markboth{\@title}{\@author} -\renewcommand\small{\@setfontsize\small{9pt}{11pt}\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@ -\belowdisplayskip \abovedisplayskip -\abovedisplayshortskip \z@ plus2\p@ -\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@ -\def\@listi{\leftmargin\leftmargini - \topsep 2\p@ plus1\p@ minus1\p@ - \parsep 2\p@ plus\p@ minus\p@ - \itemsep 1pt} -} -\makeatother -\fvset{frame=single,numberblanklines=false,xleftmargin=5mm,xrightmargin=5mm} -\fancyhf{} -\setlength{\headheight}{14pt} -\fancyhead[LE]{\bfseries\leftmark} -\fancyhead[RO]{\bfseries\rightmark} -\fancyfoot[RO]{} -\fancyfoot[CO]{\thepage} -\fancyfoot[LO]{\TheID} -\fancyfoot[LE]{} -\fancyfoot[CE]{\thepage} -\fancyfoot[RE]{\TheID} -\hypersetup{citebordercolor=0.75 0.75 0.75,linkbordercolor=0.75 0.75 0.75,urlbordercolor=0.75 0.75 0.75,bookmarksnumbered=true} -\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}\makeatother -\begin{document} - -\makeatletter -\noindent\parbox[b]{.75\textwidth}{\fontsize{14pt}{16pt}\bfseries\raggedright\sffamily\selectfont \@title} -\vskip20pt -\par\noindent{\fontsize{11pt}{13pt}\sffamily\itshape\raggedright\selectfont\@author\hfill\TheDate} -\vspace{18pt} -\makeatother - -\catcode`\$=12\relax -\catcode`\^=12\relax -\catcode`\#=12\relax -\catcode`\%=12\relax - -\section{Identification} -where is it, repository name, identifier -\end{document} diff --git a/Test/expected-results/test30.dtd b/Test/expected-results/test30.dtd index cfc3e469a..c72b442e5 100644 --- a/Test/expected-results/test30.dtd +++ b/Test/expected-results/test30.dtd @@ -1352,7 +1352,7 @@ status (free|unknown|restricted) #IMPLIED > %Tatt.sortable.attributes; %Tatt.docStatus.attributes; > - + - + %Tatt.typed.attributes; %Tatt.written.attributes; > - + @@ -2239,7 +2239,7 @@ ordered %teidata.truthValue; "true" > %Tatt.typed.attributes; %Tatt.declarable.attributes; %Tatt.sortable.attributes; > - + %Tatt.typed.attributes; %Tatt.editLike.attributes; %Tatt.sortable.attributes; -role CDATA #IMPLIED > +role NMTOKENS #IMPLIED > @@ -2608,7 +2608,7 @@ bill CDATA #IMPLIED > - + + %Tatt.global.attributes; + %Tatt.declarable.attributes; > diff --git a/Test/expected-results/test30.rnc b/Test/expected-results/test30.rnc index c36f47632..3787ce30f 100644 --- a/Test/expected-results/test30.rnc +++ b/Test/expected-results/test30.rnc @@ -2274,12 +2274,13 @@ Tcit = ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element cit { - (Tmodel.qLike + (Tmodel.biblLike | Tmodel.egLike - | Tmodel.biblLike - | Tmodel.ptrLike + | Tmodel.entryPart | Tmodel.global - | Tmodel.entryPart)+, + | Tmodel.graphicLike + | Tmodel.ptrLike + | Tmodel.qLike)+, Tatt.global.attributes, Tatt.typed.attributes, empty @@ -3548,7 +3549,7 @@ TfileDesc = TeditionStmt?, Textent?, TpublicationStmt, - TseriesStmt?, + TseriesStmt*, TnotesStmt?), TsourceDesc+), Tatt.global.attributes, @@ -3717,6 +3718,7 @@ TseriesStmt = (Tmodel.pLike+ | (Ttitle+, (Teditor | TrespStmt)*, (Tidno | TbiblScope)*)), Tatt.global.attributes, + Tatt.declarable.attributes, empty } TnotesStmt = @@ -3743,7 +3745,7 @@ TbiblFull = TeditionStmt?, Textent?, TpublicationStmt, - TseriesStmt?, + TseriesStmt*, TnotesStmt?), TsourceDesc*) | (TfileDesc, TprofileDesc)), @@ -4093,7 +4095,7 @@ TcRefPattern = } TprefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element prefixDef { Tmodel.pLike*, Tatt.global.attributes, @@ -4107,7 +4109,7 @@ TprefixDef = } TlistPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element listPrefixDef { (Tdesc*, (TprefixDef | TlistPrefixDef)+), Tatt.global.attributes, @@ -6666,7 +6668,7 @@ Twhen = | xsd:token { pattern = "[^\p{C}\p{Z}]+" } }?, - ## specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + ## specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval attribute interval { xsd:float | ( diff --git a/Test/expected-results/test33.rnc b/Test/expected-results/test33.rnc index ff4aeafec..c06cee480 100644 --- a/Test/expected-results/test33.rnc +++ b/Test/expected-results/test33.rnc @@ -2025,12 +2025,13 @@ tei_cit = ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element tei:cit { - (tei_model.qLike + (tei_model.biblLike | tei_model.egLike - | tei_model.biblLike - | tei_model.ptrLike + | tei_model.entryPart | tei_model.global - | tei_model.entryPart)+, + | tei_model.graphicLike + | tei_model.ptrLike + | tei_model.qLike)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -3319,7 +3320,7 @@ tei_fileDesc = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc+), tei_att.global.attributes, @@ -3494,6 +3495,7 @@ tei_seriesStmt = (tei_editor | tei_respStmt)*, (tei_idno | tei_biblScope)*)), tei_att.global.attributes, + tei_att.declarable.attributes, empty } tei_notesStmt = @@ -3524,7 +3526,7 @@ tei_biblFull = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc*) | (tei_fileDesc, tei_profileDesc)), @@ -3873,7 +3875,7 @@ tei_cRefPattern = } tei_prefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element tei:prefixDef { tei_model.pLike*, tei_att.global.attributes, @@ -3887,7 +3889,7 @@ tei_prefixDef = } tei_listPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element tei:listPrefixDef { (tei_desc*, (tei_prefixDef | tei_listPrefixDef)+), tei_att.global.attributes, @@ -5033,7 +5035,7 @@ tei_when = | xsd:token { pattern = "[^\p{C}\p{Z}]+" } }?, - ## specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + ## specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval attribute interval { xsd:float | ( diff --git a/Test/expected-results/test34.combined.json b/Test/expected-results/test34.combined.json index 7393e5f85..9eeef640f 100644 --- a/Test/expected-results/test34.combined.json +++ b/Test/expected-results/test34.combined.json @@ -1926,22 +1926,28 @@ "content" : [ { "type" : "classRef", - "key" : "model.qLike" }, + "key" : "model.biblLike" }, { "type" : "classRef", "key" : "model.egLike" }, { "type" : "classRef", - "key" : "model.biblLike" }, + "key" : "model.entryPart" }, { "type" : "classRef", - "key" : "model.ptrLike" }, + "key" : "model.global" }, { "type" : "classRef", - "key" : "model.global" }, + "key" : "model.graphicLike" }, { "type" : "classRef", - "key" : "model.entryPart" } ] } ] }, + "key" : "model.ptrLike" }, + + { "type" : "classRef", + "key" : "model.qLike" }, + + { "type" : "elementRef", + "key" : "pc" } ] } ] }, { "ident" : "cit", "ns" : "http:\/\/foo.foo\/foo", @@ -6443,8 +6449,8 @@ "type" : "elementSpec", "module" : "header", "desc" : - [ "contains a list of definitions of prefixing schemes used in data.pointer<\/ident> values, showing how abbreviated URIs using each scheme may be expanded into full URIs.<\/desc>" ], - "shortDesc" : "(list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs.", + [ "contains a list of definitions of prefixing schemes used in teidata.pointer<\/ident> values, showing how abbreviated URIs using each scheme may be expanded into full URIs.<\/desc>" ], + "shortDesc" : "(list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs.", "gloss" : [ "list of prefix definitions<\/gloss>" ], "altIdent" : @@ -7491,8 +7497,8 @@ "type" : "elementSpec", "module" : "header", "desc" : - [ "defines a prefixing scheme used in data.pointer<\/ident> values,\n showing how abbreviated URIs using the scheme may be expanded into full URIs.<\/desc>" ], - "shortDesc" : "(prefix definition) defines a prefixing scheme used in data.pointer values,\n showing how abbreviated URIs using the scheme may be expanded into full URIs.", + [ "defines a prefixing scheme used in teidata.pointer<\/ident> values,\n showing how abbreviated URIs using the scheme may be expanded into full URIs.<\/desc>" ], + "shortDesc" : "(prefix definition) defines a prefixing scheme used in teidata.pointer values,\n showing how abbreviated URIs using the scheme may be expanded into full URIs.", "gloss" : [ "prefix definition<\/gloss>" ], "altIdent" : @@ -8893,7 +8899,8 @@ { "model" : [ ], "atts" : - [ "att.global" ], + [ "att.global", + "att.declarable" ], "unknown" : [ ] }, "attributes" : @@ -10872,8 +10879,8 @@ "ns" : "", "usage" : "opt", "desc" : - [ "specifies a time\n interval either as a number or as one of the keywords defined\n by the datatype data.interval<\/desc>" ], - "shortDesc" : "specifies a time\n interval either as a number or as one of the keywords defined\n by the datatype data.interval", + [ "specifies a time\n interval either as a number or as one of the keywords defined\n by the datatype teidata.interval<\/ident><\/desc>" ], + "shortDesc" : "specifies a time\n interval either as a number or as one of the keywords defined\n by the datatype teidata.interval", "gloss" : [ ], "altIdent" : diff --git a/Test/expected-results/test34.odd.html b/Test/expected-results/test34.odd.html index 693d6c88f..220c7a9cd 100644 --- a/Test/expected-results/test34.odd.html +++ b/Test/expected-results/test34.odd.html @@ -1400,7 +1400,7 @@

listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] - listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] macro.limitedContent: (paragraph content) defines the content of prose elements that are not used for transcription of extant materials. [1.3. The TEI Class System] @@ -1739,7 +1739,7 @@

postscript: contains a postscript, e.g. to a letter. [4.2. Elements Common to All Divisions] - prefixDef: (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + prefixDef: (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] principal: (principal researcher) supplies the name of the principal researcher responsible for the creation of an electronic text. [2.2.1. The Title Statement] diff --git a/Test/expected-results/test34.rnc b/Test/expected-results/test34.rnc index 0059a487b..aa3553e9f 100644 --- a/Test/expected-results/test34.rnc +++ b/Test/expected-results/test34.rnc @@ -2030,12 +2030,13 @@ tei_cit = ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element cit { - (tei_model.qLike + (tei_model.biblLike | tei_model.egLike - | tei_model.biblLike - | tei_model.ptrLike + | tei_model.entryPart | tei_model.global - | tei_model.entryPart)+, + | tei_model.graphicLike + | tei_model.ptrLike + | tei_model.qLike)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -3324,7 +3325,7 @@ tei_fileDesc = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc+), tei_att.global.attributes, @@ -3499,6 +3500,7 @@ tei_seriesStmt = (tei_editor | tei_respStmt)*, (tei_idno | tei_biblScope)*)), tei_att.global.attributes, + tei_att.declarable.attributes, empty } tei_notesStmt = @@ -3529,7 +3531,7 @@ tei_biblFull = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc*) | (tei_fileDesc, tei_profileDesc)), @@ -3878,7 +3880,7 @@ tei_cRefPattern = } tei_prefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element prefixDef { tei_model.pLike*, tei_att.global.attributes, @@ -3892,7 +3894,7 @@ tei_prefixDef = } tei_listPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element listPrefixDef { (tei_desc*, (tei_prefixDef | tei_listPrefixDef)+), tei_att.global.attributes, @@ -5036,7 +5038,7 @@ tei_when = | xsd:token { pattern = "[^\p{C}\p{Z}]+" } }?, - ## specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + ## specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval attribute interval { xsd:float | ( diff --git a/Test/expected-results/test35.rnc b/Test/expected-results/test35.rnc index 5f87f0d2a..487cbb770 100644 --- a/Test/expected-results/test35.rnc +++ b/Test/expected-results/test35.rnc @@ -2023,12 +2023,13 @@ tei_cit = ## (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] element tei:cit { - (tei_model.qLike + (tei_model.biblLike | tei_model.egLike - | tei_model.biblLike - | tei_model.ptrLike + | tei_model.entryPart | tei_model.global - | tei_model.entryPart)+, + | tei_model.graphicLike + | tei_model.ptrLike + | tei_model.qLike)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -3298,7 +3299,7 @@ tei_fileDesc = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc+), tei_att.global.attributes, @@ -3473,6 +3474,7 @@ tei_seriesStmt = (tei_editor | tei_respStmt)*, (tei_idno | tei_biblScope)*)), tei_att.global.attributes, + tei_att.declarable.attributes, empty } tei_notesStmt = @@ -3503,7 +3505,7 @@ tei_biblFull = tei_editionStmt?, tei_extent?, tei_publicationStmt, - tei_seriesStmt?, + tei_seriesStmt*, tei_notesStmt?), tei_sourceDesc*) | (tei_fileDesc, tei_profileDesc)), @@ -3852,7 +3854,7 @@ tei_cRefPattern = } tei_prefixDef = - ## (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element tei:prefixDef { tei_model.pLike*, tei_att.global.attributes, @@ -3866,7 +3868,7 @@ tei_prefixDef = } tei_listPrefixDef = - ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + ## (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] element tei:listPrefixDef { (tei_desc*, (tei_prefixDef | tei_listPrefixDef)+), tei_att.global.attributes, @@ -5012,7 +5014,7 @@ tei_when = | xsd:token { pattern = "[^\p{C}\p{Z}]+" } }?, - ## specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + ## specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval attribute interval { xsd:float | ( diff --git a/Test/expected-results/test8.epub.listing b/Test/expected-results/test8.epub.listing deleted file mode 100644 index dc36efd65..000000000 --- a/Test/expected-results/test8.epub.listing +++ /dev/null @@ -1,26 +0,0 @@ -Archive: test8.epub - testing: mimetype OK - testing: META-INF/ OK - testing: OPS/ OK - testing: OPS/media/ OK - testing: META-INF/container.xml OK - testing: OPS/content.opf OK - testing: OPS/index-body.1_div.1.html OK - testing: OPS/index-body.1_div.2.html OK - testing: OPS/index-body.1_div.3.html OK - testing: OPS/index.html OK - testing: OPS/media/resource1.jpg OK - testing: OPS/media/resource2.jpg OK - testing: OPS/media/resource3.jpg OK - testing: OPS/media/resource4.jpg OK - testing: OPS/media/resource5.jpg OK - testing: OPS/media/resource6.jpg OK - testing: OPS/media/resource7.jpg OK - testing: OPS/media/resource8.jpg OK - testing: OPS/page-template.xpgt OK - testing: OPS/print.css OK - testing: OPS/stylesheet.css OK - testing: OPS/titlepage.html OK - testing: OPS/titlepageback.html OK - testing: OPS/toc.ncx OK -No errors detected in compressed data of test8.epub. diff --git a/Test/expected-results/testdrama.compiled.xml b/Test/expected-results/testdrama.compiled.xml index bc9785e04..96f52d2b3 100644 --- a/Test/expected-results/testdrama.compiled.xml +++ b/Test/expected-results/testdrama.compiled.xml @@ -5456,7 +5456,7 @@ used for transcribing extant documents.

-

確信度は,high, medium, lowのうち の1つが選択される.より詳細に示したい場合には, data.probabilityを単独または追加と して使用することができる.

+

確信度は,high, medium, lowのうち の1つが選択される.より詳細に示したい場合には, teidata.probabilityを単独または追加と して使用することができる.

Le degré de certitude peut être exprimé par l'une des valeurs symboliques prédéfinies @@ -5751,20 +5751,20 @@ value. inappropriate; if the attribute concerned may have a value other than true or false, e.g. unknown, or inapplicable, it should have the extended version of - this datatype: data.xTruthValue.

+ this datatype: teidata.xTruthValue.

曖昧な値が許されない場合に使われるデータ型になる.属性値が真偽値で ない場合,例えば"unknown"や"inapplicable"の場合には,当該データ型 - の拡張版であるdata.xTruthValueを使うべきである. + の拡張版であるteidata.xTruthValueを使うべきである.

Ce type de données ne s'applique que dans les cas où l'incertitude est inappropriée ; c’est-à-dire si l'attribut concerné peut avoir une valeur autre que vrai ou faux, par ex. inconnu, ou inapplicable, il devrait alors y - avoir la version étendue de ce type de données : data.xTruthValue. + avoir la version étendue de ce type de données : teidata.xTruthValue.

@@ -5792,14 +5792,14 @@ value.

In cases where where uncertainty is inappropriate, use the - datatype data.TruthValue.

+ datatype teidata.TruthValue.

-

不明な場合がなければ,データ型data.TruthValueを使用する.

+

不明な場合がなければ,データ型teidata.TruthValueを使用する.

Dans le cas où l'incertitude n’est pas adaptée, employer plutot - le type de données data.TruthValue.

+ le type de données teidata.TruthValue.

defines the range of attribute values used to identify a particular combination of human @@ -7807,12 +7807,14 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... - - - - + + + + + + @@ -7896,6 +7898,20 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... + + + + Ka'an yu tsa'a Pedro. + + + I'm speaking on behalf of Pedro. + + + Estoy hablando de parte de Pedro. + + + + 3.3.3. Quotation 4.3.1. Grouped Texts @@ -10193,17 +10209,17 @@ TOURS une valeur numérique. ein numerischer Wert -

The standard form used is defined by the TEI datatype data.numeric.

+

The standard form used is defined by the TEI datatype teidata.numeric.

La forme normalisée utilisée est définie par le type de données TEI qui concerne les données numériques.

-

標準的な形式は,TEIデータ型data.numericで定義されている.

+

標準的な形式は,TEIデータ型teidata.numericで定義されている.

-

Die benutzte standardisierte Form wird im TEI-Datentyp data.numeric definiert.

+

Die benutzte standardisierte Form wird im TEI-Datentyp teidata.numeric definiert.

@@ -16639,7 +16655,7 @@ element in the TEI header. - + @@ -17823,6 +17839,7 @@ définissant les droits d'utilisation.
eventualmente la pubblicazione appartiene. + @@ -18077,7 +18094,7 @@ définissant les droits d'utilisation. - + @@ -19832,7 +19849,7 @@ the target element prefix definition - defines a prefixing scheme used in data.pointer values, + defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. @@ -19878,7 +19895,7 @@ the target element list of prefix definitions - contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. + contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. @@ -27466,7 +27483,7 @@ the date of the entire document, not for any subset or part of it.

specifies a time interval either as a number or as one of the keywords defined - by the datatype data.interval + by the datatype teidata.interval 시구간의 수치 부분을 명시한다. 指明時間區段中的數值部份 時間幅を数値で示す. diff --git a/Test/expected-results/testnotes/index.html b/Test/expected-results/testnotes/index.html index 3cc1dd704..0952c773d 100644 --- a/Test/expected-results/testnotes/index.html +++ b/Test/expected-results/testnotes/index.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes/one.html b/Test/expected-results/testnotes/one.html index 63a3baf11..4dc4d56ca 100644 --- a/Test/expected-results/testnotes/one.html +++ b/Test/expected-results/testnotes/one.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes/three.html b/Test/expected-results/testnotes/three.html index 182b6a5e4..b956e5f02 100644 --- a/Test/expected-results/testnotes/three.html +++ b/Test/expected-results/testnotes/three.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes/two.html b/Test/expected-results/testnotes/two.html index 205851d5f..a60854fab 100644 --- a/Test/expected-results/testnotes/two.html +++ b/Test/expected-results/testnotes/two.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes2/index.html b/Test/expected-results/testnotes2/index.html index 493159173..5b7ba7bc3 100644 --- a/Test/expected-results/testnotes2/index.html +++ b/Test/expected-results/testnotes2/index.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes2/one.html b/Test/expected-results/testnotes2/one.html index 74cd8d0cf..c6adb5292 100644 --- a/Test/expected-results/testnotes2/one.html +++ b/Test/expected-results/testnotes2/one.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes2/three.html b/Test/expected-results/testnotes2/three.html index 09f8b322f..5181b8384 100644 --- a/Test/expected-results/testnotes2/three.html +++ b/Test/expected-results/testnotes2/three.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes3/index.html b/Test/expected-results/testnotes3/index.html index eed8b663e..ff0a8c2d9 100644 --- a/Test/expected-results/testnotes3/index.html +++ b/Test/expected-results/testnotes3/index.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes3/one.html b/Test/expected-results/testnotes3/one.html index 21ee64f82..f11402fe0 100644 --- a/Test/expected-results/testnotes3/one.html +++ b/Test/expected-results/testnotes3/one.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes3/three.html b/Test/expected-results/testnotes3/three.html index 09f8b322f..5181b8384 100644 --- a/Test/expected-results/testnotes3/three.html +++ b/Test/expected-results/testnotes3/three.html @@ -10,7 +10,7 @@ - + diff --git a/Test/expected-results/testnotes3/two.html b/Test/expected-results/testnotes3/two.html index c9fd99b94..91a8670e3 100644 --- a/Test/expected-results/testnotes3/two.html +++ b/Test/expected-results/testnotes3/two.html @@ -10,7 +10,7 @@ - + diff --git a/Test/xml.xsd b/Test/xml.xsd index 75e3eabde..275cb51e1 100644 --- a/Test/xml.xsd +++ b/Test/xml.xsd @@ -1,6 +1,7 @@ - + (identifier) provides a unique identifier for the element bearing the attribute. diff --git a/source/p5subset.xml b/source/p5subset.xml index 224f16644..42cf4c3db 100644 --- a/source/p5subset.xml +++ b/source/p5subset.xml @@ -5,7 +5,7 @@ Version 4.1.0a. Last updated on - 10th June 2020, revision b1a43a4 + 10th August 2020, revision 3e5395903 TEI Consortium @@ -2732,57 +2732,6 @@ ressource informatique selon une taxinomie normalisée. - - indicates what kind of phenomenon is being noted in the passage. - 현 단락에 표기되고 있는 현상의 종류를 나타낸다. - 指出段落中所註解的現象類別。 - 当該部分で,どのような面が指摘されているのかを示す. - indique quel genre de phénomène est noté dans le - passage. - indica que tipo de fenómeno está siendo anotado en el pasaje. - indica quale sia il fenomeno osservato nella porzione di testo in questione - - - - identifies an image in the passage. - 단락에서 이미지를 식별한다. - 標明段落中的影像。 - identifica una imagen en el pasaje. - 当該部分の画像を指示する. - identifie une image dans le passage. - identifica un'immagine all'interno della porzione di testo - - - identifies a character associated with the passage. - 단락과 연관된 문자를 식별한다. - 標明與段落相關聯的人物。 - identifica un carácter asociado al pasaje. - 当該部分に関連する文字を指示する. - identifie un personnage associé au -passage. - identifica un personaggio associato al brano in questione - - - identifies a theme in the passage. - 단락에서 주제를 식별한다. - 標明段落中的主題。 - identifica un tema en el pasaje. - 当該部分にあるテーマを指示する. - identifie un thème dans le passage. - identifica un tema rispetto al brano in questione - - - identifies an allusion to another text. - 다른 텍스트에 대한 언급을 식별한다. - 標明另一個文本的引用。 - identifica una alusión a otro texto. - 別テキストへの言及. - identifie une allusion à un autre -texte. - identifica un'allusione a un altro testo - - - instances 실례 @@ -6855,7 +6804,7 @@ used for transcribing extant documents. an may be used instead or in addition.-->

-

確信度は,high, medium, lowのうち の1つが選択される.より詳細に示したい場合には, data.probabilityを単独または追加と して使用することができる.

+

確信度は,high, medium, lowのうち の1つが選択される.より詳細に示したい場合には, teidata.probabilityを単独または追加と して使用することができる.

Le degré de certitude peut être exprimé par l'une des valeurs symboliques prédéfinies @@ -7151,20 +7100,20 @@ value. inappropriate; if the attribute concerned may have a value other than true or false, e.g. unknown, or inapplicable, it should have the extended version of - this datatype: data.xTruthValue.

+ this datatype: teidata.xTruthValue.

曖昧な値が許されない場合に使われるデータ型になる.属性値が真偽値で ない場合,例えば"unknown"や"inapplicable"の場合には,当該データ型 - の拡張版であるdata.xTruthValueを使うべきである. + の拡張版であるteidata.xTruthValueを使うべきである.

Ce type de données ne s'applique que dans les cas où l'incertitude est inappropriée ; c’est-à-dire si l'attribut concerné peut avoir une valeur autre que vrai ou faux, par ex. inconnu, ou inapplicable, il devrait alors y - avoir la version étendue de ce type de données : data.xTruthValue. + avoir la version étendue de ce type de données : teidata.xTruthValue.

@@ -7192,14 +7141,14 @@ value.

In cases where where uncertainty is inappropriate, use the - datatype data.TruthValue.

+ datatype teidata.TruthValue.

-

不明な場合がなければ,データ型data.TruthValueを使用する.

+

不明な場合がなければ,データ型teidata.TruthValueを使用する.

Dans le cas où l'incertitude n’est pas adaptée, employer plutot - le type de données data.TruthValue.

+ le type de données teidata.TruthValue.

defines the range of attribute values used to identify a particular combination of human @@ -7994,7 +7943,7 @@ integer or the string "unbounded". Dichiarazione di classi, tipi di dati (datatype)e macro disponibili in tutti i moduli TEI Declaraçoes de classes, tipos de dados, e macros disponíveis em todos os módulos TEI 全TEIモジュールで使用可能なデータ型,クラス,マクロ. -
Deprecated Datatype Macros
The TEI Header
Organization of the TEI Header
The TEI Header and Its Components +
The TEI Header
Organization of the TEI Header
The TEI Header and Its Components TEI header en-tête TEI TEI 헤더 @@ -8232,7 +8181,7 @@ document.-->

- + @@ -9416,6 +9365,7 @@ définissant les droits d'utilisation. eventualmente la pubblicazione appartiene. + @@ -9670,7 +9620,7 @@ définissant les droits d'utilisation. - + @@ -11567,7 +11517,7 @@ the target element prefix definition - defines a prefixing scheme used in data.pointer values, + defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. @@ -11613,7 +11563,7 @@ the target element list of prefix definitions - contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. + contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. @@ -15246,12 +15196,14 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... - - - - + + + + + + @@ -15335,6 +15287,20 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... + + + + Ka'an yu tsa'a Pedro. + + + I'm speaking on behalf of Pedro. + + + Estoy hablando de parte de Pedro. + + + + @@ -17663,17 +17629,17 @@ Measures une valeur numérique. ein numerischer Wert -

The standard form used is defined by the TEI datatype data.numeric.

+

The standard form used is defined by the TEI datatype teidata.numeric.

La forme normalisée utilisée est définie par le type de données TEI qui concerne les données numériques.

-

標準的な形式は,TEIデータ型data.numericで定義されている.

+

標準的な形式は,TEIデータ型teidata.numericで定義されている.

-

Die benutzte standardisierte Form wird im TEI-Datentyp data.numeric definiert.

+

Die benutzte standardisierte Form wird im TEI-Datentyp teidata.numeric definiert.

@@ -46036,6 +46002,9 @@ reading groups, each associated with witness specifications.

+ + + @@ -46107,6 +46076,9 @@ form in the running text).

+ + + @@ -49643,7 +49615,7 @@ raiders and saved the town from capture. stabilisce il ruolo o la classificazione primaria di una persona - +

Values for this attribute may be locally defined by a @@ -54662,7 +54634,7 @@ Information with a Text

Combining Co specifies a time interval either as a number or as one of the keywords defined - by the datatype data.interval + by the datatype teidata.interval 시구간의 수치 부분을 명시한다. 指明時間區段中的數值部份 時間幅を数値で示す. @@ -56697,6 +56669,7 @@ contexts.

+ @@ -56802,6 +56775,7 @@ The attributes @to and @from on may each contain only a single value + @@ -56851,8 +56825,9 @@ The attributes @to and @from on may each contain only a single value - + + @@ -56914,6 +56889,7 @@ The attributes @to and @from on may each contain only a single value + @@ -58273,7 +58249,7 @@ rasgo. proporciona un valor binario fornisce un valore binario. -

This attribute has a datatype of data.truthValue, which +

This attribute has a datatype of teidata.truthValue, which may be represented by the values 1 or true, or 0 or false.

@@ -66165,7 +66141,7 @@ have a canonical name, supplied as the value for their

TEIスキームでは,殆どのデータ型はTEIマクロに規定されているものを使 - 用している.マクロ名にあるdata.xxxxで示されたデータ型 + 用している.マクロ名にあるteidata.xxxxで示されたデータ型 名は,RELAX NGまたはWSDのデータ型に対応づけられている.

@@ -66199,6 +66175,13 @@ have a canonical name, supplied as the value for their + + + + The attribute restriction can only be used with a name attribute. + + + @@ -66252,6 +66235,7 @@ have a canonical name, supplied as the value for their

dataFacet children are only allowed when dataRef refers with name to a datatype from the specification XML Schemas: Part 2: Datatypes.

+

restriction is only permitted when dataRef uses the name attribute.

@@ -67094,4 +67078,4 @@ should correspond to an existing module, via a moduleSpec or Documentazione dei moduli TEI Documentação dos módulos TEI タグ定義モジュール -
Using the TEI
Serving TEI files with the TEI Media Type
Obtaining the TEI
Customization
Kinds of Modification
Deletion of Elements
Modification of Content Models
Modification of Attribute and Attribute Value Lists
Class Modification
Addition of New Elements
Renaming of Elements
Modification and Namespaces
Documenting the Modification
Examples of Modification
Conformance
Well-formedness Criterion
Validation Constraint
Conformance to the TEI Abstract Model
Semantic Constraints
Mandatory Components of a TEI Document
Use of the TEI Namespace
Documentation Constraint
Varieties of TEI Conformance
Implementation of an ODD System
Making a Unified ODD
Generating Schemas
Names and Documentation in Generated Schemas
Making a RELAX NG Schema
Macros
Classes
Elements
Making a DTD
Generating Documentation
Using TEI Parameterized Schema Fragments
Selection of Modules
Inclusion and Exclusion of Elements
Changing the Names of Generic Identifiers
Embedding Local Modifications (DTD only)
Model Classes
About the Model Classes Appendix
Attribute Classes
About the Attribute Classes Appendix
Elements
About the Elements Appendix
Attributes
About the Attributes Appendix
Datatypes and Other Macros
About the Datatypes and Macros Appendix
Bibliography
Works Cited in Examples in these Guidelines
Works Cited Elsewhere in the Text of these Guidelines
Reading List
Theory of Markup and XML
TEI
Deprecations
About the Deprecation Appendix
Prefatory Notes
Prefatory Note (March 2002)
Introductory Note (November 2001)
Introductory Note (June 2001)
Introductory Note (May 1999)
Typographic Corrections Made
Specific Changes in the DTD
Outstanding Errors
Preface (April 1994)
Acknowledgments
TEI Working Committees (1990-1993)
Advisory Board
Steering Committee Membership
Colophon
\ No newline at end of file +
Using the TEI
Serving TEI files with the TEI Media Type
Obtaining the TEI
Customization
Kinds of Modification
Deletion of Elements
Modification of Content Models
Modification of Attribute and Attribute Value Lists
Class Modification
Addition of New Elements
Renaming of Elements
Modification and Namespaces
Documenting the Modification
Examples of Modification
Conformance
Well-formedness Criterion
Validation Constraint
Conformance to the TEI Abstract Model
Semantic Constraints
Mandatory Components of a TEI Document
Use of the TEI Namespace
Documentation Constraint
Varieties of TEI Conformance
Implementation of an ODD System
Making a Unified ODD
Generating Schemas
Names and Documentation in Generated Schemas
Making a RELAX NG Schema
Macros
Classes
Elements
Making a DTD
Generating Documentation
Using TEI Parameterized Schema Fragments
Selection of Modules
Inclusion and Exclusion of Elements
Changing the Names of Generic Identifiers
Embedding Local Modifications (DTD only)
Model Classes
About the Model Classes Appendix
Attribute Classes
About the Attribute Classes Appendix
Elements
About the Elements Appendix
Attributes
About the Attributes Appendix
Datatypes and Other Macros
About the Datatypes and Macros Appendix
Bibliography
Works Cited in Examples in these Guidelines
Works Cited Elsewhere in the Text of these Guidelines
Reading List
Theory of Markup and XML
TEI
Deprecations
Items Scheduled to be Removed
Prefatory Notes
Prefatory Note (March 2002)
Introductory Note (November 2001)
Introductory Note (June 2001)
Introductory Note (May 1999)
Typographic Corrections Made
Specific Changes in the DTD
Outstanding Errors
Preface (April 1994)
Acknowledgments
TEI Working Committees (1990-1993)
Advisory Board
Steering Committee Membership
Colophon
From 627fbb7b3ec93ff17a0822d880f2144abbd5f097 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 13 Aug 2020 10:17:59 -0400 Subject: [PATCH 02/58] last (current) expected result fix --- Test/expected-results/test.rng | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Test/expected-results/test.rng b/Test/expected-results/test.rng index a0f420b64..be57efb0c 100644 --- a/Test/expected-results/test.rng +++ b/Test/expected-results/test.rng @@ -3536,12 +3536,13 @@ Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] for (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] - - - - + + + + + @@ -5095,9 +5096,9 @@ Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist - + - + @@ -5330,6 +5331,7 @@ Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] + @@ -5380,9 +5382,9 @@ Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] - + - + @@ -5780,7 +5782,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after - (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] @@ -5797,7 +5799,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after - (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] @@ -8957,7 +8959,7 @@ Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (sec - specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval From 2506a54ab4449276fa594da0f83add6feb62f5eb Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 13 Aug 2020 10:38:08 -0400 Subject: [PATCH 03/58] also fix sorted expected results (which don't show up on straight diff?) --- Test/expected-results/test.epub.listing | 8 ++++---- Test/expected-results/test.epub.listing2 | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Test/expected-results/test.epub.listing b/Test/expected-results/test.epub.listing index fdb433988..6e3af5683 100644 --- a/Test/expected-results/test.epub.listing +++ b/Test/expected-results/test.epub.listing @@ -1,8 +1,9 @@ -Archive: test.epub +Archive: actual-results/test.epub testing: mimetype OK testing: META-INF/ OK - testing: META-INF/container.xml OK testing: OPS/ OK + testing: OPS/media/ OK + testing: META-INF/container.xml OK testing: OPS/P1.html OK testing: OPS/S1.html OK testing: OPS/content.opf OK @@ -25,7 +26,6 @@ Archive: test.epub testing: OPS/index-front.1_div.2.html OK testing: OPS/index-front.1_div.3.html OK testing: OPS/index.html OK - testing: OPS/media/ OK testing: OPS/media/pageimage1.jpg OK testing: OPS/media/resource1.jpg OK testing: OPS/media/resource10.jpg OK @@ -48,4 +48,4 @@ Archive: test.epub testing: OPS/titlepage1.html OK testing: OPS/titlepageback.html OK testing: OPS/toc.ncx OK -No errors detected in compressed data of test.epub. +No errors detected in compressed data of actual-results/test.epub. diff --git a/Test/expected-results/test.epub.listing2 b/Test/expected-results/test.epub.listing2 index ee38cd824..f15ff059d 100644 --- a/Test/expected-results/test.epub.listing2 +++ b/Test/expected-results/test.epub.listing2 @@ -1,12 +1,12 @@ -Archive: test-pages.epub +Archive: actual-results/test-pages.epub testing: mimetype OK testing: META-INF/ OK + testing: OPS/ OK + testing: OPS/media/ OK testing: META-INF/com.apple.ibooks.display-options.xml OK testing: META-INF/container.xml OK - testing: OPS/ OK testing: OPS/content.opf OK testing: OPS/index.html OK - testing: OPS/media/ OK testing: OPS/media/pageimage1.jpg OK testing: OPS/media/resource1.jpg OK testing: OPS/media/resource10.jpg OK @@ -43,4 +43,4 @@ Archive: test-pages.epub testing: OPS/titlepageback.html OK testing: OPS/titlepageverso.html OK testing: OPS/toc.ncx OK -No errors detected in compressed data of test-pages.epub. +No errors detected in compressed data of actual-results/test-pages.epub. From 8305792cd2444e53b7a3cbd35e507df09c5857ae Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Thu, 13 Aug 2020 17:00:37 -0400 Subject: [PATCH 04/58] Mostly add comments to Makefile --- Test/Makefile | 151 +++++++++++++----- Test/expected-results/test.xml.docx | Bin 384978 -> 0 bytes Test/expected-results/test.xml.docx.list | 25 --- Test/expected-results/test.xml.docx.listing | 31 ---- ...t.xml.docx.core => test.xml.docx_core.xml} | 0 ...cx.document => test.xml.docx_document.xml} | 0 Test/expected-results/test.xml.epub.list | 16 -- Test/expected-results/test.xml.odt.list | 21 --- ...x.document => test6.xml.docx_document.xml} | 0 ...ument => testnotes1.xml.docx_document.xml} | 0 10 files changed, 113 insertions(+), 131 deletions(-) delete mode 100644 Test/expected-results/test.xml.docx delete mode 100644 Test/expected-results/test.xml.docx.list delete mode 100644 Test/expected-results/test.xml.docx.listing rename Test/expected-results/{test.xml.docx.core => test.xml.docx_core.xml} (100%) rename Test/expected-results/{test.xml.docx.document => test.xml.docx_document.xml} (100%) delete mode 100644 Test/expected-results/test.xml.epub.list delete mode 100644 Test/expected-results/test.xml.odt.list rename Test/expected-results/{test6.xml.docx.document => test6.xml.docx_document.xml} (100%) rename Test/expected-results/{testnotes1.xml.docx.document => testnotes1.xml.docx_document.xml} (100%) diff --git a/Test/Makefile b/Test/Makefile index 51fb1d1a7..416bb49e2 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -1,19 +1,58 @@ -VERSION=`cat VERSION` -DIFFNOW=1 -# 1 = do diff; 0 = don't do diffs now, just put into actual_results/ +# +# TEI Stylesheets repo original Test system +# + + +################################ +# global variable declarations # +################################ + +# Do we perform comparisons between the actual outputs and expected +# outputs now (and thus fail as soon as there is a difference), or +# not (in which case user is expected to compare them after we're +# done building them here)? +DIFFNOW=1 # 1 = do diff now; 0 = don't do diffs now + +# Directories for holding outputs and expected outputs +# (NB—no ending slashes): AR=actual-results ER=expected-results -ARTN=$(AR)/testnotes + +# The directory in whch the various `teitoXXX` and `XXXtotei` commands can +# be found: BINDIR=../bin + +# Path to the version of P5 source to use by default +# (Note this is the p5subset used to solve circularity -- see +# ???https://pointer.to.tei/doc/on/circularity/solution???): DEFAULTSOURCE=../source/p5subset.xml + +# Several XSLT programs have a parameter that allow the routine to output +# fixed date (and possibly version) information just to make comparison +# easier. At the time of this writing, those programs are: +# ../common/functions.xsl, +# ../docx/to/teitodocx.xsl, +# ../odt/teitoodt.xsl, and +# ../rdf/make-acdc.xsl. SAXONOPT=useFixedDate=true -SAXON=java -Djava.awt.headless=true -jar ../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) -UP1SAXON=java -Djava.awt.headless=true -jar ../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) -UP2SAXON=java -Djava.awt.headless=true -jar ../../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) -JING=java -Djava.awt.headless=true -jar ../lib/lib/jing-20120724.0.0.jar + +# Establish commands for `saxon` and `jing`. (Note: at present UP1SAXON is +# unused, just here to show the pattern). +JAVAPRE=java -Djava.awt.headless=true -jar +SAXON=$(JAVAPRE) ../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) +UP1SAXON=$(JAVAPRE) ../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) +UP2SAXON=$(JAVAPRE) ../../../lib/saxon9he.jar defaultSource=$(DEFAULTSOURCE) +JING=$(JAVAPRE) ../lib/lib/jing-20120724.0.0.jar + # flags used for the commands running from $(BINDIR), e.g. `bin/teitorelaxng` FLAGS=--localsource=$(DEFAULTSOURCE) + +# Location of oXygen. Only used in the test-pureant target, which is not run +# by any other target. OXY=/usr/share/oxygen + +# Lists of programs (in the $(BINDIR) directory) executed by the +# test-scripts target. SCRIPTS=teitobibtex \ teitodocbook \ teitodocx \ @@ -28,14 +67,66 @@ SCRIPTS=teitobibtex \ teitopdf \ teitordf \ teitotxt - SCHEMASCRIPTS=teitornc \ teitorelaxng \ teitoxsd \ teitodtd + +############################### +# First target is the default # +# (not matter what its name). # +############################### + default: actual test.rng test-to-html test-p4top5 test-oddity test-scripts test-namespaces test-from-html test-latex test-fo test-to-docx test-from-docx test-xlsx test-rdf test-text test-odt test-markdown test-cocoa test-epub + +################### +# rest of targets # +################### + +help: + @echo "Runs TEI Stylesheets repo original tests; for new and improved tests, see the" + @echo "Test2/ directory." + @echo "" + @echo "Only the main 'default' target is briefly documented here." + @echo "" + @echo "Lots of tests are run by default. For the majority of them, the test generates" + @echo "some output (put into $(AR)/) which is to be compared to what the expected" + @echo "output of that test (stored in $(ER)/). If the parameter DIFFNOW is set to" + @echo "1 (the default), the results of each test are compared to the expected result" + @echo "immediately, and the process fails and stops if a difference is found. If the" + @echo "parameter DIFFNOW is set to 0 (or anything not '1', really), then the" + @echo "comparison is deferred. This allows the user to compare them all at once after" + @echo "the entire test has run. This DIFFNOW=0 is often easier for interactive use," + @echo "but DIFFNOW=1 better for running from another process that needs to know if" + @echo "there is a failure." + @echo "" + @echo "Suggested sequence for interactive use is:" + @echo "$$ make clean" + @echo "$$ make DIFFNOW=0" + @echo "$$ diff -C0 -r $(AR)/ $(ER)/ | perl -pe 's,^diff -C0," '\\n\\n#########\\ndiff' " -C0,;'" + @echo "$$ # note: ignore differences in files ending in '.listing'; if there are any use:" + @echo '$$ for f in $(AR)/*.listing ; do diff -C0 <(sort $$f) <(sort $(ER)/$$(basename $$f)); done' + @echo "$$ # as the sort order is apparently inconsequential." + @echo "" + @echo "When the diff of the two directories is performed, the following files are" + @echo "expected to be in only $(AR)/, not $(ER)/. (Listed here" + @echo "in the likely order in which they will be listed by diff.)" + @echo " Only in $(AR)/: oddbyexample.dtd" + @echo " Only in $(AR)/: oddbyexample.rnc" + @echo " Only in $(AR)/: oddbyexample.xsd" + @echo " Only in $(AR)/: Pictures" + @echo " Only in $(AR)/: test34.combined.odd" + @echo " Only in $(AR)/: test_3.epub" + @echo " Only in $(AR)/: test3.html" + @echo " Only in $(AR)/: test4.html" + @echo " Only in $(AR)/: testoucscoursesp5.xml" + @echo " Only in $(AR)/: testoucscourses.xml.docx" + @echo " Only in $(AR)/: test-pages.epub" + @echo " Only in $(AR)/: test.processedodd" + @echo " Only in $(AR)/: xml.tmp" + actual: mkdir -p $(AR) @@ -264,21 +355,19 @@ test-fo: actual test-epub: actual css @echo BUILD: testing epub $(BINDIR)/teitoepub3 $(FLAGS) test.xml $(AR)/test_3.epub - java -Djava.awt.headless=true -jar ../lib/epubcheck3.jar $(AR)/test_3.epub + $(JAVAPRE) ../lib/epubcheck3.jar $(AR)/test_3.epub $(BINDIR)/teitoepub $(FLAGS) test.xml $(AR)/test.epub - java -Djava.awt.headless=true -jar ../lib/epubcheck3.jar $(AR)/test.epub + $(JAVAPRE) ../lib/epubcheck3.jar $(AR)/test.epub unzip -t $(AR)/test.epub > $(AR)/test.epub.listing if [ $(DIFFNOW) -eq 1 ]; \ then bash -c 'diff <(sort $(AR)/test.epub.listing) <(sort $(ER)/test.epub.listing)'; fi - rm $(AR)/test.epub.listing $(BINDIR)/teitoepub $(FLAGS) --fileperpage test.xml $(AR)/test-pages.epub unzip -t $(AR)/test-pages.epub > $(AR)/test.epub.listing2 if [ $(DIFFNOW) -eq 1 ]; \ then bash -c 'diff <(sort $(AR)/test.epub.listing2) <(sort $(ER)/test.epub.listing2)'; fi - rm $(AR)/test.epub.listing2 test-rdf: actual @echo BUILD: testing rdf @@ -384,29 +473,25 @@ test-to-docx: @echo BUILD: testing to-docx $(BINDIR)/teitodocx $(FLAGS) test.xml - unzip -p test.xml.docx word/document.xml | xmllint --format - > $(AR)/test.xml.docx.document - unzip -p test.xml.docx docProps/core.xml | xmllint --format - | sed 's/>20.*Z20Z $(AR)/test.xml.docx.core + unzip -p test.xml.docx word/document.xml | xmllint --format - > $(AR)/test.xml.docx_document.xml + unzip -p test.xml.docx docProps/core.xml | xmllint --format - | sed 's/>20.*Z20Z $(AR)/test.xml.docx_core.xml if [ $(DIFFNOW) -eq 1 ]; \ - then diff $(AR)/test.xml.docx.document $(ER)/test.xml.docx.document; fi + then diff $(AR)/test.xml.docx_document.xml $(ER)/test.xml.docx_document.xml; fi if [ $(DIFFNOW) -eq 1 ]; \ - then diff $(AR)/test.xml.docx.core $(ER)/test.xml.docx.core; fi - rm $(AR)/test.xml.docx.document + then diff $(AR)/test.xml.docx_core.xml $(ER)/test.xml.docx_core.xml; fi $(BINDIR)/teitodocx $(FLAGS) test6.xml - unzip -p test6.xml.docx word/document.xml | xmllint --format - > $(AR)/test6.xml.docx.document + unzip -p test6.xml.docx word/document.xml | xmllint --format - > $(AR)/test6.xml.docx_document.xml if [ $(DIFFNOW) -eq 1 ]; \ - then diff $(AR)/test6.xml.docx.document $(ER)/test6.xml.docx.document; fi - rm $(AR)/test6.xml.docx.document + then diff $(AR)/test6.xml.docx_document.xml $(ER)/test6.xml.docx_document.xml; fi $(BINDIR)/teitodocx $(FLAGS) testnotes1.xml - unzip -p testnotes1.xml.docx word/document.xml | xmllint --format - > $(AR)/testnotes1.xml.docx.document + unzip -p testnotes1.xml.docx word/document.xml | xmllint --format - > $(AR)/testnotes1.xml.docx_document.xml if [ $(DIFFNOW) -eq 1 ]; \ - then diff $(AR)/testnotes1.xml.docx.document $(ER)/testnotes1.xml.docx.document; fi - rm $(AR)/testnotes1.xml.docx.document + then diff $(AR)/testnotes1.xml.docx_document.xml $(ER)/testnotes1.xml.docx_document.xml; fi $(SAXON) testoucscourses.xml ../profiles/default/p4/from.xsl > $(AR)/testoucscoursesp5.xml $(BINDIR)/teitodocx $(FLAGS) --profile=oucscourses $(AR)/testoucscoursesp5.xml $(AR)/testoucscourses.xml.docx - rm $(AR)/testoucscourses.xml.docx $(AR)/testoucscoursesp5.xml test-oddity: actual css @echo BUILD: testing oddity @@ -623,19 +708,9 @@ profile: clean: (cd ..; for i in css/*; do rm -f `basename $$i`;done) - rm -f test*.odd.rnc test*epub test*pdf test*rdf test*text test*.xml.docx test*.xml.odt test*.tex test*.fo *.html *.xhtml *~ dummy* test.html test3.html test4.html *aux *vrb *out *log *nav *ent *snm *toc *.end *.1 *.2 test.xsd test.zip test*.dtd test-indexes.xml test37.xml test38.xml test39.xml test40.xml - rm -f test*.rnc test*.json test*.rnc test*.combined.odd test*listing* test*.tei test*.rng test*.html5 test*.processedodd *.isosch - rm -f oddbyexample.* index*div*html - rm -f testdrama.compiled.xml - rm -f test5.odt test7.xml test18.xml test19.xml test-index.xml test7.zip test11.xml test11a.xml test9.docx test9.odt content.xml.odt.listing content.xml.odt test.xml.docx.core test7.docx hyperlinktest.xml - rm -f A54031.xml dcr.result test-rtf2tei.xml test29.xml dcr.tmp xml.tmp - rm -f xml.result - rm -rf charts/ embeddings/ media/ _rels/ \[Content_Types\].xml - rm -rf temp-dir-for-ant Pictures OEBPS META-INF mimetype files - rm -f test.xlsx.xml *.result.tex *.result.pdf _slidelogo.png - rm -f content.xml - rm -f cocoatest*.xml - rm -fr $(AR)/ + rm -f *.result.tex test*.xml.docx *~ + rm -f dcr.tmp xml.tmp + rm -fr $(AR)/ charts/ embeddings/ media/ Pictures/ oddtree: $(SAXON) -s:http://www.tei-c.org/release/xml/tei/odd/p5subset.xml -xsl:../tools/odd-to-tree.xsl -o:oddtree.xml diff --git a/Test/expected-results/test.xml.docx b/Test/expected-results/test.xml.docx deleted file mode 100644 index 145f4a86a6cfa6eda73f0a35fb6b67fa09ae434d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384978 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 Date: Wed, 19 Aug 2020 14:48:28 -0400 Subject: [PATCH 05/58] Version number. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index cf89fc8c7..99e8e0a9d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.50.0 +7.51.0a From c0f5f56fd4e1c5880abede2cfb18307f6a2eddc0 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Wed, 19 Aug 2020 15:08:53 -0400 Subject: [PATCH 06/58] Just prodding the CI. --- LICENCE | 1 + 1 file changed, 1 insertion(+) diff --git a/LICENCE b/LICENCE index 363951ecb..a2768338f 100644 --- a/LICENCE +++ b/LICENCE @@ -29,3 +29,4 @@ 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. + From 689e22f04b4ad93e267272581c3d5583b26ef622 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Wed, 19 Aug 2020 16:51:42 -0700 Subject: [PATCH 07/58] Fix for issue #453. --- debian-tei-xsl/debian/compat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian-tei-xsl/debian/compat b/debian-tei-xsl/debian/compat index b8626c4cf..9a037142a 100644 --- a/debian-tei-xsl/debian/compat +++ b/debian-tei-xsl/debian/compat @@ -1 +1 @@ -4 +10 \ No newline at end of file From 32d01147e2e26c39d14d4d65588aab4cf51c35f4 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Wed, 19 Aug 2020 17:24:59 -0700 Subject: [PATCH 08/58] Another lurking compat value changed to 10 for issue #453. --- debian-tei-xsl/debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian-tei-xsl/debian/rules b/debian-tei-xsl/debian/rules index e800c1ff7..963761b3c 100755 --- a/debian-tei-xsl/debian/rules +++ b/debian-tei-xsl/debian/rules @@ -1,5 +1,5 @@ #!/usr/bin/make -f -export DH_COMPAT=5 +export DH_COMPAT=10 DESTDIR = $(CURDIR)/debian/tei-xsl/usr From 7d76cc4bc6e23651bc0a9958754572c9374a87f1 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Wed, 19 Aug 2020 19:43:21 -0700 Subject: [PATCH 09/58] More fallout from issue #453: replace deprecated dh_clean -k with dh_prep. --- debian-tei-xsl/debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian-tei-xsl/debian/rules b/debian-tei-xsl/debian/rules index 963761b3c..4af1189ad 100755 --- a/debian-tei-xsl/debian/rules +++ b/debian-tei-xsl/debian/rules @@ -28,7 +28,7 @@ clean: install: build dh_testdir dh_testroot - dh_clean -k + dh_prep dh_installdirs (cd ..; make PREFIX=$(DESTDIR) install ) (cd ..; make PREFIX=$(DESTDIR) doc oxygendoc ) From 54dd635e2b101c080e30d0e1f23ae3dc44ab8054 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 21 Aug 2020 09:17:47 -0700 Subject: [PATCH 10/58] Add debug flag and enable retention of uncleaned generated files for debugging. --- Test2/build_utilities.xml | 12 +- Test2/inputFiles/testPure1.odd | 343 ++++++++++++++++----------------- 2 files changed, 177 insertions(+), 178 deletions(-) diff --git a/Test2/build_utilities.xml b/Test2/build_utilities.xml index 8c448325a..0c9a7764d 100644 --- a/Test2/build_utilities.xml +++ b/Test2/build_utilities.xml @@ -33,6 +33,9 @@ expected results en masse. --> + + + @@ -239,11 +242,18 @@ - + + + + + + + + diff --git a/Test2/inputFiles/testPure1.odd b/Test2/inputFiles/testPure1.odd index da70130df..1ed2053ec 100644 --- a/Test2/inputFiles/testPure1.odd +++ b/Test2/inputFiles/testPure1.odd @@ -1,29 +1,27 @@ - - - - + xmlns="http://www.tei-c.org/ns/1.0" + xml:lang="en" + n="testPure1"> - - - Test TEI Customization using Pure ODD - Martin Holmes - Syd Bauman - - -

Free for anyone for anything

-
- -

Authored from scratch

-
-
+ + + Test TEI Customization using Pure ODD + Martin Holmes + Syd Bauman + + +

Free for anyone for anything

+
+ +

Authored from scratch

+
+
- - - This file is intended as input for a conversion to + + + This file is intended as input for a conversion to RNG and Schematron (and possibly other outputs) as part of the modular Stylesheets test process. No source is specified here, because the source p5subset.xml is controlled @@ -35,180 +33,171 @@ compliant schemas (for the most severe definition of TEI-compliant). - - - - - + + + + + - - - - + - - - - + + + + + + + - - - + + + - - + + - - - + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - long playing - 12-inch vinyl - - - - - - compact disc - - - - - - - - + + + + + + + + + + long playing + 12-inch vinyl + + + + + + compact disc + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - A short bibliographic citation with nothing but author, title, and optional date - - - - - - - - - - - - - - - - - - - + + + A short bibliographic citation with nothing but author, title, and optional date + + + + + + + + + + + + + + + + + + + - - - - - - The email address of Amour de Cosmos. - - - The email address of The Venerable Bede. - - - - -

Our email element is only allowed to contain + + + + + + The email address of Amour de Cosmos. + + + The email address of The Venerable Bede. + + + + +

Our email element is only allowed to contain one of two email addresses, so we try to constrain its content model using a valList.

-
-
+ +
- - - - - Too many links! - - - + + + + + Too many links! + + + -
- - +
+ +
From e2fa8c3b75a93a9f71ea57d9407a61fca35cf99b Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 21 Aug 2020 09:59:41 -0700 Subject: [PATCH 11/58] Fix for over-broad idref check in clean process. --- Test2/build_utilities.xml | 12 +++++++++--- Test2/cleanForDiff.xsl | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Test2/build_utilities.xml b/Test2/build_utilities.xml index 0c9a7764d..cc8402fac 100644 --- a/Test2/build_utilities.xml +++ b/Test2/build_utilities.xml @@ -239,19 +239,25 @@ + - + - + + - +
diff --git a/Test2/cleanForDiff.xsl b/Test2/cleanForDiff.xsl index f8581abd7..525545fc2 100644 --- a/Test2/cleanForDiff.xsl +++ b/Test2/cleanForDiff.xsl @@ -41,7 +41,7 @@ - + Error: no target for link From b27caa48a05b0474be04431db7030bf32e183193 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 21 Aug 2020 11:54:48 -0700 Subject: [PATCH 12/58] Update expected results in Test2. --- Test2/expected-results/testPure1.rng | 283 ++++++++++++++++++++------- 1 file changed, 212 insertions(+), 71 deletions(-) diff --git a/Test2/expected-results/testPure1.rng b/Test2/expected-results/testPure1.rng index 5ba2fe599..6a5d1da3b 100644 --- a/Test2/expected-results/testPure1.rng +++ b/Test2/expected-results/testPure1.rng @@ -31,7 +31,7 @@ - + @@ -423,7 +423,8 @@ Sample values include: 1] all; 2] most; 3] range
- @@ -432,7 +433,8 @@ Sample values include: 1] all; 2] most; 3] range - @@ -441,7 +443,8 @@ Sample values include: 1] all; 2] most; 3] range - @@ -463,7 +466,8 @@ Sample values include: 1] all; 2] most; 3] range
- @@ -961,20 +965,8 @@ Suggested values include: 1] internal; 2] external; 3] conjecture - - - - - indicates what kind of phenomenon is being noted in the passage. -Sample values include: 1] image; 2] character; 3] theme; 4] allusion - - [^\p{C}\p{Z}]+ - - - - @@ -1082,7 +1074,8 @@ Suggested values include: 1] m (metre); 2] kg (kilogram); 3] s (second); 4] Hz ( - @@ -1188,7 +1181,8 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - @@ -1217,7 +1211,8 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - @@ -1362,7 +1357,8 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - @@ -1404,7 +1400,8 @@ The element indicated by @spanTo () must follow - @@ -1612,30 +1609,42 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + + + + + + + + + + + + @@ -2523,66 +2532,54 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] - + - - + - - + - - + - - - - + - - - - + - - - @@ -2863,13 +2860,14 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] - + + @@ -2910,6 +2908,19 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + + + + + + + + + + + + + @@ -2968,8 +2979,10 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + + @@ -3269,12 +3282,15 @@ Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] for (cited quotation) contains a quotation from some other document, together with a bibliographic reference to its source. In a dictionary it may contain an example text with at least one occurrence of the word form, used in the sense being described, or a translation of the headword, or an example. [3.3.3. Quotation 4.3.1. Grouped Texts 9.3.5.1. Examples] - - - - + + + + + + + @@ -3828,12 +3844,12 @@ Sample values include: 1] suspension; 2] contraction; 3] brevigraph; 4] superscr attributes @target and @cRef may be supplied on . + + - + - - @@ -3851,12 +3867,12 @@ attributes @target and @cRef may be supplied on . + + - + - - @@ -4606,13 +4622,14 @@ relatedItem element must be empty - + + + + + + + - - - - - @@ -4802,9 +4819,9 @@ Sample values include: 1] index; 2] toc; 3] figlist; 4] tablist - + - + @@ -5066,6 +5083,7 @@ Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] + @@ -5116,9 +5134,9 @@ Suggested values include: 1] ISBN; 2] ISSN; 3] DOI; 4] URI; 5] VIAF; 6] ESTC; 7] - + - + @@ -5532,7 +5550,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after - (prefix definition) defines a prefixing scheme used in data.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + (prefix definition) defines a prefixing scheme used in teidata.pointer values, showing how abbreviated URIs using the scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] @@ -5549,7 +5567,7 @@ Sample values include: 1] first-line; 2] first-letter; 3] before; 4] after - (list of prefix definitions) contains a list of definitions of prefixing schemes used in data.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] + (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers] @@ -6090,7 +6108,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 - documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] @@ -6112,7 +6130,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 - groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] @@ -6457,6 +6475,7 @@ The attributes @to and @from on may each contain only a single value + gives the identifier of the node which is the starting point of the span of text being annotated; if not accompanied by a @to attribute, gives the identifier of the node of the entire span of text being annotated. @@ -6480,6 +6499,7 @@ The attributes @to and @from on may each contain only a single value + @@ -6496,6 +6516,7 @@ The attributes @to and @from on may each contain only a single value + @@ -6516,6 +6537,7 @@ The attributes @to and @from on may each contain only a single value + @@ -6603,7 +6625,8 @@ The attributes @to and @from on may each contain only a single value - You must supply at least two values for @target or on @@ -6628,7 +6651,8 @@ The attributes @to and @from on may each contain only a single value - Too many links! @@ -6646,7 +6670,8 @@ The attributes @to and @from on may each contain only a single value - Abstract model violation: ab may not occur inside paragraphs or other ab elements. @@ -6656,7 +6681,8 @@ The attributes @to and @from on may each contain only a single value - Abstract model violation: Lines may not contain higher-level divisions such as p or ab. @@ -6735,7 +6761,7 @@ Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (sec - specifies a time interval either as a number or as one of the keywords defined by the datatype data.interval + specifies a time interval either as a number or as one of the keywords defined by the datatype teidata.interval @@ -6893,7 +6919,8 @@ Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (sec - This @@ -6908,6 +6935,120 @@ Suggested values include: 1] d (days); 2] h (hours); 3] min (minutes); 4] s (sec + + + contains a list of annotations, typically encoded as <annotation>, <annotationBlock>, or <note>, possibly organized with nested <listAnnotation> elements. [16.10. The standOff Container] + + + + + + + + + + + + + + + + + + + + + + + + represents an annotation following the Web + Annotation Data Model. [16.10. The standOff Container] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (identifier) provides a unique identifier for the element bearing the attribute. + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + + assessing + intent is to assess the target resource in some way, rather than simply make a comment about it + bookmarking + intent is to create a bookmark to the target or part thereof + classifying + intent is to classify the target in some way + commenting + intent is to comment about the target + describing + intent is to describe the target, rather than (for example) comment on it + editing + intent is to request an edit or a change to the target resource + highlighting + intent is to highlight the target resource or a segment thereof + identifying + intent is to assign an identity to the target + linking + intent is to link to a resource related to the target + moderating + intent is to assign some value or quality to the target + questioning + intent is to ask a question about the target + replying + intent is to reply to a previous statement, either an annotation or another resource + tagging + intent is to associate a tag with the target + + + + + + + + (TEI document) contains a single TEI-conformant document, combining a single TEI header with one or more members of the model.resource class. Multiple <TEI> elements may be combined within a <TEI> (or <teiCorpus>) element. [4. Default Text Structure 15.1. Varieties of Composite Text] From ae6013b56a6b604d2cfaa106547de7a65baa829e Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Sat, 22 Aug 2020 12:16:44 -0400 Subject: [PATCH 13/58] Improve wording of make help output --- Test/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Test/Makefile b/Test/Makefile index 416bb49e2..0934a4f8a 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -92,11 +92,11 @@ help: @echo "Only the main 'default' target is briefly documented here." @echo "" @echo "Lots of tests are run by default. For the majority of them, the test generates" - @echo "some output (put into $(AR)/) which is to be compared to what the expected" - @echo "output of that test (stored in $(ER)/). If the parameter DIFFNOW is set to" - @echo "1 (the default), the results of each test are compared to the expected result" - @echo "immediately, and the process fails and stops if a difference is found. If the" - @echo "parameter DIFFNOW is set to 0 (or anything not '1', really), then the" + @echo "some output (put into $(AR)/) which is to be compared to the expected" + @echo "output of that test (stored in $(ER)/). If the parameter DIFFNOW is" + @echo "set to 1 (the default), the results of each test are compared to the expected" + @echo "result immediately, and the process fails and stops if a difference is found." + @echo "If the parameter DIFFNOW is set to 0 (or anything not '1', really), then the" @echo "comparison is deferred. This allows the user to compare them all at once after" @echo "the entire test has run. This DIFFNOW=0 is often easier for interactive use," @echo "but DIFFNOW=1 better for running from another process that needs to know if" From 1edfae26136f9c004776ae63b7c90b1c4ebf0499 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 28 Aug 2020 19:07:05 -0400 Subject: [PATCH 14/58] Update to new release: * Get new p5subset (https://teijenkins.hcmc.uvic.ca/job/TEIP5-dev/lastSuccessfulBuild/artifact/P5/release/xml/tei/odd/p5subset.xml to be precise) * Run ( cd Test && make DIFFNOW=0 ) * Run a slightly modified version of Test2/cleanForDiff.xsl on both actual-results/ and expected-results/ (the modification is not to check URLs point somewhere to avoid a failure) * Compare the resulting output directories * Having found all differences make sense given the recent changes to TEI, * copy all of appropriate files from actual-results/ to expected-results/. --- Test/expected-results/test.epub | Bin 384788 -> 384786 bytes Test/expected-results/test.isosch | 4 +- Test/expected-results/test.odd.html | 30 +- Test/expected-results/test.rng | 242 +++- Test/expected-results/test.xml.odt | Bin 367142 -> 367140 bytes Test/expected-results/test15.odd.html | 53 +- Test/expected-results/test15.odd.rnc | 189 +++- Test/expected-results/test21.odd.rnc | 194 +++- Test/expected-results/test30.dtd | 128 ++- Test/expected-results/test30.rnc | 202 +++- Test/expected-results/test33.rnc | 190 +++- Test/expected-results/test34.combined.json | 389 ++++++- Test/expected-results/test34.odd.html | 22 +- Test/expected-results/test34.rnc | 190 +++- Test/expected-results/test35.rnc | 190 +++- Test/expected-results/testdrama.compiled.xml | 1067 +++++++++++------- source/p5subset.xml | 626 +++++++--- 17 files changed, 2794 insertions(+), 922 deletions(-) diff --git a/Test/expected-results/test.epub b/Test/expected-results/test.epub index 9a1ea3386cca0f780845bcbb734e9bccfaae3507..affd4eb24efcc5349591689dc198ada7de7374b8 100644 GIT binary patch delta 4284 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

Egv!QFP{I3aj7blxJ?&@aTuPg8-f`G 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 is required. - - must have at least one child add and at least one child del + + must have at least one child add and at least one child del or surplus diff --git a/Test/expected-results/test.odd.html b/Test/expected-results/test.odd.html index 3e03a66b7..77b25dcaa 100644 --- a/Test/expected-results/test.odd.html +++ b/Test/expected-results/test.odd.html @@ -110,6 +110,9 @@

anchor: (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment] + + annotation: represents an annotation following the Web Annotation Data Model. [16.10. The standOff Container] + appInfo: (application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element] @@ -345,7 +348,7 @@

cell: contains one cell of a table. [14.1.1. TEI Tables] - change: documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + change: documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] choice: groups a number of alternative encodings for the same point in a text. [3.4. Simple Editorial Changes] @@ -546,7 +549,7 @@

funder: (funding body) specifies the name of an individual, institution, or organization responsible for the funding of a project or text. [2.2.1. The Title Statement] - fw: (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.6. Headers, Footers, and Similar Matter] + fw: (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.5. Headers, Footers, and Similar Matter] gap: indicates a point where material has been omitted in a transcription, whether for editorial reasons described in the TEI header, as part of sampling practice, or because the material is illegible, invisible, or inaudible. [3.4.3. Additions, Deletions, and Omissions] @@ -683,11 +686,14 @@

list: contains any sequence of items organized as a list. [3.7. Lists] + + listAnnotation: contains a list of annotations, typically encoded as <annotation>, <annotationBlock>, or <note>, possibly organized with nested <listAnnotation> elements. [16.10. The standOff Container] + listBibl: (citation list) contains a list of bibliographic citations of any kind. [3.11.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements] - listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] listForest: provides for lists of forests. [19.3. Another Tree Notation] @@ -746,9 +752,18 @@

model.addressLike: groups elements used to represent a postal or email address. [1. The TEI Infrastructure] + + model.annotationLike: groups elements used to represent annotations. [16.10. The standOff Container] + + + model.annotationPart.body: groups elements which may be used as an <annotation> body. + model.applicationLike: groups elements used to record application-specific information about a document in its header. + + model.attributable: groups elements that contain a word or phrase that can be attributed to a source. [3.3.3. Quotation 4.3.2. Floating Texts] + model.availabilityPart: groups elements such as licences and paragraphs of text which may appear as part of an availability statement [2.2.4. Publication, Distribution, Licensing, etc.] @@ -992,9 +1007,6 @@

model.publicationStmtPart.detail: groups the agency-specific child elements of the <publicationStmt> element of the TEI header. [2.2.4. Publication, Distribution, Licensing, etc.] - - model.qLike: groups elements related to highlighting which can appear either within or between chunk-level elements. [3.3. Highlighting and Quotation] - model.quoteLike: groups elements used to directly contain quotations. @@ -1236,7 +1248,7 @@

sp: (speech) contains an individual speech in a performance text, or a passage presented as such in a prose or verse text. [3.12.2. Core Tags for Drama 3.12. Passages of Verse or Drama 7.2.2. Speeches and Speakers] - space: indicates the location of a significant space in the text. [11.5.1. Space] + space: indicates the location of a significant space in the text. [11.4.1. Space] speaker: contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment. [3.12.2. Core Tags for Drama] @@ -1266,10 +1278,10 @@

subc: (subcategorization) contains subcategorization information (transitive/intransitive, countable/non-countable, etc.) [9.3.2. Grammatical Information] - subst: (substitution) groups one or more deletions with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. Substitutions] + subst: (substitution) groups one or more deletions (or surplus text) with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. Substitutions] - substJoin: (substitution join) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] + substJoin: (substitution join) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] superEntry: groups a sequence of entries within any kind of lexical resource, such as a dictionary or lexicon which function as a single unit, for example a set of homographs. [9.1. Dictionary Body and Overall Structure] diff --git a/Test/expected-results/test.rng b/Test/expected-results/test.rng index be57efb0c..022f9acec 100644 --- a/Test/expected-results/test.rng +++ b/Test/expected-results/test.rng @@ -29,7 +29,7 @@ - + @@ -466,17 +466,17 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke - + The @when attribute cannot be used with any other att.datable.w3c attributes. - + The @from and @notBefore attributes cannot be used together. - + The @to and @notAfter attributes cannot be used together. @@ -494,7 +494,7 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke - + @calendar indicates the system or calendar to which the date represented by the content of this element belongs, but this element has no textual content. @@ -1078,7 +1078,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. @@ -1191,7 +1191,7 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - + The element should not be categorized in detail with @subtype unless also categorized in general with @type @@ -1215,7 +1215,7 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - + @targetLang should only be used on if @target is specified. @@ -1356,7 +1356,7 @@ Suggested values include: 1] below; 2] bottom; 3] margin; 4] top; 5] opposite; 6 - + The element indicated by @spanTo () must follow the current element @@ -1394,7 +1394,7 @@ The element indicated by @spanTo () must follow - + @schemeVersion can only be used if @scheme is specified. @@ -1566,30 +1566,42 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + + + + + + + + + + + + @@ -2708,66 +2720,54 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] - + - - + - - + - - + - - - - + - - - - + - - - @@ -3068,13 +3068,14 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] - + + @@ -3149,6 +3150,19 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + + + + + + + + + + + + + @@ -3209,6 +3223,7 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + @@ -3217,6 +3232,7 @@ Suggested values include: 1] volume; 2] issue; 3] page; 4] line; 5] chapter; 6] + @@ -3542,7 +3558,8 @@ Suggested values include: 1] spoken; 2] thought; 3] written; 4] soCalled; 5] for - + + @@ -4039,12 +4056,12 @@ Sample values include: 1] suspension; 2] contraction; 3] brevigraph; 4] superscr attributes @target and @cRef may be supplied on . + + - + - - @@ -4059,12 +4076,12 @@ attributes @target and @cRef may be supplied on . + + - + - - @@ -4906,11 +4923,14 @@ relatedItem element must be empty - + + + + + + + - - - @@ -6315,7 +6335,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 - documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] @@ -6337,7 +6357,7 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5 - groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] @@ -6750,7 +6770,7 @@ The @spanTo attribute of is required. - (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.6. Headers, Footers, and Similar Matter] + (forme work) contains a running head (e.g. a header, footer), catchword, or similar material appearing on the current page. [11.5. Headers, Footers, and Similar Matter] @@ -6821,7 +6841,7 @@ The @spanTo attribute of is required. - indicates the location of a significant space in the text. [11.5.1. Space] + indicates the location of a significant space in the text. [11.4.1. Space] @@ -6876,17 +6896,18 @@ The @spanTo attribute of is required. - (substitution) groups one or more deletions with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. Substitutions] + (substitution) groups one or more deletions (or surplus text) with one or more additions when the combination is to be regarded as a single intervention in the text. [11.3.1.5. Substitutions] + - must have at least one child add and at least one child del + must have at least one child add and at least one child del or surplus @@ -6897,7 +6918,7 @@ The @spanTo attribute of is required. - (substitution join) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] + (substitution join) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] @@ -8845,7 +8866,7 @@ Suggested values include: 1] main; 2] sub (subordinate); 3] alt (alternate); 4] - You must supply at least two values for @target or on + You must supply at least two values for @target or on @@ -8875,14 +8896,14 @@ Suggested values include: 1] main; 2] sub (subordinate); 3] alt (alternate); 4] - + Abstract model violation: ab may not occur inside paragraphs or other ab elements. - + Abstract model violation: Lines may not contain higher-level divisions such as p or ab. @@ -9046,7 +9067,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 @@ -9178,7 +9199,7 @@ You must supply at least two values for @target on - This + This element must have a @type attribute, since it is nested inside a @@ -9190,6 +9211,122 @@ You must supply at least two values for @target on + + + contains a list of annotations, typically encoded as <annotation>, <annotationBlock>, or <note>, possibly organized with nested <listAnnotation> elements. [16.10. The standOff Container] + + + + + + + + + + + + + + + + + + + + + + + + represents an annotation following the Web + Annotation Data Model. [16.10. The standOff Container] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (identifier) provides a unique identifier for the element bearing the attribute. + + + + specifies the destination of the reference by supplying one or more URI References + + + + + + + + + + + + + assessing + intent is to assess the target resource in some way, rather than simply make a comment about it + bookmarking + intent is to create a bookmark to the target or part thereof + classifying + intent is to classify the target in some way + commenting + intent is to comment about the target + describing + intent is to describe the target, rather than (for example) comment on it + editing + intent is to request an edit or a change to the target resource + highlighting + intent is to highlight the target resource or a segment thereof + identifying + intent is to assign an identity to the target + linking + intent is to link to a resource related to the target + moderating + intent is to assign some value or quality to the target + questioning + intent is to ask a question about the target + replying + intent is to reply to a previous statement, either an annotation or another resource + tagging + intent is to associate a tag with the target + + + + + + + + @@ -9696,6 +9833,7 @@ Suggested values include: 1] simple; 2] lemma; 3] variant; 4] compound; 5] deriv + diff --git a/Test/expected-results/test.xml.odt b/Test/expected-results/test.xml.odt index 3e8a139b8c6cf0d40ed79f03489800a7b23a4954..5603c72f11b53f56e321c9e36a4f88c7a44fe06c 100644 GIT binary patch delta 2317 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 n#CxBv8UcZ*RG lg link list + listAnnotation listBibl listChange measure @@ -183,7 +184,7 @@

Atributos - Atributos
@@ -431,8 +431,8 @@

Schema Declaration

typocaracteriza el elemento utilizando una clasificación o tipología funcional.
@@ -364,8 +364,8 @@

Schema Declaration

EstadoOpcional
Tipo de datosteidata.enumerated
<div typ="verse"> +
Atributos
@@ -297,8 +297,8 @@

Schema Declaration

typocaracteriza el elemento utilizando una clasificación o tipología funcional.
@@ -827,10 +829,12 @@

add addrLine author + bibl biblScope cit citedRange corr + date del desc distinct @@ -861,6 +865,7 @@

quote ref reg + resp rs said sic @@ -871,6 +876,7 @@

street term textLang + time title unclear unit @@ -882,20 +888,29 @@

cell figDesc figure + formula @@ -911,6 +926,9 @@

argument body + byline + closer + dateline div div1 div2 @@ -922,8 +940,10 @@

docAuthor docDate docEdition + docImprint epigraph imprimatur + opener postscript salute signed @@ -1057,7 +1077,7 @@

Ejemplo

@@ -1130,6 +1150,7 @@

  • abbr/@type
  • alt/@mode
  • altGrp/@mode
  • +
  • annotation/@motivation
  • availability/@status
  • correction/@status
  • correction/@method
  • @@ -1233,6 +1254,9 @@

    + + + @@ -1438,7 +1462,7 @@

    - + @@ -1683,11 +1707,14 @@

    + + + - + @@ -1731,9 +1758,18 @@

    + + + + + + + + + @@ -1953,9 +1989,6 @@

    - - - diff --git a/Test/expected-results/test15.odd.rnc b/Test/expected-results/test15.odd.rnc index c0d5bd53d..257f65ca0 100644 --- a/Test/expected-results/test15.odd.rnc +++ b/Test/expected-results/test15.odd.rnc @@ -20,7 +20,11 @@ macro.paraContent = | model.lLike)* macro.limitedContent = (text | model.limitedPhrase | model.inter)* macro.phraseSeq = - (text | model.gLike | model.qLike | model.phrase | model.global)* + (text + | model.gLike + | model.attributable + | model.phrase + | model.global)* macro.phraseSeq.limited = (text | model.limitedPhrase | model.global)* macro.specialPara = (text @@ -1240,12 +1244,12 @@ model.nameLike.agent_sequenceOptional = name? model.nameLike.agent_sequenceOptionalRepeatable = name* model.nameLike.agent_sequenceRepeatable = name+ model.segLike = seg -model.hiLike = hi -model.hiLike_alternation = hi -model.hiLike_sequence = hi -model.hiLike_sequenceOptional = hi? -model.hiLike_sequenceOptionalRepeatable = hi* -model.hiLike_sequenceRepeatable = hi+ +model.hiLike = hi | q +model.hiLike_alternation = hi | q +model.hiLike_sequence = hi, q +model.hiLike_sequenceOptional = hi?, q? +model.hiLike_sequenceOptionalRepeatable = hi*, q* +model.hiLike_sequenceRepeatable = hi+, q+ model.emphLike = foreign | emph @@ -1433,16 +1437,17 @@ model.quoteLike_sequence = quote, cit model.quoteLike_sequenceOptional = quote?, cit? model.quoteLike_sequenceOptionalRepeatable = quote*, cit* model.quoteLike_sequenceRepeatable = quote+, cit+ -model.qLike = model.quoteLike | said | q | floatingText -model.qLike_alternation = - model.quoteLike_alternation | said | q | floatingText -model.qLike_sequence = model.quoteLike_sequence, said, q, floatingText -model.qLike_sequenceOptional = - model.quoteLike_sequenceOptional?, said?, q?, floatingText? -model.qLike_sequenceOptionalRepeatable = - model.quoteLike_sequenceOptionalRepeatable*, said*, q*, floatingText* -model.qLike_sequenceRepeatable = - model.quoteLike_sequenceRepeatable+, said+, q+, floatingText+ +model.attributable = model.quoteLike | said | floatingText +model.attributable_alternation = + model.quoteLike_alternation | said | floatingText +model.attributable_sequence = + model.quoteLike_sequence, said, floatingText +model.attributable_sequenceOptional = + model.quoteLike_sequenceOptional?, said?, floatingText? +model.attributable_sequenceOptionalRepeatable = + model.quoteLike_sequenceOptionalRepeatable*, said*, floatingText* +model.attributable_sequenceRepeatable = + model.quoteLike_sequenceRepeatable+, said+, floatingText+ model.respLike = author | editor | respStmt | meeting | sponsor | funder | principal model.divWrapper = @@ -1562,8 +1567,8 @@ model.inter = | model.labelLike | model.listLike | model.stageLike - | model.qLike -model.common = model.divPart | model.inter + | model.attributable +model.common = model.divPart | model.inter | q model.phrase = model.segLike | model.highlighted @@ -1592,6 +1597,8 @@ model.div4Like = div4 model.div5Like = div5 model.div6Like = div6 model.div7Like = div7 +model.annotationLike = note | annotation +model.annotationPart.body = ptr | ref | note model.applicationLike = application model.teiHeaderPart = encodingDesc | profileDesc | xenoData model.sourceDescPart = notAllowed @@ -1625,7 +1632,13 @@ model.profileDescPart = | calendarDesc | correspDesc model.standOffPart = - model.global.meta | model.biblLike | model.listLike | listChange | seg + model.global.meta + | model.biblLike + | model.listLike + | model.annotationLike + | listChange + | seg + | listAnnotation att.formula.attributes = att.formula.attribute.formula att.formula.attribute.formula = [ @@ -1909,7 +1922,8 @@ cit = | model.global | model.graphicLike | model.ptrLike - | model.qLike)+, + | model.attributable + | q)+, att.global.attributes, att.typed.attributes, empty @@ -2330,12 +2344,12 @@ ptr = "\x{a}" ~ " " ], + att.cReferencing.attributes, + att.declaring.attributes, att.global.attributes, - att.pointing.attributes, att.internetMedia.attributes, + att.pointing.attributes, att.typed.attributes, - att.declaring.attributes, - att.cReferencing.attributes, empty } ref = @@ -2365,12 +2379,12 @@ ref = "\x{a}" ~ " " ], + att.cReferencing.attributes, + att.declaring.attributes, att.global.attributes, - att.pointing.attributes, att.internetMedia.attributes, + att.pointing.attributes, att.typed.attributes, - att.declaring.attributes, - att.cReferencing.attributes, empty } \list = @@ -2992,8 +3006,8 @@ sp = | model.pLike | model.listLike | model.stageLike - | model.qLike), - model.global*)+), + | model.attributable), + (model.global* | q))+), att.global.attributes, att.ascribed.directed.attributes, empty @@ -4057,7 +4071,7 @@ revisionDesc = } change = - ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] element change { macro.specialPara, att.ascribed.attributes, @@ -4074,7 +4088,7 @@ change = } listChange = - ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] element listChange { (desc*, (listChange | change)+), att.global.attributes, @@ -5059,6 +5073,119 @@ standOff = att.declaring.attributes, empty } +listAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element listAnnotation { + (model.headLike*, + model.labelLike*, + (model.annotationLike | listAnnotation)+), + att.global.attributes, + att.typed.attributes, + att.notated.attributes, + att.declaring.attributes, + empty + } +annotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element annotation { + (respStmt*, revisionDesc*, licence*, model.annotationPart.body*), + att.global.attribute.n, + att.global.attribute.xmllang, + att.global.attribute.xmlbase, + att.global.attribute.xmlspace, + att.global.rendition.attribute.rend, + att.global.rendition.attribute.style, + att.global.rendition.attribute.rendition, + att.global.linking.attribute.corresp, + att.global.linking.attribute.synch, + att.global.linking.attribute.sameAs, + att.global.linking.attribute.copyOf, + att.global.linking.attribute.next, + att.global.linking.attribute.prev, + att.global.linking.attribute.exclude, + att.global.linking.attribute.select, + att.global.responsibility.attribute.cert, + att.global.responsibility.attribute.resp, + att.global.source.attribute.source, + att.pointing.attribute.targetLang, + att.pointing.attribute.evaluate, + + ## (identifier) provides a unique identifier for the element bearing the attribute. + attribute xml:id { xsd:ID }, + + ## specifies the destination of the reference by supplying one or more URI References + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } att.tableDecoration.attributes = att.tableDecoration.attribute.role, att.tableDecoration.attribute.rows, diff --git a/Test/expected-results/test21.odd.rnc b/Test/expected-results/test21.odd.rnc index 6d31b7975..b0fdf39ee 100644 --- a/Test/expected-results/test21.odd.rnc +++ b/Test/expected-results/test21.odd.rnc @@ -20,7 +20,11 @@ macro.paraContent = | model.lLike)* macro.limitedContent = (text | model.limitedPhrase | model.inter)* macro.phraseSeq = - (text | model.gLike | model.qLike | model.phrase | model.global)* + (text + | model.gLike + | model.attributable + | model.phrase + | model.global)* macro.phraseSeq.limited = (text | model.limitedPhrase | model.global)* macro.specialPara = (text @@ -1293,12 +1297,12 @@ model.nameLike.agent_sequenceOptionalRepeatable = name*, orgName*, persName* model.nameLike.agent_sequenceRepeatable = name+, orgName+, persName+ model.segLike = seg -model.hiLike = hi -model.hiLike_alternation = hi -model.hiLike_sequence = hi -model.hiLike_sequenceOptional = hi? -model.hiLike_sequenceOptionalRepeatable = hi* -model.hiLike_sequenceRepeatable = hi+ +model.hiLike = hi | q +model.hiLike_alternation = hi | q +model.hiLike_sequence = hi, q +model.hiLike_sequenceOptional = hi?, q? +model.hiLike_sequenceOptionalRepeatable = hi*, q* +model.hiLike_sequenceRepeatable = hi+, q+ model.emphLike = foreign | emph @@ -1792,15 +1796,15 @@ model.quoteLike_sequence = quote, cit model.quoteLike_sequenceOptional = quote?, cit? model.quoteLike_sequenceOptionalRepeatable = quote*, cit* model.quoteLike_sequenceRepeatable = quote+, cit+ -model.qLike = model.quoteLike | said | q -model.qLike_alternation = model.quoteLike_alternation | said | q -model.qLike_sequence = model.quoteLike_sequence, said, q -model.qLike_sequenceOptional = - model.quoteLike_sequenceOptional?, said?, q? -model.qLike_sequenceOptionalRepeatable = - model.quoteLike_sequenceOptionalRepeatable*, said*, q* -model.qLike_sequenceRepeatable = - model.quoteLike_sequenceRepeatable+, said+, q+ +model.attributable = model.quoteLike | said +model.attributable_alternation = model.quoteLike_alternation | said +model.attributable_sequence = model.quoteLike_sequence, said +model.attributable_sequenceOptional = + model.quoteLike_sequenceOptional?, said? +model.attributable_sequenceOptionalRepeatable = + model.quoteLike_sequenceOptionalRepeatable*, said* +model.attributable_sequenceRepeatable = + model.quoteLike_sequenceRepeatable+, said+ model.respLike = author | editor | respStmt | meeting | sponsor | funder | principal model.divWrapper = @@ -1959,8 +1963,8 @@ model.inter = | model.labelLike | model.listLike | model.stageLike - | model.qLike -model.common = model.divPart | model.inter + | model.attributable +model.common = model.divPart | model.inter | q model.phrase = model.segLike | model.highlighted @@ -1989,6 +1993,8 @@ model.div4Like = div4 model.div5Like = div5 model.div6Like = div6 model.div7Like = div7 +model.annotationLike = note | annotation +model.annotationPart.body = ptr | ref | note model.applicationLike = application model.teiHeaderPart = encodingDesc | profileDesc | xenoData model.sourceDescPart = notAllowed @@ -2027,8 +2033,10 @@ model.standOffPart = model.global.meta | model.biblLike | model.listLike + | model.annotationLike | listChange | seg + | listAnnotation | zone att.formula.attributes = att.formula.attribute.formula att.formula.attribute.formula = @@ -2340,7 +2348,8 @@ cit = | model.global | model.graphicLike | model.ptrLike - | model.qLike)+, + | model.attributable + | q)+, att.global.attributes, att.typed.attributes, empty @@ -2775,12 +2784,12 @@ ptr = "\x{a}" ~ " " ], + att.cReferencing.attributes, + att.declaring.attributes, att.global.attributes, - att.pointing.attributes, att.internetMedia.attributes, + att.pointing.attributes, att.typed.attribute.subtype, - att.declaring.attributes, - att.cReferencing.attributes, ## caractérise l'élément en utilisant n'importe quel système ou typologie de classification approprié. attribute type { @@ -2820,12 +2829,12 @@ ref = "\x{a}" ~ " " ], + att.cReferencing.attributes, + att.declaring.attributes, att.global.attributes, - att.pointing.attributes, att.internetMedia.attributes, + att.pointing.attributes, att.typed.attributes, - att.declaring.attributes, - att.cReferencing.attributes, empty } \list = @@ -3476,8 +3485,8 @@ sp = | model.pLike | model.listLike | model.stageLike - | model.qLike), - model.global*)+), + | model.attributable), + (model.global* | q))+), att.global.attributes, att.ascribed.directed.attributes, empty @@ -5709,7 +5718,7 @@ revisionDesc = } change = - ## résume une modification ou une correction apportée à une version particulière d’un texte électronique partagé entre plusieurs chercheurs. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + ## résume une modification ou une correction apportée à une version particulière d’un texte électronique partagé entre plusieurs chercheurs. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] element change { macro.specialPara, att.ascribed.attributes, @@ -5735,7 +5744,7 @@ scriptNote = } listChange = - ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] element listChange { (desc*, (listChange | change)+), att.global.attributes, @@ -6241,6 +6250,120 @@ standOff = att.declaring.attributes, empty } +listAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element listAnnotation { + (model.headLike*, + model.labelLike*, + (model.annotationLike | listAnnotation)+), + att.global.attributes, + att.typed.attributes, + att.notated.attributes, + att.declaring.attributes, + empty + } +annotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element annotation { + (respStmt*, revisionDesc*, licence*, model.annotationPart.body*), + att.global.attribute.xmllang, + att.global.attribute.xmlbase, + att.global.attribute.xmlspace, + att.global.rendition.attribute.rend, + att.global.rendition.attribute.style, + att.global.rendition.attribute.rendition, + att.global.linking.attribute.corresp, + att.global.linking.attribute.synch, + att.global.linking.attribute.sameAs, + att.global.linking.attribute.copyOf, + att.global.linking.attribute.next, + att.global.linking.attribute.prev, + att.global.linking.attribute.exclude, + att.global.linking.attribute.select, + att.global.facs.attribute.facs, + att.global.change.attribute.change, + att.global.responsibility.attribute.cert, + att.global.responsibility.attribute.resp, + att.global.source.attribute.source, + att.pointing.attribute.targetLang, + att.pointing.attribute.evaluate, + + ## (identifiant) fournit un identifiant unique pour l'élément qui porte l'attribut + attribute xml:id { xsd:ID }, + + ## précise la cible de la référence en donnant une ou plusieurs références URI + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } att.msExcerpt.attributes = att.msExcerpt.attribute.defective att.msExcerpt.attribute.defective = @@ -7574,7 +7697,7 @@ ex = } fw = - ## (élément de mise en page) permet d'encoder un titre courant (en haut ou en bas de la page), une réclame ou une autre information comparable, qui apparaît sur la page courante. [11.6. Headers, Footers, and Similar Matter] + ## (élément de mise en page) permet d'encoder un titre courant (en haut ou en bas de la page), une réclame ou une autre information comparable, qui apparaît sur la page courante. [11.5. Headers, Footers, and Similar Matter] element fw { macro.phraseSeq, att.global.attributes, @@ -7637,7 +7760,7 @@ restore = } space = - ## (espace) permet de situer un espace significatif dans le texte édité. [11.5.1. Space] + ## (espace) permet de situer un espace significatif dans le texte édité. [11.4.1. Space] element space { (model.descLike | model.certLike)*, att.global.attribute.xmlid, @@ -7682,7 +7805,7 @@ subst = ## ( substitution) regroupe une ou plusieurs parties de texte supprimées et une ou plusieurs parties de texte ajoutées, lorsque cette combinaison peut être considérée comme une intervention unique sur le texte. [11.3.1.5. Substitutions] element subst { - ((add | del | model.milestoneLike)+) + ((add | surplus | del | model.milestoneLike)+) >> sch:pattern [ id = "test21-subst-substContents1-constraint-assert-24" "\x{a}" ~ @@ -7692,11 +7815,12 @@ subst = "\x{a}" ~ " " sch:assert [ - test = "child::tei:add and child::tei:del" + test = + "child::tei:add and (child::tei:del or child::tei:surplus)" "\x{a}" ~ " " sch:name [ ] - " must have at least one child add and at least one child del" + " must have at least one child add and at least one child del or surplus" ] "\x{a}" ~ " " @@ -7711,7 +7835,7 @@ subst = } substJoin = - ## (jointure de substitution) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] + ## (jointure de substitution) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] element substJoin { (model.descLike | model.certLike)*, att.global.attributes, diff --git a/Test/expected-results/test30.dtd b/Test/expected-results/test30.dtd index c72b442e5..9810cda8d 100644 --- a/Test/expected-results/test30.dtd +++ b/Test/expected-results/test30.dtd @@ -557,11 +557,11 @@ to %teidata.word; #IMPLIED'> - - - - - + + + + + @@ -787,11 +787,11 @@ to %teidata.word; #IMPLIED'> - - - - - + + + + + @@ -892,16 +892,16 @@ to %teidata.word; #IMPLIED'> - - - - - - - - - - + + + + + + + + + + @@ -927,6 +927,16 @@ to %teidata.word; #IMPLIED'> + + + + + + + + + + @@ -957,11 +967,11 @@ to %teidata.word; #IMPLIED'> - - - - - + + + + + - + @@ -1298,6 +1308,30 @@ mode (excl|incl) "excl" > + + + + @@ -1464,7 +1498,7 @@ Elements] --> - + - + - + %Tatt.sortable.attributes; %Tatt.typed.attribute.subtype; type %teidata.enumerated; #IMPLIED > + + + + @@ -2183,7 +2225,7 @@ type %teidata.enumerated; #IMPLIED > %Tatt.sortable.attributes; %Tatt.declarable.attributes; %Tatt.typed.attributes; > - + + %Tatt.pointing.attributes; + %Tatt.typed.attributes; > @@ -2701,12 +2743,12 @@ target CDATA #IMPLIED > + %Tatt.pointing.attributes; + %Tatt.typed.attributes; > @@ -2971,12 +3013,12 @@ code %teidata.pointer; #IMPLIED > %Tatt.global.attributes; %Tatt.declaring.attributes; > - + - + %Tatt.global.attributes; %Tatt.declarable.attributes; %Tatt.styleDef.attributes; > - - + + - + > sch:pattern [ id = "testbasic-subst-substContents1-constraint-assert-17" "\x{a}" ~ @@ -6233,11 +6239,12 @@ Tsubst = "\x{a}" ~ " " sch:assert [ - test = "child::tei:add and child::tei:del" + test = + "child::tei:add and (child::tei:del or child::tei:surplus)" "\x{a}" ~ " " sch:name [ ] - " must have at least one child add and at least one child del" + " must have at least one child add and at least one child del or surplus" ] "\x{a}" ~ " " @@ -6252,7 +6259,7 @@ Tsubst = } TsubstJoin = - ## (substitution join) identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] + ## (substitution join) identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text [11.3.1.5. Substitutions] element substJoin { (Tmodel.descLike | Tmodel.certLike)*, Tatt.global.attributes, @@ -6921,6 +6928,119 @@ TstandOff = Tatt.declaring.attributes, empty } +TlistAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element listAnnotation { + (Tmodel.headLike*, + Tmodel.labelLike*, + (Tmodel.annotationLike | TlistAnnotation)+), + Tatt.global.attributes, + Tatt.typed.attributes, + Tatt.notated.attributes, + Tatt.declaring.attributes, + empty + } +Tannotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element annotation { + (TrespStmt*, + TrevisionDesc*, + Tlicence*, + Tmodel.annotationPart.body*), + Tatt.global.attribute.xmllang, + Tatt.global.attribute.xmlbase, + Tatt.global.attribute.xmlspace, + Tatt.global.rendition.attribute.rend, + Tatt.global.rendition.attribute.style, + Tatt.global.rendition.attribute.rendition, + Tatt.global.linking.attribute.sameAs, + Tatt.global.linking.attribute.copyOf, + Tatt.global.linking.attribute.exclude, + Tatt.global.linking.attribute.select, + Tatt.global.facs.attribute.facs, + Tatt.global.change.attribute.change, + Tatt.global.responsibility.attribute.cert, + Tatt.global.responsibility.attribute.resp, + Tatt.global.source.attribute.source, + Tatt.pointing.attribute.targetLang, + Tatt.pointing.attribute.evaluate, + + ## (identifier) provides a unique identifier for the element bearing the attribute. + attribute xml:id { xsd:ID }, + + ## specifies the destination of the reference by supplying one or more URI References + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } TTEI = [ a:documentation [ diff --git a/Test/expected-results/test33.rnc b/Test/expected-results/test33.rnc index c06cee480..fd053a5d7 100644 --- a/Test/expected-results/test33.rnc +++ b/Test/expected-results/test33.rnc @@ -25,7 +25,7 @@ tei_macro.limitedContent = tei_macro.phraseSeq = (text | tei_model.gLike - | tei_model.qLike + | tei_model.attributable | tei_model.phrase | tei_model.global)* tei_macro.phraseSeq.limited = @@ -1253,12 +1253,12 @@ tei_model.nameLike.agent_sequenceOptional = tei_name? tei_model.nameLike.agent_sequenceOptionalRepeatable = tei_name* tei_model.nameLike.agent_sequenceRepeatable = tei_name+ tei_model.segLike = tei_seg -tei_model.hiLike = tei_hi -tei_model.hiLike_alternation = tei_hi -tei_model.hiLike_sequence = tei_hi -tei_model.hiLike_sequenceOptional = tei_hi? -tei_model.hiLike_sequenceOptionalRepeatable = tei_hi* -tei_model.hiLike_sequenceRepeatable = tei_hi+ +tei_model.hiLike = tei_hi | tei_q +tei_model.hiLike_alternation = tei_hi | tei_q +tei_model.hiLike_sequence = tei_hi, tei_q +tei_model.hiLike_sequenceOptional = tei_hi?, tei_q? +tei_model.hiLike_sequenceOptionalRepeatable = tei_hi*, tei_q* +tei_model.hiLike_sequenceRepeatable = tei_hi+, tei_q+ tei_model.emphLike = tei_foreign | tei_emph @@ -1510,27 +1510,20 @@ tei_model.quoteLike_sequenceOptional = tei_quote?, tei_cit?, foo_cit? tei_model.quoteLike_sequenceOptionalRepeatable = tei_quote*, tei_cit*, foo_cit* tei_model.quoteLike_sequenceRepeatable = tei_quote+, tei_cit+, foo_cit+ -tei_model.qLike = - tei_model.quoteLike | tei_said | tei_q | tei_floatingText -tei_model.qLike_alternation = - tei_model.quoteLike_alternation | tei_said | tei_q | tei_floatingText -tei_model.qLike_sequence = - tei_model.quoteLike_sequence, tei_said, tei_q, tei_floatingText -tei_model.qLike_sequenceOptional = - tei_model.quoteLike_sequenceOptional?, - tei_said?, - tei_q?, - tei_floatingText? -tei_model.qLike_sequenceOptionalRepeatable = +tei_model.attributable = + tei_model.quoteLike | tei_said | tei_floatingText +tei_model.attributable_alternation = + tei_model.quoteLike_alternation | tei_said | tei_floatingText +tei_model.attributable_sequence = + tei_model.quoteLike_sequence, tei_said, tei_floatingText +tei_model.attributable_sequenceOptional = + tei_model.quoteLike_sequenceOptional?, tei_said?, tei_floatingText? +tei_model.attributable_sequenceOptionalRepeatable = tei_model.quoteLike_sequenceOptionalRepeatable*, tei_said*, - tei_q*, tei_floatingText* -tei_model.qLike_sequenceRepeatable = - tei_model.quoteLike_sequenceRepeatable+, - tei_said+, - tei_q+, - tei_floatingText+ +tei_model.attributable_sequenceRepeatable = + tei_model.quoteLike_sequenceRepeatable+, tei_said+, tei_floatingText+ tei_model.respLike = tei_author | tei_editor @@ -1670,8 +1663,8 @@ tei_model.inter = | tei_model.labelLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike -tei_model.common = tei_model.divPart | tei_model.inter + | tei_model.attributable +tei_model.common = tei_model.divPart | tei_model.inter | tei_q tei_model.phrase = tei_model.segLike | tei_model.highlighted @@ -1700,6 +1693,8 @@ tei_model.div4Like = tei_div4 tei_model.div5Like = tei_div5 tei_model.div6Like = tei_div6 tei_model.div7Like = tei_div7 +tei_model.annotationLike = tei_note | tei_annotation +tei_model.annotationPart.body = tei_ptr | tei_ref | tei_note tei_model.applicationLike = tei_application tei_model.teiHeaderPart = tei_encodingDesc | tei_profileDesc | tei_xenoData @@ -1737,8 +1732,10 @@ tei_model.standOffPart = tei_model.global.meta | tei_model.biblLike | tei_model.listLike + | tei_model.annotationLike | tei_listChange | tei_seg + | tei_listAnnotation tei_att.formula.attributes = tei_att.formula.attribute.formula tei_att.formula.attribute.formula = [ @@ -2031,7 +2028,8 @@ tei_cit = | tei_model.global | tei_model.graphicLike | tei_model.ptrLike - | tei_model.qLike)+, + | tei_model.attributable + | tei_q)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -2468,12 +2466,12 @@ tei_ptr = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_ref = @@ -2503,12 +2501,12 @@ tei_ref = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_list = @@ -3171,8 +3169,8 @@ tei_sp = | tei_model.pLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike), - tei_model.global*)+), + | tei_model.attributable), + (tei_model.global* | tei_q))+), tei_att.global.attributes, tei_att.ascribed.directed.attributes, empty @@ -4261,7 +4259,7 @@ tei_revisionDesc = } tei_change = - ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] element tei:change { tei_macro.specialPara, tei_att.ascribed.attributes, @@ -4278,7 +4276,7 @@ tei_change = } tei_listChange = - ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] element tei:listChange { (tei_desc*, (tei_listChange | tei_change)+), tei_att.global.attributes, @@ -5288,6 +5286,122 @@ tei_standOff = tei_att.declaring.attributes, empty } +tei_listAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element tei:listAnnotation { + (tei_model.headLike*, + tei_model.labelLike*, + (tei_model.annotationLike | tei_listAnnotation)+), + tei_att.global.attributes, + tei_att.typed.attributes, + tei_att.notated.attributes, + tei_att.declaring.attributes, + empty + } +tei_annotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element tei:annotation { + (tei_respStmt*, + tei_revisionDesc*, + tei_licence*, + tei_model.annotationPart.body*), + tei_att.global.attribute.n, + tei_att.global.attribute.xmllang, + tei_att.global.attribute.xmlbase, + tei_att.global.attribute.xmlspace, + tei_att.global.rendition.attribute.rend, + tei_att.global.rendition.attribute.style, + tei_att.global.rendition.attribute.rendition, + tei_att.global.linking.attribute.corresp, + tei_att.global.linking.attribute.synch, + tei_att.global.linking.attribute.sameAs, + tei_att.global.linking.attribute.copyOf, + tei_att.global.linking.attribute.next, + tei_att.global.linking.attribute.prev, + tei_att.global.linking.attribute.exclude, + tei_att.global.linking.attribute.select, + tei_att.global.responsibility.attribute.cert, + tei_att.global.responsibility.attribute.resp, + tei_att.global.source.attribute.source, + tei_att.pointing.attribute.targetLang, + tei_att.pointing.attribute.evaluate, + + ## (identifier) provides a unique identifier for the element bearing the attribute. + attribute xml:id { xsd:ID }, + + ## specifies the destination of the reference by supplying one or more URI References + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } foo_cit = ## This element encodes a citation according to the foo standard. diff --git a/Test/expected-results/test34.combined.json b/Test/expected-results/test34.combined.json index 9eeef640f..e1fedf49b 100644 --- a/Test/expected-results/test34.combined.json +++ b/Test/expected-results/test34.combined.json @@ -665,6 +665,219 @@ [ { "type" : "empty" } ] }, + { "ident" : "annotation", + "ns" : "http:\/\/foo.foo\/foo", + "type" : "elementSpec", + "module" : "linking", + "desc" : + [ "represents an annotation following the Web\n Annotation Data Model<\/ref>.<\/desc>" ], + "shortDesc" : "represents an annotation following the Web\n Annotation Data Model.", + "gloss" : + [ ], + "altIdent" : + [ ], + "classes" : + { "model" : + [ "model.annotationLike" ], + "atts" : + [ "att.global", + "att.pointing" ], + "unknown" : + [ ] }, + "attributes" : + [ + { "onElement" : true, + "ident" : "motivation", + "mode" : "add", + "ns" : "", + "usage" : "opt", + "desc" : + [ ], + "shortDesc" : "", + "gloss" : + [ ], + "altIdent" : + [ ], + "valDesc" : + [ ], + "datatype" : + { "min" : "1", + "max" : "unbounded", + "dataRef" : + { "key" : "teidata.enumerated" } }, + "valList" : + { "type" : "closed", + "valItem" : + [ + { "ident" : "assessing", + "desc" : + [ "intent is to assess the target resource in\n some way, rather than simply make a comment about it<\/desc>" ], + "shortDesc" : "intent is to assess the target resource in\n some way, rather than simply make a comment about it", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "bookmarking", + "desc" : + [ "intent is to create a bookmark to the target\n or part thereof<\/desc>" ], + "shortDesc" : "intent is to create a bookmark to the target\n or part thereof", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "classifying", + "desc" : + [ "intent is to classify the target in some\n way<\/desc>" ], + "shortDesc" : "intent is to classify the target in some\n way", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "commenting", + "desc" : + [ "intent is to comment about the target<\/desc>" ], + "shortDesc" : "intent is to comment about the target", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "describing", + "desc" : + [ "intent is to describe the target, rather than\n (for example) comment on it<\/desc>" ], + "shortDesc" : "intent is to describe the target, rather than\n (for example) comment on it", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "editing", + "desc" : + [ "intent is to request an edit or a change to\n the target resource<\/desc>" ], + "shortDesc" : "intent is to request an edit or a change to\n the target resource", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "highlighting", + "desc" : + [ "intent is to highlight the target resource or\n a segment thereof<\/desc>" ], + "shortDesc" : "intent is to highlight the target resource or\n a segment thereof", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "identifying", + "desc" : + [ "intent is to assign an identity to the\n target<\/desc>" ], + "shortDesc" : "intent is to assign an identity to the\n target", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "linking", + "desc" : + [ "intent is to link to a resource related to\n the target<\/desc>" ], + "shortDesc" : "intent is to link to a resource related to\n the target", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "moderating", + "desc" : + [ "intent is to assign some value or quality to\n the target<\/desc>" ], + "shortDesc" : "intent is to assign some value or quality to\n the target", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "questioning", + "desc" : + [ "intent is to ask a question about the\n target<\/desc>" ], + "shortDesc" : "intent is to ask a question about the\n target", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "replying", + "desc" : + [ "intent is to reply to a previous statement,\n either an annotation or another resource<\/desc>" ], + "shortDesc" : "intent is to reply to a previous statement,\n either an annotation or another resource", + "gloss" : + [ ], + "altIdent" : + [ ] }, + + { "ident" : "tagging", + "desc" : + [ "intent is to associate a tag with the\n target<\/desc>" ], + "shortDesc" : "intent is to associate a tag with the\n target", + "gloss" : + [ ], + "altIdent" : + [ ] } ] } }, + + { "onElement" : true, + "ident" : "target", + "mode" : "change", + "ns" : "", + "usage" : "req", + "desc" : + [ ], + "shortDesc" : "", + "gloss" : + [ ], + "altIdent" : + [ ], + "valDesc" : + [ ], + "datatype" : + { } }, + + { "onElement" : true, + "ident" : "xml:id", + "mode" : "change", + "ns" : "", + "usage" : "req", + "desc" : + [ ], + "shortDesc" : "", + "gloss" : + [ ], + "altIdent" : + [ ], + "valDesc" : + [ ], + "datatype" : + { } } ], + "content" : + [ + { "type" : "sequence", + "minOccurs" : "1", + "maxOccurs" : "1", + "content" : + [ + { "type" : "elementRef", + "key" : "respStmt" }, + + { "type" : "elementRef", + "key" : "revisionDesc" }, + + { "type" : "elementRef", + "key" : "licence" }, + + { "type" : "classRef", + "key" : "model.annotationPart.body" } ] } ] }, + { "ident" : "appInfo", "ns" : "http:\/\/foo.foo\/foo", "type" : "elementSpec", @@ -1944,10 +2157,13 @@ "key" : "model.ptrLike" }, { "type" : "classRef", - "key" : "model.qLike" }, + "key" : "model.attributable" }, { "type" : "elementRef", - "key" : "pc" } ] } ] }, + "key" : "pc" }, + + { "type" : "elementRef", + "key" : "q" } ] } ] }, { "ident" : "cit", "ns" : "http:\/\/foo.foo\/foo", @@ -4387,7 +4603,7 @@ [ ], "classes" : { "model" : - [ "model.qLike" ], + [ "model.attributable" ], "atts" : [ "att.global", "att.declaring", @@ -6323,6 +6539,53 @@ { "type" : "classRef", "key" : "model.global" } ] } ] } ] }, + { "ident" : "listAnnotation", + "ns" : "http:\/\/foo.foo\/foo", + "type" : "elementSpec", + "module" : "linking", + "desc" : + [ "contains a list of annotations, typically encoded as\n annotation<\/gi>, annotationBlock<\/gi>, or note<\/gi>, possibly organized with\n nested listAnnotation<\/gi> elements.<\/desc>" ], + "shortDesc" : "contains a list of annotations, typically encoded as\n annotation, annotationBlock, or note, possibly organized with\n nested listAnnotation elements.", + "gloss" : + [ ], + "altIdent" : + [ ], + "classes" : + { "model" : + [ "model.standOffPart" ], + "atts" : + [ "att.global", + "att.typed", + "att.notated", + "att.declaring" ], + "unknown" : + [ ] }, + "attributes" : + [ ], + "content" : + [ + { "type" : "sequence", + "minOccurs" : "1", + "maxOccurs" : "1", + "content" : + [ + { "type" : "classRef", + "key" : "model.headLike" }, + + { "type" : "classRef", + "key" : "model.labelLike" }, + + { "type" : "alternate", + "minOccurs" : "1", + "maxOccurs" : "unbounded", + "content" : + [ + { "type" : "classRef", + "key" : "model.annotationLike" }, + + { "type" : "elementRef", + "key" : "listAnnotation" } ] } ] } ] }, + { "ident" : "listBibl", "ns" : "http:\/\/foo.foo\/foo", "type" : "elementSpec", @@ -7046,9 +7309,11 @@ "classes" : { "model" : [ "model.noteLike", + "model.annotationLike", "model.correspDescPart", "model.correspActionPart", - "model.correspContextPart" ], + "model.correspContextPart", + "model.annotationPart.body" ], "atts" : [ "att.global", "att.placement", @@ -7627,14 +7892,15 @@ [ ], "classes" : { "model" : - [ "model.ptrLike" ], + [ "model.annotationPart.body", + "model.ptrLike" ], "atts" : - [ "att.global", - "att.pointing", - "att.internetMedia", - "att.typed", + [ "att.cReferencing", "att.declaring", - "att.cReferencing" ], + "att.global", + "att.internetMedia", + "att.pointing", + "att.typed" ], "unknown" : [ ] }, "attributes" : @@ -7867,7 +8133,8 @@ [ ], "classes" : { "model" : - [ "model.qLike" ], + [ "model.hiLike", + "model.common" ], "atts" : [ "att.global", "att.ascribed.directed" ], @@ -8126,14 +8393,15 @@ [ ], "classes" : { "model" : - [ "model.ptrLike" ], + [ "model.annotationPart.body", + "model.ptrLike" ], "atts" : - [ "att.global", - "att.pointing", - "att.internetMedia", - "att.typed", + [ "att.cReferencing", "att.declaring", - "att.cReferencing" ], + "att.global", + "att.internetMedia", + "att.pointing", + "att.typed" ], "unknown" : [ ] }, "attributes" : @@ -8592,7 +8860,7 @@ [ ], "classes" : { "model" : - [ "model.qLike" ], + [ "model.attributable" ], "atts" : [ "att.global", "att.ascribed.directed" ], @@ -9136,10 +9404,18 @@ "key" : "model.stageLike" }, { "type" : "classRef", - "key" : "model.qLike" } ] }, + "key" : "model.attributable" } ] }, - { "type" : "classRef", - "key" : "model.global" } ] } ] } ] }, + { "type" : "alternate", + "minOccurs" : "1", + "maxOccurs" : "1", + "content" : + [ + { "type" : "classRef", + "key" : "model.global" }, + + { "type" : "elementRef", + "key" : "q" } ] } ] } ] } ] }, { "ident" : "speaker", "ns" : "http:\/\/foo.foo\/foo", @@ -10985,6 +11261,37 @@ "unknown" : [ ] } }, + { "ident" : "model.annotationLike", + "ns" : "http:\/\/foo.foo\/foo", + "type" : "classSpec", + "module" : "tei", + "desc" : + [ "groups elements used to represent annotations.<\/desc>" ], + "shortDesc" : "groups elements used to represent annotations.", + "gloss" : + [ ], + "altIdent" : + [ ], + "classes" : + { "model" : + [ "model.standOffPart" ], + "atts" : + [ ], + "unknown" : + [ ] } }, + + { "ident" : "model.annotationPart.body", + "ns" : "http:\/\/foo.foo\/foo", + "type" : "classSpec", + "module" : "tei", + "desc" : + [ "groups elements which may be used as an annotation<\/gi> body.<\/desc>" ], + "shortDesc" : "groups elements which may be used as an annotation body.", + "gloss" : + [ ], + "altIdent" : + [ ] }, + { "ident" : "model.applicationLike", "ns" : "http:\/\/foo.foo\/foo", "type" : "classSpec", @@ -10997,6 +11304,25 @@ "altIdent" : [ ] }, + { "ident" : "model.attributable", + "ns" : "http:\/\/foo.foo\/foo", + "type" : "classSpec", + "module" : "tei", + "desc" : + [ "groups elements that contain a word or phrase that can be attributed to a source.<\/desc>" ], + "shortDesc" : "groups elements that contain a word or phrase that can be attributed to a source.", + "gloss" : + [ ], + "altIdent" : + [ ], + "classes" : + { "model" : + [ "model.inter" ], + "atts" : + [ ], + "unknown" : + [ ] } }, + { "ident" : "model.availabilityPart", "ns" : "http:\/\/foo.foo\/foo", "type" : "classSpec", @@ -12170,25 +12496,6 @@ "altIdent" : [ ] }, - { "ident" : "model.qLike", - "ns" : "http:\/\/foo.foo\/foo", - "type" : "classSpec", - "module" : "tei", - "desc" : - [ "groups elements related to highlighting which can appear either within or between\n chunk-level elements.<\/desc>" ], - "shortDesc" : "groups elements related to highlighting which can appear either within or between\n chunk-level elements.", - "gloss" : - [ ], - "altIdent" : - [ ], - "classes" : - { "model" : - [ "model.inter" ], - "atts" : - [ ], - "unknown" : - [ ] } }, - { "ident" : "model.quoteLike", "ns" : "http:\/\/foo.foo\/foo", "type" : "classSpec", @@ -12202,7 +12509,7 @@ [ ], "classes" : { "model" : - [ "model.qLike" ], + [ "model.attributable" ], "atts" : [ ], "unknown" : diff --git a/Test/expected-results/test34.odd.html b/Test/expected-results/test34.odd.html index 220c7a9cd..a5773dbdc 100644 --- a/Test/expected-results/test34.odd.html +++ b/Test/expected-results/test34.odd.html @@ -952,6 +952,9 @@

    + + + @@ -1154,7 +1157,7 @@

    - + @@ -1393,11 +1396,14 @@

    + + + - + @@ -1441,9 +1447,18 @@

    + + + + + + + + + @@ -1663,9 +1678,6 @@

    - - - diff --git a/Test/expected-results/test34.rnc b/Test/expected-results/test34.rnc index aa3553e9f..d9bb1133f 100644 --- a/Test/expected-results/test34.rnc +++ b/Test/expected-results/test34.rnc @@ -26,7 +26,7 @@ tei_macro.limitedContent = tei_macro.phraseSeq = (text | tei_model.gLike - | tei_model.qLike + | tei_model.attributable | tei_model.phrase | tei_model.global)* tei_macro.phraseSeq.limited = @@ -1254,12 +1254,12 @@ tei_model.nameLike.agent_sequenceOptional = tei_name? tei_model.nameLike.agent_sequenceOptionalRepeatable = tei_name* tei_model.nameLike.agent_sequenceRepeatable = tei_name+ tei_model.segLike = tei_seg -tei_model.hiLike = tei_hi -tei_model.hiLike_alternation = tei_hi -tei_model.hiLike_sequence = tei_hi -tei_model.hiLike_sequenceOptional = tei_hi? -tei_model.hiLike_sequenceOptionalRepeatable = tei_hi* -tei_model.hiLike_sequenceRepeatable = tei_hi+ +tei_model.hiLike = tei_hi | tei_q +tei_model.hiLike_alternation = tei_hi | tei_q +tei_model.hiLike_sequence = tei_hi, tei_q +tei_model.hiLike_sequenceOptional = tei_hi?, tei_q? +tei_model.hiLike_sequenceOptionalRepeatable = tei_hi*, tei_q* +tei_model.hiLike_sequenceRepeatable = tei_hi+, tei_q+ tei_model.emphLike = tei_foreign | tei_emph @@ -1515,27 +1515,20 @@ tei_model.quoteLike_sequenceOptionalRepeatable = tei_quote*, tei_cit*, foo_cit*, bar_cit*, blah_q* tei_model.quoteLike_sequenceRepeatable = tei_quote+, tei_cit+, foo_cit+, bar_cit+, blah_q+ -tei_model.qLike = - tei_model.quoteLike | tei_said | tei_q | tei_floatingText -tei_model.qLike_alternation = - tei_model.quoteLike_alternation | tei_said | tei_q | tei_floatingText -tei_model.qLike_sequence = - tei_model.quoteLike_sequence, tei_said, tei_q, tei_floatingText -tei_model.qLike_sequenceOptional = - tei_model.quoteLike_sequenceOptional?, - tei_said?, - tei_q?, - tei_floatingText? -tei_model.qLike_sequenceOptionalRepeatable = +tei_model.attributable = + tei_model.quoteLike | tei_said | tei_floatingText +tei_model.attributable_alternation = + tei_model.quoteLike_alternation | tei_said | tei_floatingText +tei_model.attributable_sequence = + tei_model.quoteLike_sequence, tei_said, tei_floatingText +tei_model.attributable_sequenceOptional = + tei_model.quoteLike_sequenceOptional?, tei_said?, tei_floatingText? +tei_model.attributable_sequenceOptionalRepeatable = tei_model.quoteLike_sequenceOptionalRepeatable*, tei_said*, - tei_q*, tei_floatingText* -tei_model.qLike_sequenceRepeatable = - tei_model.quoteLike_sequenceRepeatable+, - tei_said+, - tei_q+, - tei_floatingText+ +tei_model.attributable_sequenceRepeatable = + tei_model.quoteLike_sequenceRepeatable+, tei_said+, tei_floatingText+ tei_model.respLike = tei_author | tei_editor @@ -1675,8 +1668,8 @@ tei_model.inter = | tei_model.labelLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike -tei_model.common = tei_model.divPart | tei_model.inter + | tei_model.attributable +tei_model.common = tei_model.divPart | tei_model.inter | tei_q tei_model.phrase = tei_model.segLike | tei_model.highlighted @@ -1705,6 +1698,8 @@ tei_model.div4Like = tei_div4 tei_model.div5Like = tei_div5 tei_model.div6Like = tei_div6 tei_model.div7Like = tei_div7 +tei_model.annotationLike = tei_note | tei_annotation +tei_model.annotationPart.body = tei_ptr | tei_ref | tei_note tei_model.applicationLike = tei_application tei_model.teiHeaderPart = tei_encodingDesc | tei_profileDesc | tei_xenoData @@ -1742,8 +1737,10 @@ tei_model.standOffPart = tei_model.global.meta | tei_model.biblLike | tei_model.listLike + | tei_model.annotationLike | tei_listChange | tei_seg + | tei_listAnnotation tei_att.formula.attributes = tei_att.formula.attribute.formula tei_att.formula.attribute.formula = [ @@ -2036,7 +2033,8 @@ tei_cit = | tei_model.global | tei_model.graphicLike | tei_model.ptrLike - | tei_model.qLike)+, + | tei_model.attributable + | tei_q)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -2473,12 +2471,12 @@ tei_ptr = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_ref = @@ -2508,12 +2506,12 @@ tei_ref = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_list = @@ -3176,8 +3174,8 @@ tei_sp = | tei_model.pLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike), - tei_model.global*)+), + | tei_model.attributable), + (tei_model.global* | tei_q))+), tei_att.global.attributes, tei_att.ascribed.directed.attributes, empty @@ -4264,7 +4262,7 @@ tei_revisionDesc = } tei_change = - ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] element change { tei_macro.specialPara, tei_att.ascribed.attributes, @@ -4281,7 +4279,7 @@ tei_change = } tei_listChange = - ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] element listChange { (tei_desc*, (tei_listChange | tei_change)+), tei_att.global.attributes, @@ -5291,6 +5289,122 @@ tei_standOff = tei_att.declaring.attributes, empty } +tei_listAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element listAnnotation { + (tei_model.headLike*, + tei_model.labelLike*, + (tei_model.annotationLike | tei_listAnnotation)+), + tei_att.global.attributes, + tei_att.typed.attributes, + tei_att.notated.attributes, + tei_att.declaring.attributes, + empty + } +tei_annotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element annotation { + (tei_respStmt*, + tei_revisionDesc*, + tei_licence*, + tei_model.annotationPart.body*), + tei_att.global.attribute.n, + tei_att.global.attribute.xmllang, + tei_att.global.attribute.xmlbase, + tei_att.global.attribute.xmlspace, + tei_att.global.rendition.attribute.rend, + tei_att.global.rendition.attribute.style, + tei_att.global.rendition.attribute.rendition, + tei_att.global.linking.attribute.corresp, + tei_att.global.linking.attribute.synch, + tei_att.global.linking.attribute.sameAs, + tei_att.global.linking.attribute.copyOf, + tei_att.global.linking.attribute.next, + tei_att.global.linking.attribute.prev, + tei_att.global.linking.attribute.exclude, + tei_att.global.linking.attribute.select, + tei_att.global.responsibility.attribute.cert, + tei_att.global.responsibility.attribute.resp, + tei_att.global.source.attribute.source, + tei_att.pointing.attribute.targetLang, + tei_att.pointing.attribute.evaluate, + + ## (identifier) provides a unique identifier for the element bearing the attribute. + attribute xml:id { xsd:ID }, + + ## specifies the destination of the reference by supplying one or more URI References + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } foo_cit = ## This element encodes a new citation (CASE 1) diff --git a/Test/expected-results/test35.rnc b/Test/expected-results/test35.rnc index 487cbb770..62f1b2872 100644 --- a/Test/expected-results/test35.rnc +++ b/Test/expected-results/test35.rnc @@ -24,7 +24,7 @@ tei_macro.limitedContent = tei_macro.phraseSeq = (text | tei_model.gLike - | tei_model.qLike + | tei_model.attributable | tei_model.phrase | tei_model.global)* tei_macro.phraseSeq.limited = @@ -1252,12 +1252,12 @@ tei_model.nameLike.agent_sequenceOptional = tei_name? tei_model.nameLike.agent_sequenceOptionalRepeatable = tei_name* tei_model.nameLike.agent_sequenceRepeatable = tei_name+ tei_model.segLike = tei_seg -tei_model.hiLike = tei_hi -tei_model.hiLike_alternation = tei_hi -tei_model.hiLike_sequence = tei_hi -tei_model.hiLike_sequenceOptional = tei_hi? -tei_model.hiLike_sequenceOptionalRepeatable = tei_hi* -tei_model.hiLike_sequenceRepeatable = tei_hi+ +tei_model.hiLike = tei_hi | tei_q +tei_model.hiLike_alternation = tei_hi | tei_q +tei_model.hiLike_sequence = tei_hi, tei_q +tei_model.hiLike_sequenceOptional = tei_hi?, tei_q? +tei_model.hiLike_sequenceOptionalRepeatable = tei_hi*, tei_q* +tei_model.hiLike_sequenceRepeatable = tei_hi+, tei_q+ tei_model.emphLike = tei_foreign | tei_emph @@ -1509,27 +1509,20 @@ tei_model.quoteLike_sequenceOptional = tei_quote?, tei_cit?, foo_cit? tei_model.quoteLike_sequenceOptionalRepeatable = tei_quote*, tei_cit*, foo_cit* tei_model.quoteLike_sequenceRepeatable = tei_quote+, tei_cit+, foo_cit+ -tei_model.qLike = - tei_model.quoteLike | tei_said | tei_q | tei_floatingText -tei_model.qLike_alternation = - tei_model.quoteLike_alternation | tei_said | tei_q | tei_floatingText -tei_model.qLike_sequence = - tei_model.quoteLike_sequence, tei_said, tei_q, tei_floatingText -tei_model.qLike_sequenceOptional = - tei_model.quoteLike_sequenceOptional?, - tei_said?, - tei_q?, - tei_floatingText? -tei_model.qLike_sequenceOptionalRepeatable = +tei_model.attributable = + tei_model.quoteLike | tei_said | tei_floatingText +tei_model.attributable_alternation = + tei_model.quoteLike_alternation | tei_said | tei_floatingText +tei_model.attributable_sequence = + tei_model.quoteLike_sequence, tei_said, tei_floatingText +tei_model.attributable_sequenceOptional = + tei_model.quoteLike_sequenceOptional?, tei_said?, tei_floatingText? +tei_model.attributable_sequenceOptionalRepeatable = tei_model.quoteLike_sequenceOptionalRepeatable*, tei_said*, - tei_q*, tei_floatingText* -tei_model.qLike_sequenceRepeatable = - tei_model.quoteLike_sequenceRepeatable+, - tei_said+, - tei_q+, - tei_floatingText+ +tei_model.attributable_sequenceRepeatable = + tei_model.quoteLike_sequenceRepeatable+, tei_said+, tei_floatingText+ tei_model.respLike = tei_author | tei_editor @@ -1669,8 +1662,8 @@ tei_model.inter = | tei_model.labelLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike -tei_model.common = tei_model.divPart | tei_model.inter + | tei_model.attributable +tei_model.common = tei_model.divPart | tei_model.inter | tei_q tei_model.phrase = tei_model.segLike | tei_model.highlighted @@ -1699,6 +1692,8 @@ tei_model.div4Like = tei_div4 tei_model.div5Like = tei_div5 tei_model.div6Like = tei_div6 tei_model.div7Like = tei_div7 +tei_model.annotationLike = tei_note | tei_annotation +tei_model.annotationPart.body = tei_ptr | tei_ref | tei_note tei_model.applicationLike = tei_application tei_model.teiHeaderPart = tei_encodingDesc | tei_profileDesc | tei_xenoData @@ -1736,8 +1731,10 @@ tei_model.standOffPart = tei_model.global.meta | tei_model.biblLike | tei_model.listLike + | tei_model.annotationLike | tei_listChange | tei_seg + | tei_listAnnotation tei_att.formula.attributes = tei_att.formula.attribute.formula tei_att.formula.attribute.formula = [ @@ -2029,7 +2026,8 @@ tei_cit = | tei_model.global | tei_model.graphicLike | tei_model.ptrLike - | tei_model.qLike)+, + | tei_model.attributable + | tei_q)+, tei_att.global.attributes, tei_att.typed.attributes, empty @@ -2466,12 +2464,12 @@ tei_ptr = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_ref = @@ -2501,12 +2499,12 @@ tei_ref = "\x{a}" ~ " " ], + tei_att.cReferencing.attributes, + tei_att.declaring.attributes, tei_att.global.attributes, - tei_att.pointing.attributes, tei_att.internetMedia.attributes, + tei_att.pointing.attributes, tei_att.typed.attributes, - tei_att.declaring.attributes, - tei_att.cReferencing.attributes, empty } tei_list = @@ -3169,8 +3167,8 @@ tei_sp = | tei_model.pLike | tei_model.listLike | tei_model.stageLike - | tei_model.qLike), - tei_model.global*)+), + | tei_model.attributable), + (tei_model.global* | tei_q))+), tei_att.global.attributes, tei_att.ascribed.directed.attributes, empty @@ -4240,7 +4238,7 @@ tei_revisionDesc = } tei_change = - ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions] + ## documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions] element tei:change { tei_macro.specialPara, tei_att.ascribed.attributes, @@ -4257,7 +4255,7 @@ tei_change = } tei_listChange = - ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions] + ## groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions] element tei:listChange { (tei_desc*, (tei_listChange | tei_change)+), tei_att.global.attributes, @@ -5267,6 +5265,122 @@ tei_standOff = tei_att.declaring.attributes, empty } +tei_listAnnotation = + [ + a:documentation [ + "contains a list of annotations, typically encoded as " + ns1:code [ "" ] + ", " + ns1:code [ "" ] + ", or " + ns1:code [ "" ] + ", possibly organized with nested " + ns1:code [ "" ] + " elements. [16.10. The standOff Container]" + ] + ] + element tei:listAnnotation { + (tei_model.headLike*, + tei_model.labelLike*, + (tei_model.annotationLike | tei_listAnnotation)+), + tei_att.global.attributes, + tei_att.typed.attributes, + tei_att.notated.attributes, + tei_att.declaring.attributes, + empty + } +tei_annotation = + [ + a:documentation [ + "represents an annotation following the " + ns1:a [ + href = "#WADM" + "Web\x{a}" ~ + " Annotation Data Model" + ] + ". [16.10. The standOff Container]" + ] + ] + element tei:annotation { + (tei_respStmt*, + tei_revisionDesc*, + tei_licence*, + tei_model.annotationPart.body*), + tei_att.global.attribute.n, + tei_att.global.attribute.xmllang, + tei_att.global.attribute.xmlbase, + tei_att.global.attribute.xmlspace, + tei_att.global.rendition.attribute.rend, + tei_att.global.rendition.attribute.style, + tei_att.global.rendition.attribute.rendition, + tei_att.global.linking.attribute.corresp, + tei_att.global.linking.attribute.synch, + tei_att.global.linking.attribute.sameAs, + tei_att.global.linking.attribute.copyOf, + tei_att.global.linking.attribute.next, + tei_att.global.linking.attribute.prev, + tei_att.global.linking.attribute.exclude, + tei_att.global.linking.attribute.select, + tei_att.global.responsibility.attribute.cert, + tei_att.global.responsibility.attribute.resp, + tei_att.global.source.attribute.source, + tei_att.pointing.attribute.targetLang, + tei_att.pointing.attribute.evaluate, + + ## (identifier) provides a unique identifier for the element bearing the attribute. + attribute xml:id { xsd:ID }, + + ## specifies the destination of the reference by supplying one or more URI References + attribute target { + list { xsd:anyURI+ } + }, + + ## + attribute motivation { + list { + ( + ## intent is to assess the target resource in some way, rather than simply make a comment about it + "assessing" + | + ## intent is to create a bookmark to the target or part thereof + "bookmarking" + | + ## intent is to classify the target in some way + "classifying" + | + ## intent is to comment about the target + "commenting" + | + ## intent is to describe the target, rather than (for example) comment on it + "describing" + | + ## intent is to request an edit or a change to the target resource + "editing" + | + ## intent is to highlight the target resource or a segment thereof + "highlighting" + | + ## intent is to assign an identity to the target + "identifying" + | + ## intent is to link to a resource related to the target + "linking" + | + ## intent is to assign some value or quality to the target + "moderating" + | + ## intent is to ask a question about the target + "questioning" + | + ## intent is to reply to a previous statement, either an annotation or another resource + "replying" + | + ## intent is to associate a tag with the target + "tagging")+ + } + }?, + empty + } foo_cit = ## This element encodes a citation according to the foo standard. diff --git a/Test/expected-results/testdrama.compiled.xml b/Test/expected-results/testdrama.compiled.xml index 96f52d2b3..6e5bb060a 100644 --- a/Test/expected-results/testdrama.compiled.xml +++ b/Test/expected-results/testdrama.compiled.xml @@ -15,7 +15,7 @@ - + provides attributes for elements representing speech or action that can be ascribed to a specific individual. 특정 개인의 대화 또는 행위를 표시하는 요소에 대한 속성을 제공한다. @@ -75,7 +75,7 @@ 3.3.3. Quotation 8.3. Elements Unique to Spoken Texts - + provides attributes for elements representing speech or action that can be directed at a group or individual. @@ -122,7 +122,7 @@ 3.3.3. Quotation 8.3. Elements Unique to Spoken Texts - + provides attributes which can be used to associate a representation such as a name or title with canonical information about the object being named or referenced. fournit des attributs qui peuvent être utilisés pour @@ -196,7 +196,7 @@ 13.1.1. Linking Names and Their Referents - + provides attributes for describing numerical ranges. @@ -238,7 +238,7 @@ The MS. was lost in transmission by mail from Philadelphia to the Graphic office, New York. - + provides attributes for describing the size of physical objects. 물리적 대상의 크기를 기술하는 속성을 제공한다. 提供符合某種度量值的屬性值。 @@ -392,7 +392,7 @@ The MS. was lost in transmission by mail from - + provides an attribute to indicate the hand in which the content of an element was written in the source being transcribed. @@ -422,7 +422,7 @@ The MS. was lost in transmission by mail from 1.3.1. Attribute Classes - + provides an attribute to indicate whether or not the element concerned is considered to mark the end of an orthographic token in the same way as whitespace. @@ -485,7 +485,7 @@ of any adjacent whitespace 3.10.3. Milestone Elements - + provides an attribute which may be used to supply a canonical reference as a means of identifying the target of a pointer. @@ -536,7 +536,7 @@ Elements

    16.2.5. Canonical References 節での正規化参照を解決するためのアルゴリズムが適用される時にその結果が対象への正しいURI参照となるように, cRef の値は作られるべきである

    refsDecldecls 属性とともに示されてもよい.現行のガイドラインが ptr 要素に渡すのは,単一の符号化された正規化参照のみである.

    -
    + provides attributes for normalization of elements that contain datable events conforming to the W3C XML Schema Part 2: Datatypes Second Edition. @@ -756,7 +756,7 @@ Elements 3.5.4. Dates and Times 13.3.7. Dates and Times - + provides attributes for normalization of elements that contain dates, times, or datable events. 날짜, 시간 또는 날짜 명기 사건을 포함하는 요소의 규격화에 대한 속성을 제공한다. @@ -882,7 +882,7 @@ Elements 3.5.4. Dates and Times 13.3.7. Dates and Times - + provides the dcr:datacat and dcr:ValueDatacat attributes which are used to align XML elements or attributes with the appropriate Data Categories (DCs) defined by the ISO 12620:2009 @@ -932,7 +932,7 @@ Elements 9.5.2. Lexical View 18.3. Other Atomic Feature Values - + provides attributes for those elements in the TEI header which may be independently selected by means of the special purpose decls attribute. 특별한 목적의 decls 속성을 통해서 독립적으로 선택될 수 있는 TEI 헤더의 요소에 대한 속성을 제공한다. @@ -1016,7 +1016,7 @@ Information with a Textにおいて詳しく規定されている. 15.3. Associating Contextual Information with a Text - + provides attributes for elements which may be independently associated with a particular declarable element within the header, thus overriding the inherited default for that element. 헤더에서 선언 가능한 어떤 요소와 독립적으로 연관될 수 있는 속성을 제공한다. 이를 통해 그 요소의 상속된 기본값은 무효가 된다. 提供元素屬性,這些元素可單獨與標頭中一特定可宣告元素相關連,因此超越該特定元素本身的預設值。 @@ -1070,7 +1070,7 @@ Information with a Text 15.3. Associating Contextual Information with a Text - + provides an attribute for representing fragmentation of a structural element, typically as a consequence of some overlapping hierarchy. @@ -1127,7 +1127,7 @@ Information with a Text

    IM,またはFという値は,要素の再構成方法が明らかな場合にのみ使用する。

    -
    + provides attributes common to all elements which behave in the same way as divisions. 구역과 동일한 방식으로 처리되는 모든 요소에 공통적인 속성을 제공한다. 提供一組屬性,通用於所有與區段作用相 @@ -1262,7 +1262,7 @@ l'échantillon inconnue 4. Default Text Structure - + provides attributes for use on metadata elements describing the status of a document. 文書のステータスを記述するメタデータ要素用の属性を提供する. @@ -1303,7 +1303,7 @@ associated with a dated element, at the time indicated. - + provides attributes indicating the agent responsible for some aspect of the text, the markup or something asserted by the markup, and the degree of certainty @@ -1395,7 +1395,7 @@ associated with a dated element, at the time indicated. 17.3. Spans and Interpretations 13.1.1. Linking Names and Their Referents - + provides attributes describing the nature of an encoded scholarly intervention or interpretation of any kind. 어떤 유형의 부호화된 학문적 간섭 또는 해석의 특성을 기술하는 속성을 제공한다. @@ -1492,7 +1492,7 @@ associated with a dated element, at the time indicated. 13.3.2. The Person Element 11.3.1.1. Core Elements for Transcriptional Work - + provides rendering attributes common to all elements in the TEI encoding scheme. TEIの符号化スキーマにおけるすべての要素に共通するレンダリング属性を提供する。 @@ -1660,7 +1660,7 @@ the TEI header.

    1.3.1.1.3. Rendition Indicators -
    + provides an attribute used by elements to point to an external source. 外部ソースを参照する要素によって用いられる属性を示す。 @@ -1730,7 +1730,7 @@ the TEI header.

    3.3.3. Quotation 8.3.4. Writing -
    + provides attributes common to all elements in the TEI encoding scheme. TEI 부호화 스키마의 모든 요소에 공통 속성을 제공한다. 提供一組屬性,通用於TEI編碼標準中的所有元素。 @@ -1980,7 +1980,7 @@ and that a single TEI document may contain texts in many languages.

    1.3.1.1. Global Attributes -
    + provides attributes describing aspects of the hand in which a manuscript is written. 원고가 쓰여진 필적의 측면을 기술하는 속성을 제공한다. @@ -2114,7 +2114,7 @@ and similarly, either scribe or 11.3.2.1. Document Hands - + provides attributes for specifying the type of a computer resource using a standard taxonomy. 표준 분류법을 사용하는 컴퓨터 자원의 유형을 명시하는 속성을 제시한다. @@ -2183,7 +2183,7 @@ ressource informatique selon une taxinomie normalisée. 使用できるタイプ名の管理は,IANAで行われている.

    -
    + provides attributes for specifying display and related properties of external media. @@ -2204,7 +2204,7 @@ ressource informatique selon une taxinomie normalisée. - + provides attributes by which a resource (such as an externally held media file) may be located. @@ -2218,7 +2218,7 @@ ressource informatique selon une taxinomie normalisée. - + provides attributes to represent a regularized or normalized measurement. 정상화 또는 규격화된 측정 방식을 표상하는 속성을 제시한다. 提供屬性,代表一般化或規格化的度量。 @@ -2659,7 +2659,7 @@ baby? linescharactersも使用してもよい.

    -
    + provides attributes common to elements which refer to named persons, places, organizations etc. 사람, 장소, 조직 등의 이름을 지시하는 요소에 공통적 속성을 제공한다. 提供屬性,通用於參照到人物、地點、組織等的元素。 @@ -2722,7 +2722,7 @@ this name in the form of a set of whitespace-separated values, for example the o 3.5.1. Referring Strings 13.3.6. Names and Nyms - + provides an attribute to indicate any specialised notation used for element content. @@ -2740,7 +2740,7 @@ this name in the form of a set of whitespace-separated values, for example the o - + provides attributes for describing where on the source page or object a textual element appears. 원본 페이지 또는 대상에서 텍스트 요소가 나타나는 위치를 기술하기 위한 속성을 제공한다. @@ -2855,7 +2855,7 @@ this name in the form of a set of whitespace-separated values, for example the o 3.4.3. Additions, Deletions, and Omissions 11.3.1.4. Additions and Deletions - + provides attributes which can be used to classify or subclassify elements in any way. 요소의 분류 또는 하위분류에서 사용될 수 있는 속성을 제공한다. 提供可依任何方法將元素分類或次要分類的一般屬性。 @@ -2966,7 +2966,7 @@ sub-classification for the element additional to that provided by its 8.3. Elements Unique to Spoken Texts 23.3.1.3. Modification of Attribute and Attribute Value Lists - + provides a set of attributes used by all elements which point to other elements by means of one or more URI references. 하나 이상의 URI 참조를 통해서 다른 요소를 가리키는 모든 요소에 의해 사용된 속성 집합을 정의한다. @@ -3104,7 +3104,7 @@ sub-classification for the element additional to that provided by its 1.3.1.1.2. Language Indicators 3.6. Simple Links and Cross-References - + provides a set of attributes common to all elements which enclose groups of pointer elements. 포인터 요소군을 포함하는 모든 요소에 공통적인 속성 집합을 정의한다. @@ -3212,7 +3212,7 @@ sub-classification for the element additional to that provided by its 16. Linking, Segmentation, and Alignment - + provides attributes for elements used for arbitrary segmentation. 임의적 분할을 위해 사용된 요소의 값을 제공한다. 提供屬性,用於有隨機分割功用的元素。 @@ -3246,7 +3246,7 @@ subject, predicate etc. may be more appropriate. Such constraints will typically 16.3. Blocks, Segments, and Anchors 17.1. Linguistic Segment Categories - + provides attributes for elements in lists or groups that are sortable, but whose sorting key cannot be derived mechanically from the element content. @@ -3304,7 +3304,7 @@ subject, predicate etc. may be more appropriate. Such constraints will typically 9.1. Dictionary Body and Overall Structure - + provides attributes identifying the source edition from which some encoded feature derives. fournit des attributs identifiant l'édition source dont provient une quelconque caractéristique encodée. @@ -3357,7 +3357,7 @@ subject, predicate etc. may be more appropriate. Such constraints will typically con-sciousness;

    -
    + provides attributes for elements which delimit a span of text by pointing mechanisms rather than by enclosing it. 포함보다는 포인터 메카니즘을 통하여 구분된 텍스트 구간을 나타내는 요소의 속성을 제공한다. 提供元素的屬性,這些元素使用參照機制來限定某一文字段,而非包含此文字段。 @@ -3420,7 +3420,7 @@ The element indicated by @spanTo () must follow 11.3.1.4. Additions and Deletions 1.3.1. Attribute Classes - + provides attributes to specify the name of a formal definition language used to provide formatting or rendition information. @@ -3496,7 +3496,7 @@ If no value for the @scheme attribute is provided, then the default assumption s - + provides attributes common to those elements which have a duration in time, expressed either absolutely or by reference to an alignment map. @@ -3572,7 +3572,7 @@ If no value for the @scheme attribute is provided, then the default assumption s 8.3.5. Temporal Information - + provides attributes specific to elements encoding authorial or scribal intervention in a text when transcribing manuscript or similar sources. @@ -3780,7 +3780,7 @@ dans lequel les traits encodés portant cet attribut sont supposés être apparu 11.3.1.4. Additions and Deletions - + provides attributes used to indicate the status of a translatable portion of an ODD document. ODD 문서의 번역 가능 부분의 상태를 나타내는 속성을 제시한다. @@ -3815,7 +3815,7 @@ portion of an ODD document. - + provides attributes for specifying the specific part of a bibliographic item being cited. 引用された書誌の特定箇所を指示するための属性を提供する. @@ -3914,7 +3914,7 @@ portion of an ODD document. 1.3.1. Attribute Classes - + groups elements which contain names of individuals or corporate bodies. 개인 또는 기업체의 이름을 포함하는 요소를 모아 놓는다. @@ -3947,7 +3947,7 @@ or corporate bodies. 3.5. Names, Numbers, Dates, Abbreviations, and Addresses - + groups elements used for arbitrary segmentation. 임의적 분할에 사용되는 요소를 모아 놓는다. 匯集用於隨機分割的元素。 @@ -3984,7 +3984,7 @@ or corporate bodies. 16.3. Blocks, Segments, and Anchors 17.1. Linguistic Segment Categories - + groups phrase-level elements which are typographically distinct but to which no specific function can be attributed. 인쇄상 구분되나 특정 기능이 없는 구 층위 요소를 모아 놓는다. @@ -4004,7 +4004,7 @@ or corporate bodies. 3.3. Highlighting and Quotation - + groups phrase-level elements which are typographically distinct and to which a specific function can be attributed. 인쇄상 구분되며 특정 기능을 수행하는 구-층위 요소를 모아 놓는다. @@ -4021,7 +4021,7 @@ or corporate bodies. 3.3. Highlighting and Quotation - + groups phrase-level elements which are typographically distinct. 인쇄상 구분되는 구-층위 요소를 모아 놓는다. 匯集與顯目標示相關的詞組層次元素。 @@ -4038,7 +4038,7 @@ or corporate bodies. 3.3. Highlighting and Quotation - + groups elements containing temporal expressions. 시간 표현을 포함하는 요소를 모아 놓는다. 匯集包含時間格式的元素。 @@ -4057,7 +4057,7 @@ or corporate bodies. 3.5.4. Dates and Times 13.3.7. Dates and Times - + groups elements which denote a number, a quantity, a measurement, or similar piece of text that conveys some numerical meaning. 숫자, 양, 측정값 등 수치적 의미를 드러내는 텍스트 부분을 가리키는 요소를 모아 놓는다. @@ -4076,7 +4076,7 @@ or corporate bodies. 3.5.3. Numbers and Measures - + groups elements containing examples or illustrations. 예 또는 실례를 포함하는 요소를 모아 놓는다. 匯集包含範例的元素 @@ -4092,7 +4092,7 @@ Measures 22.1.1. Phrase Level Terms - + groups elements containing images, formulae, and similar objects. 이미지, 수식, 그리고 유사 대상을 포함하는 요소를 모아 놓는다. @@ -4108,7 +4108,7 @@ Measures 3.9. Graphics and Other Non-textual Components - + groups elements which can appear only as part of a place name. 장소명의 부분으로서만 나타날 수 있는 요소를 모아 놓는다. agrupa los elementos que pueden aparecer solamente como @@ -4123,7 +4123,7 @@ Measures 13.2.3. Place Names - + groups phrase-level elements used in manuscript description. 원고 기술에서 사용되는 구-층위 요소를 모아 놓는다. 匯集描述寫本的元素 @@ -4141,7 +4141,7 @@ Measures 10. Manuscript Description - + groups phrase-level elements for simple editorial interventions that may be useful both in transcribing and in authoring. 전사와 저작 모두에서 유용할 수 있는 간단한 편집 간섭에 대한 구-층위 요소를 모아 놓는다. @@ -4160,7 +4160,7 @@ in transcribing and in authoring. 3.4. Simple Editorial Changes - + groups phrase-level elements used for editorial transcription of pre-existing source materials. 앞서 존재하는 원본 자료의 편집상 전사에 사용되는 구-층위 요소를 모아 놓는다. @@ -4178,7 +4178,7 @@ in transcribing and in authoring. 3.4. Simple Editorial Changes - + groups phrase-level elements for simple editorial correction and transcription. 간단한 편집상 수정과 전사에 대한 구-층위 요소를 모아 놓는다. 匯集的詞組層次元素用於簡單的編輯更正或轉錄 @@ -4195,7 +4195,7 @@ in transcribing and in authoring. 3.4. Simple Editorial Changes - + groups elements used for purposes of location and reference. 위치 및 참조에 대한 요소를 모아 놓는다. 匯集的元素用於位置和參照 @@ -4214,7 +4214,7 @@ in transcribing and in authoring. 3.6. Simple Links and Cross-References - + groups phrase-level elements which may appear within verse only. 운문 내에서만 나타날 수 있는 구-층위 요소를 모아 놓는다. 匯集僅可能出現於韻文內的詞組層次元素。 @@ -4231,7 +4231,7 @@ in transcribing and in authoring. 6.2. Components of the Verse Line - + groups globally available elements which describe the status of other elements. 다른 요소의 상태를 기술하며, 전체적으로 이용가능한 요소를 모아 놓는다. 匯集描述其他元素狀態的空白元素,例如連結或抽象詮釋,或者提供正確度等,且空白元素可能出現於文件任一處。 @@ -4281,7 +4281,7 @@ in transcribing and in authoring. 1.3. The TEI Class System - + groups milestone-style elements used to represent reference systems. 참조 체계를 표상하는 이정표 유형의 요소를 모아 놓는다. @@ -4300,7 +4300,7 @@ elements used to represent reference systems. 3.10.3. Milestone Elements - + groups elements used to represent individual non-Unicode characters or glyphs. 개별 비유니코드 문자 또는 그림문자를 표상하는 요소를 모아 놓는다. 匯集的元素穿插於正規文本中,代表非統一碼項目。 @@ -4312,7 +4312,7 @@ Elements rapresentano oggetti non Unicode - + groups elements which generate declarations in some markup language in ODD documents. ODD 문서에서 마크업 언어로 선언을 생성하는 요소를 모아 놓는다. 匯集的元素使ODD文件內某些標記語言中產生宣告。 @@ -4327,7 +4327,7 @@ Elements - + groups phrase-level elements used to encode XML constructs such as element names, attribute names, and attribute values 요소명, 속성명, 그리고 속성값과 같이 XML 구성물을 부호화하는 구-층위 요소를 모아 놓는다. @@ -4347,7 +4347,7 @@ Elements 22. Documentation Elements - + groups elements for referring to specification elements. 명시 요소를 참조하는 요소를 모아 놓는다. 匯集的元素參照到細節元素 @@ -4362,7 +4362,7 @@ Elements 22. Documentation Elements - + groups elements containing a bibliographic description. 서지 기술을 포함하는 요소를 모아 놓는다. 匯集包含書目描述的元素。 @@ -4380,7 +4380,7 @@ Elements 3.11. Bibliographic Citations and References - + groups elements used to provide a title or heading at the start of a text division. 텍스트 구역의 시작부에서 제목 또는 표제를 제시하는 요소를 모아 놓는다. @@ -4392,7 +4392,7 @@ un intitulé au début d'une division de texte - + groups elements used to gloss or explain other parts of a document. 문서의 다른 부분을 해설 또는 설명하는 요소를 모아 놓는다. agrupa los elementos usados para glosar o para explicar otras partes de un documento. @@ -4403,7 +4403,7 @@ expliquer d'autres parties d'un document. - + groups list-like elements. 목록 같은 요소를 모아 놓는다. 匯集所有類似列表的元素 @@ -4419,7 +4419,7 @@ expliquer d'autres parties d'un document. 3.7. Lists - + groups globally-available note-like elements. 전체적으로 이용 가능한 주석 같은 요소를 모아 놓는다. 匯集所有類似註解的元素。 @@ -4435,7 +4435,7 @@ expliquer d'autres parties d'un document. 3.8. Notes, Annotation, and Indexing - + groups elements representing metrical components such as verse lines. 운문 행 같이 운율적 성분을 표상하는 요소를 모아 놓는다. 匯集代表韻律組件的元素,例如詩行。 @@ -4447,7 +4447,7 @@ expliquer d'autres parties d'un document. - + groups paragraph-like elements. 문단 같은 요소를 모아 놓는다. 該元素集是以交換資料為目的段落。 @@ -4461,7 +4461,7 @@ expliquer d'autres parties d'un document. - + groups elements containing stage directions or similar things defined by the module for performance texts. 공연 텍스트의 모듈에 의해 정의된 무대 지시 또는 유사 내용을 포함하는 요소를 모아 놓는다. @@ -4495,7 +4495,7 @@ expliquer d'autres parties d'un document. 7.3. Other Types of Performance Text - + groups non-morphological elements appearing within a dictionary entry. 사전 표제어 내의 어떤 층위에서도 나타날 수 있는 요소를 모아 놓는다. 匯集所有專為字典所定義的元素。 @@ -4507,7 +4507,7 @@ niveau dans une entrée de dictionnaire. 9.1. Dictionary Body and Overall Structure - + groups globally available elements which perform a specifically editorial function. 명확한 편집 기능을 수행하며, 전체적으로 이용 가능한 요소를 모아 놓는다. 匯集的空白元素有特殊的編輯功能,例如指出來源文件中一個文字段的附加、刪除、或缺漏的起始點。 @@ -4526,7 +4526,7 @@ niveau dans une entrée de dictionnaire. 1.3. The TEI Class System - + groups paragraph-level elements appearing directly within divisions. 구역 내에서 직접적으로 나타나는 문단-층위 요소를 모아 놓는다. 匯集可出現於段落與其他區塊之間,而非出現於兩者之內的元素。 @@ -4557,7 +4557,7 @@ niveau dans une entrée de dictionnaire. 1.3. The TEI Class System - + groups elements which form part of a place name. 장소명의 부분을 형성하는 요소를 모아 놓는다. 匯集構成地點名稱部分的元素。 @@ -4574,7 +4574,7 @@ niveau dans une entrée de dictionnaire. 13.2.3. Place Names - + groups elements which describe changing states of a place. 장소의 변화하는 상태를 기술하는 요소를 모아 놓는다. agrupa los elementos que describen aspectos variables de @@ -4586,7 +4586,7 @@ niveau dans une entrée de dictionnaire. - + groups the child elements of a publicationStmt element of the TEI header that indicate an authorising agent. @@ -4609,7 +4609,7 @@ niveau dans une entrée de dictionnaire. 2.2.4. Publication, Distribution, Licensing, etc. - + groups the agency-specific child elements of the publicationStmt element of the TEI header. TEI 헤더의 publicationStmt 요소 내에 나타날 수 있는 요소를 모아 놓는다. @@ -4628,23 +4628,23 @@ niveau dans une entrée de dictionnaire. 2.2.4. Publication, Distribution, Licensing, etc. - + groups elements such as licences and paragraphs of text which may appear as part of an availability statement regroupe des éléments tels que les licences ou les paragraphes indiquant la disponibilité d'un ouvrage. 2.2.4. Publication, Distribution, Licensing, etc. - + groups elements which are used to indicate uncertainty or precision of other elements. - + groups elements which contain a description of their function. regroupe des éléments qui contiennent une description de la fonction d'un élément. - + groups elements which provide an alternative name, explanation, or description for any markup construct. 마크업 구성에 대한 대체명, 설명 또는 기술을 제시하는 요소를 모아 놓는다. @@ -4656,7 +4656,7 @@ niveau dans une entrée de dictionnaire. descripción o explicación alternativa a elementos de codificación. raggruppa elementi che assegnano un nome, descrizione o spiegazione alternativi a elementi di codifica - + groups elements used to directly contain quotations. 인용을 직접 포함하는 요소를 모아 놓는다. 匯集直接包含引言的元素。 @@ -4667,28 +4667,21 @@ niveau dans une entrée de dictionnaire. raggruppa elementi che contengono direttamente le citazioni - + - - groups elements related to highlighting which can appear either within or between - chunk-level elements. - 덩어리 층위 요소 내에서 또는 그 사이에서 나타날 수 있는 주요 부분과 관련된 요소를 모아 놓는다. - 匯集和顯目標示相關、且出現於方塊性層次元素內或之間的元素。 - 塊レベル要素内または間で出現可能な,強調部分と関連する要素をまとめる. - regroupe des éléments destinés à la mise en valeur, qui - peuvent apparaître à l'intérieur ou entre des éléments de niveau fragment. - agrupa elementos relativos al evidenciado que aparece al - interno de o entre elementos a nivel de fragmentos de texto. - raggruppa elementi relativi all'evidenziatura che - appaiono all'interno di o tra elementi a livello di porzioni di testo + + groups elements that contain a word or phrase that can be attributed to a source. + gruppiert Elemente, die ein Wort oder eine Phrase enthalten, welche einer Quelle zugeschrieben werden können. + - 3.3. Highlighting and Quotation + 3.3.3. Quotation + 4.3.2. Floating Texts - + groups elements which are used to indicate intellectual or other significant responsibility, for example within a bibliographic element. 예를 들어 서지 요소 내에서 지적 책임을 나타내는 요소를 모아 놓는다. @@ -4705,7 +4698,7 @@ niveau dans une entrée de dictionnaire. - + groups elements which can appear at either top or bottom of a textual division. 텍스트 구역 상단 또는 하단에 나타날 수 있는 요소를 모아 놓는다. @@ -4722,7 +4715,7 @@ niveau dans une entrée de dictionnaire. 4.2. Elements Common to All Divisions - + groups elements which can occur only at the beginning of a text division. 텍스트 구역의 시작부에만 나타날 수 있는 요소를 모아 놓는다. agrupa los elementos que pueden aparecer solamente al @@ -4738,7 +4731,7 @@ niveau dans une entrée de dictionnaire. 4.6. Title Pages - + groups elements appearing at the beginning of a text division. 텍스트 구역 시작에 나타나는 요소를 모아 놓는다. @@ -4752,7 +4745,7 @@ division de texte. 4.2. Elements Common to All Divisions - + groups elements which appear at the level of divisions within front or back matter of performance texts only. 단지 공연 텍스트 앞쪽 자료 또는 뒤쪽 자료 내의 구역 층위에서 나타나는 요소를 모아 놓는다. @@ -4772,7 +4765,7 @@ division de texte. 7.1. Front and Back Matter - + groups paragraph-like elements which can occur as direct constituents of front matter. 앞쪽 자료의 직접 구성성분으로 나타날 수 있는 문단 같은 요소를 모아 놓는다. 未提供完整標題頁時,匯集的元素可顯示為正文前資訊的直接組成要素。 @@ -4786,7 +4779,7 @@ division de texte. 4.6. Title Pages - + groups elements which can occur only at the end of a text division. 텍스트 구역의 종료부에만 나타날 수 있는 요소를 모아 놓는다. @@ -4801,7 +4794,7 @@ fin d'une division de texte. 4.6. Title Pages - + groups elements appearing at the end of a text division. 텍스트 구역의 종료부에 나타타는 요소를 모아 놓는다. @@ -4817,7 +4810,7 @@ fin d'une division de texte. 4.2. Elements Common to All Divisions - + groups elements which can occur as direct constituents of a title page, such as docTitle, docAuthor, docImprint, or epigraph. docTitle, docAuthor, @@ -4838,7 +4831,7 @@ fin d'une division de texte. 4.6. Title Pages - + groups elements (other than choice itself) which can be used within a choice alternation. choice 대체 내에서 사용될 수 있는 (choice 외의) 요소를 @@ -4857,7 +4850,7 @@ fin d'une division de texte. 3.4. Simple Editorial Changes - + groups the bibliographic elements which occur inside imprints. 간기 내에 나타날 수 있는 서지 요소를 모아 놓는다. 匯集出現於版本說明內的書目元素。 @@ -4874,7 +4867,7 @@ fin d'une division de texte. 3.11. Bibliographic Citations and References - + groups component elements of the TEI header Category Description. regroupe des éléments composants de l'élément catDesc dans l'en-tête TEI. @@ -4885,7 +4878,7 @@ fin d'une division de texte. catDesc y que aparecen en numerosas ocasiones. raggruppa gli elementi utilizzati all'interno di catDesc e che appaiono più volte - + groups component elements of an entry in a cast list, such as dramatic role or actor's name. 극에서 역할 또는 배우의 이름과 같이 등장인물 목록에서 항목의 성분 요소를 모아 놓는다. 用於角色列表中一個項目內的元素,如戲劇角色或演員名稱 @@ -4897,7 +4890,7 @@ fin d'une division de texte. elementi utilizzati all'interno di una voce in una lista di personaggi, per esempio ruolo o nome dell'attore - + groups elements used to represent a postal or email address. 우편 또는 전자메일 주소를 나타내는 요소를 모아 놓는다. 匯集的詞組層次元素代表郵寄或電子郵件地址。 @@ -4915,7 +4908,7 @@ fin d'une division de texte. 1. The TEI Infrastructure - + groups elements which name or refer to a person, place, or organization. 인물, 장소, 또는 조직의 이름 또는 지시를 나타내는 요소를 모아 놓는다. 匯集的空白元素可出現於TEI文件內的任何位置。 @@ -4946,7 +4939,7 @@ fin d'une division de texte.

    日付欄,住所情報,責任表示等に現れる,名前を示す要素の親集合.

    -
    + groups elements which may appear at any point within a TEI text. TEI 텍스트 내의 어떤 지점에서 나타날 수 있는 요소를 모아 놓는다. TEIデータ内のどこでも出現可能な要素をまとめる. @@ -4959,7 +4952,7 @@ fin d'une division de texte. 1.3. The TEI Class System - + groups elements which represent components of a bibliographic description. 서지 기술의 성분을 표상하는 요소를 모아 놓는다. 匯集可出現於書目引用元素內的元素。 @@ -4973,7 +4966,7 @@ fin d'une division de texte. 3.11. Bibliographic Citations and References - + groups elements which appear at the level of divisions within front or back matter. 전면부 또는 후면부 자료 내에서 구역 층위에 나타나는 요소를 모아 놓는다. 匯集的元素出現於正文前或後資訊內的區段層次中。 @@ -4989,7 +4982,7 @@ fin d'une division de texte. 7.1. Front and Back Matter - + groups elements such as names or postal codes which may appear as part of a postal address. 우편 주소의 부분으로 나타날 수 있는 이름 또는 우편 번호와 같은 요소를 모아 놓는다. @@ -5004,7 +4997,7 @@ fin d'une division de texte. 3.5.2. Addresses - + groups phrase-level elements containing names, dates, numbers, measures, and similar data. 이름, 날짜, 수, 측정, 그리고 유사 데이터를 포함하는 구-층위 요소를 모아 놓는다. 匯集包含名稱、日期、數字、度量和類似數據的詞組層次元素。 @@ -5022,7 +5015,7 @@ fin d'une division de texte. 3.5. Names, Numbers, Dates, Abbreviations, and Addresses - + groups elements which can appear either within or between paragraph-like elements. 문단 같은 요소 내에서 또는 그 사이에서 나타날 수 있는 요소를 모아 놓는다. 匯集中間層次的元素:可出現於段落內與段落之間,或方塊性層次內與層次間。 @@ -5043,7 +5036,7 @@ fin d'une division de texte. 1.3. The TEI Class System - + groups common chunk- and inter-level elements. 공통적인 덩어리 및 상호 층위 요소를 모아 놓는다. 匯集通用的方塊性與中間層次元素。 @@ -5073,7 +5066,7 @@ fin d'une division de texte. 1.3. The TEI Class System - + groups elements which can occur at the level of individual words or phrases. 개별 단어 또는 구 층위에서 나타날 수 있는 요소를 모아 놓는다. 匯集的元素可出現於個人字詞層次上。 @@ -5101,7 +5094,7 @@ fin d'une division de texte. 1.3. The TEI Class System - + groups phrase-level elements excluding those elements primarily intended for transcription of existing sources. 존재하는 원본의 전사의 주요 목적에 해당하는 요소를 배제한 구 층위 요소를 모아 놓는다. @@ -5116,7 +5109,7 @@ fin d'une division de texte. 1.3. The TEI Class System - + groups elements used to represent un-numbered generic structural divisions. 숫자화되지 않은 일반 구조 구역을 표상하는 요소를 모아 놓는다. 匯集的元素代表未編號的一般結構性區段。 @@ -5127,7 +5120,7 @@ fin d'une division de texte. partizioni testuali generiche non numerate agrupa los elementos usados para representar divisiones estructurales recursivamente. - + groups elements used to represent a structural division which is generated rather than explicitly present in the source. 원본에 분명하게 나타났다기보다 생성된 구조적 구역을 표상하는 요소를 모아 놓는다. @@ -5139,7 +5132,7 @@ fin d'une division de texte. partizione testuale generata piuttosto che esplicitamente presente nella fonte agrupa elementos usados para representar divisiones estructurales que se generan explícitamente porque estan presentes en la fuente. - + groups top-level structural divisions. 최상위 층위 구조 구역을 모아 놓는다. 匯集頂端層次的結構性區段。 @@ -5148,7 +5141,7 @@ fin d'une division de texte. haut. raggruppa partizioni testuali di primo livello agrupa divisiones estructurales de nivel superior. - + groups second-level structural divisions. 이차 층위 구조 구역을 모아 놓는다. 匯集第二層次的結構性區段。 @@ -5156,7 +5149,7 @@ fin d'une division de texte. regroupe des divisions structurelles de deuxième niveau. raggruppa partizioni testuali di secondo livello agrupa divisiones estructurales de segundo nivel. - + groups third-level structural divisions. 삼차 층위 구조 구역을 모아 놓는다. 匯集第三層次的結構性區段。 @@ -5164,7 +5157,7 @@ fin d'une division de texte. regroupe des divisions structurelles de troisième niveau. raggruppa partizioni testuali di terzo livello agrupa divisiones estructurales de tercer nivel - + groups fourth-level structural divisions. 사차 층위 구조 구역을 모아 놓는다. 匯集第四層次的結構性區段。 @@ -5172,7 +5165,7 @@ fin d'une division de texte. regroupe des divisions structurelles de quatrième niveau. raggruppa partizioni testuali di quarto livello agrupa divisiones estructurales de cuarto nivel - + groups fifth-level structural divisions. 오차 층위 구조 구역을 모아 놓는다. 匯集第五層次的結構性區段。 @@ -5180,7 +5173,7 @@ fin d'une division de texte. regroupe des divisions structurelles de cinquième niveau. raggruppa partizioni testuali di quinto livello agrupa divisiones estructurales de quinto nivel - + groups sixth-level structural divisions. 육차 층위 구조 구역을 모아 놓는다. 匯集第六層次的結構性區段。 @@ -5188,7 +5181,7 @@ fin d'une division de texte. regroupe des divisions structurelles de sixième niveau. raggruppa partizioni testuali di sesto livello agrupa divisiones estructurales de sexto nivel - + groups seventh-level structural divisions. 칠차 층위 구조 구역을 모아 놓는다. 匯集第七層次的結構性區段。 @@ -5196,7 +5189,17 @@ fin d'une division de texte. regroupe des divisions structurelles de septième niveau. raggruppa partizioni testuali di settimo livello agrupa divisiones estructurales de séptimo nivel - + + groups elements used to represent annotations. + + + + + 16.10. The standOff Container + + + groups elements which may be used as an annotation body. + groups elements used to record application-specific information about a document in its header. 문서에 관한 애플리케이션 명시 정보를 헤더에 기록하는 요소를 모아 놓는다. @@ -5207,7 +5210,7 @@ fin d'une division de texte. l'en-tête TEI d'un document des informations d'applications spécifiques. raggruppa elementi utilizzati per registrare informazioni specifiche di un'applicazione e relative a un documento nell'intestazione corrispondente - + groups high level elements which may appear more than once in a TEI header. TEI 헤더에 한번 이상 출현하는 상위 층위 요소들을 모아 놓는다. 匯集可在teiHeader中使用並且可多次出現的元素 @@ -5220,7 +5223,7 @@ fin d'une division de texte. teiHeader y aparecen en diversas ocasiones. raggruppa gli elementi utilizzati all'interno di teiHeader e che appaiono più volte. - + groups elements which may be used inside sourceDesc and appear multiple times. regroupe des éléments que l'on peut utiliser plusieurs fois dans l'élément sourceDesc. sourceDesc 내부에 사용되어 여러 번 출현할 수 있는 요소들을 모아 놓는다. @@ -5232,7 +5235,7 @@ fin d'une division de texte. sourceDesc (descripción de la fuente) y que aparecen en diversas ocasiones. raggruppa gli elementi utilizzati all'interno di sourceDesc e che appaiono più volte. - + groups elements which may be used inside encodingDesc and appear multiple times. regroupe des éléments qui peuvent apparaître plusieurs fois dans @@ -5247,7 +5250,7 @@ fin d'une division de texte. encodingDesc (Descripción de la codificación) y que aparecen en diversas ocasiones. raggruppa gli elementi utilizzati all'interno di encodingDesc e che appaiono più volte. - + groups elements which may be used inside editorialDecl and appear multiple times. regroupe des éléments qui peuvent être employés dans l'élément editorialDecl et souvent à de nombreuses reprises. @@ -5262,7 +5265,7 @@ fin d'une division de texte. editorialDecl (declaración editorial) y que aparecen en diversas ocasiones. raggruppa gli elementi utilizzati all'interno di editorialDecl e che appaiono più volte. - + groups elements which may be used inside profileDesc and appear multiple times. regroupe des éléments que l'on peut utiliser plusieurs fois dans l'élément profileDesc. @@ -5273,9 +5276,9 @@ and appear multiple times. können. agrupa los elementos que pueden ser usados al interno de profileDesc y que aparecen en diversas ocasiones. raggruppa gli elementi utilizzati all'interno di profileDesc e che appaiono più volte. - + groups elements which may be used as children of standOff. - +
    paragraph content 문단 내용 段落內容 @@ -5306,7 +5309,7 @@ and appear multiple times. 1.3. The TEI Class System - + paragraph content 문단 내용 段落內容 @@ -5331,7 +5334,7 @@ and appear multiple times. 1.3. The TEI Class System - + phrase sequence 구 연쇄 詞組序列 @@ -5352,7 +5355,7 @@ and appear multiple times. - + @@ -5361,7 +5364,7 @@ and appear multiple times. 1.4.1. Standard Content Models - + limited phrase sequence 한정된 구 연쇄 限定詞組序列 @@ -5389,7 +5392,7 @@ used for transcribing extant documents. 1.4.1. Standard Content Models - + 'special' paragraph content 특별 문단 내용 「特殊」段落內容 @@ -5430,17 +5433,17 @@ used for transcribing extant documents. 1.3. The TEI Class System - defines the range of attribute values expressing a degree of certainty. - 확실성 정도를 표현하는 속성 값의 범위를 정의한다. - 定義表示正確度的屬性值範圍 - 確信度を示す属性値の程度を示す. - Définit la gamme des valeurs d'attribut exprimant un + defines the range of attribute values expressing a degree of certainty. + 확실성 정도를 표현하는 속성 값의 범위를 정의한다. + 定義表示正確度的屬性值範圍 + 確信度を示す属性値の程度を示す. + Définit la gamme des valeurs d'attribut exprimant un degré de certitude - define la gama de valores de atributos que exprimen un + define la gama de valores de atributos que exprimen un grado de certeza. - definisce la gamma di valori di attributi che esprimono + definisce la gamma di valori di attributi che esprimono un grado di certezza - + @@ -5448,67 +5451,67 @@ used for transcribing extant documents. - +

    Certainty may be expressed by one of the predefined symbolic values high, medium, or low. The value unknown should be used in cases where the encoder does not wish to assert an opinion about the matter.

    - +

    確信度は,high, medium, lowのうち の1つが選択される.より詳細に示したい場合には, teidata.probabilityを単独または追加と して使用することができる.

    - +

    Le degré de certitude peut être exprimé par l'une des valeurs symboliques prédéfinies high, medium, ou low.

    - defines the range of attribute values expressing a probability. - 확률을 표현하는 속성 값의 범위를 정의한다. - 定義表示可能性的屬性值範圍 - 出現度を示す属性値の範囲を定義する. - définit la gamme des valeurs d'attributs exprimant une + defines the range of attribute values expressing a probability. + 확률을 표현하는 속성 값의 범위를 정의한다. + 定義表示可能性的屬性值範圍 + 出現度を示す属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant une probabilité. - define la gama de valores de atributos que exprimen un + define la gama de valores de atributos que exprimen un grado de probabilida.d - definisce la gamma di valori di attributi che esprimono + definisce la gamma di valori di attributi che esprimono una probabilità - + - +

    Probability is expressed as a real number between 0 and 1; 0 representing certainly false and 1 representing certainly true.

    - +

    出現度は,0から1までの実数で表現される.0は 確実に偽,1は, 確実に真を示す.

    - +

    Le degré de probabilité est exprimé par un nombre réel entre 0 et 1 ; 0 représentant certainement faux et 1 certainement vrai.

    - defines the range of attribute values used for numeric values. - 수치에 사용되는 속성 값의 범위를 정의한다. - 定義用於數值的屬性值範圍 - 数値をとる属性値の範囲を定義する. - définit la gamme des valeurs d'attributs utilisées pour + defines the range of attribute values used for numeric values. + 수치에 사용되는 속성 값의 범위를 정의한다. + 定義用於數值的屬性值範圍 + 数値をとる属性値の範囲を定義する. + définit la gamme des valeurs d'attributs utilisées pour des valeurs numériques - define la gama de valores de atributos para valores + define la gama de valores de atributos para valores numéricos. - definisce la gamma di valori di attributi usati per + definisce la gamma di valori di attributi usati per valori numerici - + - +

    Any numeric value, represented as a decimal number, in floating point format, or as a ratio.

    To represent a floating point number, expressed in scientific notation, E notation, a variant of exponential notation, may be used. In @@ -5521,7 +5524,7 @@ used for transcribing extant documents. character. Thus, the value represented in decimal notation as 0.5 might be represented as a ratio by the string 1/2.

    - +

    10進数を作る数値.

    また,IEEE倍精度浮動小数点(64bit長)をとることもできる.例えば, ±10⁻³²³ から ±10³⁰⁸など.

    科学的数値を評点する際,指数表現は,属性値と して記述される. @@ -5543,7 +5546,7 @@ used for transcribing extant documents.

    仮数部と指数部を分ける記号はeまたは Eのどちらでもよいが,当ガイドラインでは Eを使うことを推奨する.これは,他の規格との 整合性を保ち,数学における定数との混同を避けるためである.

    - +

    Toute valeur numérique, représentée en nombre décimal, notée en virgule flottante ou en fraction.

    Pour représenter un nombre en virgule flottante, exprimé en notation scientifique, @@ -5559,8 +5562,8 @@ used for transcribing extant documents. représentée en fraction par la chaîne de caractères 1/2.

    - defines attribute values used to express an interval value. - + defines attribute values used to express an interval value. + @@ -5570,48 +5573,48 @@ used for transcribing extant documents. - +

    Any value greater than zero or any one of the values regular, irregular, unknown.

    - defines the range of attribute values used for a non-negative + defines the range of attribute values used for a non-negative integer value used as a count. - 계산으로 사용된 음이 아닌 정수 값의 속성 값 범위를 정의한다. - 定義的屬性值範圍,用於作為總數的非負整數值 + 계산으로 사용된 음이 아닌 정수 값의 속성 값 범위를 정의한다. + 定義的屬性值範圍,用於作為總數的非負整數值 - 非負整数値を採る属性値の範囲を定義する. - définit la gamme des + 非負整数値を採る属性値の範囲を定義する. + définit la gamme des valeurs des attributs exprimant une valeur entière et non négative utilisé pour des calculs. - define la gama de valores de atributos para números enteros no negativos usados como un cálculo. - definisce la gamma di valori di attributi usati per un numero intero non negativo impiegato come computo - + define la gama de valores de atributos para números enteros no negativos usados como un cálculo. + definisce la gamma di valori di attributi usati per un numero intero non negativo impiegato come computo + - +

    Any positive integer value or zero is permitted

    - +

    非負整数値のみが許される.

    - +

    Seules des valeurs positives entières sont autorisées.

    - defines the range of attribute values expressing a temporal + defines the range of attribute values expressing a temporal expression such as a date, a time, or a combination of them, that conform to the W3C XML Schema Part 2: Datatypes Second Edition specification. - 날짜, 시간 또는 이들의 조합과 같은 시간 표현을 나타내는 속성 값 범위를 정의하며, 이는 W3C XML Schema Part 2: Datatypes Second Edition 명시를 따른다. - 定義表示時間的屬性值範圍,如日期、時間或兩者的結合,依照W3CXML Schema Part 2: Datatypes Second Editionspecification標準所定義。 - 日付や時間などの時間表現をとる属性値の範囲を定義する.これは,W3Cの + 날짜, 시간 또는 이들의 조합과 같은 시간 표현을 나타내는 속성 값 범위를 정의하며, 이는 W3C XML Schema Part 2: Datatypes Second Edition 명시를 따른다. + 定義表示時間的屬性值範圍,如日期、時間或兩者的結合,依照W3CXML Schema Part 2: Datatypes Second Editionspecification標準所定義。 + 日付や時間などの時間表現をとる属性値の範囲を定義する.これは,W3Cの XML Schema Part 2: Datatypes Second Editionに従ったものになる. - définit la gamme des valeurs d'attributs propre à + définit la gamme des valeurs d'attributs propre à exprimer une valeur temporelle comme une date, une période, ou une combinaison des deux conformément aux spécifications XML Schema Part 2: Datatypes Second Edition du W3C. - define la gama de valores de atributos que expresan un valor temporal del tipo fecha, hora, o combinación de ambas, de acuerdo con la especificación de W3C XML Schema Part 2: Datatypes Second Edition. - + define la gama de valores de atributos que expresan un valor temporal del tipo fecha, hora, o combinación de ambas, de acuerdo con la especificación de W3C XML Schema Part 2: Datatypes Second Edition. + @@ -5623,71 +5626,71 @@ integer value used as a count. - +

    If it is likely that the value used is to be compared with another, then a time zone indicator should always be included, and only the dateTime representation should be used.

    - +

    当該属性値が他の値と比較される場合,時間帯は必ず示されるべきである. またはdateTimeを使うべきである(訳注:この文は修正されるかもしれな い).

    - +

    S'il est probable que la valeur utilisée doive être comparée à d’autres, alors une indication de fuseau horaire sera toujours incluse, et seule la représentation de dateTime sera employée.

    - defines the range of attribute values available for representation of a duration in time using W3C datatypes. - W3C 데이터 유형을 사용해서 시간 지속을 나타내는 속성 값 범위를 정의한다. - 以W3C datatypes標準格式來定義表示一段持續性時間的屬性值範圍 - W3Cのデータ型を使い,時間幅を表現する当該属性値の範囲を定義する. - définit la gamme des + defines the range of attribute values available for representation of a duration in time using W3C datatypes. + W3C 데이터 유형을 사용해서 시간 지속을 나타내는 속성 값 범위를 정의한다. + 以W3C datatypes標準格式來定義表示一段持續性時間的屬性值範圍 + W3Cのデータ型を使い,時間幅を表現する当該属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant une durée temporaraire utilisant les types de données W3C - define la gama de valores de atributos disponibles para la representación de un periodo de tiempo usando tipos de datos W3C - + define la gama de valores de atributos disponibles para la representación de un periodo de tiempo usando tipos de datos W3C + - + - + a day and a half - + a week - + - + une journée et demie - + une semaine - + - +

    A duration is expressed as a sequence of number-letter pairs, preceded by the letter P; the letter gives the unit and may be Y (year), M (month), D (day), H (hour), M (minute), or S (second), @@ -5702,7 +5705,7 @@ integer value used as a count.

    For complete details, see the W3C specification.

    - +

    時間幅は,先頭文字Pに続いて,数値-文字のペア列で示される. 文字は単位を示している.Y(年), M(月), D(日), H(時間), M(分), S(秒) @@ -5719,7 +5722,7 @@ integer value used as a count. W3C specificationを参照のこと.

    - +

    Une durée est exprimée par une suite de paires alphanumériques, précédée par la lettre P ; la lettre donne l'unité et peut être Y (année), M (mois), D (jour), H (heure), M (minute), ou S (seconde), dans cet ordre. Les nombres sont des entiers non signés à l'exception du dernier, qui peut comporter une décimale (en utilisant soit @@ -5732,19 +5735,19 @@ integer value used as a count. specification.

    - defines the range of attribute values used to express a truth + defines the range of attribute values used to express a truth value. - 진리값을 표현하는 속성 값 범위를 정의한다. - 定義的屬性值範圍表示一個可能未知的真實值 - 真偽値を示す属性値の範囲を定義する. - définit la gamme des + 진리값을 표현하는 속성 값 범위를 정의한다. + 定義的屬性值範圍表示一個可能未知的真實值 + 真偽値を示す属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant la vérité d'une proposition. - define la gama de valores de atributos usados para expresar un valor cierto. - definisce la gamma di valori di attributi usati per esprimere un valore di verità - + define la gama de valores de atributos usados para expresar un valor cierto. + definisce la gamma di valori di attributi usati per esprimere un valore di verità + - +

    The possible values of this datatype are 1 or true, or 0 or false.

    This datatype applies only for cases where uncertainty is @@ -5753,14 +5756,14 @@ value. inapplicable, it should have the extended version of this datatype: teidata.xTruthValue.

    - +

    曖昧な値が許されない場合に使われるデータ型になる.属性値が真偽値で ない場合,例えば"unknown"や"inapplicable"の場合には,当該データ型 の拡張版であるteidata.xTruthValueを使うべきである.

    - +

    Ce type de données ne s'applique que dans les cas où l'incertitude est inappropriée ; c’est-à-dire si l'attribut concerné peut avoir une valeur autre que vrai ou faux, par ex. inconnu, ou inapplicable, il devrait alors y @@ -5768,20 +5771,20 @@ value.

    - extended truth value - 확장 진리값 - - defines the range of attribute values used to express a truth value which may be unknown. - 알려지지 않을 수 있는 진리값을 표현하는 속성 값 범위를 정의한다. - 定義的屬性值範圍表示一個可能未知的真實值 - 不明の場合もある真偽値をとる属性値の範囲を定義する. - définit la gamme des + extended truth value + 확장 진리값 + + defines the range of attribute values used to express a truth value which may be unknown. + 알려지지 않을 수 있는 진리값을 표현하는 속성 값 범위를 정의한다. + 定義的屬性值範圍表示一個可能未知的真實值 + 不明の場合もある真偽値をとる属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant une vérité potentiellement inconnue. - define la gama de valores de atributos usados para + define la gama de valores de atributos usados para expresar un valor cierto potencialmente desconocido. - definisce la gamma di valori di attributi usati per + definisce la gamma di valori di attributi usati per esprimere un valore di verità potenzialmente sconosciuto - + @@ -5790,31 +5793,31 @@ value. - +

    In cases where where uncertainty is inappropriate, use the datatype teidata.TruthValue.

    - +

    不明な場合がなければ,データ型teidata.TruthValueを使用する.

    - +

    Dans le cas où l'incertitude n’est pas adaptée, employer plutot le type de données teidata.TruthValue.

    - defines the range of attribute values used to identify a particular combination of human + defines the range of attribute values used to identify a particular combination of human language and writing system. - 인간의 언어와 문자 체계의 특별한 조합을 식별하는 속성 값 범위를 정의한다. - 定義的屬性值範圍標明人類語言與寫作系統的特殊結合 - 自然言語を示す属性値の範囲を定義する. - définit la gamme des + 인간의 언어와 문자 체계의 특별한 조합을 식별하는 속성 값 범위를 정의한다. + 定義的屬性值範圍標明人類語言與寫作系統的特殊結合 + 自然言語を示す属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant une combinaison particulière du langage humain avec un système d'écriture. - define la gama de valores de atributos usados para + define la gama de valores de atributos usados para identificar una combinación determinada de lenguaje y escritura humanos. - definisce la gamma di valori di attributi usati per + definisce la gamma di valori di attributi usati per identificare una determinata combinazione di linguaggio e sistema di scrittura umani - + @@ -5822,7 +5825,7 @@ value. - +

    The values for this attribute are language tags as defined in BCP 47. Currently BCP 47 comprises RFC 5646 and RFC 4647; over time, other IETF documents may succeed these as the best current practice.

    A language tag, per BCP 47, is assembled from a sequence of components @@ -5906,7 +5909,7 @@ value.

    The W3C Internationalization Activity has published a useful introduction to BCP 47, Language tags in HTML and XML.

    - +

    当該属性値は, BCP 47 で定義されている言語タグになる. 現行のBCPには,RFC4646とRFC4647の内容が含まれている. 今後は,他のIETF文書も採用されるかもしれない.

    @@ -5977,7 +5980,7 @@ value.

    W3Cの国際化活動では,BCP 47の解説を以下に用意している. HTMLとXMLで使用される言語タグ.

    - +

    Les valeurs pour cet attribut sont les étiquettes de langue définies dans la norme BCP 47. Actuellement, la norme BCP 47 intègre les normes RFC 4646 et RFC 4647 ; à l'avenir, d'autres documents de l'IETF pourront leur succéder en @@ -6067,66 +6070,66 @@ value. tags in HTML and XML.

    - + 6.1. Language Identification
    - defines the range of attribute values used to indicate XML namespaces as defined by the W3C + defines the range of attribute values used to indicate XML namespaces as defined by the W3C Namespaces in XML Technical Recommendation. - W3C Namespaces in XML 기술적 권고안에 의해 + W3C Namespaces in XML 기술적 권고안에 의해 정의된 XML 이름공간을 나타내는 속성 값 범위를 정의한다. - 定義的屬性值範圍指出XML名稱空間,由XML technical + 定義的屬性值範圍指出XML名稱空間,由XML technical recommendation中的W3C名稱空間所定義。 - W3Cの + W3Cの XML名前空間で定義されている名前空間を示す属性値の範囲を示す. - définit la gamme des + définit la gamme des valeurs d'attributs exprimant une espace de noms XML tels qu'ils sont définis par le W3C. - define la gama de valores de atributos usados para + define la gama de valores de atributos usados para indicar los nombres de los espacios en XML como establecen las recomendaciones técnicas del W3C para los - definisce la gamma di valori di attributi usati per + definisce la gamma di valori di attributi usati per 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 (URI): Generic Syntax

    - +

    当該データ値は,RFC 2396 Uniform Resource Identifier (URI) Reference に定義されている.

    - +

    La gamme des valeurs syntaxiquement valides est définie par RFC 3986 Uniform Resource Identifier (URI): Generic Syntax .

    - defines a range of values for use in specifying the size of an object that is intended for + defines a range of values for use in specifying the size of an object that is intended for display. - 웹에서 디스플레이 목적의 대상 크기를 명시하는 값의 범위를 정의한다. - 定義的屬性值範圍說明預定呈現在網路上之物件大小 - webページ上で表示する際の大きさを定義する値の範囲を定義する. - définit la gamme de valeurs exprimant + 웹에서 디스플레이 목적의 대상 크기를 명시하는 값의 범위를 정의한다. + 定義的屬性值範圍說明預定呈現在網路上之物件大小 + webページ上で表示する際の大きさを定義する値の範囲を定義する. + définit la gamme de valeurs exprimant les dimensions d'un objet destiné à être affiché - define una gama de valores para emplearlos en la + define una gama de valores para emplearlos en la especificación de las dimensiones de un objeto que se ha de incluir in la red. - definisce una gamma di valori da impiegare nello + definisce una gamma di valori da impiegare nello specificare le dimensioni di un oggetto da inserire in rete - + - +
    The TEI Logo @@ -6137,7 +6140,7 @@ value.
    - +
    Le logo TEI @@ -6145,17 +6148,17 @@ value.
    - +

    These values map directly onto the values used by XSL-FO and CSS. For definitions of the units see those specifications; at the time of this writing the most complete list is in the CSS3 working draft.

    - +

    当該値は,XSLFOやCSSで使用される値になる.詳細は各規格を参照のこと. 現時点で一番詳細なリストは, CSS3 working draftになる.

    - +

    Ces valeurs peuvent être reportées directement sur des valeurs utilisées par XSL-FO et CSS. Pour les définitions des unités, voir ces spécifications ; à ce jour la liste la plus complète est dans un @@ -6165,21 +6168,21 @@ value. - defines attribute values which + defines attribute values which are expressed as a regular expression. - 정규표현으로 표시된 속성 값을 정의한다. - 定義的屬性值範圍以固定方法表示 - 正規表現を属性値として定義する. - définit la gamme des valeurs + 정규표현으로 표시된 속성 값을 정의한다. + 定義的屬性值範圍以固定方法表示 + 正規表現を属性値として定義する. + définit la gamme des valeurs d'attributs exprimant une expression régulière - define una gama de valores de + define una gama de valores de atributos expresados como una expresión regular. - definisce una gamma di valori di + definisce una gamma di valori di attributi rappresentati come espressione regolare - + - +

    A regular expression, often called a pattern, is an @@ -6200,7 +6203,7 @@ value. supported by XSD Schema.

    - +

    正規表現は,よくパタン/パターンともいわれるもので, @@ -6213,7 +6216,7 @@ value.

    - +

    Une expression régulière, souvent appelée modèle, @@ -6232,21 +6235,21 @@ value.

    - defines the range of attribute values used to provide a single + defines the range of attribute values used to provide a single URI, absolute or relative, pointing to some other resource, either within the current document or elsewhere. - 현 문서 또는 다른 곳 어디서든 다른 자원에 대한 단일 포인터를 제공하는 속성 값 범위를 정의한다. - 定義的屬性值範圍提供單一指標,連結到其他位於目前文件或他處的資源 - 他の資源へのポインタをとる属性値の範囲を定義する. - définit la gamme des valeurs d'attributs utilisées + 현 문서 또는 다른 곳 어디서든 다른 자원에 대한 단일 포인터를 제공하는 속성 값 범위를 정의한다. + 定義的屬性值範圍提供單一指標,連結到其他位於目前文件或他處的資源 + 他の資源へのポインタをとる属性値の範囲を定義する. + définit la gamme des valeurs d'attributs utilisées pour fournir un pointeur URI unique sur une autre ressource, soit dans le document courant, soit dans un autre document - define una gama de valores de atributos usados para proporcionar un indicador de cualquier recurso, bien en el documento corriente o en otro. - definisce la gamma di valori di attributi usati per indicare un unico puntatore rispetto a qualsiasi altra risorsa all'interno del documento corrente o altrove - + define una gama de valores de atributos usados para proporcionar un indicador de cualquier recurso, bien en el documento corriente o en otro. + definisce la gamma di valori di attributi usati per indicare un unico puntatore rispetto a qualsiasi altra risorsa all'interno del documento corrente o altrove + - +

    The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier (URI): Generic @@ -6261,7 +6264,7 @@ resource, either within the current document or elsewhere.</desc> <code>http://xn--4gbrim.xn----rmckbbajlc6dj7bxne2c.xn--wgbh1c/</code> </p> </remarks> - <remarks xmlns:tei="http://www.tei-c.org/ns/1.0" xml:lang="ja" versionDate="2008-04-05"> + <remarks xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xi="http://www.w3.org/2001/XInclude" xml:lang="ja" versionDate="2008-04-05"> <p> 当該属性値は, <ref target="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986 @@ -6270,22 +6273,36 @@ resource, either within the current document or elsewhere.</desc> に定義されている. </p> </remarks> - <remarks xmlns:tei="http://www.tei-c.org/ns/1.0" versionDate="2009-05-25" xml:lang="fr"> + <remarks xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xi="http://www.w3.org/2001/XInclude" versionDate="2009-05-25" xml:lang="fr"> <p>La gamme des valeurs valides syntaxiquement est définie par<ref target="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986 <title>Uniform Resource Identifier (URI): Generic Syntax

    +
    + defines attribute values which derive from an + authority list, which may be an enumerated list defined in the document's schema, a list + or taxonomy elsewhere in the document, or an online taxonomy, gazetteer, or other authority. + + + + + + + +

    Attribute values with this datatype should either come from a value list in the attribute + specification (teidata.enumerated) or be a valid URI (teidata.pointer).

    +
    - defines the range of attribute values which may be used to + defines the range of attribute values which may be used to specify a TEI or Unicode version number. - définit la gamme des valeurs d'attribut + définit la gamme des valeurs d'attribut exprimant un numéro de version TEI. - + - +

    The value of this attribute follows the pattern specified by the Unicode consortium for its version number (). A version number contains digits and fullstop characters only. The first number @@ -6294,7 +6311,7 @@ resource, either within the current document or elsewhere. supplied.

    - +

    La valeur de cet attribut devrait suivre le format proposé par le Consortium Unicode pour identifier les versions (). Un numéro de version ne contient que des chiffres et des points. Le numéro @@ -6304,28 +6321,28 @@ resource, either within the current document or elsewhere.

    - defines the range of attribute values used for version numbers. - + defines the range of attribute values used for version numbers. + - +

    - defines attribute values which contain a replacement template. - + defines attribute values which contain a replacement template. + - +

    -defines attribute values +defines attribute values which contain an XPath expression. - + - +

    Any XPath expression using the syntax defined in .

    When writing programs that evaluate XPath expressions, @@ -6335,32 +6352,32 @@ which contain an XPath expression. OWASP.

    - defines the range of attribute values expressed as a single + defines the range of attribute values expressed as a single word or token. - 단일 단어 또는 토큰으로 표현된 속성 값 범위를 정의한다. - 定義的屬性值範圍表示一個單字或代號 - いち単語またはトークンをとる属性値の範囲を定義する. - définit la gamme des + 단일 단어 또는 토큰으로 표현된 속성 값 범위를 정의한다. + 定義的屬性值範圍表示一個單字或代號 + いち単語またはトークンをとる属性値の範囲を定義する. + définit la gamme des valeurs d'attributs exprimant un seul mot ou signe - define una gama de valores de atributos expresados como una única palabra o señal. - definisce la gamma di valori di attributi espressi come singola parola o singolo token - + define una gama de valores de atributos expresados como una única palabra o señal. + definisce la gamma di valori di attributi espressi come singola parola o singolo token + - +

    Attributes using this datatype must contain a single word which contains only letters, digits, punctuation characters, or symbols: thus it cannot include whitespace.

    - +

    当該データ型を使用する属性値は,ひとつの単語 になる.単語とは,文字,数字,句読点などの記号から構成されている. 空白文字は含むことができない.

    - +

    Les attributs employant ce type de données doivent contenir un mot simple ne contenant que des lettres, des chiffres, des signes de ponctuation, ou des symboles : ils ne peuvent donc pas inclure @@ -6368,62 +6385,62 @@ which contain an XPath expression.

    - defines the range of attribute values used to express some + defines the range of attribute values used to express some kind of identifying string as a single sequence of Unicode characters possibly including whitespace. - définit la gamme des valeurs d'attributs + définit la gamme des valeurs d'attributs exprimant une chaine de caracteres Unicode, y compris des espaces blancs. - + - +

    Attributes using this datatype must contain a single token in which whitespace and other punctuation characters are permitted.

    - defines the range of attribute values expressed as an XML Name. - XML 이름으로 표현되는 속성 값 범위를 정의한다. - 定義的屬性值範圍以XML名稱或識別符碼表示 - XML名前としてある属性値の範囲を定義する. - définit la gamme des valeurs d'attribut exprimant + defines the range of attribute values expressed as an XML Name. + XML 이름으로 표현되는 속성 값 범위를 정의한다. + 定義的屬性值範圍以XML名稱或識別符碼表示 + XML名前としてある属性値の範囲を定義する. + définit la gamme des valeurs d'attribut exprimant un nom XML - define la gama de valores de atributos expresados como + define la gama de valores de atributos expresados como identificador o un nombre en XML. - definisce la gamma di valori di attributi espressi come + definisce la gamma di valori di attributi espressi come identificatore o nome XML - + - +

    Attributes using this datatype must contain a single word which follows the rules defining a legal XML name (see ): for example they cannot include whitespace or begin with digits.

    - +

    当該属性は,妥当なXML名前(詳細は を参照)である ひとつの単語をとる.例えば,空白文字を含まず,数字が先頭文字にこな いもの.

    - +

    Les attributs utilisant ce type de données doivent contenir un seul mot, qui suit les règles de définition d'un nom XML valide (voir ) : par exemple ils ne peuvent contenir de blancs ou commencer par des chiffres.

    - defines attribute values which contain an XML name. - + defines attribute values which contain an XML name. + - +

    The rules defining an XML name form a part of the XML Specification.

    - defines a range of values that may function as a URI scheme name. - + defines a range of values that may function as a URI scheme name. + - +

    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 3.1. Thus only the 26 lowercase letters a–z, the 10 @@ -6431,22 +6448,22 @@ which contain an XPath expression. permitted, and the value must start with a letter.

    - defines the range of attribute values expressed as a single XML name taken from a list of + defines the range of attribute values expressed as a single XML name taken from a list of documented possibilities. - 기록된 확률의 목록으로부터 얻어진 단일 XML 이름으로 표현된 속성 값 범위를 정의한다. - 定義的屬性值範圍以單字或代號呈現,該單字或代號出自於一份紀錄所有可能性的列表 - 符号化されている記述にある,ひつとのXML名前を示す属性値の範囲を定義する. - définit la gamme de + 기록된 확률의 목록으로부터 얻어진 단일 XML 이름으로 표현된 속성 값 범위를 정의한다. + 定義的屬性值範圍以單字或代號呈現,該單字或代號出自於一份紀錄所有可能性的列表 + 符号化されている記述にある,ひつとのXML名前を示す属性値の範囲を定義する. + définit la gamme de valeurs des attributs exprimant un nom XML extrait d'une liste de possibilités documentées - define la gama de valores de atributos expresados como + define la gama de valores de atributos expresados como una única palabra o señal tomada de una lista de posibilidades documentadas. - definisce la gamma di valori di attributi espressi come + definisce la gamma di valori di attributi espressi come singola parola o token tratto da una lista di possibilità attestate - + - +

    Attributes using this datatype must contain a single word which contains only letters, digits, punctuation characters, or symbols: thus it cannot include @@ -6454,12 +6471,12 @@ which contain an XPath expression.

    Typically, the list of documented possibilities will be provided (or exemplified) by a value list in the associated attribute specification, expressed with a valList element.

    - +

    当該データ型は,妥当なXML名前 (詳細は を参照のこと)である単語でなくてはならない.例えば, 属性値として空白文字,または数値で始まる名前をとることはできない.

    典型例は,可能な記述またはその例のリストが,要素valList 中に属性定義として示されている.

    - +

    Les attributs utilisant ce type de données doivent contenir un mot qui suit les règles de définition d'un nom XML valide (voir ): par exemple ils ne peuvent pas contenir des blancs ni commencer par des chiffres.

    @@ -6468,8 +6485,8 @@ which contain an XPath expression.
    valList.

    - defines a range of attribute values which can be expressed either as a numeric probability or as a coded certainty value. - + defines a range of attribute values which can be expressed either as a numeric probability or as a coded certainty value. + @@ -6735,7 +6752,7 @@ one initial.

    Pour des détails complets, voir ISO 8601 Data elements and interchange formats — Information interchange — Representation of dates and times.

    -
    + provides an attribute to indicate the type of section which is changing at a specific milestone. @@ -7334,7 +7351,7 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... persone realmente esistenti o personaggi di fantasia - + @@ -7600,7 +7617,8 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... des Autors, Zitate aus anderen Texten, erwähnte aber nicht benutzte Passagen. - + + @@ -7813,8 +7831,9 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... - + + @@ -11033,13 +11052,14 @@ Measures define un señalizador a otra localización. definisce un puntatore ad un'altra posizione. + + - - + - - + + @@ -11078,13 +11098,14 @@ attributes @target and @cRef may be supplied on . essere modificata da un commento o testo ulteriore definiert einen externen oder internen Verweis, der auch durch einen zusätzlichen Text oder Kommentar ergänzt werden kann. + + - - + - - + + @@ -12286,9 +12307,11 @@ entre les Romains. + + @@ -15461,11 +15484,12 @@ relatedItem element must be empty - + - + - + + @@ -22555,7 +22579,7 @@ supplied to printer. 2.6. The Revision Description 2.4.1. Creation - 11.7. Identifying Changes and Revisions + 11.6. Identifying Changes and Revisions describes a particular script distinguished within @@ -22636,7 +22660,7 @@ during the evolution of the encoded representation of that text.

    2.6. The Revision Description - 11.7. Identifying Changes and Revisions + 11.6. Identifying Changes and Revisions
    TEI document @@ -23344,7 +23368,7 @@ during the evolution of the encoded representation of that text.

    compuesto, que se insiere en algún punto en un texto que lo contiene interrumpiéndolo. - + @@ -26773,7 +26797,7 @@ the date of the entire document, not for any subset or part of it.

    4.7. Back Matter 4. Default Text Structure -
    + provides a set of attributes for hypertextual linking. 하이퍼텍스트와 다른 연결에 대한 속성의 집합을 정의한다. 이것은 연결에 대한 부가적 태그 집합이 선택될 때 모든 요소에 가능해야 한다. 定義一組用於超文字連結及其他連結的屬性,當連結的附加標籤組被選擇時,這些屬性可用於所有元素。 @@ -27004,7 +27028,7 @@ the date of the entire document, not for any subset or part of it.

    16. Linking, Segmentation, and Alignment -
    +
    lien defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. 다른 요소들에 의해 좀 더 명확하게 명시되지 않는 유형의 요소 또는 단락들의 연관 또는 하이퍼텍스트 연결을 정의한다. @@ -27053,7 +27077,7 @@ the date of the entire document, not for any subset or part of it.

    16.1. Links -
    + link group 연결군 @@ -27164,7 +27188,7 @@ the date of the entire document, not for any subset or part of it.

    16.1. Links -
    + anonymous block 익명 구역 匿名區塊 @@ -27230,7 +27254,7 @@ the date of the entire document, not for any subset or part of it.

    16.3. Blocks, Segments, and Anchors -
    + anchor point 앵커 지점 錨點 @@ -27294,7 +27318,7 @@ the date of the entire document, not for any subset or part of it.

    8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment -
    + arbitrary segment 임의의 분절 隨機分割 @@ -27406,7 +27430,7 @@ the date of the entire document, not for any subset or part of it.

    6.2. Components of the Verse Line 7.2.5. Speech Contents -
    + indicates a point in time either relative to other elements in the same timeline tag, or absolutely. 동일 시간선상의 태그에서 다른 요소들에 대한 상대적 또는 절대적인 시간 지점을 표시한다. 指出一個時間點,相對或絕對於同一時間進程標籤裡的其他元素。 @@ -27541,7 +27565,7 @@ the date of the entire document, not for any subset or part of it.

    16.4.2. Placing Synchronous Events in Time -
    + 시간선상 時間進程 frise chronologique @@ -27675,7 +27699,7 @@ the date of the entire document, not for any subset or part of it.

    16.4.2. Placing Synchronous Events in Time -
    + jointure identifies a possibly fragmented segment of text, by pointing at the possibly discontiguous elements which compose it. 텍스트를 구성하고 있는 비연소적 요소를 가리킴으로 텍스트의 파편화된 분절을 식별한다. @@ -27872,7 +27896,7 @@ You must supply at least two values for @target on 16.7. Aggregation - + join group 결합군 連結群組 @@ -27944,7 +27968,7 @@ You must supply at least two values for @target on 16.7. Aggregation - + alternation 교체 替換 @@ -28086,7 +28110,7 @@ You must supply at least two values for @target on 16.8. Alternation - + alternation group 교체군 替換群組 @@ -28233,7 +28257,7 @@ You must supply at least two values for @target on 16.8. Alternation - + Functions as a container element for linked data, contextual information, and stand-off annotations embedded in a TEI document. @@ -28359,6 +28383,261 @@ You must supply at least two values for @target on 16.10. The standOff Container + + contains a list of annotations, typically encoded as + annotation, annotationBlock, or note, possibly organized with + nested listAnnotation elements. + + + + + + + + + + + + + + + + + + + + + + The spell begins to + break + The turning point of the poem... + + + + + + The self-same moment I could pray; + And from my neck so free + The albatross fell off, and sank + Like lead into the sea. + + + + + + + + + CONJ + RELPRO + V + + + faster + + + + + + + + + + + + creator + Francis Kelsey + + ‘Gaul as a whole,’ contrasted with Gaul in the narrower sense, or Celtic Gaul; Celtic Gaul also is often called Gallia. + + + + creator + Rice Holmes + + Gallia...divisa: Notice the order of the words. ‘Gaul, taken as a whole, is divided’. + + + + creator + Arthur Tappan Walker + + Belgae -arum m., the Belgae or Belgians + + + + creator + Arthur Tappan Walker + + Aquitani, -orum m.: the Aquitani, inhabiting southwestern Gaul + + + + creator + Arthur Tappan Walker + + Celtae, -arum m: the Celtae or Celts + + + + creator + William Francis Allen + Joseph Henry Allen + Harry Pratt Judson + + the verb is singular, because the two rivers make one boundary; as we should say, + ‘is divided by the line of the Seine and Marne.’ + + + + +
    +
    +

    + Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam + Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. + Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis + Garumna flumen, a Belgis Matrona et Sequana dividit. + +

    +
    +
    + +
    +
    +
    + +

    The enclosed annotations may use the general-purpose note element; or, for + annotations pertaining to transcriptions of speech, the special-purpose + annotationBlock element; or the annotation element, which is intended to + map cleanly onto the Web Annotation Data Model.

    +
    + + 16.10. The standOff Container + +
    + represents an annotation following the Web + Annotation Data Model. + + + + + + + + + + + + + + + + + + + + + intent is to assess the target resource in + some way, rather than simply make a comment about it + + + intent is to create a bookmark to the target + or part thereof + + + intent is to classify the target in some + way + + + intent is to comment about the target + + + intent is to describe the target, rather than + (for example) comment on it + + + intent is to request an edit or a change to + the target resource + + + intent is to highlight the target resource or + a segment thereof + + + intent is to assign an identity to the + target + + + intent is to link to a resource related to + the target + + + intent is to assign some value or quality to + the target + + + intent is to ask a question about the + target + + + intent is to reply to a previous statement, + either an annotation or another resource + + + intent is to associate a tag with the + target + + + +

    For further detailed explanation of the suggested values, see the Web + Annotation Vocabulary (WAV). The motivations described here map to URIs defined by + the WAV and when exported to RDF or JSON-LD must have the URI + http://www.w3.org/ns/oa# prepended.

    +

    As an RDF vocabulary, WADM permits the definition of new + motivations (see Appendix C of the WAV). In TEI, new motivations may be defined in a + custom ODD (see section 23.3.1.3). New motivations must also + map to URIs defined by an RDF ontology extending the WAV.

    +
    +
    + + +
    + + + + + + creator + Fred Editor + + + + + + + + + + + + + + + + + + The correct title of this specification, and the correct full name of XML, is + "Extensible Markup Language". "eXtensible Markup Language" is just a spelling error. + However, the abbreviation "XML" is not only correct but, appearing as it does in the title + of the specification, an official name of the Extensible Markup Language. + + + + + 16.10. The standOff Container +
    setting 배경 @@ -29790,7 +30069,7 @@ young man would present to his lady love. It makes me blush! 舞台上の動きの方向を示す. indique la direction d'un mouvement sur scène. specifica la direzione di un movimento in scena. - + left @@ -29835,11 +30114,11 @@ young man would present to his lady love. It makes me blush! centro della scena - +

    Full blocking information will normally require combinations of values, (for example UL for upper stage left) and may also require more detailed encoding of speed, direction etc. Full documentation of any coding system used should be provided in - the header.

    + the header. URIs may be used as values.

    Donner une information complète de mise en place requiert normalement une combinaison de @@ -30400,7 +30679,7 @@ technical direction applies. 7.3.1. Technical Information - + \ No newline at end of file diff --git a/source/p5subset.xml b/source/p5subset.xml index 42cf4c3db..56d757a4e 100644 --- a/source/p5subset.xml +++ b/source/p5subset.xml @@ -4,8 +4,8 @@ The TEI Guidelines - Version 4.1.0a. Last updated on - 10th August 2020, revision 3e5395903 + Version 4.2.0a. Last updated on + 21st August 2020, revision e0066d83d TEI Consortium @@ -71,7 +71,7 @@ Instance

    Associating a Docu Design
    Entry of Characters
    Output of Characters
    Unicode and XML
    Special Aspects of Unicode Character Definitions
    Compatibility Characters
    Precomposed and Combining Characters and Normalization
    Character Semantics
    Issues Arising from the Internal Representations of - Unicode
    Encoding Errors Related to UTF-8
    The TEI Infrastructure
    TEI Modules
    Defining a TEI Schema
    A Simple Customization
    A Larger Customization
    The TEI Class System
    Attribute Classes
    Global Attributes
    Element Identifiers and Labels
    Language Indicators
    Rendition Indicators
    Sources, certainty, and responsibility
    Evaluation of Links
    XML Whitespace
    Other Globally Available Attributes + Unicode
    Encoding Errors Related to UTF-8
    The TEI Infrastructure
    TEI Modules
    Defining a TEI Schema
    A Simple Customization
    A Larger Customization
    The TEI Class System
    Attribute Classes
    Global Attributes
    Element Identifiers and Labels
    Language Indicators
    Rendition Indicators
    Sources, certainty, and responsibility
    Evaluation of Links
    XML Whitespace
    Other Globally Available Attributes provides attributes for elements representing speech or action that can be ascribed to a specific individual. 특정 개인의 대화 또는 행위를 표시하는 요소에 대한 속성을 제공한다. @@ -871,7 +871,7 @@ of any adjacent whitespace - + provides attributes for normalization of elements that contain datable events conforming to the W3C XML Schema Part 2: Datatypes Second Edition. @@ -1091,7 +1091,7 @@ of any adjacent whitespace - + provides attributes for normalization of elements that contain dates, times, or datable events. 날짜, 시간 또는 날짜 명기 사건을 포함하는 요소의 규격화에 대한 속성을 제공한다. @@ -1217,7 +1217,7 @@ of any adjacent whitespace - + provides the dcr:datacat and dcr:ValueDatacat attributes which are used to align XML elements or attributes with the appropriate Data Categories (DCs) defined by the ISO 12620:2009 @@ -2769,7 +2769,7 @@ by the current element. - + provides attributes to represent a regularized or normalized measurement. 정상화 또는 규격화된 측정 방식을 표상하는 속성을 제시한다. 提供屬性,代表一般化或規格化的度量。 @@ -3623,7 +3623,7 @@ this name in the form of a set of whitespace-separated values, for example the o - + provides attributes which can be used to classify or subclassify elements in any way. 요소의 분류 또는 하위분류에서 사용될 수 있는 속성을 제공한다. 提供可依任何方法將元素分類或次要分類的一般屬性。 @@ -3736,7 +3736,7 @@ sub-classification for the element additional to that provided by its - + provides a set of attributes used by all elements which point to other elements by means of one or more URI references. 하나 이상의 URI 참조를 통해서 다른 요소를 가리키는 모든 요소에 의해 사용된 속성 집합을 정의한다. @@ -4178,7 +4178,7 @@ subject, predicate etc. may be more appropriate. Such constraints will typically con-sciousness;

    -
    + provides attributes for elements which delimit a span of text by pointing mechanisms rather than by enclosing it. 포함보다는 포인터 메카니즘을 통하여 구분된 텍스트 구간을 나타내는 요소의 속성을 제공한다. 提供元素的屬性,這些元素使用參照機制來限定某一文字段,而非包含此文字段。 @@ -4241,7 +4241,7 @@ The element indicated by @spanTo () must follow - + provides attributes to specify the name of a formal definition language used to provide formatting or rendition information. @@ -5842,12 +5842,13 @@ généralement dans des textes oraux raggruppa elementi che contengono direttamente le citazioni - + - - groups elements related to highlighting which can appear either within or between - chunk-level elements. + + groups elements that contain a word or phrase that can be attributed to a source. + gruppiert Elemente, die ein Wort oder eine Phrase enthalten, welche einer Quelle zugeschrieben werden können. + - + + groups elements which contain a single reading, other than the lemma, within a textual @@ -6520,6 +6523,16 @@ class chunks.

    regroupe des divisions structurelles de septième niveau. raggruppa partizioni testuali di settimo livello agrupa divisiones estructurales de séptimo nivel +
    + groups elements used to represent annotations. + + + + + + + + groups elements which may be used as an annotation body. groups elements used to record application-specific information about a document in its header. @@ -6676,7 +6689,7 @@ and appear multiple times. - + @@ -6776,7 +6789,7 @@ used for transcribing extant documents. -
    Datatype Specifications +
    Datatype Specifications defines the range of attribute values expressing a degree of certainty. 확실성 정도를 표현하는 속성 값의 범위를 정의한다. 定義表示正確度的屬性值範圍 @@ -6810,7 +6823,7 @@ used for transcribing extant documents.

    Le degré de certitude peut être exprimé par l'une des valeurs symboliques prédéfinies high, medium, ou low.

    -
    + defines the range of attribute values expressing a probability. 확률을 표현하는 속성 값의 범위를 정의한다. 定義表示可能性的屬性值範圍 @@ -6838,7 +6851,7 @@ used for transcribing extant documents. 0 représentant certainement faux et 1 certainement vrai.

    -
    + defines the range of attribute values used for numeric values. 수치에 사용되는 속성 값의 범위를 정의한다. 定義用於數值的屬性值範圍 @@ -6907,7 +6920,7 @@ used for transcribing extant documents. barre oblique (/). Ainsi, la valeur représentée en notation décimale 0.5 pourrait être représentée en fraction par la chaîne de caractères 1/2.

    -
    + defines attribute values used to express an interval value. @@ -6923,7 +6936,7 @@ used for transcribing extant documents.

    Any value greater than zero or any one of the values regular, irregular, unknown.

    -
    + defines the range of attribute values used for a non-negative integer value used as a count. 계산으로 사용된 음이 아닌 정수 값의 속성 값 범위를 정의한다. @@ -6946,7 +6959,7 @@ integer value used as a count.

    Seules des valeurs positives entières sont autorisées.

    -
    + defines the range of attribute values expressing a temporal expression such as a date, a time, or a combination of them, that conform to the W3C XML Schema Part 2: Datatypes Second Edition @@ -6990,7 +7003,7 @@ integer value used as a count. seule la représentation de dateTime sera employée.

    -
    + defines the range of attribute values available for representation of a duration in time using W3C datatypes. W3C 데이터 유형을 사용해서 시간 지속을 나타내는 속성 값 범위를 정의한다. 以W3C datatypes標準格式來定義表示一段持續性時間的屬性值範圍 @@ -7080,7 +7093,7 @@ integer value used as a count.

    Pour des détails complets, voir W3C specification.

    -
    + defines the range of attribute values used to express a truth value. 진리값을 표현하는 속성 값 범위를 정의한다. @@ -7116,7 +7129,7 @@ value. avoir la version étendue de ce type de données : teidata.xTruthValue.

    -
    + extended truth value 확장 진리값 @@ -7150,7 +7163,7 @@ value.

    Dans le cas où l'incertitude n’est pas adaptée, employer plutot le type de données teidata.TruthValue.

    -
    + defines the range of attribute values used to identify a particular combination of human language and writing system. 인간의 언어와 문자 체계의 특별한 조합을 식별하는 속성 값 범위를 정의한다. @@ -7421,7 +7434,7 @@ value. - + defines the range of attribute values used to indicate XML namespaces as defined by the W3C Namespaces in XML Technical Recommendation. @@ -7462,7 +7475,7 @@ value. .

    -
    + defines attribute values which contain either an absolute namespace URI or a qualified XML name. - + defines a range of values for use in specifying the size of an object that is intended for display. 웹에서 디스플레이 목적의 대상 크기를 명시하는 값의 범위를 정의한다. @@ -7616,7 +7629,7 @@ bibliography and link to that (LB 2013-03-13) -->

    -
    + defines the data type used to express a point in cartesian space. @@ -7640,7 +7653,7 @@ bibliography and link to that (LB 2013-03-13) -->

    -
    + defines the range of attribute values used to provide a single URI, absolute or relative, pointing to some other resource, either within the current document or elsewhere. @@ -7686,7 +7699,21 @@ resource, either within the current document or elsewhere.

    -
    + + defines attribute values which derive from an + authority list, which may be an enumerated list defined in the document's schema, a list + or taxonomy elsewhere in the document, or an online taxonomy, gazetteer, or other authority. + + + + + + + +

    Attribute values with this datatype should either come from a value list in the attribute + specification (teidata.enumerated) or be a valid URI (teidata.pointer).

    +
    +
    defines the range of attribute values which may be used to specify a TEI or Unicode version number. définit la gamme des valeurs d'attribut @@ -7712,7 +7739,7 @@ resource, either within the current document or elsewhere. facultative des versions mineures ou sous-mineurs.

    -
    + defines the range of attribute values used for version numbers. @@ -7720,7 +7747,7 @@ resource, either within the current document or elsewhere.

    - + defines attribute values which contain a replacement template. @@ -7728,7 +7755,7 @@ resource, either within the current document or elsewhere.

    - + defines attribute values which contain an XPath expression. @@ -7743,7 +7770,7 @@ which contain an XPath expression. attacks, see the article at OWASP.

    -
    + defines the range of attribute values expressed as a single word or token. 단일 단어 또는 토큰으로 표현된 속성 값 범위를 정의한다. @@ -7776,7 +7803,7 @@ which contain an XPath expression. d’espace.

    -
    + defines the range of attribute values used to identify human or animal sex. 인간 또는 동물의 성을 식별하는 속성 값 범위를 정의한다. 定義的屬性值範圍用以識別人類或動物的性別 @@ -7809,7 +7836,7 @@ which contain an XPath expression.

    des valeurs sont celle de l' SO 5218:2004 identification des sexes humains.; 0 : inconnu ; 1 : homme ; 2 : femme ; et 9 : non applicable.

    -
    + defines the range of attribute values used to express some kind of identifying string as a single sequence of Unicode characters possibly including whitespace. @@ -7824,7 +7851,7 @@ which contain an XPath expression. token in which whitespace and other punctuation characters are permitted.

    -
    + defines the range of attribute values expressed as an XML Name. XML 이름으로 표현되는 속성 값 범위를 정의한다. 定義的屬性值範圍以XML名稱或識別符碼表示 @@ -7852,7 +7879,7 @@ which contain an XPath expression. de définition d'un nom XML valide (voir ) : par exemple ils ne peuvent contenir de blancs ou commencer par des chiffres.

    -
    + defines attribute values which contain an XML name. @@ -7860,7 +7887,7 @@ which contain an XPath expression.

    The rules defining an XML name form a part of the XML Specification.

    -
    + defines a range of values that may function as a URI scheme name. @@ -7872,7 +7899,7 @@ which contain an XPath expression. digits 0–9, the plus sign, the period, and the hyphen are permitted, and the value must start with a letter.

    -
    + defines the range of attribute values expressed as a single XML name taken from a list of documented possibilities. 기록된 확률의 목록으로부터 얻어진 단일 XML 이름으로 표현된 속성 값 범위를 정의한다. @@ -7909,7 +7936,7 @@ which contain an XPath expression. de valeurs dans la spécification de l'attribut associé, exprimée par un élément valList.

    -
    + defines a range of attribute values which can be expressed either as a numeric probability or as a coded certainty value. @@ -7924,7 +7951,7 @@ integer or the string "unbounded". - + defines attribute values which contain either the null string or an XML name. @@ -14721,7 +14748,7 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... persone realmente esistenti o personaggi di fantasia - + @@ -14989,7 +15016,8 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... des Autors, Zitate aus anderen Texten, erwähnte aber nicht benutzte Passagen. - + + @@ -15202,8 +15230,9 @@ Ce ne seroyt que bon que nous rendissiez noz cloches... - + + @@ -18497,13 +18526,14 @@ my twenty-first birthday

    define un señalizador a otra localización. definisce un puntatore ad un'altra posizione. + + - - + - - + + @@ -18542,13 +18572,14 @@ attributes @target and @cRef may be supplied on . essere modificata da un commento o testo ulteriore definiert einen externen oder internen Verweis, der auch durch einen zusätzlichen Text oder Kommentar ergänzt werden kann. + + - - + - - + + @@ -19756,9 +19787,11 @@ entre les Romains. + + @@ -22937,11 +22970,12 @@ relatedItem element must be empty - + - + - + + @@ -24208,7 +24242,7 @@ by the stage direction.

    compuesto, que se insiere en algún punto en un texto que lo contiene interrumpiéndolo. - + @@ -32118,7 +32152,7 @@ young man would present to his lady love. It makes me blush! 舞台上の動きの方向を示す. indique la direction d'un mouvement sur scène. specifica la direzione di un movimento in scena. - + left @@ -32163,11 +32197,11 @@ young man would present to his lady love. It makes me blush! centro della scena - +

    Full blocking information will normally require combinations of values, (for example UL for upper stage left) and may also require more detailed encoding of speed, direction etc. Full documentation of any coding system used should be provided in - the header.

    + the header. URIs may be used as values.

    Donner une information complète de mise en place requiert normalement une combinaison de @@ -33961,43 +33995,44 @@ very loudly.

    - - groups together various annotations, e.g. - for parallel interpretations of a spoken segment. - 様々な注釈をグループ化する.例えば,話されたセグメントの並行解釈のためなど. - - - - - - - - - - - - - - - - - - - - - Yeah - - - - - - - Mhm - - - - - + + groups together various annotations, e.g. + for parallel interpretations of a spoken segment. + 様々な注釈をグループ化する.例えば,話されたセグメントの並行解釈のためなど. + + + + + + + + + + + + + + + + + + + + + Yeah + + + + + + + Mhm + + + + + @@ -35210,6 +35245,7 @@ l'original apparaît comme une forme fusionnée. + @@ -44033,8 +44069,8 @@ en-tête et un texte, constitue un document TEI. -
    Embedded Transcription
    Scope of Transcriptions
    Altered, Corrected, and Erroneous Texts
    Core Elements for Transcriptional Work
    Abbreviation and Expansion
    Correction and Conjecture
    Additions and Deletions
    Substitutions
    Cancellation of Deletions and Other Markings
    Text Omitted from or Supplied in the Transcription
    Hands and Responsibility
    Document Hands
    Hand, Responsibility, and Certainty Attributes
    Damage and Conjecture
    Damage, Illegibility, and Supplied Text
    Use of the gap, del, damage, unclear, and - supplied Elements in Combination
    Marking up the Writing Process
    Generic Modification
    Metamarks
    Fixation and Clarification
    Confirmation, Cancellation, and Reinstatement of Modifications
    Transpositions
    Alternative Readings
    Instant Corrections
    Advanced Uses of surface and zone
    Aspects of Layout
    Space
    Lines
    Headers, Footers, and Similar Matter
    Identifying Changes and Revisions
    Other Primary Source Features not Covered in these Guidelines
    Module for Transcription of Primary Sources +
    Embedded Transcription
    Advanced Uses of surface and zone
    Scope of Transcriptions
    Altered, Corrected, and Erroneous Texts
    Core Elements for Transcriptional Work
    Abbreviation and Expansion
    Correction and Conjecture
    Additions and Deletions
    Substitutions
    Cancellation of Deletions and Other Markings
    Text Omitted from or Supplied in the Transcription
    Hands and Responsibility
    Document Hands
    Hand, Responsibility, and Certainty Attributes
    Damage and Conjecture
    Damage, Illegibility, and Supplied Text
    Use of the gap, del, damage, unclear, and + supplied Elements in Combination
    Marking up the Writing Process
    Generic Modification
    Metamarks
    Fixation and Clarification
    Confirmation, Cancellation, and Reinstatement of Modifications
    Transpositions
    Alternative Readings
    Instant Corrections
    Aspects of Layout
    Space
    Lines
    Headers, Footers, and Similar Matter
    Identifying Changes and Revisions
    Other Primary Source Features not Covered in these Guidelines
    Module for Transcription of Primary Sources Transcription of Primary Sources Transcription of primary sources 原文轉錄 @@ -44964,7 +45000,7 @@ used to mark normal inter-word space or the like.

    substitución sostituzione substitution - groups one or more deletions with one or more additions when + groups one or more deletions (or surplus text) with one or more additions when the combination is to be regarded as a single intervention in the text. 결합이 텍스트에서 단일 조작으로 간주될 때 하나 이상의 삭제를 하나 이상의 추가 사항으로 대체한다. regroupe une ou plusieurs parties de texte supprimées et une ou plusieurs parties de texte ajoutées, lorsque cette combinaison peut être considérée comme une intervention unique sur le texte. @@ -44981,13 +45017,14 @@ used to mark normal inter-word space or the like.

    + - must have at least one child add and at least one child del + must have at least one child add and at least one child del or surplus @@ -45025,7 +45062,7 @@ used to mark normal inter-word space or the like.

    substitution join jointure de substitution - identifies a series of possibly fragmented additions, deletions or other revisions on a manuscript that combine to make up a single intervention in the text + identifies a series of possibly fragmented additions, deletions, or other revisions on a manuscript that combine to make up a single intervention in the text @@ -45988,7 +46025,7 @@ reading groups, each associated with witness specifications.

    包含一個原文變異的主題或基礎文件。 異なるテキストにおける対象語,すなわち基底テキスト(base text)を示す. contient le lemme ou le texte de base d'une - variante textuelle + variante textuelle
    contiene el lema, o texto base, de una variante textuale contiene il lemma, o testo base, di una variante testuale @@ -45996,22 +46033,44 @@ reading groups, each associated with witness specifications.

    - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -46061,7 +46120,7 @@ form in the running text).

    包含原文變異中的一個對應本。 異なるテキスト中で,ひとつの読みを示す. contient une leçon à l'intérieur d'une variante - du texte. + du texte. contiene una única lectura dentro de una variante textual. contiene un'unica lettura entro una variante testuale @@ -46071,21 +46130,43 @@ form in the running text).

    - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -54155,7 +54236,7 @@ Information with a Text
    Combining Co Corpus di testi Textos do corpora コーパスモジュール -
    Linking, Segmentation, and Alignment
    Links
    Pointers and Links
    Using Pointers and Links
    Groups of Links +
    Linking, Segmentation, and Alignment
    Links
    Pointers and Links
    Using Pointers and Links
    Groups of Links lien defines an association or hypertextual link among elements or passages, of some type not more precisely specifiable by other elements. 다른 요소들에 의해 좀 더 명확하게 명시되지 않는 유형의 요소 또는 단락들의 연관 또는 하이퍼텍스트 연결을 정의한다. @@ -55384,7 +55465,7 @@ You must supply at least two values for @target on -
    Stand-off Markup
    Introduction
    Overview of XInclude
    Stand-off Markup in TEI
    Well-formedness and Validity of Stand-off Markup
    Including Text or XML Fragments
    The standOff Container +
    Stand-off Markup
    Introduction
    Overview of XInclude
    Stand-off Markup in TEI
    Well-formedness and Validity of Stand-off Markup
    Including Text or XML Fragments
    The standOff Container
    Annotations Functions as a container element for linked data, contextual information, and stand-off annotations embedded in a TEI document. @@ -55510,6 +55591,261 @@ You must supply at least two values for @target on + + contains a list of annotations, typically encoded as + annotation, annotationBlock, or note, possibly organized with + nested listAnnotation elements. + + + + + + + + + + + + + + + + + + + + + + The spell begins to + break + The turning point of the poem... + + + + + + The self-same moment I could pray; + And from my neck so free + The albatross fell off, and sank + Like lead into the sea. + + + + + + + + + CONJ + RELPRO + V + + + faster + + + + + + + + + + + + creator + Francis Kelsey + + ‘Gaul as a whole,’ contrasted with Gaul in the narrower sense, or Celtic Gaul; Celtic Gaul also is often called Gallia. + + + + creator + Rice Holmes + + Gallia...divisa: Notice the order of the words. ‘Gaul, taken as a whole, is divided’. + + + + creator + Arthur Tappan Walker + + Belgae -arum m., the Belgae or Belgians + + + + creator + Arthur Tappan Walker + + Aquitani, -orum m.: the Aquitani, inhabiting southwestern Gaul + + + + creator + Arthur Tappan Walker + + Celtae, -arum m: the Celtae or Celts + + + + creator + William Francis Allen + Joseph Henry Allen + Harry Pratt Judson + + the verb is singular, because the two rivers make one boundary; as we should say, + ‘is divided by the line of the Seine and Marne.’ + + + + +
    +
    +

    + Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam + Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur. + Hi omnes lingua, institutis, legibus inter se differunt. Gallos ab Aquitanis + Garumna flumen, a Belgis Matrona et Sequana dividit. + +

    +
    +
    + +
    +
    +
    + +

    The enclosed annotations may use the general-purpose note element; or, for + annotations pertaining to transcriptions of speech, the special-purpose + annotationBlock element; or the annotation element, which is intended to + map cleanly onto the Web Annotation Data Model.

    +
    + + + +
    + represents an annotation following the Web + Annotation Data Model. + + + + + + + + + + + + + + + + + + + + + intent is to assess the target resource in + some way, rather than simply make a comment about it + + + intent is to create a bookmark to the target + or part thereof + + + intent is to classify the target in some + way + + + intent is to comment about the target + + + intent is to describe the target, rather than + (for example) comment on it + + + intent is to request an edit or a change to + the target resource + + + intent is to highlight the target resource or + a segment thereof + + + intent is to assign an identity to the + target + + + intent is to link to a resource related to + the target + + + intent is to assign some value or quality to + the target + + + intent is to ask a question about the + target + + + intent is to reply to a previous statement, + either an annotation or another resource + + + intent is to associate a tag with the + target + + + +

    For further detailed explanation of the suggested values, see the Web + Annotation Vocabulary (WAV). The motivations described here map to URIs defined by + the WAV and when exported to RDF or JSON-LD must have the URI + http://www.w3.org/ns/oa# prepended.

    +

    As an RDF vocabulary, WADM permits the definition of new + motivations (see Appendix C of the WAV). In TEI, new motivations may be defined in a + custom ODD (see section 23.3.1.3). New motivations must also + map to URIs defined by an RDF ontology extending the WAV.

    +
    +
    + + +
    + + + + + + creator + Fred Editor + + + + + + + + + + + + + + + + + + The correct title of this specification, and the correct full name of XML, is + "Extensible Markup Language". "eXtensible Markup Language" is just a spelling error. + However, the abbreviation "XML" is not only correct but, appearing as it does in the title + of the specification, an official name of the Extensible Markup Language. + + + + + +
    Connecting Analytic and Textual Markup
    Module for Linking, Segmentation, and Alignment Linking, Segmentation, and Alignment Linking, segmentation, and alignment @@ -63998,23 +64334,23 @@ déclaration de même nom dans la définition courante. - +

    This classes element indicates that the element documented -(which may be an element or a class) is a member of two distinct classes: model.qLike and +(which may be an element or a class) is a member of two distinct classes: model.attributable and att.declarable.

    - +

    Cet élémentclassesindique que l'élément documenté (qui peut être un élément ou une - classe) est membre de deux classes distinctes : model.qLike et + classe) est membre de deux classes distinctes : model.attributable et att.declarable.

    @@ -67078,4 +67414,4 @@ should correspond to an existing module, via a moduleSpec or Documentazione dei moduli TEI Documentação dos módulos TEI タグ定義モジュール -
    Using the TEI
    Serving TEI files with the TEI Media Type
    Obtaining the TEI
    Customization
    Kinds of Modification
    Deletion of Elements
    Modification of Content Models
    Modification of Attribute and Attribute Value Lists
    Class Modification
    Addition of New Elements
    Renaming of Elements
    Modification and Namespaces
    Documenting the Modification
    Examples of Modification
    Conformance
    Well-formedness Criterion
    Validation Constraint
    Conformance to the TEI Abstract Model
    Semantic Constraints
    Mandatory Components of a TEI Document
    Use of the TEI Namespace
    Documentation Constraint
    Varieties of TEI Conformance
    Implementation of an ODD System
    Making a Unified ODD
    Generating Schemas
    Names and Documentation in Generated Schemas
    Making a RELAX NG Schema
    Macros
    Classes
    Elements
    Making a DTD
    Generating Documentation
    Using TEI Parameterized Schema Fragments
    Selection of Modules
    Inclusion and Exclusion of Elements
    Changing the Names of Generic Identifiers
    Embedding Local Modifications (DTD only)
    Model Classes
    About the Model Classes Appendix
    Attribute Classes
    About the Attribute Classes Appendix
    Elements
    About the Elements Appendix
    Attributes
    About the Attributes Appendix
    Datatypes and Other Macros
    About the Datatypes and Macros Appendix
    Bibliography
    Works Cited in Examples in these Guidelines
    Works Cited Elsewhere in the Text of these Guidelines
    Reading List
    Theory of Markup and XML
    TEI
    Deprecations
    Items Scheduled to be Removed
    Prefatory Notes
    Prefatory Note (March 2002)
    Introductory Note (November 2001)
    Introductory Note (June 2001)
    Introductory Note (May 1999)
    Typographic Corrections Made
    Specific Changes in the DTD
    Outstanding Errors
    Preface (April 1994)
    Acknowledgments
    TEI Working Committees (1990-1993)
    Advisory Board
    Steering Committee Membership
    Colophon
    +
    Using the TEI
    Serving TEI files with the TEI Media Type
    Obtaining the TEI
    Customization
    Kinds of Modification
    Deletion of Elements
    Modification of Content Models
    Modification of Attribute and Attribute Value Lists
    Class Modification
    Addition of New Elements
    Renaming of Elements
    Modification and Namespaces
    Documenting the Modification
    Examples of Modification
    Conformance
    Well-formedness Criterion
    Validation Constraint
    Conformance to the TEI Abstract Model
    Semantic Constraints
    Mandatory Components of a TEI Document
    Use of the TEI Namespace
    Documentation Constraint
    Varieties of TEI Conformance
    Implementation of an ODD System
    Making a Unified ODD
    Generating Schemas
    Names and Documentation in Generated Schemas
    Making a RELAX NG Schema
    Macros
    Classes
    Elements
    Making a DTD
    Generating Documentation
    Using TEI Parameterized Schema Fragments
    Selection of Modules
    Inclusion and Exclusion of Elements
    Changing the Names of Generic Identifiers
    Embedding Local Modifications (DTD only)
    Model Classes
    About the Model Classes Appendix
    Attribute Classes
    About the Attribute Classes Appendix
    Elements
    About the Elements Appendix
    Attributes
    About the Attributes Appendix
    Datatypes and Other Macros
    About the Datatypes and Macros Appendix
    Bibliography
    Works Cited in Examples in these Guidelines
    Works Cited Elsewhere in the Text of these Guidelines
    Reading List
    Theory of Markup and XML
    TEI
    Deprecations
    Items Scheduled to be Removed
    Prefatory Notes
    Prefatory Note (March 2002)
    Introductory Note (November 2001)
    Introductory Note (June 2001)
    Introductory Note (May 1999)
    Typographic Corrections Made
    Specific Changes in the DTD
    Outstanding Errors
    Preface (April 1994)
    Acknowledgments
    TEI Working Committees (1990-1993)
    Advisory Board
    Steering Committee Membership
    Colophon
    \ No newline at end of file From e0f71eb6f6ff28da3858d114b525e9f0140b5ab7 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 4 Sep 2020 08:31:10 -0700 Subject: [PATCH 15/58] Add more info about readmes to build.xml. --- Test2/build.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Test2/build.xml b/Test2/build.xml index 39232ea3f..db5dcbd71 100644 --- a/Test2/build.xml +++ b/Test2/build.xml @@ -7,6 +7,9 @@ Stylesheets/Test2/build.xml ANT TEST FILE FOR THE TEI STYLESHEETS. + + FOR DETAILED USAGE INFORMATION, SEE THE README*.md FILES + IN THE Test2 DIRECTORY. MDH 2017: This is an EXPERIMENTAL build file which is attempting to wholly replace the Makefile in the Stylesheets/Test From 649b1682715f294cdf7fa69cb358e54a36a935a3 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 4 Sep 2020 09:21:26 -0700 Subject: [PATCH 16/58] Updates to documentation with @sydb. --- Test2/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Test2/README.md b/Test2/README.md index 8434086da..07aec4a66 100644 --- a/Test2/README.md +++ b/Test2/README.md @@ -17,6 +17,18 @@ Example usages: `ant odt` runs only the odt tests. Similarly, `ant docx`, `ant fo`, `ant odd`, and others. +### How the tests are run + +Some tests are run by invoking the bin/thing2thing symlinks, which call the universal bin/transformtei script. Others are run by directly invoking Saxon to do an XSLT tranformation. The latter approach is faster and simpler for transformation which involve only XSLT transformation; where other processes are used (such as FO to PDF conversion) the bin script is more straightforward. Read the ant files for more info. + + +### Tests not included + +Note that the following tests that used to be run in Test are not [yet] covered in Test2: + + [TODO: @sydb and @martindholmes are working on this list.] + + From b3f803b68e7a2060dc4dd7fa5f444f328e1bed14 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 4 Sep 2020 12:23:08 -0400 Subject: [PATCH 17/58] Minor fixes: * Fix the n= attribute on the TEI element of Test2/inputFiles/testSpecificationDescription1.odd; * Fix typo in comment of Test/Makefile --- Test/Makefile | 2 +- .../testSpecificationDescription1.odd | 95 +++++++++---------- 2 files changed, 47 insertions(+), 50 deletions(-) diff --git a/Test/Makefile b/Test/Makefile index 0934a4f8a..e319460f6 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -75,7 +75,7 @@ SCHEMASCRIPTS=teitornc \ ############################### # First target is the default # -# (not matter what its name). # +# (no matter what its name). # ############################### default: actual test.rng test-to-html test-p4top5 test-oddity test-scripts test-namespaces test-from-html test-latex test-fo test-to-docx test-from-docx test-xlsx test-rdf test-text test-odt test-markdown test-cocoa test-epub diff --git a/Test2/inputFiles/testSpecificationDescription1.odd b/Test2/inputFiles/testSpecificationDescription1.odd index 1de81181a..0581d0422 100644 --- a/Test2/inputFiles/testSpecificationDescription1.odd +++ b/Test2/inputFiles/testSpecificationDescription1.odd @@ -1,52 +1,49 @@ - - - - TEI test customization - Sebastian Rahtz - - -

    -
    - -

    authored from scratch

    -
    -
    -
    - - -

    Testing specList: - - - - - - - - - - - - - - -

    - - - - - - - - - - - - -
    + xmlns:rng="http://relaxng.org/ns/structure/1.0" n="testSpecificationDescription1"> + + + + TEI test customization + Sebastian Rahtz + + +

    +
    + +

    authored from scratch

    +
    +
    +
    + + +

    Testing specList: + + + + + + + + + + + + + + +

    + + + + + + + + + + + + +
    - - - From e5241a7746651c5b60fec2f824966daca52042ee Mon Sep 17 00:00:00 2001 From: Peter Stadler Date: Wed, 9 Sep 2020 09:44:20 +0200 Subject: [PATCH 18/58] more cleanup remove LaTeX artifacts produced by target "test-scripts" --- Test/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Test/Makefile b/Test/Makefile index e319460f6..7b5ca67ca 100644 --- a/Test/Makefile +++ b/Test/Makefile @@ -708,7 +708,7 @@ profile: clean: (cd ..; for i in css/*; do rm -f `basename $$i`;done) - rm -f *.result.tex test*.xml.docx *~ + rm -f teitopdf.result.* test*.xml.docx *~ rm -f dcr.tmp xml.tmp rm -fr $(AR)/ charts/ embeddings/ media/ Pictures/ From c615d52398dd3dcda25e843afbe7c7097aaee1ca Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 11 Sep 2020 11:37:42 -0400 Subject: [PATCH 19/58] BUG FIX: With Martin Holmes, change the definition of TEISOURCE_DEFAULT so that it gets the source directory relative to the script that is running, rather than the directory that you happen to be running it from. --- bin/transformtei | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/transformtei b/bin/transformtei index bc913b5f3..2212ecea1 100755 --- a/bin/transformtei +++ b/bin/transformtei @@ -83,7 +83,7 @@ verbose=false summaryDoc="" antflag="-q -Djava.awt.headless=true" TEISOURCE= -TEISOURCE_DEFAULT=`pwd`/../source/p5subset.xml +TEISOURCE_DEFAULT="${scriptdir}/../source/p5subset.xml" # epub only overlayfile= From d1b1b695fb0557df6e558b7ff4c7eabfe92e22c0 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 11 Sep 2020 12:52:04 -0400 Subject: [PATCH 20/58] re-FIX previous commit --- bin/transformtei | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/transformtei b/bin/transformtei index 2212ecea1..07ef1d2d0 100755 --- a/bin/transformtei +++ b/bin/transformtei @@ -83,7 +83,7 @@ verbose=false summaryDoc="" antflag="-q -Djava.awt.headless=true" TEISOURCE= -TEISOURCE_DEFAULT="${scriptdir}/../source/p5subset.xml" +TEISOURCE_DEFAULT="${APPHOME}/source/p5subset.xml" # epub only overlayfile= From f923e6d1bdceda786a27da9ebdb3fb52a956ddd8 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Wed, 7 Oct 2020 12:18:09 -0700 Subject: [PATCH 21/58] Add namespace sensitivity to xsl:keys used to process @rendition per issue #463. --- html/html_header.xsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/html_header.xsl b/html/html_header.xsl index 4f23d688a..bfbd9f836 100644 --- a/html/html_header.xsl +++ b/html/html_header.xsl @@ -53,9 +53,9 @@ of this software, even if advised of the possibility of such damage. - + + match="tei:*/@rendition[not(starts-with(.,'simple:') or starts-with(.,'#'))]" use="."/> From 95ffcb20de857a5c6df5ee2a18aec05360b11f33 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Mon, 12 Oct 2020 14:46:08 -0400 Subject: [PATCH 22/58] loosen fix: Do not limit the rendition= attributes collected by the EXTRENDITION keys to those on elements in the TEI namespace, rather exclude those that are a descendant of the TEI Examples namespace. --- html/html_header.xsl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/html/html_header.xsl b/html/html_header.xsl index bfbd9f836..8dcbd233e 100644 --- a/html/html_header.xsl +++ b/html/html_header.xsl @@ -53,19 +53,26 @@ of this software, even if advised of the possibility of such damage. - + + match="@rendition + [not( ancestor::teix:* )] + [not( starts-with( ., 'simple:') or starts-with( ., '#') )]" + use="." /> - Process element teiHeader - + Process element teiHeader + - make a style section from rendition elements in the header - + make a style section from rendition elements in the header + From e53c9ec6b519599b86063a2f603556d46b4cff29 Mon Sep 17 00:00:00 2001 From: rvdb Date: Fri, 30 Oct 2020 17:41:28 +0100 Subject: [PATCH 23/58] replaced erroneous note/@resp attribute with note/@type (cf. https://tei-openedition.readthedocs.io/en/latest/tei.text.html#note-de-lauteur-note-de-la-redaction-erratum-remerciements) --- profiles/jtei/openedition/to.xsl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/profiles/jtei/openedition/to.xsl b/profiles/jtei/openedition/to.xsl index 37e6c40cc..aece078e2 100644 --- a/profiles/jtei/openedition/to.xsl +++ b/profiles/jtei/openedition/to.xsl @@ -278,8 +278,7 @@ - - + author publisher From ec7a46790d8d2a11c89b1e54d1d3929f92d9f30a Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Mon, 30 Nov 2020 15:30:30 -0500 Subject: [PATCH 24/58] Fix RTL handling. --- docx/from/functions.xsl | 13 ++ docx/from/paragraphs.xsl | 109 +++++----- docx/from/textruns.xsl | 426 +++++++++++++++++++-------------------- 3 files changed, 275 insertions(+), 273 deletions(-) diff --git a/docx/from/functions.xsl b/docx/from/functions.xsl index b7acc416a..77208a45e 100644 --- a/docx/from/functions.xsl +++ b/docx/from/functions.xsl @@ -275,5 +275,18 @@ of this software, even if advised of the possibility of such damage. false + + + + + + + + + + + + + diff --git a/docx/from/paragraphs.xsl b/docx/from/paragraphs.xsl index f5f057026..09cf3469d 100644 --- a/docx/from/paragraphs.xsl +++ b/docx/from/paragraphs.xsl @@ -167,62 +167,59 @@ of this software, even if advised of the possibility of such damage. use the Word style (if provided) to make a TEI rend attribute, and check for change records. - - - - - - - - - - - - - - - - - - - text-align: - - ; - - - - - - - - - - - - - - rtl - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + text-align: + + ; + + + + + + + + + > + direction:rtl; + + + + + + + + + + + + + + + + + + + Processing of any cross-references found. diff --git a/docx/from/textruns.xsl b/docx/from/textruns.xsl index fa2e88acb..939f0a2b8 100644 --- a/docx/from/textruns.xsl +++ b/docx/from/textruns.xsl @@ -173,225 +173,217 @@ of this software, even if advised of the possibility of such damage. 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. - - false - - - - - - - - font-family: - - - - - - - - - - - - font-family: - - - - - - - - - - font-size: - - pt - - - - font-size: - - pt - - - - font-size: - - pt - - - - - position: - - - - - - - - - rtl - - - - - - - subscript - - - - italic - - - - - normalweight - - - bold - - - - - superscript - - - - - - - - - - - strikethrough - - - - doublestrikethrough - - - - underline - - - - wavyunderline - - - - doubleunderline - - - - smallcaps - - - - allcaps - - - - - color( - - ) - - - - - - background( - - ) - - - - + + false + + + + - - - - - - - - - - - - - - - - - - - - - - preserve - - - - - - - preserve - - - + + + font-family: + + + + + + + + + + + + font-family: + + + - + + + + + + font-size: + + pt + + + + font-size: + + pt + + + + font-size: + + pt + + + + + position: + + + + + + + + + + + + subscript + + + + italic + + + + + normalweight + + + bold + + + + + superscript + + + + + + + + + + + strikethrough + + + + doublestrikethrough + + + + underline + + + + wavyunderline + + + + doubleunderline + + + + smallcaps + + + + allcaps + + + + + color( + + ) + + + + + + background( + + ) + + + + + + + + + + + + + + + + + + + + + direction:rtl; + + + + preserve + + + + + + + preserve + + + + + Handle current page breaks inserted by Word From 6035fc2b2750d67095bf8899a621845612a4db7c Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Tue, 1 Dec 2020 10:19:51 -0500 Subject: [PATCH 25/58] Work on #471: With Stylesheets group, add an anchor symbol (U+2693) link to each egXML that is a link-to-self (so user can easily copy and paste link to example). Note: have it working for examples in prose and tagdocs, but NOT working yet for examples on the "show all" examples pages, nor for elements. --- odds/guidelines.xsl | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 40fb5ec17..f1e760a41 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -774,9 +774,21 @@ - - -
    + + + + + # + + + + + +   + + - - - - - - -
    - - - + + + + + +   -
    -
    + + +
    +
    From df96b993cabb97b5bee9eb74952657e1c1a0413c Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Tue, 1 Dec 2020 17:56:29 -0500 Subject: [PATCH 26/58] minor improvements: * remove extraneous space after the U+2693 symbol we just added * remove (apparently unused) copy of the template that matches teix:egXML --- html/html_tagdocs.xsl | 48 ------------------------------------------- odds/guidelines.xsl | 1 - 2 files changed, 49 deletions(-) diff --git a/html/html_tagdocs.xsl b/html/html_tagdocs.xsl index 84d5e8e7b..c8a941c23 100644 --- a/html/html_tagdocs.xsl +++ b/html/html_tagdocs.xsl @@ -43,54 +43,6 @@ of this software, even if advised of the possibility of such damage. - - Process elements teix:egXML - - - false - -
    - - - - - pre - - cdata - - - - egXML_feasible - - - egXML_invalid - - - egXML_valid - - - - - - - - - - - - - - - - - - - - - -
    -
    - Process element ident diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index f1e760a41..4e9293e92 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -784,7 +784,6 @@ -  
    From 606af79b81f5b69a78544c85fef4d5c20fcfc3d5 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Tue, 1 Dec 2020 22:48:55 -0500 Subject: [PATCH 27/58] Debugging for #471: * Change name of files that have all examples from "examples-GI" to "all_examples_of_GI". --- odds/guidelines.xsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 4e9293e92..6ed0e08fb 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -286,7 +286,7 @@ - + @@ -394,7 +394,7 @@
    - examples- + all_examples_of_ @@ -809,7 +809,7 @@ - +   From 53af1a42af6cd608ba631346c56d8aa187e67221 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 4 Dec 2020 08:17:09 -0500 Subject: [PATCH 28/58] Fix: Move template for from html_oddprocessing to html_tagdocs. This fixes the problem found in Test2/ in which elements were being completely dropped, and does not seem to change the results of the Guidelines build at all (i.e., that still works and gives proper anchors in all s). --- debian-tei-xsl/debian/changelog | 6 ++++ html/html_oddprocessing.xsl | 49 ++------------------------------- html/html_tagdocs.xsl | 49 +++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 47 deletions(-) diff --git a/debian-tei-xsl/debian/changelog b/debian-tei-xsl/debian/changelog index 2bce2421e..e21c859e3 100644 --- a/debian-tei-xsl/debian/changelog +++ b/debian-tei-xsl/debian/changelog @@ -1,3 +1,9 @@ +tei-xsl (7.51.0a) natty; urgency=low + + * new release from upstream + + -- TEI Wed, 02 Dec 2020 15:39:00 -0500 + tei-xsl (7.50.0) natty; urgency=low * new release from upstream diff --git a/html/html_oddprocessing.xsl b/html/html_oddprocessing.xsl index 5bcd766d0..3da5eec93 100644 --- a/html/html_oddprocessing.xsl +++ b/html/html_oddprocessing.xsl @@ -215,59 +215,14 @@ of this software, even if advised of the possibility of such damage. + - - Process elements teix:egXML - - - false - -
    - - - - - pre - - cdata - - - - egXML_feasible - - - egXML_invalid - - - egXML_valid - - - - - - - - - - - - - - - - - - - - - -
    -
    + [html] grammar content diff --git a/html/html_tagdocs.xsl b/html/html_tagdocs.xsl index c8a941c23..1ff1bd54b 100644 --- a/html/html_tagdocs.xsl +++ b/html/html_tagdocs.xsl @@ -235,6 +235,55 @@ of this software, even if advised of the possibility of such damage.
    + + + Process elements teix:egXML + + + false + +
    + + + + + pre + + cdata + + + + egXML_feasible + + + egXML_invalid + + + egXML_valid + + + + + + + + + + + + + + + + + + + + + +
    +
    + From a8850ef9310fd384d7b8ca9db81fcd0f04a48ae3 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 4 Dec 2020 10:18:34 -0500 Subject: [PATCH 29/58] Address #478 --- odds/guidelines.xsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 6ed0e08fb..6d7810f56 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -792,7 +792,7 @@ - bibliography +   @@ -802,7 +802,7 @@ - bibliography +   @@ -825,7 +825,7 @@ - bibliography + From b39537d296e3273d99ed49498d763dadc56b674d Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 4 Dec 2020 12:13:11 -0500 Subject: [PATCH 30/58] Revert re-naming of examples files: I had temporarily renamed the examples files for debugging purposes. Lo and behold it helped us find another bug (see TEI #2070), but is no longer needed. --- odds/guidelines.xsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 6d7810f56..9d290a52b 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -286,7 +286,7 @@ - + @@ -394,7 +394,7 @@ - all_examples_of_ + examples- @@ -809,7 +809,7 @@ - +   From 8f53fb6c95a135e3506c6d3ebf3c59675d80ec1c Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 11 Dec 2020 12:27:36 -0500 Subject: [PATCH 31/58] With @martindholmes do part of #471 --- html/html_core.xsl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/html/html_core.xsl b/html/html_core.xsl index e958785e2..45677c869 100644 --- a/html/html_core.xsl +++ b/html/html_core.xsl @@ -239,7 +239,10 @@ of this software, even if advised of the possibility of such damage. Process element eg -
    +    
    +      
    +    
    +    
           
             
               pre_eg
    @@ -249,6 +252,9 @@ of this software, even if advised of the possibility of such damage.
             
           
           
    +      
    +	
    +      
         
    From e7f6138cdd39811d97839e064c6ba3e33dea7f21 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Sat, 12 Dec 2020 08:32:57 -0500 Subject: [PATCH 32/58] Update expected results to match change --- Test/expected-results/test-pure.odd.html | 136 +++++++++++----------- Test/expected-results/test-pure2.odd.html | 48 ++++---- Test/expected-results/test15.odd.html | 32 ++--- Test/expected-results/test34.odd.html | 24 ++-- 4 files changed, 120 insertions(+), 120 deletions(-) diff --git a/Test/expected-results/test-pure.odd.html b/Test/expected-results/test-pure.odd.html index 9fcb23e12..12c00dd2b 100644 --- a/Test/expected-results/test-pure.odd.html +++ b/Test/expected-results/test-pure.odd.html @@ -172,14 +172,14 @@

    Content model

    @@ -187,8 +187,8 @@

    Schema Declaration

    EstadoOpcional
    Tipo de datosteidata.enumerated
    <div typ="verse">  <head>Night in Tarras</head>  <lg type="stanza">   <l>At evening tramping on the hot white road</l> @@ -353,7 +354,7 @@

    Ejemplo

    -
    <body> +
    <body>  <div typ="part">   <head>Fallacies of Authority</head>   <para>The subject of which is Authority in various shapes, and the object, to repress all @@ -713,7 +714,7 @@

    Ejemplo

    -
    <para>Hallgerd was outside. <q>There is blood on your axe,</q> she said. <q>What have you +
    <para>Hallgerd was outside. <q>There is blood on your axe,</q> she said. <q>What have you    done?</q> </para> <para> @@ -809,7 +810,8 @@

    -
    It is spelled <q>Tübingen</q> — to enter the +
    It is spelled <q>Tübingen</q> — to enter the letter <q>u</q> with an umlaut hold down the <q>option</q> key and press <q>0 0 f c</q>
    anchor: (punto de anclaje) enlanza un indentificador con una posición al interno del texto, independientemente del hecho que esta sea o no a un elemento textual. [8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment]
    annotation: represents an annotation following the Web Annotation Data Model. [16.10. The standOff Container]
    appInfo: (información de la aplicación) recoge información sobre la aplicación que ha editado el fichero de TEI. [2.3.11. The Application Information Element]
    cell: contiene una celda de una tabla. [14.1.1. TEI Tables]
    change: resume un cambio o corrección determinada llevada a cabo en una versión dada de un texto electrónico en el que trabajan diversos investigadores. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions]change: resume un cambio o corrección determinada llevada a cabo en una versión dada de un texto electrónico en el que trabajan diversos investigadores. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions]
    choice: agrupa un número de codificaciones alternativas para el mismo punto en un texto. [3.4. Simple Editorial Changes]
    list: contiene cualquier secuencia de ítems o elementos organizados en una lista. [3.7. Lists]
    listAnnotation: contains a list of annotations, typically encoded as <annotation>, <annotationBlock>, or <note>, possibly organized with nested <listAnnotation> elements. [16.10. The standOff Container]
    listBibl: (lista de cita) contiene una lista de citas bibliográficas de cualquier tipo. [3.11.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]
    listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions]listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions]
    listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers]
    model.addressLike: agrupa elementos sintagmáticos usados para representar una dirección postal o electrónica. [1. The TEI Infrastructure]
    model.annotationLike: groups elements used to represent annotations. [16.10. The standOff Container]
    model.annotationPart.body: groups elements which may be used as an <annotation> body.
    model.applicationLike: agrupa en el encabezado los elementos usados para registrar la información específica de la aplicación de un documento.
    model.attributable: groups elements that contain a word or phrase that can be attributed to a source. [3.3.3. Quotation 4.3.2. Floating Texts]
    model.availabilityPart: groups elements such as licences and paragraphs of text which may appear as part of an availability statement [2.2.4. Publication, Distribution, Licensing, etc.]
    model.publicationStmtPart.detail: agrupa los hijos de <publicationStmt>. [2.2.4. Publication, Distribution, Licensing, etc.]
    model.qLike: agrupa elementos relativos al evidenciado que aparece al interno de o entre elementos a nivel de fragmentos de texto. [3.3. Highlighting and Quotation]
    model.quoteLike: agrupa los elementos que contienen directamente las citas
    anchor: (anchor point) attaches an identifier to a point within a text, whether or not it corresponds with a textual element. [8.4.2. Synchronization and Overlap 16.5. Correspondence and Alignment]
    annotation: represents an annotation following the Web Annotation Data Model. [16.10. The standOff Container]
    appInfo: (application information) records information about an application which has edited the TEI file. [2.3.11. The Application Information Element]
    cb: (column beginning) marks the beginning of a new column of a text on a multi-column page. [3.10.3. Milestone Elements]
    change: documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.7. Identifying Changes and Revisions]change: documents a change or set of changes made during the production of a source document, or during the revision of an electronic file. [2.6. The Revision Description 2.4.1. Creation 11.6. Identifying Changes and Revisions]
    choice: groups a number of alternative encodings for the same point in a text. [3.4. Simple Editorial Changes]
    list: contains any sequence of items organized as a list. [3.7. Lists]
    listAnnotation: contains a list of annotations, typically encoded as <annotation>, <annotationBlock>, or <note>, possibly organized with nested <listAnnotation> elements. [16.10. The standOff Container]
    listBibl: (citation list) contains a list of bibliographic citations of any kind. [3.11.1. Methods of Encoding Bibliographic References and Lists of References 2.2.7. The Source Description 15.3.2. Declarable Elements]
    listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.7. Identifying Changes and Revisions]listChange: groups a number of change descriptions associated with either the creation of a source text or the revision of an encoded text. [2.6. The Revision Description 11.6. Identifying Changes and Revisions]
    listPrefixDef: (list of prefix definitions) contains a list of definitions of prefixing schemes used in teidata.pointer values, showing how abbreviated URIs using each scheme may be expanded into full URIs. [16.2.3. Using Abbreviated Pointers]
    model.addressLike: groups elements used to represent a postal or email address. [1. The TEI Infrastructure]
    model.annotationLike: groups elements used to represent annotations. [16.10. The standOff Container]
    model.annotationPart.body: groups elements which may be used as an <annotation> body.
    model.applicationLike: groups elements used to record application-specific information about a document in its header.
    model.attributable: groups elements that contain a word or phrase that can be attributed to a source. [3.3.3. Quotation 4.3.2. Floating Texts]
    model.availabilityPart: groups elements such as licences and paragraphs of text which may appear as part of an availability statement [2.2.4. Publication, Distribution, Licensing, etc.]
    model.publicationStmtPart.detail: groups the agency-specific child elements of the <publicationStmt> element of the TEI header. [2.2.4. Publication, Distribution, Licensing, etc.]
    model.qLike: groups elements related to highlighting which can appear either within or between chunk-level elements. [3.3. Highlighting and Quotation]
    model.quoteLike: groups elements used to directly contain quotations.
    Classes -
    +                
     <content>
      <alternate minOccurs="1" maxOccurs="1">
       <textNode/>
       <elementRef key="bob" maxOccurs="1"/>
      </alternate>
     </content>
    -    
    +
    -
    -element bit { text | bob }
    +
    +element bit { text | bob }
    @@ -287,9 +287,9 @@

    Content model

    -
    +                
     <content/>
    -    
    +
    -
    -element bob { attribute href { xsd:anyURI }?, empty }
    +
    +element bob { attribute href { xsd:anyURI }?, empty }
    @@ -354,9 +354,9 @@

    Content model

    -
    +                
     <content/>
    -    
    +
    -
    -element choice { empty }
    +
    +element choice { empty }
    @@ -421,9 +421,9 @@

    Content model

    -
    +                
     <content/>
    -    
    +
    -
    -element orgName { empty }
    +
    +element orgName { empty }
    @@ -488,9 +488,9 @@

    Content model -
    +                
     <content/>
    -    
    +
    @@ -498,8 +498,8 @@

    Schema Declaration -
    -element persName { empty }
    +
    +element persName { empty }
    @@ -555,9 +555,9 @@

    Content model -
    +                
     <content/>
    -    
    +
    @@ -565,8 +565,8 @@

    Schema Declaration -
    -element seg { empty }
    +
    +element seg { empty }
    @@ -621,7 +621,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="1"
       maxOccurs="unbounded">
    @@ -630,7 +630,7 @@ 

      <elementRef key="thingummy"/>  </alternate> </content> -

    +
    @@ -638,8 +638,8 @@

    Schema Declaration -
    -element stuff { ( bit | bob | thingummy )+ }
    +
    +element stuff { ( bit | bob | thingummy )+ }
    @@ -705,7 +705,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="1" maxOccurs="1">
       <textNode/>
    @@ -714,7 +714,7 @@ 

      <elementRef key="t1"/>  </alternate> </content> -

    +
    @@ -722,8 +722,8 @@

    Schema Declaration -
    -element t1 { text | bit | bob | t1 }
    +
    +element t1 { text | bit | bob | t1 }
    @@ -778,7 +778,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="0"
       maxOccurs="unbounded">
    @@ -787,7 +787,7 @@ 

      <elementRef key="bob"/>  </alternate> </content> -

    +
    @@ -795,8 +795,8 @@

    Schema Declaration -
    -element t2 { ( text | bit | bob )* }
    +
    +element t2 { ( text | bit | bob )* }
    @@ -851,7 +851,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="0" maxOccurs="1">
       <textNode/>
    @@ -859,7 +859,7 @@ 

      <elementRef key="bob"/>  </alternate> </content> -

    +
    @@ -867,8 +867,8 @@

    Schema Declaration -
    -element t3 { ( text | bit | bob )? }
    +
    +element t3 { ( text | bit | bob )? }
    @@ -924,7 +924,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="1"
       maxOccurs="unbounded">
    @@ -934,7 +934,7 @@ 

      <elementRef key="t1"/>  </alternate> </content> -

    +
    @@ -942,8 +942,8 @@

    Schema Declaration -
    -element t4 { ( text | bit | bob | t1 )+ }
    +
    +element t4 { ( text | bit | bob | t1 )+ }
    @@ -998,7 +998,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="1" maxOccurs="1">
       <textNode/>
    @@ -1009,7 +1009,7 @@ 

      </sequence>  </alternate> </content> -

    +
    @@ -1017,8 +1017,8 @@

    Schema Declaration -
    -element t5 { text | ( bit, bob )+ }
    +
    +element t5 { text | ( bit, bob )+ }
    @@ -1073,7 +1073,7 @@

    Content model -
    +                
     <content>
      <sequence minOccurs="0" maxOccurs="1">
       <textNode/>
    @@ -1081,7 +1081,7 @@ 

      <elementRef key="bob"/>  </sequence> </content> -

    +
    @@ -1089,8 +1089,8 @@

    Schema Declaration -
    -element t6 { ( text, bit, bob )? }
    +
    +element t6 { ( text, bit, bob )? }
    @@ -1147,7 +1147,7 @@

    Content model -
    +                
     <content>
      <sequence minOccurs="1" maxOccurs="1">
       <elementRef key="orgName" minOccurs="0"/>
    @@ -1157,7 +1157,7 @@ 

      <elementRef key="trait" minOccurs="0"/>  </sequence> </content> -

    +
    @@ -1165,8 +1165,8 @@

    Schema Declaration -
    -element t7 { orgName?, persName?, choice?, seg?, trait? }
    +
    +element t7 { orgName?, persName?, choice?, seg?, trait? }
    @@ -1224,7 +1224,7 @@

    Content model -
    +                
     <content>
      <sequence minOccurs="1" maxOccurs="1">
       <textNode/>
    @@ -1235,7 +1235,7 @@ 

      <elementRef key="trait" minOccurs="0"/>  </sequence> </content> -

    +
    @@ -1243,8 +1243,8 @@

    Schema Declaration -
    -element t8 { text, orgName?, persName?, choice?, seg?, trait? }
    +
    +element t8 { text, orgName?, persName?, choice?, seg?, trait? }
    @@ -1299,11 +1299,11 @@

    Content model -
    +                
     <content>
      <textNode/>
     </content>
    -    
    +
    @@ -1311,8 +1311,8 @@

    Schema Declaration -
    -element thingummy { text }
    +
    +element thingummy { text }
    @@ -1368,9 +1368,9 @@

    Content model -
    +                
     <content/>
    -    
    +
    @@ -1378,8 +1378,8 @@

    Schema Declaration -
    -element trait { empty }
    +
    +element trait { empty }
    diff --git a/Test/expected-results/test-pure2.odd.html b/Test/expected-results/test-pure2.odd.html index 3639c039a..a3503c826 100644 --- a/Test/expected-results/test-pure2.odd.html +++ b/Test/expected-results/test-pure2.odd.html @@ -136,7 +136,7 @@

    Content model -
    +                
     <content>
      <alternate minOccurs="0"
       maxOccurs="unbounded">
    @@ -144,7 +144,7 @@ 

      <elementRef key="bob"/>  </alternate> </content> -

    +
    @@ -152,8 +152,8 @@

    Schema Declaration -
    -element bit { ( text | bob )* }
    +
    +element bit { ( text | bob )* }
    @@ -259,9 +259,9 @@

    Content model -
    +                
     <content/>
    -    
    +
    @@ -269,8 +269,8 @@

    Schema Declaration -
    -element bob { attribute uri { xsd:anyURI }?, empty }
    +
    +element bob { attribute uri { xsd:anyURI }?, empty }
    @@ -324,13 +324,13 @@

    Content model -
    +                
     <content>
      <classRef key="stuffPart"
       maxOccurs="unbounded">
      </classRef>
     </content>
    -    
    +
    @@ -338,8 +338,8 @@

    Schema Declaration -
    -element stuff { stuffPart+ }
    +
    +element stuff { stuffPart+ }
    @@ -393,13 +393,13 @@

    Content model -
    +                
     <content>
      <classRef key="stuffPart" maxOccurs="1"
       expand="sequence">
      </classRef>
     </content>
    -    
    +
    @@ -407,8 +407,8 @@

    Schema Declaration -
    -element stuffSeq { bob, bit }
    +
    +element stuffSeq { bob, bit }
    @@ -462,13 +462,13 @@

    Content model -
    +                
     <content>
      <classRef key="stuffPart" maxOccurs="1"
       expand="sequenceOptional">
      </classRef>
     </content>
    -    
    +
    @@ -476,8 +476,8 @@

    Schema Declaration -
    -element stuffSeqOpt { bob?, bit? }
    +
    +element stuffSeqOpt { bob?, bit? }
    @@ -531,13 +531,13 @@

    Content model -
    +                
     <content>
      <classRef key="stuffPart" maxOccurs="1"
       expand="sequenceRepeatable">
      </classRef>
     </content>
    -    
    +
    @@ -545,8 +545,8 @@

    Schema Declaration -
    -element stuffSeqRep { bob+, bit+ }
    +
    +element stuffSeqRep { bob+, bit+ }
    diff --git a/Test/expected-results/test15.odd.html b/Test/expected-results/test15.odd.html index f71edbb4e..f1505af93 100644 --- a/Test/expected-results/test15.odd.html +++ b/Test/expected-results/test15.odd.html @@ -402,7 +402,7 @@

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

      </sequence>  </sequence> </content> -

    +
    @@ -457,7 +457,7 @@

    Declaración -
    +                  
     element div
     {
        att.global.attributes,
    @@ -479,7 +479,7 @@ 

    ( model.divBottom, model.global* )* )? ) -}

    +}
    @@ -756,11 +756,11 @@

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

    Declaración -
    +                  
     element para
     {
        att.global.attributes,
    @@ -776,7 +776,7 @@ 

    att.fragmentable.attributes, att.written.attributes, macro.paraContent -}

    +}
    @@ -1087,11 +1087,11 @@

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

    Declaración -
    +                  
     element q
     {
        att.global.attributes,
    @@ -1117,7 +1117,7 @@ 

    | "mentioned" }?, macro.specialPara -}

    +}
    @@ -1192,11 +1192,11 @@

    Content model -
    +                  
     <content>
      <dataRef key="teidata.word"/>
     </content>
    -    
    +
    @@ -1204,8 +1204,8 @@

    Declaración -
    -teidata.enumerated = teidata.word
    +
    +teidata.enumerated = teidata.word
    diff --git a/Test/expected-results/test34.odd.html b/Test/expected-results/test34.odd.html index a5773dbdc..aac2b8f62 100644 --- a/Test/expected-results/test34.odd.html +++ b/Test/expected-results/test34.odd.html @@ -315,10 +315,10 @@

    Content model -
    +                
     <content>
     </content>
    -    
    +
    @@ -326,8 +326,8 @@

    Schema Declaration -
    -element cit { tei_ref, macro.specialPara+, text }
    +
    +element cit { tei_ref, macro.specialPara+, text }
    @@ -601,10 +601,10 @@

    Content model -
    +                
     <content>
     </content>
    -    
    +
    @@ -612,8 +612,8 @@

    Schema Declaration -
    -element cit { tei_ref, macro.specialPara+, text }
    +
    +element cit { tei_ref, macro.specialPara+, text }
    @@ -887,10 +887,10 @@

    Content model -
    +                
     <content>
     </content>
    -    
    +
    @@ -898,8 +898,8 @@

    Schema Declaration -
    -element q { tei_ref, macro.specialPara+, text }
    +
    +element q { tei_ref, macro.specialPara+, text }
    From 2ab84a331d718087e3233e82f4f68b08070523d0 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 18 Dec 2020 14:01:20 -0500 Subject: [PATCH 33/58] Use class: @martindholmes discovered that using the style= attribute for in-line CSS (rather than a class= attribute to refer to CSS elsewhere) causes problems on some servers due to CORS security restrictions (cross-origin resource sharing), so switch our recent change that used style= to a class. --- html/html_core.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/html_core.xsl b/html/html_core.xsl index 45677c869..6707a919a 100644 --- a/html/html_core.xsl +++ b/html/html_core.xsl @@ -252,7 +252,7 @@ of this software, even if advised of the possibility of such damage. - + From d2f5937e2a35ab2ac13438f681b47218a6a1555f Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Wed, 13 Jan 2021 15:52:05 -0500 Subject: [PATCH 34/58] Better handling for table and figure captions. --- docx/from/pass2.xsl | 114 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 89 insertions(+), 25 deletions(-) diff --git a/docx/from/pass2.xsl b/docx/from/pass2.xsl index b9f4cb9d5..2c8d3e747 100644 --- a/docx/from/pass2.xsl +++ b/docx/from/pass2.xsl @@ -87,10 +87,10 @@ of this software, even if advised of the possibility of such damage. - - + + - + Singleton paragraphs in cells dropped @@ -444,35 +444,99 @@ of this software, even if advised of the possibility of such damage. - <CAPTION> belongs to nearest figure or table + <CAPTION> belongs to nearest figure or table. Tables with multi-paragraph preceding + CAPTIONs or with follwing captions are wrapped in a figure and the first para becomes a <head>, + while subsequent ones become <figDescs>. A single preceding CAPTION paragraph becomes an + internal header. Figure captions become headers and figDescs in a similar way. - + + + + + + WARN: Possible confusion on where these captions belong: [[ + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + +
    +
    + + + + + + + WARN: Possible confusion on where these captions belong: [[ + + + + + + + + + + + + + + + - - - WARN: Possible confusion on where these captions belong: [[ - - - - - - - - - - - + + + + + + - - Rename <p> to a more specific name based on @rend From 4a227d8740c2cf6fa18b501d34e7390ee0bea7d1 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Wed, 13 Jan 2021 15:52:39 -0500 Subject: [PATCH 35/58] Better handling of boolean properties. --- docx/from/paragraphs.xsl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docx/from/paragraphs.xsl b/docx/from/paragraphs.xsl index 09cf3469d..c2f7a3f8e 100644 --- a/docx/from/paragraphs.xsl +++ b/docx/from/paragraphs.xsl @@ -145,13 +145,13 @@ of this software, even if advised of the possibility of such damage. - + font-weight: bold; - + font-style: italic; - + text-decoration: underline; From 73e0fbf75ae52a1725d5fb6719f39bc121605387 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Wed, 13 Jan 2021 15:53:32 -0500 Subject: [PATCH 36/58] Don't kill hi with element content. --- docx/from/docxtotei.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx/from/docxtotei.xsl b/docx/from/docxtotei.xsl index ca740436b..4c3ec6043 100644 --- a/docx/from/docxtotei.xsl +++ b/docx/from/docxtotei.xsl @@ -218,7 +218,7 @@ of this software, even if advised of the possibility of such damage.
    - + From 0c1fe814ae7d2f06042a0c5a32e23f12ea50ea91 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 15 Jan 2021 15:31:48 -0500 Subject: [PATCH 37/58] Update onOff function. Attributes such as bolding, italics, etc., may be switched on by the simple act of including, e.g., a w:i in the style. without a value. So if the element exists, but does not have a @w:val, the function should return true. --- docx/from/functions.xsl | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/docx/from/functions.xsl b/docx/from/functions.xsl index 77208a45e..e2f2bbb60 100644 --- a/docx/from/functions.xsl +++ b/docx/from/functions.xsl @@ -277,16 +277,24 @@ of this software, even if advised of the possibility of such damage. - + - - - - - - + + + + + + + + + + + + + + From 922944ba95e5aa7b4985a54aeb7aa80cf38340b2 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 15 Jan 2021 15:36:47 -0500 Subject: [PATCH 38/58] Changed tei:onOff parameter. --- docx/from/paragraphs.xsl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docx/from/paragraphs.xsl b/docx/from/paragraphs.xsl index c2f7a3f8e..ca69b07d6 100644 --- a/docx/from/paragraphs.xsl +++ b/docx/from/paragraphs.xsl @@ -145,18 +145,18 @@ of this software, even if advised of the possibility of such damage. - + font-weight: bold; - + font-style: italic; - + text-decoration: underline; text-align: - + ; @@ -197,7 +197,7 @@ of this software, even if advised of the possibility of such damage. - > + > direction:rtl; From 5fb59b9acd15cd4d9cee09dd9ed4605b9586b953 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 15 Jan 2021 15:37:40 -0500 Subject: [PATCH 39/58] Improved figure handling. --- docx/from/pass2.xsl | 47 ++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/docx/from/pass2.xsl b/docx/from/pass2.xsl index 2c8d3e747..a2f6f4c8f 100644 --- a/docx/from/pass2.xsl +++ b/docx/from/pass2.xsl @@ -86,11 +86,27 @@ of this software, even if advised of the possibility of such damage.

    zap empty p

    - - - - + + + + +
    + +
    +
    + +
    + +
    +
    + + + +
    + +
    + Singleton paragraphs in cells dropped @@ -450,6 +466,7 @@ of this software, even if advised of the possibility of such damage. internal header. Figure captions become headers and figDescs in a similar way. + @@ -466,25 +483,23 @@ of this software, even if advised of the possibility of such damage.
    - - +

    - +

    - - + - +
    @@ -493,7 +508,6 @@ of this software, even if advised of the possibility of such damage. - @@ -517,23 +531,20 @@ of this software, even if advised of the possibility of such damage. - - - +

    - +

    - - + - +
    From 5f71f0c3c07cd26a40d6f2331fa9c1cab3e8bdba Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 15 Jan 2021 15:38:03 -0500 Subject: [PATCH 40/58] Changed tei:onOff parameter. --- docx/from/textruns.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx/from/textruns.xsl b/docx/from/textruns.xsl index 939f0a2b8..f0214153b 100644 --- a/docx/from/textruns.xsl +++ b/docx/from/textruns.xsl @@ -231,7 +231,7 @@ of this software, even if advised of the possibility of such damage.
    - + From ea3959413745ae41a11a1e613c7a5a65cec96fb5 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 15 Jan 2021 15:38:53 -0500 Subject: [PATCH 41/58] Updating tests. --- Test/expected-results/test29.xml | 272 +++++++++++++++--------------- Test/expected-results/test39.xml | 275 ++++++++++++++++--------------- Test/test39.docx | Bin 151368 -> 154785 bytes 3 files changed, 282 insertions(+), 265 deletions(-) diff --git a/Test/expected-results/test29.xml b/Test/expected-results/test29.xml index 5154cdf14..cb4f4498e 100644 --- a/Test/expected-results/test29.xml +++ b/Test/expected-results/test29.xml @@ -164,13 +164,12 @@ Figures and Tables

    Here we reference Figure 1 as well as Table 1: Overview and Table 2.

    - - - - + + Figure 1: An included image
    + Figure 1: An included image

    @@ -179,138 +178,143 @@

    Figure 2. An embedded .xslx graph, doesn’t work yet.
    - - - - - Lendava - - - Murska Sobota - - - Beltinci - - - okoliške vasi - - - skupaj - - - - - 1778 - - - 14 - - - 0 - - - 0 - - - 0 - - - 14 - - - - - 1793 - - - 19 - - - 14 - - - 21 - - - 6 - - - 60 - - - - - 1812 - - - 23 - - - 13 - - - 40 - - - 0 - - - 76 - - +
    +
    + + + + Lendava + + + Murska Sobota + + + Beltinci + + + okoliške vasi + + + skupaj + + + + + 1778 + + + 14 + + + 0 + + + 0 + + + 0 + + + 14 + + + + + 1793 + + + 19 + + + 14 + + + 21 + + + 6 + + + 60 + + + + + 1812 + + + 23 + + + 13 + + + 40 + + + 0 + + + 76 + + +
    + Table 1 A Simple table + +
    Table 1 A Simple table - - - - - SLOVENSKE DEŽELE - - - - - - 144 - - - 192 - - - 182 - - - - - - 96 - - - 89 - - - 145 - - - - - Ljubljana - - - (74) - - - (76) - - - (95) - - - - - Sodni okraji z ozemlja današnje slovenske Primorske - - +
    + + + SLOVENSKE DEŽELE + + + + + + 144 + + + 192 + + + 182 + + + + + + 96 + + + 89 + + + 145 + + + + + Ljubljana + + + (74) + + + (76) + + + (95) + + + + + Sodni okraji z ozemlja današnje slovenske Primorske + + +
    Table 2 A bit more Complex table - +

    Other features diff --git a/Test/expected-results/test39.xml b/Test/expected-results/test39.xml index 42d2a8c2d..a6b2eb1a1 100644 --- a/Test/expected-results/test39.xml +++ b/Test/expected-results/test39.xml @@ -183,10 +183,19 @@

    It is possible to have two images in one figure (i.e. with one Caption). As shown in Figure 2 they can be side by side or they can be side by side i.e. separated by a paragraph mark , c.f. Figure 3.

    + + Figure 2 Two images, side by side
    - +
    + + + +
    +
    + +
    Figure 3 Two images one above the other

    Figures in Word can also be embedded Excel graphs, as is the case with Figure 4. However, this conversion currently does not work.

    @@ -207,138 +216,142 @@
    Tables

    Tables, even somewhat more complicated ones (e.g. Table 2) can also be converted to TEI. However, the details of their layout and formatting will not be preserved. As with Figures, it is currently not possible to convert embedded Excel spreadsheets.

    - - - - - Lendava - - - Murska Sobota - - - Beltinci - - - okoliške vasi - - - skupaj - - - - - 1778 - - - 14 - - - 0 - - - 0 - - - 0 - - - 14 - - - - - 1793 - - - 19 - - - 14 - - - 21 - - - 6 - - - 60 - - - - - 1812 - - - 23 - - - 13 - - - 40 - - - 0 - - - 76 - - +
    +
    + + + + Lendava + + + Murska Sobota + + + Beltinci + + + okoliške vasi + + + skupaj + + + + + 1778 + + + 14 + + + 0 + + + 0 + + + 0 + + + 14 + + + + + 1793 + + + 19 + + + 14 + + + 21 + + + 6 + + + 60 + + + + + 1812 + + + 23 + + + 13 + + + 40 + + + 0 + + + 76 + + +
    Table 1 A Simple table - - - - - SLOVENSKE DEŽELE - - - - - - 144 - - - 192 - - - 182 - - - - - - 96 - - - 89 - - - 145 - - - - - Ljubljana - - - (74) - - - (76) - - - (95) - - - - - Sodni okraji z ozemlja današnje slovenske Primorske - - + +
    +
    + + + SLOVENSKE DEŽELE + + + + + + 144 + + + 192 + + + 182 + + + + + + 96 + + + 89 + + + 145 + + + + + Ljubljana + + + (74) + + + (76) + + + (95) + + + + + Sodni okraji z ozemlja današnje slovenske Primorske + + +
    Table 2 A more complex table with multi columns - +
    Indexes diff --git a/Test/test39.docx b/Test/test39.docx index 5bff555c51246efef8c364300099f593862f1ff8..95022b637223a7f72563f23da2b78b884da1f152 100644 GIT binary patch delta 45663 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 Date: Wed, 20 Jan 2021 15:19:43 -0500 Subject: [PATCH 42/58] Fix value handling for w:u. --- docx/from/functions.xsl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docx/from/functions.xsl b/docx/from/functions.xsl index e2f2bbb60..ee5dffb90 100644 --- a/docx/from/functions.xsl +++ b/docx/from/functions.xsl @@ -282,11 +282,15 @@ of this software, even if advised of the possibility of such damage. + + + + From f21add9bdd79a21ae3a2296a7d67a146fce94f05 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 22 Jan 2021 11:16:55 -0500 Subject: [PATCH 43/58] Footnote ids are not necessarily their position. --- docx/from/marginals.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx/from/marginals.xsl b/docx/from/marginals.xsl index 581d910f4..770dff034 100644 --- a/docx/from/marginals.xsl +++ b/docx/from/marginals.xsl @@ -79,7 +79,7 @@ of this software, even if advised of the possibility of such damage. Handle footnotes - + From 19492714501d60060aed86562886c00361a0c363 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 29 Jan 2021 16:49:55 -0500 Subject: [PATCH 44/58] Update expected results to match the change --- Test/expected-results/test-pure.odd.html | 68 +++++++++++----------- Test/expected-results/test-pure2.odd.html | 24 ++++---- Test/expected-results/test.epub | Bin 384786 -> 384787 bytes Test/expected-results/test.epub.listing | 4 +- Test/expected-results/test.epub.listing2 | 4 +- Test/expected-results/test.xml.odt | Bin 367140 -> 367141 bytes Test/expected-results/test15.odd.html | 16 ++--- Test/expected-results/test34.odd.html | 12 ++-- 8 files changed, 64 insertions(+), 64 deletions(-) diff --git a/Test/expected-results/test-pure.odd.html b/Test/expected-results/test-pure.odd.html index 12c00dd2b..e37c5c2c6 100644 --- a/Test/expected-results/test-pure.odd.html +++ b/Test/expected-results/test-pure.odd.html @@ -179,7 +179,7 @@

      <elementRef key="bob" maxOccurs="1"/>  </alternate> </content> - + @@ -188,7 +188,7 @@

    -element bit { text | bob }
    +element bit { text | bob } @@ -289,7 +289,7 @@

     <content/>
    -    
    + @@ -298,7 +298,7 @@

    -element bob { attribute href { xsd:anyURI }?, empty }
    +element bob { attribute href { xsd:anyURI }?, empty } @@ -356,7 +356,7 @@

     <content/>
    -    
    + @@ -365,7 +365,7 @@

    -element choice { empty }
    +element choice { empty } @@ -423,7 +423,7 @@

     <content/>
    -    
    + @@ -432,7 +432,7 @@

    -element orgName { empty }
    +element orgName { empty } @@ -490,7 +490,7 @@

     <content/>
    -    
    + @@ -499,7 +499,7 @@

    -element persName { empty }
    +element persName { empty } @@ -557,7 +557,7 @@

     <content/>
    -    
    + @@ -566,7 +566,7 @@

    -element seg { empty }
    +element seg { empty } @@ -630,7 +630,7 @@

      <elementRef key="thingummy"/>  </alternate> </content> - + @@ -639,7 +639,7 @@

    -element stuff { ( bit | bob | thingummy )+ }
    +element stuff { ( bit | bob | thingummy )+ } @@ -714,7 +714,7 @@

      <elementRef key="t1"/>  </alternate> </content> - + @@ -723,7 +723,7 @@

    -element t1 { text | bit | bob | t1 }
    +element t1 { text | bit | bob | t1 } @@ -787,7 +787,7 @@

      <elementRef key="bob"/>  </alternate> </content> - + @@ -796,7 +796,7 @@

    -element t2 { ( text | bit | bob )* }
    +element t2 { ( text | bit | bob )* } @@ -859,7 +859,7 @@

      <elementRef key="bob"/>  </alternate> </content> - + @@ -868,7 +868,7 @@

    -element t3 { ( text | bit | bob )? }
    +element t3 { ( text | bit | bob )? } @@ -934,7 +934,7 @@

      <elementRef key="t1"/>  </alternate> </content> - + @@ -943,7 +943,7 @@

    -element t4 { ( text | bit | bob | t1 )+ }
    +element t4 { ( text | bit | bob | t1 )+ } @@ -1009,7 +1009,7 @@

      </sequence>  </alternate> </content> - + @@ -1018,7 +1018,7 @@

    -element t5 { text | ( bit, bob )+ }
    +element t5 { text | ( bit, bob )+ } @@ -1081,7 +1081,7 @@

      <elementRef key="bob"/>  </sequence> </content> - + @@ -1090,7 +1090,7 @@

    -element t6 { ( text, bit, bob )? }
    +element t6 { ( text, bit, bob )? } @@ -1157,7 +1157,7 @@

      <elementRef key="trait" minOccurs="0"/>  </sequence> </content> - + @@ -1166,7 +1166,7 @@

    -element t7 { orgName?, persName?, choice?, seg?, trait? }
    +element t7 { orgName?, persName?, choice?, seg?, trait? } @@ -1235,7 +1235,7 @@

      <elementRef key="trait" minOccurs="0"/>  </sequence> </content> - + @@ -1244,7 +1244,7 @@

    -element t8 { text, orgName?, persName?, choice?, seg?, trait? }
    +element t8 { text, orgName?, persName?, choice?, seg?, trait? } @@ -1303,7 +1303,7 @@

    <content>  <textNode/> </content> - + @@ -1312,7 +1312,7 @@

    -element thingummy { text }
    +element thingummy { text } @@ -1370,7 +1370,7 @@

     <content/>
    -    
    + @@ -1379,7 +1379,7 @@

    -element trait { empty }
    +element trait { empty } diff --git a/Test/expected-results/test-pure2.odd.html b/Test/expected-results/test-pure2.odd.html index a3503c826..6978348e3 100644 --- a/Test/expected-results/test-pure2.odd.html +++ b/Test/expected-results/test-pure2.odd.html @@ -144,7 +144,7 @@

      <elementRef key="bob"/>  </alternate> </content> - + @@ -153,7 +153,7 @@

    -element bit { ( text | bob )* }
    +element bit { ( text | bob )* } @@ -261,7 +261,7 @@

     <content/>
    -    
    + @@ -270,7 +270,7 @@

    -element bob { attribute uri { xsd:anyURI }?, empty }
    +element bob { attribute uri { xsd:anyURI }?, empty } @@ -330,7 +330,7 @@

      maxOccurs="unbounded">  </classRef> </content> - + @@ -339,7 +339,7 @@

    -element stuff { stuffPart+ }
    +element stuff { stuffPart+ } @@ -399,7 +399,7 @@

      expand="sequence">  </classRef> </content> - + @@ -408,7 +408,7 @@

    -element stuffSeq { bob, bit }
    +element stuffSeq { bob, bit } @@ -468,7 +468,7 @@

      expand="sequenceOptional">  </classRef> </content> - + @@ -477,7 +477,7 @@

    -element stuffSeqOpt { bob?, bit? }
    +element stuffSeqOpt { bob?, bit? } @@ -537,7 +537,7 @@

      expand="sequenceRepeatable">  </classRef> </content> - + @@ -546,7 +546,7 @@

    -element stuffSeqRep { bob+, bit+ }
    +element stuffSeqRep { bob+, bit+ } diff --git a/Test/expected-results/test.epub b/Test/expected-results/test.epub index affd4eb24efcc5349591689dc198ada7de7374b8..82419ac9f98f6cd98e6d84c4f18fc09635ba9ea4 100644 GIT binary patch delta 4028 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 delta 1922 zcmZWq3p7+|9KUntep3y3HF+03NZzSdB(I8PkZDo0wk(SA%&5>Z9%a|2%oygQ4s|lN zEn$j`j_uHtNKy)G*J7Jpk4bB+NM+03naOI}d(S=h|Ns48zwf)}``z+dOhFB)W zL>F>H;?7yCWzUgCTQ@)U@}#-?`ZMRs<3VJ1hz)!W)2m4i1ts+EY8o8dFsGA^k zjd>TuKN0E?E{tE2Vv;{W?q$(zGC6GfHI{q*PYLhcUz~~NdOmknPcXMSbm?La(%~kG zI9y`k{eaK8ip6rH4wu=6nmbLFGerTKx7mwMz~uo`zDPtE=zAKe-;P$KI`q#Kn+4RIoLbr+If7*R z2{SItcn13Ho6c@pRh%X^3C~Z7Ck2Z3Y-_9LGD|vI-#5SJr zMVaqZw>2})YuKx?{=mv0=9d9r^zN*&L2&9diKRUQE7v=&Hq_)i%GDIVf7bcMZ^wJ0 zW}-JpriUUMU9@_Q*W_Hhl0MbZ;IzclKd1ay9@;vQz0`}j`Bpv>k6 z{IT%fwvh4WvQsp1C6AXCQz0&`ERN;3N^)zvsJ7a723r5(eic-qu48wu>1I=RWc*dp zz|(lPUCNE;mBZJvG;$mzq@V3oyhRba?~c|8_Px~-SRV&q88l-7XPK73I2N#%TXRJ~ z7q+l~DU2!thESaiD6j|uS%$KdCwPi)WN6}%gm8vJicIt73UQ)u@B#WVrVScQ_^VBnj%|10zEjgE93wCN8ff z_@lW{i10E_*Fjn?fkLsQ#~)hYEuRO~ICvlDTe1vTmk-osDkX>8jNoAozSpygu-_Ru zj7#pv*#obnu+c~L5&L1?f5;#{h&b7T!UTr3ISOv+=i&08}#Gi zzc<+yr*ZM|18(pv7uY(8k^mAD5*v9ioRMgm5O(m>C4DOI^WTJ*p_&4hLa+%nN`>1Y j*s@lT2@pnNa&$ODD*wJzfNuhV7~}Ua{%bH{0o?l+Jg4Va diff --git a/Test/expected-results/test15.odd.html b/Test/expected-results/test15.odd.html index f1505af93..c3ff1be9e 100644 --- a/Test/expected-results/test15.odd.html +++ b/Test/expected-results/test15.odd.html @@ -449,7 +449,7 @@

      </sequence>  </sequence> </content> - + @@ -479,7 +479,7 @@

    ( model.divBottom, model.global* )* )? ) -} +} @@ -760,7 +760,7 @@

    <content>  <macroRef key="macro.paraContent"/> </content> - + @@ -776,7 +776,7 @@

    att.fragmentable.attributes, att.written.attributes, macro.paraContent -} +} @@ -1091,7 +1091,7 @@

    <content>  <macroRef key="macro.specialPara"/> </content> - + @@ -1117,7 +1117,7 @@

    | "mentioned" }?, macro.specialPara -} +} @@ -1196,7 +1196,7 @@

    <content>  <dataRef key="teidata.word"/> </content> - + @@ -1205,7 +1205,7 @@

    -teidata.enumerated = teidata.word
    +teidata.enumerated = teidata.word diff --git a/Test/expected-results/test34.odd.html b/Test/expected-results/test34.odd.html index aac2b8f62..fbff7814d 100644 --- a/Test/expected-results/test34.odd.html +++ b/Test/expected-results/test34.odd.html @@ -318,7 +318,7 @@

     <content>
     </content>
    -    
    + @@ -327,7 +327,7 @@

    -element cit { tei_ref, macro.specialPara+, text }
    +element cit { tei_ref, macro.specialPara+, text } @@ -604,7 +604,7 @@

     <content>
     </content>
    -    
    + @@ -613,7 +613,7 @@

    -element cit { tei_ref, macro.specialPara+, text }
    +element cit { tei_ref, macro.specialPara+, text } @@ -890,7 +890,7 @@

     <content>
     </content>
    -    
    + @@ -899,7 +899,7 @@

    -element q { tei_ref, macro.specialPara+, text }
    +element q { tei_ref, macro.specialPara+, text } From 58e174cc0cfb40aec0b980265cd749f8e54d0603 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Sat, 30 Jan 2021 11:28:37 -0500 Subject: [PATCH 45/58] Making text-align for table cells work. --- docx/from/functions.xsl | 25 +++++- docx/from/paragraphs.xsl | 13 ++- docx/from/tables.xsl | 184 ++++++++++++++++++++------------------- 3 files changed, 120 insertions(+), 102 deletions(-) diff --git a/docx/from/functions.xsl b/docx/from/functions.xsl index ee5dffb90..50c2d195c 100644 --- a/docx/from/functions.xsl +++ b/docx/from/functions.xsl @@ -276,19 +276,21 @@ of this software, even if advised of the possibility of such damage. + + Returns true or false for value types that may be "on" or "off". + If the parent element exists but does not have a @w:val, the + function returns true. + - - - @@ -298,7 +300,22 @@ of this software, even if advised of the possibility of such damage. - + + + + Translates standard justification values into CSS text-align values. + + + + + left + right + left + right + center + justify + left + diff --git a/docx/from/paragraphs.xsl b/docx/from/paragraphs.xsl index ca69b07d6..4fa9c2e20 100644 --- a/docx/from/paragraphs.xsl +++ b/docx/from/paragraphs.xsl @@ -151,12 +151,12 @@ of this software, even if advised of the possibility of such damage. font-style: italic; - + text-decoration: underline; - text-align: - + text-align: + ; @@ -184,10 +184,9 @@ of this software, even if advised of the possibility of such damage. - - text-align: - + + text-align: + ; diff --git a/docx/from/tables.xsl b/docx/from/tables.xsl index 7dcb652ad..958b285e9 100644 --- a/docx/from/tables.xsl +++ b/docx/from/tables.xsl @@ -372,96 +372,98 @@ of this software, even if advised of the possibility of such damage. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - left - - - - - - - - - - - - - - - - - - - - - background-color( - - ) - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text-align: + + + + + + + + + + + + left + + + ; + + + + + + + + + + + + + + + + + + + background-color( + + ) + + + + + + + + + + + + + + + + +
    @@ -504,7 +506,7 @@ of this software, even if advised of the possibility of such damage. - + From 55a357106f32bd9a04f4bf1fef42e50fc66a727d Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Sat, 30 Jan 2021 12:16:30 -0500 Subject: [PATCH 46/58] Added space in style for consistency. --- docx/from/tables.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docx/from/tables.xsl b/docx/from/tables.xsl index 958b285e9..d29214736 100644 --- a/docx/from/tables.xsl +++ b/docx/from/tables.xsl @@ -404,7 +404,7 @@ of this software, even if advised of the possibility of such damage. - text-align: + text-align: Date: Sat, 30 Jan 2021 12:17:11 -0500 Subject: [PATCH 47/58] Fixing tests. --- Test/expected-results/test-rtf2tei.xml | 26 ++++----- Test/expected-results/test18.xml | 4 +- Test/expected-results/test19.xml | 20 +++---- Test/expected-results/test29.xml | 76 +++++++++++++------------- Test/expected-results/test37.xml | 2 +- Test/expected-results/test39.xml | 76 +++++++++++++------------- debian-tei-xsl/debian/changelog | 6 ++ 7 files changed, 108 insertions(+), 102 deletions(-) diff --git a/Test/expected-results/test-rtf2tei.xml b/Test/expected-results/test-rtf2tei.xml index 8dc92b7bb..50d9d231c 100644 --- a/Test/expected-results/test-rtf2tei.xml +++ b/Test/expected-results/test-rtf2tei.xml @@ -36,12 +36,12 @@ -

    +

    Pretvorba RTF v TEI P5 Navodila in testno besedilo

    -

    +

    Tomaž Erjavec Odsek za tehnologije znanja @@ -52,7 +52,7 @@ tomaz.erjavec@ijs.si

    -

    +

    2013-01-14

    Na http://nl.ijs.si/e-zrc/rtf2tei/ najdete servis za pretvorbo Word datotek v TEI P5. Spletna stran vsebuje tudi navodila za uporabo same spletnega servisa, pričujoče besedilo pa vsebuje navodila za oblikovanje Word datotek za servis in obenem služi kot testno besedilo, ki ga lahko pošljete servisu, da vam vrne ustrezno stavljen rezultat v XML oz. HTML.

    @@ -170,18 +170,18 @@

    Primer tabele:

    - Prva vrstica - 1. stolpec - 2. stolpec - 3. stolpec - 4. stolpec + Prva vrstica + 1. stolpec + 2. stolpec + 3. stolpec + 4. stolpec - Druga vrstica - 1. stolpec - 2. stolpec - 3. stolpec - 4. stolpec + Druga vrstica + 1. stolpec + 2. stolpec + 3. stolpec + 4. stolpec
    diff --git a/Test/expected-results/test18.xml b/Test/expected-results/test18.xml index 0c2a14891..149409ea5 100644 --- a/Test/expected-results/test18.xml +++ b/Test/expected-results/test18.xml @@ -36,8 +36,8 @@ -

    securitizationNew European Security TheoryKopenhagener SchuledesecuritizationMehrere sicherheitspolitische Akteure können aus verschiedenen Gründen nach der Kopenhagener Schule einen „Sicherheitskomplex“ bilden. „A security complex is defined as a set of states whose major security perceptions and concerns are so interlinked that their national security problems cannot reasonably be analysed or resolved apart from one another. The formative dynamics and structure of a security complex are generated by the states within that complex – by their security perceptions of, and interactions with, each other. Individual security complexes are durable but not permanent features of the international system. The theory posits that in a geographically diverse, anarchic international system, security complexes are a normal and expected feature […].”

    Buzan/Wæver/Wilde, Security. A new Framework for Analysis, S. 12.

    Mit Thesen zu Sicherheitskomplexen betont die Kopenhagener Schule die Regionalität der Sicherheit. Trotz weltweiter Vernetzung und Globalisierung seien nur die wenigsten Akteure an allen sicherheitspolitischen Entwicklungen weltweit und zu jeder Zeit interessiert. Die meisten Sicherheitsangelegenheiten sind nach Überzeugung der Kopenhagener Schule regional, häufig innerhalb eines Staates oder in direkter Nachbarschaft angelegt, da sich potenzielle Bedrohungen in vielen Fällen schneller über kurze als über lange Entfernungen ausbreiten.

    Hier zeigt sich erneut ein Unterschied zum Realismus, der von Wissenschaftlern in den USA vertreten wird. Die USA werden dort als eine globale Macht mit weltweiten sicherheitspolitischen Interessen gesehen, was sich unter anderem an Diskursen zeigt, die nach dem Kalten Krieg geführt wurden und bis heute werden, sei es zu „Kampf der Kulturen“, „Unipolarität“, „Krieg gegen den Terrorismus“ oder „Globalisierung“.

    -

    SicherheitskomplexeKopenhagener SchuleSicherheitsgemeinschaftenSicherheitskomplexeNew European Security TheoryKopenhagener SchuleSicherheitskomplexeDie Pariser Schule, deren zentrale Vertreter Didier Bigo

    Vgl. exemplarisch: Bigo, Polices en résaux; Bigo, L’Europe de la sécurité intérieure, in: Gloannec (Hrsg.), Entre Union et Nations, S. 55–90; Bigo, When two become one, in: Kelstrup/Williams (Hrsg.), International Relations Theory and the Politics of European Integration, S. 171–204.

    und Jef Huysmans

    Vgl. exemplarisch: Huysmans, Revisiting Copenhagen; Noxolo/Huysmans (Hrsg.), Community, citizenship, and the ‘war on terror’; Aradau/Huysmans, Mobilising (global) democracy; Squire/Huysmans, Migration and Security, in: Dunn Cavelty/Mauer (Hrsg.), Handbook of Security Studies.

    sind, ist stärker soziologisch und empirisch geprägt als die Waliser und Kopenhagener Schulen. Im Fokus der Untersuchungen stehen Sicherheitsexperten von Polizei, Militär, Zoll und Regierungsstellen, aber auch Vertreter von Forschungsinstituten oder Stiftungen. Die Analysen der Pariser Schule konzentrieren sich zunächst einmal darauf, wer eine – zumindest weitgehend anerkannte – Expertenrolle im Bereich Sicherheit einnimmt. Weiterhin werden Funktionen und Handlungsabläufe der Sicherheitsexperten untersucht. Experten nehmen deshalb die zentrale Stelle bei diesen Untersuchungen ein, weil Vertreter der Pariser Schule davon ausgehen, dass sie zum Beispiel Bedrohungen identifizieren, Sicherheitsstrategien entwickeln und mögliche Gegenmaßnahmen einleiten. Damit seien sie entscheidende Akteure in der sicherheitspolitischen Praxis, deren Rolle und Verhalten vornehmlich zu beleuchten sei.

    +

    securitizationNew European Security TheoryKopenhagener SchuledesecuritizationMehrere sicherheitspolitische Akteure können aus verschiedenen Gründen nach der Kopenhagener Schule einen „Sicherheitskomplex“ bilden. „A security complex is defined as a set of states whose major security perceptions and concerns are so interlinked that their national security problems cannot reasonably be analysed or resolved apart from one another. The formative dynamics and structure of a security complex are generated by the states within that complex – by their security perceptions of, and interactions with, each other. Individual security complexes are durable but not permanent features of the international system. The theory posits that in a geographically diverse, anarchic international system, security complexes are a normal and expected feature […].”

    Buzan/Wæver/Wilde, Security. A new Framework for Analysis, S. 12.

    Mit Thesen zu Sicherheitskomplexen betont die Kopenhagener Schule die Regionalität der Sicherheit. Trotz weltweiter Vernetzung und Globalisierung seien nur die wenigsten Akteure an allen sicherheitspolitischen Entwicklungen weltweit und zu jeder Zeit interessiert. Die meisten Sicherheitsangelegenheiten sind nach Überzeugung der Kopenhagener Schule regional, häufig innerhalb eines Staates oder in direkter Nachbarschaft angelegt, da sich potenzielle Bedrohungen in vielen Fällen schneller über kurze als über lange Entfernungen ausbreiten.

    Hier zeigt sich erneut ein Unterschied zum Realismus, der von Wissenschaftlern in den USA vertreten wird. Die USA werden dort als eine globale Macht mit weltweiten sicherheitspolitischen Interessen gesehen, was sich unter anderem an Diskursen zeigt, die nach dem Kalten Krieg geführt wurden und bis heute werden, sei es zu „Kampf der Kulturen“, „Unipolarität“, „Krieg gegen den Terrorismus“ oder „Globalisierung“.

    +

    SicherheitskomplexeKopenhagener SchuleSicherheitsgemeinschaftenSicherheitskomplexeNew European Security TheoryKopenhagener SchuleSicherheitskomplexeDie Pariser Schule, deren zentrale Vertreter Didier Bigo

    Vgl. exemplarisch: Bigo, Polices en résaux; Bigo, L’Europe de la sécurité intérieure, in: Gloannec (Hrsg.), Entre Union et Nations, S. 55–90; Bigo, When two become one, in: Kelstrup/Williams (Hrsg.), International Relations Theory and the Politics of European Integration, S. 171–204.

    und Jef Huysmans

    Vgl. exemplarisch: Huysmans, Revisiting Copenhagen; Noxolo/Huysmans (Hrsg.), Community, citizenship, and the ‘war on terror’; Aradau/Huysmans, Mobilising (global) democracy; Squire/Huysmans, Migration and Security, in: Dunn Cavelty/Mauer (Hrsg.), Handbook of Security Studies.

    sind, ist stärker soziologisch und empirisch geprägt als die Waliser und Kopenhagener Schulen. Im Fokus der Untersuchungen stehen Sicherheitsexperten von Polizei, Militär, Zoll und Regierungsstellen, aber auch Vertreter von Forschungsinstituten oder Stiftungen. Die Analysen der Pariser Schule konzentrieren sich zunächst einmal darauf, wer eine – zumindest weitgehend anerkannte – Expertenrolle im Bereich Sicherheit einnimmt. Weiterhin werden Funktionen und Handlungsabläufe der Sicherheitsexperten untersucht. Experten nehmen deshalb die zentrale Stelle bei diesen Untersuchungen ein, weil Vertreter der Pariser Schule davon ausgehen, dass sie zum Beispiel Bedrohungen identifizieren, Sicherheitsstrategien entwickeln und mögliche Gegenmaßnahmen einleiten. Damit seien sie entscheidende Akteure in der sicherheitspolitischen Praxis, deren Rolle und Verhalten vornehmlich zu beleuchten sei.

    diff --git a/Test/expected-results/test19.xml b/Test/expected-results/test19.xml index 13bfbb954..3116a090d 100644 --- a/Test/expected-results/test19.xml +++ b/Test/expected-results/test19.xml @@ -98,18 +98,18 @@ - A - B - C - D - E + A + B + C + D + E - 1 - 2 - 3 - 4 - 5 + 1 + 2 + 3 + 4 + 5
    diff --git a/Test/expected-results/test29.xml b/Test/expected-results/test29.xml index cb4f4498e..b234faab3 100644 --- a/Test/expected-results/test29.xml +++ b/Test/expected-results/test29.xml @@ -181,80 +181,80 @@
    - - + + Lendava - + Murska Sobota - + Beltinci - + okoliške vasi - + skupaj - + 1778 - + 14 - + 0 - + 0 - + 0 - + 14 - + 1793 - + 19 - + 14 - + 21 - + 6 - + 60 - + 1812 - + 23 - + 13 - + 40 - + 0 - + 76 @@ -265,50 +265,50 @@ Table 1 A Simple table
    - + SLOVENSKE DEŽELE - - + + 144 - + 192 - + 182 - - + + 96 - + 89 - + 145 - + Ljubljana - + (74) - + (76) - + (95) - + Sodni okraji z ozemlja današnje slovenske Primorske diff --git a/Test/expected-results/test37.xml b/Test/expected-results/test37.xml index 3056cddbd..d4ba53ae2 100644 --- a/Test/expected-results/test37.xml +++ b/Test/expected-results/test37.xml @@ -37,7 +37,7 @@
    -

    +

    Docx To TEI

    diff --git a/Test/expected-results/test39.xml b/Test/expected-results/test39.xml index a6b2eb1a1..8e707238c 100644 --- a/Test/expected-results/test39.xml +++ b/Test/expected-results/test39.xml @@ -219,80 +219,80 @@

    - - + + Lendava - + Murska Sobota - + Beltinci - + okoliške vasi - + skupaj - + 1778 - + 14 - + 0 - + 0 - + 0 - + 14 - + 1793 - + 19 - + 14 - + 21 - + 6 - + 60 - + 1812 - + 23 - + 13 - + 40 - + 0 - + 76 @@ -302,50 +302,50 @@
    - + SLOVENSKE DEŽELE - - + + 144 - + 192 - + 182 - - + + 96 - + 89 - + 145 - + Ljubljana - + (74) - + (76) - + (95) - + Sodni okraji z ozemlja današnje slovenske Primorske diff --git a/debian-tei-xsl/debian/changelog b/debian-tei-xsl/debian/changelog index 2bce2421e..6d8b6a0b2 100644 --- a/debian-tei-xsl/debian/changelog +++ b/debian-tei-xsl/debian/changelog @@ -1,3 +1,9 @@ +tei-xsl (7.51.0a) natty; urgency=low + + * new release from upstream + + -- TEI Sat, 30 Jan 2021 11:30:47 -0500 + tei-xsl (7.50.0) natty; urgency=low * new release from upstream From eba9d9c465b7bf5b81503166d048bbf0c8fe51e0 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Mon, 8 Feb 2021 16:20:12 -0500 Subject: [PATCH 48/58] Fixing issues with CJK and PDF. --- common/common_figures.xsl | 3 ++ common/functions.xsl | 1 + latex/latex.xsl | 80 +++++++++++++++++++++++++++------------ latex/latex_tagdocs.xsl | 23 +++++++---- 4 files changed, 74 insertions(+), 33 deletions(-) diff --git a/common/common_figures.xsl b/common/common_figures.xsl index 45994670c..0fa7721f8 100644 --- a/common/common_figures.xsl +++ b/common/common_figures.xsl @@ -124,6 +124,9 @@ of this software, even if advised of the possibility of such damage. pt + + + diff --git a/common/functions.xsl b/common/functions.xsl index 3dc8e1a04..6853ed4d0 100644 --- a/common/functions.xsl +++ b/common/functions.xsl @@ -227,6 +227,7 @@ of this software, even if advised of the possibility of such damage. + false true true true diff --git a/latex/latex.xsl b/latex/latex.xsl index e9ecb0fa6..6b07aae03 100644 --- a/latex/latex.xsl +++ b/latex/latex.xsl @@ -101,9 +101,9 @@ of this software, even if advised of the possibility of such damage. } - {\textJapanese + {\textJapanese { - } + }} {\textKorean @@ -199,24 +199,39 @@ of this software, even if advised of the possibility of such damage. - - \textit{ - - } - - - \textit{ - - } - - - - - - - - - + + {\textJapanese { + + }} + + + {\textKorean { + + }} + + + {\textChinese { + + }} + + + \textit{ + + } + + + \textit{ + + } + + + + + + + + + @@ -257,11 +272,26 @@ of this software, even if advised of the possibility of such damage. - - \textit{ - - } - + + \textit{ + + } + + + {\textJapanese + + } + + + {\textKorean + + } + + + {\textChinese + + } + diff --git a/latex/latex_tagdocs.xsl b/latex/latex_tagdocs.xsl index 818dfd60c..1a08c06cd 100644 --- a/latex/latex_tagdocs.xsl +++ b/latex/latex_tagdocs.xsl @@ -154,15 +154,15 @@ of this software, even if advised of the possibility of such damage. - + {\textChinese } - {\textJapanese + {\textJapanese { - } + }} {\textKorean @@ -309,14 +309,21 @@ of this software, even if advised of the possibility of such damage. { - - \textChinese - - - \textJapanese + \textJapanese { + } + + \textKorean { + + } + + + \textChinese { + + } + From 8ca7a13c745093bc215aaa797ffdacea6a94918b Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Mon, 8 Feb 2021 17:01:30 -0500 Subject: [PATCH 49/58] Fixing tests. --- Test/expected-results/test.tex | 2 +- Test/expected-results/test23.tex | 2 +- latex/latex.xsl | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Test/expected-results/test.tex b/Test/expected-results/test.tex index 844563649..8670196e3 100644 --- a/Test/expected-results/test.tex +++ b/Test/expected-results/test.tex @@ -389,7 +389,7 @@ \section*{Contents.}\begin{description} Here, by contrast is an ‘inline quotation’. Another strange thing about quotes is this: \begin{quote}You can put line breaks{\hskip1pt}\\{}to determine where the line breaks{\hskip1pt}\\{}Inside a block!\end{quote} \section[{Use of xml:lang}]{Use of xml:lang}\par He used a French \textit{radiateur}.\par -Languages: \textit{Deutsch}; \textit{Italiano}; \textit{Español}; \textit{Français}; \textit{Portugues}; \textit{Russian}; \textit{Svenska}; \textit{日本語}; \textit{中文}. +Languages: \textit{Deutsch}; \textit{Italiano}; \textit{Español}; \textit{Français}; \textit{Portugues}; \textit{Russian}; \textit{Svenska}; {\textJapanese 日本語}; {\textChinese 中文}. \section[{del, gap, add, unclear etc}]{del, gap, add, unclear etc}\par \sout{. The interest \& — affor the amount over so small} the interest afforded ⟨\textit{compared with cash,}⟩ by the Annuity{\hskip1pt}\\{} note paper to those who \textit{tutor}[?] ⟨\textit{think}⟩ it, ⟨\textit{or keep it,}⟩ with a view {\hskip1pt}\\{} to circulation, will, \sout{when compared with cash} ⟨\textit{be it ever so small}⟩ be {\hskip1pt}\\{} so much \uline{profit}: compared with \sout{a} ⟨\textit{the}⟩ preceding higher {\hskip1pt}\\{} rate of interest, the ⟨\textit{reduced}⟩ rate afforded by the Annuity {\hskip1pt}\\{} note paper, to those who, \textit{tutor}[?] if they \textit{tutor}[?] it, {\hskip1pt}\\{} will, \sout{have to depend upon} to the extent of their {\hskip1pt}\\{} respective capitals so invested, have nothing else {\hskip1pt}\\{} to depend upon for their ⟨\textit{respective}⟩ incomes, will, \sout{} ⟨\textit{by}⟩ the {\hskip1pt}\\{} amount of the difference, \textit{foremost}[?] itself as so {\hskip1pt}\\{} much less. \section[{Drama}]{Drama} \begin{description} \item[Roderigo] diff --git a/Test/expected-results/test23.tex b/Test/expected-results/test23.tex index df0c9c8a8..3a6ade998 100644 --- a/Test/expected-results/test23.tex +++ b/Test/expected-results/test23.tex @@ -340,7 +340,7 @@ \par Figure links: \ref{testfig} and \hyperref[testfig]{Lessing pic}\par {\persName Edward George Bulwer-Lytton, Baron Lytton of {\placeName Knebworth}} via Marsala 24 40126 {\name Bologna} {\name Italy}\par -Languages: \textit{Deutsch}; \textit{Italiano}; \textit{Español}; \textit{Français}; \textit{Portugues}; \textit{Russian}; \textit{Svenska}; \textit{日本語}; \textit{中文}.\par +Languages: \textit{Deutsch}; \textit{Italiano}; \textit{Español}; \textit{Français}; \textit{Portugues}; \textit{Russian}; \textit{Svenska}; {\textJapanese 日本語}; {\textChinese 中文}.\par Here is a simple \texttt{} to the next section: \textit{\hyperref[P1]{1. Tests}}. Here is a simple \texttt{}, a \hyperref[P1]{reference to it}. \par \begin{longtable}{P{0.11724137931034483\textwidth}P{0.7327586206896551\textwidth}} emph\tabcellsep This is \textit{emph} tag\end{longtable} \par diff --git a/latex/latex.xsl b/latex/latex.xsl index 6b07aae03..83ec448ca 100644 --- a/latex/latex.xsl +++ b/latex/latex.xsl @@ -272,22 +272,22 @@ of this software, even if advised of the possibility of such damage. - + \textit{ } - + {\textJapanese } - + {\textKorean } - + {\textChinese } From 668331b7e3aa0284cbde5e68f4c918c9d1bce823 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 12 Feb 2021 13:48:05 -0500 Subject: [PATCH 50/58] Address #444: Found a template for the 'desc' element that copied only the contents, did not preserve the element itself; changed it to copy the entire element. Seems to work. --- common/common_tagdocs.xsl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index d5706a68a..217910117 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2499,7 +2499,11 @@ Process element desc - + + + + From 2e23686d9445e63e6200ae4c760ff47da53b2537 Mon Sep 17 00:00:00 2001 From: Syd Bauman Date: Fri, 12 Feb 2021 17:13:01 -0500 Subject: [PATCH 51/58] Revert previous commit, as it broke the build; see ticket #444 --- common/common_tagdocs.xsl | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/common/common_tagdocs.xsl b/common/common_tagdocs.xsl index 217910117..d5706a68a 100644 --- a/common/common_tagdocs.xsl +++ b/common/common_tagdocs.xsl @@ -2499,11 +2499,7 @@ Process element desc - - - - + From 1f07c39bff168d02370fa5052749cbd2c66f7955 Mon Sep 17 00:00:00 2001 From: rvdb Date: Mon, 15 Feb 2021 22:23:23 +0100 Subject: [PATCH 52/58] only try to number notes inside tei:text for OpenEdition output --- profiles/jtei/openedition/to.xsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/profiles/jtei/openedition/to.xsl b/profiles/jtei/openedition/to.xsl index aece078e2..0516fd51e 100644 --- a/profiles/jtei/openedition/to.xsl +++ b/profiles/jtei/openedition/to.xsl @@ -175,7 +175,7 @@ - + @@ -414,7 +414,7 @@ - + From e92d39ae00febad2b889f86312a1038d039f3515 Mon Sep 17 00:00:00 2001 From: rvdb Date: Tue, 16 Feb 2021 09:52:25 +0100 Subject: [PATCH 53/58] only count footnotes inside tei:text (thanks @martindholmes !) --- profiles/jtei/jtei.common.xsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/jtei/jtei.common.xsl b/profiles/jtei/jtei.common.xsl index e5cad909a..0cee8df0a 100644 --- a/profiles/jtei/jtei.common.xsl +++ b/profiles/jtei/jtei.common.xsl @@ -445,7 +445,7 @@ - + From 02c82e606b923bca5ba100d3a58ee30ab95e8ed2 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Tue, 16 Feb 2021 11:35:50 -0500 Subject: [PATCH 54/58] Somehow messed with changelog. --- debian-tei-xsl/debian/changelog | 4 ---- 1 file changed, 4 deletions(-) diff --git a/debian-tei-xsl/debian/changelog b/debian-tei-xsl/debian/changelog index 44976ec61..e21c859e3 100644 --- a/debian-tei-xsl/debian/changelog +++ b/debian-tei-xsl/debian/changelog @@ -2,11 +2,7 @@ tei-xsl (7.51.0a) natty; urgency=low * new release from upstream -<<<<<<< HEAD - -- TEI Sat, 30 Jan 2021 11:30:47 -0500 -======= -- TEI Wed, 02 Dec 2020 15:39:00 -0500 ->>>>>>> dev tei-xsl (7.50.0) natty; urgency=low From d3d1c2c72e8b7309f8b0d8d9a53e5565f3d811a5 Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 19 Feb 2021 16:05:13 -0500 Subject: [PATCH 55/58] Fix for #484. --- odds/guidelines.xsl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/odds/guidelines.xsl b/odds/guidelines.xsl index 9d290a52b..b98e7e120 100644 --- a/odds/guidelines.xsl +++ b/odds/guidelines.xsl @@ -417,10 +417,6 @@ DC.Language SCHEME=iso639 - - DC.Creator.Address - tei@oucs.ox.ac.uk - From 2643367cd0d10487e5ec5102eaf459fa2353a87d Mon Sep 17 00:00:00 2001 From: Hugh Cayless Date: Fri, 19 Feb 2021 17:10:57 -0500 Subject: [PATCH 56/58] Disambiguating figure and table headers. --- Test/expected-results/test29.xml | 17 ++++++++--------- Test/test29.docx | Bin 91899 -> 84224 bytes 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Test/expected-results/test29.xml b/Test/expected-results/test29.xml index b234faab3..3e3d630a2 100644 --- a/Test/expected-results/test29.xml +++ b/Test/expected-results/test29.xml @@ -70,8 +70,12 @@

    Notes 4

    -

    Indexes 4

    -

    Bibliography 4

    +

    + Indexes 4 +

    +

    + Bibliography 4 +

    Page breaks 4

    @@ -169,7 +173,6 @@ Figure 1: An included image
    - Figure 1: An included image

    @@ -262,7 +265,6 @@ Table 1 A Simple table

    - Table 1 A Simple table
    @@ -402,18 +404,15 @@ Auto-generated sections
    Index -

    bugs

    +

    bugs

    horrible bugs. See bugs

    error, 4

    formatting, 4

    Range

    -

    Subrange, 7

    +

    Subrange, 7

    Web, 4

    Web app, 4

    Web service, 4

    -

    - -

    List of Figures diff --git a/Test/test29.docx b/Test/test29.docx index bacf38c9d9c1d369096d1702ac28d33ef611d4c1..44a9cb6973d7efa6aeec4aec7d6b00e9116c84b9 100644 GIT binary patch delta 38995 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 w<}@TjSn|N?)}j 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 PO5i~V)Rtv{@uU3@s9QJ; delta 46715 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 From 5f4b0dc3255116691d25550e3d50432bb5df4077 Mon Sep 17 00:00:00 2001 From: martindholmes Date: Fri, 19 Feb 2021 14:59:01 -0800 Subject: [PATCH 57/58] Fix tests following merge of docx-to-tei changes. --- .../expected-results/testDocxListsTables1.xml | 20 +++++++++---------- Test2/expected-results/testNotes2.xml | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Test2/expected-results/testDocxListsTables1.xml b/Test2/expected-results/testDocxListsTables1.xml index 786a133b1..961484a2d 100644 --- a/Test2/expected-results/testDocxListsTables1.xml +++ b/Test2/expected-results/testDocxListsTables1.xml @@ -105,18 +105,18 @@
    - A - B - C - D - E + A + B + C + D + E - 1 - 2 - 3 - 4 - 5 + 1 + 2 + 3 + 4 + 5

    diff --git a/Test2/expected-results/testNotes2.xml b/Test2/expected-results/testNotes2.xml index 8c29e17d3..0ae82ad69 100644 --- a/Test2/expected-results/testNotes2.xml +++ b/Test2/expected-results/testNotes2.xml @@ -49,12 +49,12 @@ Mehrere sicherheitspolitische Akteure können aus verschiedenen Gründen nach der Kopenhagener Schule einen „Sicherheitskomplex“ bilden. „A security complex is defined as a set of states whose major security perceptions and concerns are so interlinked that their national security problems cannot reasonably be analysed or resolved apart from one another. The formative dynamics and structure of a security complex are generated by the states within that complex – by their security perceptions of, and interactions with, each other. Individual security complexes are durable but not permanent features of the international system. The theory posits that in a geographically diverse, anarchic international system, security complexes are a normal and expected feature […].” -

    +

    Buzan/Wæver/Wilde, Security. A new Framework for Analysis, S. 12.

    Mit Thesen zu Sicherheitskomplexen betont die Kopenhagener Schule die Regionalität der Sicherheit. Trotz weltweiter Vernetzung und Globalisierung seien nur die wenigsten Akteure an allen sicherheitspolitischen Entwicklungen weltweit und zu jeder Zeit interessiert. Die meisten Sicherheitsangelegenheiten sind nach Überzeugung der Kopenhagener Schule regional, häufig innerhalb eines Staates oder in direkter Nachbarschaft angelegt, da sich potenzielle Bedrohungen in vielen Fällen schneller über kurze als über lange Entfernungen ausbreiten. -

    Hier zeigt sich erneut ein Unterschied zum Realismus, der von Wissenschaftlern in den USA vertreten wird. Die USA werden dort als eine globale Macht mit weltweiten sicherheitspolitischen Interessen gesehen, was sich unter anderem an Diskursen zeigt, die nach dem Kalten Krieg geführt wurden und bis heute werden, sei es zu „Kampf der Kulturen“, „Unipolarität“, „Krieg gegen den Terrorismus“ oder „Globalisierung“.

    +

    Hier zeigt sich erneut ein Unterschied zum Realismus, der von Wissenschaftlern in den USA vertreten wird. Die USA werden dort als eine globale Macht mit weltweiten sicherheitspolitischen Interessen gesehen, was sich unter anderem an Diskursen zeigt, die nach dem Kalten Krieg geführt wurden und bis heute werden, sei es zu „Kampf der Kulturen“, „Unipolarität“, „Krieg gegen den Terrorismus“ oder „Globalisierung“.

    @@ -81,11 +81,11 @@ Die Pariser Schule, deren zentrale Vertreter Didier Bigo -

    Vgl. exemplarisch: Bigo, Polices en résaux; Bigo, L’Europe de la sécurité intérieure, in: Gloannec (Hrsg.), Entre Union et Nations, S. 55–90; Bigo, When two become one, in: Kelstrup/Williams (Hrsg.), International Relations Theory and the Politics of European Integration, S. 171–204.

    +

    Vgl. exemplarisch: Bigo, Polices en résaux; Bigo, L’Europe de la sécurité intérieure, in: Gloannec (Hrsg.), Entre Union et Nations, S. 55–90; Bigo, When two become one, in: Kelstrup/Williams (Hrsg.), International Relations Theory and the Politics of European Integration, S. 171–204.

    und Jef Huysmans -

    Vgl. exemplarisch: Huysmans, Revisiting Copenhagen; Noxolo/Huysmans (Hrsg.), Community, citizenship, and the ‘war on terror’; Aradau/Huysmans, Mobilising (global) democracy; Squire/Huysmans, Migration and Security, in: Dunn Cavelty/Mauer (Hrsg.), Handbook of Security Studies.

    +

    Vgl. exemplarisch: Huysmans, Revisiting Copenhagen; Noxolo/Huysmans (Hrsg.), Community, citizenship, and the ‘war on terror’; Aradau/Huysmans, Mobilising (global) democracy; Squire/Huysmans, Migration and Security, in: Dunn Cavelty/Mauer (Hrsg.), Handbook of Security Studies.

    sind, ist stärker soziologisch und empirisch geprägt als die Waliser und Kopenhagener Schulen. Im Fokus der Untersuchungen stehen Sicherheitsexperten von Polizei, Militär, Zoll und Regierungsstellen, aber auch Vertreter von Forschungsinstituten oder Stiftungen. Die Analysen der Pariser Schule konzentrieren sich zunächst einmal darauf, wer eine – zumindest weitgehend anerkannte – Expertenrolle im Bereich Sicherheit einnimmt. Weiterhin werden Funktionen und Handlungsabläufe der Sicherheitsexperten untersucht. Experten nehmen deshalb die zentrale Stelle bei diesen Untersuchungen ein, weil Vertreter der Pariser Schule davon ausgehen, dass sie zum Beispiel Bedrohungen identifizieren, Sicherheitsstrategien entwickeln und mögliche Gegenmaßnahmen einleiten. Damit seien sie entscheidende Akteure in der sicherheitspolitischen Praxis, deren Rolle und Verhalten vornehmlich zu beleuchten sei.

    From 025ca54e101e3f34b4c8ab9607f823d04026f15e Mon Sep 17 00:00:00 2001 From: Nicholas Cole Date: Thu, 25 Feb 2021 13:38:33 +0000 Subject: [PATCH 58/58] Change version number for release --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 99e8e0a9d..a260e0b3f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.51.0a +7.51.0