From c8d9ac9a961d7eb42adb1abf66be4b64d4c64394 Mon Sep 17 00:00:00 2001
From: Hugh Cayless
@@ -118,7 +120,9 @@
@@ -134,7 +138,9 @@
@@ -158,7 +164,9 @@
@@ -323,7 +331,9 @@ Sample values include: 1] all; 2] most; 3] range
<handNote>
element describing the hand considered responsible for the content of the element concerned.
@@ -534,7 +546,9 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke
<category>
s or <calendar>
s) within which the datable item is understood to have occurred.
@@ -550,7 +564,9 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke
@@ -562,7 +578,9 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke
@@ -593,7 +611,9 @@ Sample values include: 1] rubbing; 2] mildew; 3] smoke
@@ -702,7 +722,9 @@ Sample values include: 1] approved; 2] candidate; 3] cleared; 4] deprecated; 5]
@@ -784,7 +806,9 @@ Suggested values include: 1] internal; 2] external; 3] conjecturepoints to a description of the rendering or presentation used for this element in the source text.
@@ -799,12 +823,24 @@ Suggested values include: 1] internal; 2] external; 3] conjecturespecifies the source from which some aspect of this element is drawn.
+ <person>
element elsewhere in the description.
@@ -915,7 +955,9 @@ Suggested values include: 1] internal; 2] external; 3] conjecturepoints to a full description of the script or writing style used by this hand, typically supplied by a <scriptNote>
element elsewhere in the description.
@@ -1013,7 +1055,9 @@ Suggested values include: 1] internal; 2] external; 3] conjecture
@xml:id
of a <unitDef>
element that defines a unit of measure.
@@ -1226,7 +1274,7 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf
-
@@ -1293,10 +1343,16 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf
-
-
+
+ \S+
+
+
+ \S+
+
@@ -1387,11 +1445,13 @@ Suggested values include: 1] top; 2] bottom; 3] margin; 4] opposite; 5] overleaf
<place>
element or other canonical description.
@@ -3414,14 +3480,14 @@ Suggested values include: 1] page; 2] column; 3] line; 4] book; 5] poem; 6] cant
@match
on a <citeStructure>
without a <citeStructure>
parent must be an absolute XPath. If it is relative, its context is set by the @match
of the parent <citeStructure>
.
@toUnit
.@fromUnit
.<taxonomy>
element, or by some other resource.<taxonomy>
element, or some other resource.<taxonomy>
element, or by some other resource.
@@ -6618,7 +6710,9 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5
@@ -6633,7 +6727,9 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5
<change>
elements documenting a state or revision campaign to which the element bearing this attribute and its children have been assigned by the encoder.
@@ -6651,7 +6747,9 @@ Suggested values include: 1] sent; 2] received; 3] transmitted; 4] redirected; 5
<surface>
element. [11.1. Digital Facsimiles 11.2.2. Embedded Transcription]<handNote>
element describing the hand concerned.
@@ -7276,7 +7378,9 @@ Sample values include: 1] header; 2] footer; 3] pageNum (page number); 4] lineNu
@@ -7309,7 +7413,9 @@ Sample values include: 1] header; 2] footer; 3] pageNum (page number); 4] lineNu
@@ -7341,7 +7447,9 @@ Sample values include: 1] header; 2] footer; 3] pageNum (page number); 4] lineNu
@@ -7467,7 +7575,9 @@ Suggested values include: 1] initial; 2] final
@@ -7485,7 +7597,9 @@ Suggested values include: 1] initial; 2] final
@@ -7495,7 +7609,9 @@ Suggested values include: 1] initial; 2] final
@@ -7535,11 +7651,15 @@ Suggested values include: 1] initial; 2] final
@@ -9062,7 +9208,9 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat
@@ -9072,7 +9220,9 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat
@@ -9118,7 +9276,9 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat
@@ -9163,14 +9323,14 @@ Suggested values include: 1] main (main); 2] sub (subordinate); 3] alt (alternat
<when>
element, which is obtained by adding the interval to the time of the reference point.
-
-
+
+ \S+
+
+
+ \S+
+
@@ -9679,7 +9851,9 @@ Suggested values include: 1] main; 2] hom (homograph); 3] xref (cross reference)
<anchor>
element typically elsewhere in the document, but possibly in another document, which is the original location of this component.
floatingText
gb
gloss
+ graphic
group
head
idno
@@ -242,7 +243,7 @@
@@ -666,7 +667,7 @@
-
Ejemplo
-
Content model
-
+
<content>
<sequence minOccurs="1" maxOccurs="1">
<alternate minOccurs="0"
@@ -657,7 +658,7 @@
</sequence>
</content>
-⚓
+⚓
Declaración
-
@@ -980,7 +981,7 @@
+
element div
{
@@ -706,7 +707,7 @@
)?
)
}
-⚓
+⚓
Ejemplo
-
Content model
-
@@ -1038,7 +1039,7 @@
+
<content>
<macroRef key="macro.paraContent"/>
</content>
-⚓
+⚓
Declaración
-
@@ -1485,7 +1486,7 @@
+
element para
{
@@ -1052,7 +1053,7 @@
macro.paraContent
}
-⚓
+⚓
Ejemplo
-
Content model
-
@@ -1515,7 +1516,7 @@
+
<content>
<macroRef key="macro.specialPara"/>
</content>
-⚓
+⚓
Declaración
-
@@ -1653,12 +1654,12 @@
+
element q
{
@@ -1537,7 +1538,7 @@
macro.specialPara
}
-⚓
+⚓
Content model
-
@@ -1667,10 +1668,10 @@
+
<content>
<dataRef key="teidata.word"/>
</content>
-⚓
+⚓
Declaración
-
diff --git a/Test/expected-results/test15.odd.rnc b/Test/expected-results/test15.odd.rnc
index 028f1150d..c598b500e 100644
--- a/Test/expected-results/test15.odd.rnc
+++ b/Test/expected-results/test15.odd.rnc
@@ -48,14 +48,18 @@ att.anchoring.attribute.targetEnd =
## (target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ascribed.attributes = att.ascribed.attribute.who
att.ascribed.attribute.who =
## indicates the person, or group of people, to whom the element content is ascribed.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ascribed.directed.attributes =
att.ascribed.attributes, att.ascribed.directed.attribute.toWhom
@@ -63,7 +67,9 @@ att.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.canonical.attributes =
att.canonical.attribute.key, att.canonical.attribute.ref
@@ -75,7 +81,9 @@ att.canonical.attribute.ref =
## (reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ranging.attributes =
att.ranging.attribute.atLeast,
@@ -200,7 +208,9 @@ att.written.attribute.hand =
" element describing the hand considered responsible for the content of the element concerned."
]
]
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.breaking.attributes = att.breaking.attribute.break
att.breaking.attribute.break =
@@ -354,7 +364,9 @@ att.datable.attribute.calendar =
## indicates one or more systems or calendars to which the date represented by the content of this element belongs.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "test15-att.datable-calendar-calendar-constraint-rule-4"
@@ -389,7 +401,9 @@ att.datable.attribute.period =
]
]
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.datcat.attributes =
att.datcat.attribute.datcat, att.datcat.attribute.valueDatcat
@@ -397,13 +411,17 @@ att.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.declarable.attributes = att.declarable.attribute.default
att.declarable.attribute.default =
@@ -423,7 +441,9 @@ att.declaring.attribute.decls =
## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.fragmentable.attributes = att.fragmentable.attribute.part
att.fragmentable.attribute.part =
@@ -518,7 +538,9 @@ att.global.responsibility.attribute.resp =
## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.editLike.attributes =
att.editLike.attribute.evidence, att.editLike.attribute.instant
@@ -573,15 +595,53 @@ att.global.rendition.attribute.rendition =
## points to a description of the rendering or presentation used for this element in the source text.
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.source.attributes = att.global.source.attribute.source
att.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "test15-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
att.global.attributes =
att.global.rendition.attributes,
att.global.linking.attributes,
@@ -620,7 +680,9 @@ att.global.attribute.xmllang =
att.global.attribute.xmlbase =
## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.attribute.xmlspace =
## signals an intention about how white space should be managed by applications.
@@ -645,7 +707,9 @@ att.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.handFeatures.attribute.script =
@@ -662,7 +726,9 @@ att.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.handFeatures.attribute.medium =
@@ -730,7 +796,9 @@ att.resourced.attributes = att.resourced.attribute.url
att.resourced.attribute.url =
## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
att.measurement.attributes =
att.measurement.attribute.unit,
att.measurement.attribute.unitRef,
@@ -810,7 +878,9 @@ att.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.measurement.attribute.quantity =
## (quantity) specifies the number of the specified units that comprise the measurement
@@ -829,7 +899,7 @@ att.measurement.attribute.commodity =
}?
sch:pattern [
id =
- "test15-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ "test15-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -863,7 +933,9 @@ att.naming.attribute.nymRef =
## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.notated.attributes = att.notated.attribute.notation
att.notated.attribute.notation =
@@ -933,7 +1005,7 @@ att.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "test15-att.typed-subtypeTyped-constraint-rule-6"
+ id = "test15-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -976,7 +1048,7 @@ att.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "test15-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "test15-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -999,7 +1071,9 @@ att.pointing.attribute.target =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.pointing.attribute.evaluate =
@@ -1024,7 +1098,11 @@ att.pointing.group.attribute.domains =
## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
att.pointing.group.attribute.targFunc =
[
@@ -1078,16 +1156,20 @@ att.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.spanning.attributes = att.spanning.attribute.spanTo
att.spanning.attribute.spanTo =
## indicates the end of a span initiated by the element bearing this attribute.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "test15-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "test15-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1143,7 +1225,7 @@ att.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "test15-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "test15-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1167,11 +1249,15 @@ att.timed.attributes =
att.timed.attribute.start =
## indicates the location within a temporal alignment at which this element begins.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.timed.attribute.end =
## indicates the location within a temporal alignment at which this element ends.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.transcriptional.attributes =
att.editLike.attributes,
att.written.attributes,
@@ -1675,7 +1761,9 @@ att.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
model.correspActionPart =
model.dateLike | model.addressLike | model.nameLike | note | noteGrp
@@ -1770,7 +1858,7 @@ p =
macro.paraContent
>> sch:pattern [
id =
- "test15-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "test15-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -1792,7 +1880,7 @@ p =
]
>> sch:pattern [
id =
- "test15-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "test15-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -1973,7 +2061,7 @@ desc =
macro.limitedContent
>> sch:pattern [
id =
- "test15-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "test15-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2057,9 +2145,11 @@ rt =
att.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
- id = "test15-rt-target-rt-target-not-span-constraint-report-7"
+ id = "test15-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2079,7 +2169,9 @@ rt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "test15-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2103,7 +2195,9 @@ rt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "test15-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2460,7 +2554,7 @@ ptr =
element ptr {
empty
>> sch:pattern [
- id = "test15-ptr-ptrAtts-constraint-report-8"
+ id = "test15-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2494,7 +2588,7 @@ ref =
element ref {
macro.paraContent
>> sch:pattern [
- id = "test15-ref-refAtts-constraint-report-9"
+ id = "test15-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2535,7 +2629,7 @@ ref =
(model.divBottom, model.global*)*)
>> sch:pattern [
id =
- "test15-list-gloss-list-must-have-labels-constraint-rule-11"
+ "test15-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -2697,6 +2791,7 @@ graphic =
att.media.attributes,
att.resourced.attributes,
att.declaring.attributes,
+ att.typed.attributes,
empty
}
binaryObject =
@@ -3022,7 +3117,7 @@ relatedItem =
element relatedItem {
((model.biblLike | model.ptrLike)?)
>> sch:pattern [
- id = "test15-relatedItem-targetorcontent1-constraint-report-10"
+ id = "test15-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3054,7 +3149,9 @@ relatedItem =
att.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
l =
@@ -3064,7 +3161,7 @@ l =
((text | model.gLike | model.phrase | model.inter | model.global)*)
>> sch:pattern [
id =
- "test15-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "test15-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3122,7 +3219,7 @@ lg =
]
>> sch:pattern [
id =
- "test15-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "test15-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3177,6 +3274,7 @@ stage =
att.ascribed.directed.attributes,
att.global.attributes,
att.placement.attributes,
+ att.written.attributes,
## indicates the kind of stage direction.
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -3643,7 +3741,7 @@ quotation =
element quotation {
(model.pLike*)
>> sch:pattern [
- id = "test15-quotation-quotationContents-constraint-report-13"
+ id = "test15-quotation-quotationContents-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -3816,7 +3914,9 @@ tagUsage =
att.global.attributes,
## specifies the full formal name of the namespace concerned.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
rendition =
@@ -3875,7 +3975,7 @@ citeStructure =
}?)
>> sch:pattern [
id =
- "test15-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "test15-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -3914,7 +4014,7 @@ citeStructure =
attribute match { text }
>> sch:pattern [
id =
- "test15-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "test15-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -3935,7 +4035,7 @@ citeStructure =
]
>> sch:pattern [
id =
- "test15-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "test15-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -3976,7 +4076,9 @@ citeData =
att.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
cRefPattern =
@@ -4133,7 +4235,9 @@ conversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -4141,7 +4245,9 @@ conversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
appInfo =
@@ -4248,7 +4354,9 @@ keywords =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
classCode =
@@ -4264,7 +4372,9 @@ classCode =
" element, or some other resource."
]
]
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
catRef =
@@ -4281,7 +4391,9 @@ catRef =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
calendarDesc =
@@ -4375,7 +4487,9 @@ change =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4497,7 +4611,7 @@ floatingText =
(model.divBottom, model.global*)*)?)
>> sch:pattern [
id =
- "test15-div-abstractModel-structure-div-in-l-or-lg-constraint-report-14"
+ "test15-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -4519,7 +4633,7 @@ floatingText =
]
>> sch:pattern [
id =
- "test15-div-abstractModel-structure-div-in-ab-or-p-constraint-report-15"
+ "test15-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16"
"\x{a}" ~
" "
sch:rule [
@@ -4919,41 +5033,57 @@ att.global.linking.attribute.corresp =
## (corresponds) points to elements that correspond to the current element in some way.
attribute corresp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.synch =
## (synchronous) points to elements that are synchronous with the current element.
attribute synch {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.sameAs =
## points to an element that is the same as the current element.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.copyOf =
## points to an element of which the current element is a copy.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.next =
## points to the next element of a virtual aggregate of which the current element is part.
- attribute next { xsd:anyURI }?
+ attribute next {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.prev =
## (previous) points to the previous element of a virtual aggregate of which the current element is part.
- attribute prev { xsd:anyURI }?
+ attribute prev {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.exclude =
## points to elements that are in exclusive alternation with the current element.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.select =
## selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
link =
@@ -5002,7 +5132,7 @@ ab =
macro.paraContent
>> sch:pattern [
id =
- "test15-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-16"
+ "test15-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-17"
"\x{a}" ~
" "
sch:rule [
@@ -5024,7 +5154,7 @@ ab =
]
>> sch:pattern [
id =
- "test15-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17"
+ "test15-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18"
"\x{a}" ~
" "
sch:rule [
@@ -5136,7 +5266,9 @@ when =
" element, which is obtained by adding the interval to the time of the reference point."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
timeline =
@@ -5147,7 +5279,9 @@ timeline =
att.global.attributes,
## designates the origin of the timeline, i.e. the time at which it begins.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"specifies the unit of time corresponding to the "
@@ -5282,7 +5416,11 @@ alt =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## states whether the alternations gathered in this collection are exclusive or inclusive.
@@ -5433,7 +5571,9 @@ annotation =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
diff --git a/Test/expected-results/test21.odd.rnc b/Test/expected-results/test21.odd.rnc
index 64a3f452f..5aaaaf2d0 100644
--- a/Test/expected-results/test21.odd.rnc
+++ b/Test/expected-results/test21.odd.rnc
@@ -49,14 +49,18 @@ att.anchoring.attribute.targetEnd =
## (target end) pointe vers la fin d'un passage auquel la note est attachée, si la note n'est pas enchâssée dans le texte à cet endroit
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ascribed.attributes = att.ascribed.attribute.who
att.ascribed.attribute.who =
## indique la personne ou le groupe de personnes à qui le contenu de l'élément est attribué.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ascribed.directed.attributes =
att.ascribed.attributes, att.ascribed.directed.attribute.toWhom
@@ -64,7 +68,9 @@ att.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.canonical.attributes =
att.canonical.attribute.key, att.canonical.attribute.ref
@@ -76,7 +82,9 @@ att.canonical.attribute.ref =
## (référence) fournit un moyen explicite de localiser une définition complète de l'entité nommée au moyen d'un ou plusieurs URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.ranging.attributes =
att.ranging.attribute.atLeast,
@@ -196,7 +204,9 @@ att.written.attributes = att.written.attribute.hand
att.written.attribute.hand =
## signale la main de celui qui est intervenue.
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.damaged.attributes =
att.dimensions.attributes,
att.written.attributes,
@@ -394,7 +404,9 @@ att.datable.attribute.calendar =
## indique le système ou le calendrier auquel appartient la date exprimée dans le contenu de l'élément.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "test21-att.datable-calendar-calendar-constraint-rule-4"
@@ -422,7 +434,9 @@ att.datable.attribute.period =
## fournit un pointeur vers un emplacement donné définissant une période de temps nommée durant laquelle l'item concerné s'inscrit.
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.datcat.attributes =
att.datcat.attribute.datcat, att.datcat.attribute.valueDatcat
@@ -430,13 +444,17 @@ att.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.declarable.attributes = att.declarable.attribute.default
att.declarable.attribute.default =
@@ -456,7 +474,9 @@ att.declaring.attribute.decls =
## identifie un ou plusieurséléments déclarables dans l'en-tête TEI, qui sont destinés à s'appliquer à l'élément portant cet attribut et à son contenu.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.fragmentable.attributes = att.fragmentable.attribute.part
att.fragmentable.attribute.part =
@@ -551,7 +571,9 @@ att.global.responsibility.attribute.resp =
## (responsable) indique l'agent responsable de l'intervention ou de l'interprétation, par exemple un éditeur ou un transcripteur.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.editLike.attributes =
att.editLike.attribute.evidence, att.editLike.attribute.instant
@@ -606,15 +628,53 @@ att.global.rendition.attribute.rendition =
## pointe vers une description du rendu ou de la présentation utilisés pour cet élément dans le texte source
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.source.attributes = att.global.source.attribute.source
att.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "test21-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
att.global.attributes =
att.global.rendition.attributes,
att.global.linking.attributes,
@@ -648,7 +708,9 @@ att.global.attribute.xmllang =
att.global.attribute.xmlbase =
## donne une référence URI de base au moyen de laquelle les applications peuvent résoudre des références d'URI relatives en références d'URI absolues
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.attribute.xmlspace =
## signale que les applications doivent préserver l'espace blanc
@@ -680,7 +742,9 @@ att.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.handFeatures.attribute.script =
@@ -697,7 +761,9 @@ att.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.handFeatures.attribute.medium =
@@ -765,7 +831,9 @@ att.resourced.attributes = att.resourced.attribute.url
att.resourced.attribute.url =
## (adresse URL) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
att.measurement.attributes =
att.measurement.attribute.unit,
att.measurement.attribute.unitRef,
@@ -845,7 +913,9 @@ att.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.measurement.attribute.quantity =
## (quantité) spécifie le nombre des unités indiquées que comprend la mesure.
@@ -864,7 +934,7 @@ att.measurement.attribute.commodity =
}?
sch:pattern [
id =
- "test21-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ "test21-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -903,7 +973,9 @@ att.naming.attribute.nymRef =
## (référence au nom canonique) indique comment localiser la forme canonique (nym) des noms qui sont associés à l'objet nommé par l'élément qui le contient.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.notated.attributes = att.notated.attribute.notation
att.notated.attribute.notation =
@@ -978,7 +1050,7 @@ att.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "test21-att.typed-subtypeTyped-constraint-rule-6"
+ id = "test21-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -1021,7 +1093,7 @@ att.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "test21-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "test21-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -1044,7 +1116,9 @@ att.pointing.attribute.target =
## précise la cible de la référence en donnant une ou plusieurs références URI
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.pointing.attribute.evaluate =
@@ -1069,7 +1143,11 @@ att.pointing.group.attribute.domains =
## spécifie, facultativement, les identifiants des éléments englobant tous les éléments indiqués par le contenu de cet élément.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
att.pointing.group.attribute.targFunc =
[
@@ -1123,16 +1201,20 @@ att.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.spanning.attributes = att.spanning.attribute.spanTo
att.spanning.attribute.spanTo =
## indique la fin d'un passage introduit par l'élément portant cet attribut.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "test21-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "test21-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1188,7 +1270,7 @@ att.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "test21-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "test21-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1212,11 +1294,15 @@ att.timed.attributes =
att.timed.attribute.start =
## indique dans un alignement temporel (un ordre chronologique) l'endroit où commence cet élément.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.timed.attribute.end =
## indique l'endroit où se termine cet élément dans un alignement temporel.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.transcriptional.attributes =
att.editLike.attributes,
att.written.attributes,
@@ -2069,7 +2155,9 @@ att.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
model.correspActionPart =
model.dateLike | model.addressLike | model.nameLike | note | noteGrp
@@ -2169,7 +2257,7 @@ p =
}*)
>> sch:pattern [
id =
- "test21-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "test21-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -2191,7 +2279,7 @@ p =
]
>> sch:pattern [
id =
- "test21-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "test21-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -2394,7 +2482,7 @@ desc =
macro.limitedContent
>> sch:pattern [
id =
- "test21-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "test21-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2478,9 +2566,11 @@ rt =
att.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
- id = "test21-rt-target-rt-target-not-span-constraint-report-7"
+ id = "test21-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2500,7 +2590,9 @@ rt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "test21-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2524,7 +2616,9 @@ rt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "test21-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2890,7 +2984,7 @@ ptr =
element ptr {
empty
>> sch:pattern [
- id = "test21-ptr-ptrAtts-constraint-report-8"
+ id = "test21-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2934,7 +3028,7 @@ ref =
element ref {
macro.paraContent
>> sch:pattern [
- id = "test21-ref-refAtts-constraint-report-9"
+ id = "test21-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2975,7 +3069,7 @@ ref =
(model.divBottom, model.global*)*)
>> sch:pattern [
id =
- "test21-list-gloss-list-must-have-labels-constraint-rule-11"
+ "test21-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -3137,6 +3231,7 @@ graphic =
att.media.attributes,
att.resourced.attributes,
att.declaring.attributes,
+ att.typed.attributes,
empty
}
binaryObject =
@@ -3475,7 +3570,7 @@ relatedItem =
element relatedItem {
((model.biblLike | model.ptrLike)?)
>> sch:pattern [
- id = "test21-relatedItem-targetorcontent1-constraint-report-10"
+ id = "test21-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3507,7 +3602,9 @@ relatedItem =
att.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
l =
@@ -3517,7 +3614,7 @@ l =
((text | model.gLike | model.phrase | model.inter | model.global)*)
>> sch:pattern [
id =
- "test21-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "test21-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3575,7 +3672,7 @@ lg =
]
>> sch:pattern [
id =
- "test21-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "test21-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3641,6 +3738,7 @@ stage =
att.ascribed.directed.attributes,
att.global.attributes,
att.placement.attributes,
+ att.written.attributes,
## indique le type d'indication scénique
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -3805,7 +3903,9 @@ att.datable.custom.attribute.to-custom =
att.datable.custom.attribute.datingPoint =
## supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred
- attribute datingPoint { xsd:anyURI }?
+ attribute datingPoint {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.datable.custom.attribute.datingMethod =
[
a:documentation [
@@ -3814,7 +3914,9 @@ att.datable.custom.attribute.datingMethod =
" element or other means of interpreting the values of the custom dating attributes."
]
]
- attribute datingMethod { xsd:anyURI }?
+ attribute datingMethod {
+ xsd:anyURI { pattern = "\S+" }
+ }?
model.persNamePart =
surname
| forename
@@ -4465,7 +4567,9 @@ occupation =
" déclaré ailleurs dans l'en-tête."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"contient un code d'activité défini dans le système de classification ou dans la taxonomie déclaré dans l'attribut "
@@ -4473,7 +4577,9 @@ occupation =
"."
]
]
- attribute code { xsd:anyURI }?,
+ attribute code {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
org =
@@ -4689,7 +4795,7 @@ relation =
" "
]
>> sch:pattern [
- id = "test21-relation-activemutual-constraint-report-13"
+ id = "test21-relation-activemutual-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -4707,7 +4813,7 @@ relation =
" "
]
>> sch:pattern [
- id = "test21-relation-activepassive-constraint-report-14"
+ id = "test21-relation-activepassive-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -4738,17 +4844,23 @@ relation =
(
## identifie les participants actifs dans une relation à sens unique, ou tous les participants dans une relation réciproque.
attribute active {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
|
## fournit une liste de participants entre lesquels la relation est réciproque.
attribute mutual {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?),
## identifie les participants passifs dans une relation non mutuelle.
attribute passive {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4812,7 +4924,9 @@ socecStatus =
}?,
## identifie le système de classification ou la taxinomie utilisés.
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"contient un code de statut existant dans le système de classification ou dans la taxonomie déclarés au moyen de l'attribut "
@@ -4820,7 +4934,9 @@ socecStatus =
"."
]
]
- attribute code { xsd:anyURI }?,
+ attribute code {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
state =
@@ -4919,34 +5035,15 @@ objectIdentifier =
## (object identifier) groups one or more identifiers or pieces of locating information concerning a single object. [13.3.5. Objects]
element objectIdentifier {
- ((model.placeNamePart
- | institution
- | repository
- | collection
- | idno
- | msName
- | objectName
- | altIdentifier
- | address)*)
- >> sch:pattern [
- id =
- "test21-objectIdentifier-objectIdentifier_minimal-constraint-report-15"
- "\x{a}" ~
- " "
- sch:rule [
- context = "tei:objectIdentifier"
- "\x{a}" ~
- " "
- sch:report [
- test = "not(count(*) gt 0)"
- "An objectIdentifier must contain at minimum a single piece of locating or identifying information."
- ]
- "\x{a}" ~
- " "
- ]
- "\x{a}" ~
- " "
- ],
+ (model.placeNamePart
+ | institution
+ | repository
+ | collection
+ | idno
+ | msName
+ | objectName
+ | altIdentifier
+ | address)+,
att.global.attributes,
empty
}
@@ -4961,7 +5058,9 @@ nym =
## pointe vers des éléments constituants canoniques.
attribute parts {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -5159,7 +5258,7 @@ idno =
}
availability =
- ## (disponibilité) renseigne sur la disponibilité du texte, par exemple sur toutes restrictions quant à son usage ou sa diffusion, son copyright, etc. [2.2.4. Publication, Distribution, Licensing, etc.]
+ ## (disponibilitédisponibilità) renseigne sur la disponibilité du texte, par exemple sur toutes restrictions quant à son usage ou sa diffusion, son copyright, etc. [2.2.4. Publication, Distribution, Licensing, etc.]
element availability {
(model.availabilityPart | model.pLike)+,
att.global.attributes,
@@ -5511,7 +5610,9 @@ tagUsage =
att.global.attributes,
## le nom formel complet de l'espace de noms concerné.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
rendition =
@@ -5570,7 +5671,7 @@ citeStructure =
}?)
>> sch:pattern [
id =
- "test21-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "test21-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -5609,7 +5710,7 @@ citeStructure =
attribute match { text }
>> sch:pattern [
id =
- "test21-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "test21-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -5630,7 +5731,7 @@ citeStructure =
]
>> sch:pattern [
id =
- "test21-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "test21-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -5671,7 +5772,9 @@ citeData =
att.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
cRefPattern =
@@ -5829,7 +5932,9 @@ conversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -5837,7 +5942,9 @@ conversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
appInfo =
@@ -5948,7 +6055,9 @@ keywords =
att.global.attributes,
## désigne la liste close de mots dans lequel l'ensemble des mots-clés concernés est défini.
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
classCode =
@@ -5959,7 +6068,9 @@ classCode =
att.global.attributes,
## identifie le système de classification ou la taxinomie utilisée.
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
catRef =
@@ -5971,7 +6082,9 @@ catRef =
att.pointing.attributes,
## identifie le schéma de classification dans lequel est défini le jeu de catégories concerné.
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
calendarDesc =
@@ -6065,7 +6178,9 @@ change =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -6110,41 +6225,57 @@ att.global.linking.attribute.corresp =
## (correspond) pointe vers des éléments qui ont une correspondance avec l'élément en question.
attribute corresp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.synch =
## (synchrone) pointe vers des éléments qui sont synchrones avec l'élément en question.
attribute synch {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.sameAs =
## pointe vers un élément identique à l'élément en question.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.copyOf =
## pointe vers un élément dont l'élément en question est une copie.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.next =
## pointe vers l'élément suivant d'un ensemble virtuel dont l'élément en question est une partie.
- attribute next { xsd:anyURI }?
+ attribute next {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.prev =
## ( précédent) pointe vers l'élément précédent d'un ensemble virtuel auquel appartient l'élément en question.
- attribute prev { xsd:anyURI }?
+ attribute prev {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.global.linking.attribute.exclude =
## pointe vers des éléments qui sont une alternative exclusive à l'élément en question.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.linking.attribute.select =
## sélectionne une ou plusieurs valeurs alternatives ; si une seule valeur est sélectionnée, l'ambiguïté ou l'incertitude est marquée comme résolue. Si plus d'une valeur alternative est sélectionnée, le degré d'ambiguïté ou d'incertitude est marqué comme réduit par le nombre de valeurs alternatives non sélectionnées.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
link =
@@ -6353,7 +6484,9 @@ when =
" : cette date ou cette heure s'obtiennent en ajoutant la valeur de l'intervalle à la date du point de référence."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
timeline =
@@ -6364,7 +6497,9 @@ timeline =
att.global.attributes,
## désigne le début de la frise chronologique, c'est-à-dire le moment où elle commence.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"spécifie l'unité de temps correspondant à la valeur de l'attribut "
@@ -6497,7 +6632,11 @@ alt =
## précise la cible de la référence en donnant une ou plusieurs références URI
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## établit si les alternatives rassemblées dans cette collection sont exclusives ou non.
@@ -6653,7 +6792,9 @@ annotation =
## précise la cible de la référence en donnant une ou plusieurs références URI
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
@@ -6720,7 +6861,9 @@ att.msClass.attribute.class =
## spécifie la ou les catégories ou classes auxquelles l'item appartient.
attribute class {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
msDesc =
@@ -6870,7 +7013,9 @@ locus =
att.typed.attributes,
## (système) désigne le système de foliotation utilisé pour localiser la subdivision du manuscrit qui est en cours de description.
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
## (depuis) Spécifie, sous une forme normalisée, le point de départ de la localisation.
attribute from {
@@ -6891,7 +7036,9 @@ locusGrp =
att.global.attributes,
## (système) désigne le système de foliotation selon lequel les emplacements contenus dans le groupe sont définis.
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
material =
@@ -6911,7 +7058,9 @@ material =
## identifies one or more elements to which the metamark applies.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -7587,7 +7736,9 @@ att.global.facs.attribute.facs =
## (fac-similé) pointe directement vers une image ou vers une partie d'une image correspondant au contenu de l'élément.
attribute facs {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.global.change.attributes = att.global.change.attribute.change
att.global.change.attribute.change =
@@ -7599,7 +7750,9 @@ att.global.change.attribute.change =
]
]
attribute change {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
att.coordinated.attributes =
att.coordinated.attribute.start,
@@ -7611,7 +7764,9 @@ att.coordinated.attributes =
att.coordinated.attribute.start =
## désigne l'élément qui, dans la transcription du texte, contient au moins le début de la section de texte représentée dans la zone ou surface.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
att.coordinated.attribute.ulx =
## donne la valeur x de l'abscisse du coin supérieur gauche d'un rectangle.
@@ -7757,7 +7912,7 @@ path =
element path {
empty
>> sch:pattern [
- id = "test21-path-pathmustnotbeclosed-constraint-rule-15"
+ id = "test21-path-pathmustnotbeclosed-constraint-rule-16"
"\x{a}" ~
" "
sch:rule [
@@ -7895,10 +8050,12 @@ addSpan =
att.dimensions.attributes,
## indique la fin d'un passage introduit par l'élément portant cet attribut.
- attribute spanTo { xsd:anyURI }
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }
>> sch:pattern [
id =
- "test21-addSpan-spanTo-spanTo-points-to-following-constraint-rule-16"
+ "test21-addSpan-spanTo-spanTo-points-to-following-constraint-rule-17"
"\x{a}" ~
" "
sch:rule [
@@ -8082,7 +8239,9 @@ handShift =
att.handFeatures.attributes,
## donne l'identifiant de la nouvelle main.
- attribute new { xsd:anyURI }?,
+ attribute new {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
am =
@@ -8135,7 +8294,9 @@ space =
## (responsable) (responsible party) indicates the individual responsible for identifying and measuring the space
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
## (dimension) indique si l'espace est vertical ou horizontal.
@@ -8267,7 +8428,9 @@ metamark =
## identifies one or more elements to which the metamark applies.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -8295,7 +8458,9 @@ redo =
## points to one or more elements representing the interventions which are being reasserted.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -8322,7 +8487,9 @@ undo =
## points to one or more elements representing the interventions which are to be reverted or undone.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
diff --git a/Test/expected-results/test30.dtd b/Test/expected-results/test30.dtd
index 7bb2fa2de..273268d9e 100644
--- a/Test/expected-results/test30.dtd
+++ b/Test/expected-results/test30.dtd
@@ -1545,7 +1545,7 @@ target CDATA #IMPLIED >
+property %teidata.pointer; #REQUIRED >
@@ -2036,7 +2036,8 @@ datum %teidata.enumerated; "WGS84" >
%Tatt.global.attributes;
%Tatt.media.attributes;
%Tatt.resourced.attributes;
- %Tatt.declaring.attributes; >
+ %Tatt.declaring.attributes;
+ %Tatt.typed.attributes; >
@@ -2524,7 +2525,7 @@ parts CDATA #IMPLIED >
%Tatt.docStatus.attributes;
%Tatt.canonical.attributes; >
-
+
@@ -3147,6 +3148,7 @@ dim (horizontal|vertical) #IMPLIED >
%Tatt.ascribed.directed.attributes;
%Tatt.global.attributes;
%Tatt.placement.attributes;
+ %Tatt.written.attributes;
type NMTOKENS #IMPLIED >
diff --git a/Test/expected-results/test30.rnc b/Test/expected-results/test30.rnc
index 7c71d1e79..5fca0f1a6 100644
--- a/Test/expected-results/test30.rnc
+++ b/Test/expected-results/test30.rnc
@@ -51,14 +51,18 @@ Tatt.anchoring.attribute.targetEnd =
## (target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.ascribed.attributes = Tatt.ascribed.attribute.who
Tatt.ascribed.attribute.who =
## indicates the person, or group of people, to whom the element content is ascribed.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.ascribed.directed.attributes =
Tatt.ascribed.attributes, Tatt.ascribed.directed.attribute.toWhom
@@ -66,7 +70,9 @@ Tatt.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.canonical.attributes =
Tatt.canonical.attribute.key, Tatt.canonical.attribute.ref
@@ -78,7 +84,9 @@ Tatt.canonical.attribute.ref =
## (reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.ranging.attributes =
Tatt.ranging.attribute.atLeast,
@@ -203,7 +211,9 @@ Tatt.written.attribute.hand =
" element describing the hand considered responsible for the content of the element concerned."
]
]
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.damaged.attributes =
Tatt.dimensions.attributes,
Tatt.written.attributes,
@@ -405,7 +415,9 @@ Tatt.datable.attribute.calendar =
## indicates one or more systems or calendars to which the date represented by the content of this element belongs.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "testbasic-att.datable-calendar-calendar-constraint-rule-4"
@@ -440,7 +452,9 @@ Tatt.datable.attribute.period =
]
]
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.datcat.attributes =
Tatt.datcat.attribute.datcat, Tatt.datcat.attribute.valueDatcat
@@ -448,13 +462,17 @@ Tatt.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.declarable.attributes = Tatt.declarable.attribute.default
Tatt.declarable.attribute.default =
@@ -474,7 +492,9 @@ Tatt.declaring.attribute.decls =
## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.fragmentable.attributes = Tatt.fragmentable.attribute.part
Tatt.fragmentable.attribute.part =
@@ -569,7 +589,9 @@ Tatt.global.responsibility.attribute.resp =
## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.editLike.attributes =
Tatt.editLike.attribute.evidence, Tatt.editLike.attribute.instant
@@ -638,15 +660,53 @@ Tatt.global.rendition.attribute.rendition =
## points to a description of the rendering or presentation used for this element in the source text.
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.global.source.attributes = Tatt.global.source.attribute.source
Tatt.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "testbasic-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
Tatt.handFeatures.attributes =
Tatt.handFeatures.attribute.scribe,
Tatt.handFeatures.attribute.scribeRef,
@@ -667,7 +727,9 @@ Tatt.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.handFeatures.attribute.script =
@@ -684,7 +746,9 @@ Tatt.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.handFeatures.attribute.medium =
@@ -752,7 +816,9 @@ Tatt.resourced.attributes = Tatt.resourced.attribute.url
Tatt.resourced.attribute.url =
## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
Tatt.measurement.attributes =
Tatt.measurement.attribute.unit,
Tatt.measurement.attribute.unitRef,
@@ -832,7 +898,9 @@ Tatt.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.measurement.attribute.quantity =
## (quantity) specifies the number of the specified units that comprise the measurement
@@ -851,7 +919,7 @@ Tatt.measurement.attribute.commodity =
}?
sch:pattern [
id =
- "testbasic-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ "testbasic-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -885,7 +953,9 @@ Tatt.naming.attribute.nymRef =
## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.notated.attributes = Tatt.notated.attribute.notation
Tatt.notated.attribute.notation =
@@ -955,7 +1025,7 @@ Tatt.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "testbasic-att.typed-subtypeTyped-constraint-rule-6"
+ id = "testbasic-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -998,7 +1068,7 @@ Tatt.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "testbasic-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "testbasic-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -1021,7 +1091,9 @@ Tatt.pointing.attribute.target =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.pointing.attribute.evaluate =
@@ -1046,7 +1118,11 @@ Tatt.pointing.group.attribute.domains =
## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
Tatt.pointing.group.attribute.targFunc =
[
@@ -1100,16 +1176,20 @@ Tatt.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.spanning.attributes = Tatt.spanning.attribute.spanTo
Tatt.spanning.attribute.spanTo =
## indicates the end of a span initiated by the element bearing this attribute.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "testbasic-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "testbasic-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1165,7 +1245,7 @@ Tatt.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "testbasic-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "testbasic-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1189,11 +1269,15 @@ Tatt.timed.attributes =
Tatt.timed.attribute.start =
## indicates the location within a temporal alignment at which this element begins.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.timed.attribute.end =
## indicates the location within a temporal alignment at which this element ends.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.transcriptional.attributes =
Tatt.editLike.attributes,
Tatt.written.attributes,
@@ -2039,7 +2123,9 @@ Tatt.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tmodel.correspActionPart =
Tmodel.dateLike
@@ -2142,7 +2228,7 @@ Tp =
Tmacro.paraContent
>> sch:pattern [
id =
- "testbasic-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "testbasic-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -2164,7 +2250,7 @@ Tp =
]
>> sch:pattern [
id =
- "testbasic-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "testbasic-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -2342,7 +2428,7 @@ Tdesc =
Tmacro.limitedContent
>> sch:pattern [
id =
- "testbasic-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "testbasic-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2429,10 +2515,12 @@ Trt =
Tatt.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id =
- "testbasic-rt-target-rt-target-not-span-constraint-report-7"
+ "testbasic-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2452,7 +2540,9 @@ Trt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "testbasic-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2476,7 +2566,9 @@ Trt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "testbasic-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2833,7 +2925,7 @@ Tptr =
element ptr {
empty
>> sch:pattern [
- id = "testbasic-ptr-ptrAtts-constraint-report-8"
+ id = "testbasic-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2867,7 +2959,7 @@ Tref =
element ref {
Tmacro.paraContent
>> sch:pattern [
- id = "testbasic-ref-refAtts-constraint-report-9"
+ id = "testbasic-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2908,7 +3000,7 @@ Tlist =
(Tmodel.divBottom, Tmodel.global*)*)
>> sch:pattern [
id =
- "testbasic-list-gloss-list-must-have-labels-constraint-rule-11"
+ "testbasic-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -3070,6 +3162,7 @@ Tgraphic =
Tatt.media.attributes,
Tatt.resourced.attributes,
Tatt.declaring.attributes,
+ Tatt.typed.attributes,
empty
}
TbinaryObject =
@@ -3423,7 +3516,7 @@ TrelatedItem =
((Tmodel.biblLike | Tmodel.ptrLike)?)
>> sch:pattern [
id =
- "testbasic-relatedItem-targetorcontent1-constraint-report-10"
+ "testbasic-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3455,7 +3548,9 @@ TrelatedItem =
Tatt.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
Tl =
@@ -3469,7 +3564,7 @@ Tl =
| Tmodel.global)*)
>> sch:pattern [
id =
- "testbasic-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "testbasic-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3527,7 +3622,7 @@ Tlg =
]
>> sch:pattern [
id =
- "testbasic-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "testbasic-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3582,6 +3677,7 @@ Tstage =
Tatt.ascribed.directed.attributes,
Tatt.global.attributes,
Tatt.placement.attributes,
+ Tatt.written.attributes,
## indicates the kind of stage direction.
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -4049,7 +4145,7 @@ Tquotation =
(Tmodel.pLike*)
>> sch:pattern [
id =
- "testbasic-quotation-quotationContents-constraint-report-13"
+ "testbasic-quotation-quotationContents-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -4222,7 +4318,9 @@ Tnamespace =
Tatt.global.attributes,
## specifies the full formal name of the namespace concerned.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
Trendition =
@@ -4281,7 +4379,7 @@ TciteStructure =
}?)
>> sch:pattern [
id =
- "testbasic-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "testbasic-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -4320,7 +4418,7 @@ TciteStructure =
attribute match { text }
>> sch:pattern [
id =
- "testbasic-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "testbasic-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -4341,7 +4439,7 @@ TciteStructure =
]
>> sch:pattern [
id =
- "testbasic-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "testbasic-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -4382,7 +4480,9 @@ TciteData =
Tatt.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
TcRefPattern =
@@ -4539,7 +4639,9 @@ Tconversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -4547,7 +4649,9 @@ Tconversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
TappInfo =
@@ -4663,7 +4767,9 @@ Tkeywords =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
TclassCode =
@@ -4679,7 +4785,9 @@ TclassCode =
" element, or some other resource."
]
]
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
TcatRef =
@@ -4696,7 +4804,9 @@ TcatRef =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
TcalendarDesc =
@@ -4793,7 +4903,9 @@ Tchange =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4867,7 +4979,9 @@ Tatt.datable.custom.attribute.to-custom =
Tatt.datable.custom.attribute.datingPoint =
## supplies a pointer to some location defining a named point in time with reference to which the datable item is understood to have occurred
- attribute datingPoint { xsd:anyURI }?
+ attribute datingPoint {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.datable.custom.attribute.datingMethod =
[
a:documentation [
@@ -4876,7 +4990,9 @@ Tatt.datable.custom.attribute.datingMethod =
" element or other means of interpreting the values of the custom dating attributes."
]
]
- attribute datingMethod { xsd:anyURI }?
+ attribute datingMethod {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tmodel.persNamePart =
Tsurname
| Tforename
@@ -5539,7 +5655,9 @@ Toccupation =
" element, or pointing to some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"identifies an occupation code defined within the classification system or taxonomy defined by the "
@@ -5547,7 +5665,9 @@ Toccupation =
" attribute."
]
]
- attribute code { xsd:anyURI }?,
+ attribute code {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
Torg =
@@ -5763,7 +5883,7 @@ Trelation =
" "
]
>> sch:pattern [
- id = "testbasic-relation-activemutual-constraint-report-14"
+ id = "testbasic-relation-activemutual-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -5781,7 +5901,7 @@ Trelation =
" "
]
>> sch:pattern [
- id = "testbasic-relation-activepassive-constraint-report-15"
+ id = "testbasic-relation-activepassive-constraint-report-16"
"\x{a}" ~
" "
sch:rule [
@@ -5812,17 +5932,23 @@ Trelation =
(
## identifies the active participants in a non-mutual relationship, or all the participants in a mutual one.
attribute active {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
|
## supplies a list of participants amongst all of whom the relationship holds equally.
attribute mutual {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?),
## identifies the passive participants in a non-mutual relationship.
attribute passive {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -5891,7 +6017,9 @@ TsocecStatus =
" element or by supplying a URI for an externally-defined system."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"identifies a status code defined within the classification system or taxonomy defined by the "
@@ -5899,7 +6027,9 @@ TsocecStatus =
" attribute."
]
]
- attribute code { xsd:anyURI }?,
+ attribute code {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
Tstate =
@@ -5998,26 +6128,7 @@ TobjectIdentifier =
## (object identifier) groups one or more identifiers or pieces of locating information concerning a single object. [13.3.5. Objects]
element objectIdentifier {
- ((Tmodel.placeNamePart | Tidno | TobjectName | Taddress)*)
- >> sch:pattern [
- id =
- "testbasic-objectIdentifier-objectIdentifier_minimal-constraint-report-16"
- "\x{a}" ~
- " "
- sch:rule [
- context = "tei:objectIdentifier"
- "\x{a}" ~
- " "
- sch:report [
- test = "not(count(*) gt 0)"
- "An objectIdentifier must contain at minimum a single piece of locating or identifying information."
- ]
- "\x{a}" ~
- " "
- ]
- "\x{a}" ~
- " "
- ],
+ (Tmodel.placeNamePart | Tidno | TobjectName | Taddress)+,
Tatt.global.attributes,
empty
}
@@ -6032,7 +6143,9 @@ Tnym =
## points to constituent nyms
attribute parts {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -6055,7 +6168,9 @@ Tatt.global.facs.attribute.facs =
## (facsimile) points to one or more images, portions of an image, or surfaces which correspond to the current element.
attribute facs {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.global.change.attributes = Tatt.global.change.attribute.change
Tatt.global.change.attribute.change =
@@ -6067,7 +6182,9 @@ Tatt.global.change.attribute.change =
]
]
attribute change {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.coordinated.attributes =
Tatt.coordinated.attribute.start,
@@ -6079,7 +6196,9 @@ Tatt.coordinated.attributes =
Tatt.coordinated.attribute.start =
## indicates the element within a transcription of the text containing at least the start of the writing represented by this zone or surface.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.coordinated.attribute.ulx =
## gives the x coordinate value for the upper left corner of a rectangular space.
@@ -6226,7 +6345,7 @@ Tpath =
element path {
empty
>> sch:pattern [
- id = "testbasic-path-pathmustnotbeclosed-constraint-rule-15"
+ id = "testbasic-path-pathmustnotbeclosed-constraint-rule-16"
"\x{a}" ~
" "
sch:rule [
@@ -6528,7 +6647,9 @@ ThandShift =
" element describing the hand concerned."
]
]
- attribute new { xsd:anyURI }?,
+ attribute new {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
Tam =
@@ -6577,7 +6698,9 @@ Tspace =
## (responsible party) (responsible party) indicates the individual responsible for identifying and measuring the space
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
## (dimension) indicates whether the space is horizontal or vertical.
@@ -6716,7 +6839,9 @@ Tmetamark =
## identifies one or more elements to which the metamark applies.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -6744,7 +6869,9 @@ Tredo =
## points to one or more elements representing the interventions which are being reasserted.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -6771,7 +6898,9 @@ Tundo =
## points to one or more elements representing the interventions which are to be reverted or undone.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -7062,7 +7191,9 @@ Twhen =
" element, which is obtained by adding the interval to the time of the reference point."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
Ttimeline =
@@ -7073,7 +7204,9 @@ Ttimeline =
Tatt.global.attributes,
## designates the origin of the timeline, i.e. the time at which it begins.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"specifies the unit of time corresponding to the "
@@ -7208,7 +7341,11 @@ Talt =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## states whether the alternations gathered in this collection are exclusive or inclusive.
@@ -7359,7 +7496,9 @@ Tannotation =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
@@ -7838,22 +7977,30 @@ Tatt.global.linking.attributes =
Tatt.global.linking.attribute.sameAs =
## points to an element that is the same as the current element.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.global.linking.attribute.copyOf =
## points to an element of which the current element is a copy.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.global.linking.attribute.exclude =
## points to elements that are in exclusive alternation with the current element.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.global.linking.attribute.select =
## selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
Tatt.global.attributes =
Tatt.global.rendition.attributes,
@@ -7890,7 +8037,9 @@ Tatt.global.attribute.xmllang =
Tatt.global.attribute.xmlbase =
## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
Tatt.global.attribute.xmlspace =
## signals an intention about how white space should be managed by applications.
@@ -7962,7 +8111,7 @@ TMenu =
}
start = TTEI | Tdiv
sch:pattern [
- id = "testbasic-outerconstraint-constraint-rule-16"
+ id = "testbasic-outerconstraint-constraint-rule-17"
"\x{a}" ~
" "
sch:rule [
diff --git a/Test/expected-results/test33.rnc b/Test/expected-results/test33.rnc
index e7c0a3bb2..b057bfa73 100644
--- a/Test/expected-results/test33.rnc
+++ b/Test/expected-results/test33.rnc
@@ -53,14 +53,18 @@ tei_att.anchoring.attribute.targetEnd =
## (target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.attributes = tei_att.ascribed.attribute.who
tei_att.ascribed.attribute.who =
## indicates the person, or group of people, to whom the element content is ascribed.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.directed.attributes =
tei_att.ascribed.attributes,
@@ -69,7 +73,9 @@ tei_att.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.canonical.attributes =
tei_att.canonical.attribute.key, tei_att.canonical.attribute.ref
@@ -81,7 +87,9 @@ tei_att.canonical.attribute.ref =
## (reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ranging.attributes =
tei_att.ranging.attribute.atLeast,
@@ -206,7 +214,9 @@ tei_att.written.attribute.hand =
" element describing the hand considered responsible for the content of the element concerned."
]
]
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.breaking.attributes = tei_att.breaking.attribute.break
tei_att.breaking.attribute.break =
@@ -360,7 +370,9 @@ tei_att.datable.attribute.calendar =
## indicates one or more systems or calendars to which the date represented by the content of this element belongs.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "foo-att.datable-calendar-calendar-constraint-rule-4"
@@ -395,7 +407,9 @@ tei_att.datable.attribute.period =
]
]
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attributes =
tei_att.datcat.attribute.datcat, tei_att.datcat.attribute.valueDatcat
@@ -403,13 +417,17 @@ tei_att.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.declarable.attributes = tei_att.declarable.attribute.default
tei_att.declarable.attribute.default =
@@ -429,7 +447,9 @@ tei_att.declaring.attribute.decls =
## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.fragmentable.attributes = tei_att.fragmentable.attribute.part
tei_att.fragmentable.attribute.part =
@@ -524,7 +544,9 @@ tei_att.global.responsibility.attribute.resp =
## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.editLike.attributes =
tei_att.editLike.attribute.evidence,
@@ -580,7 +602,9 @@ tei_att.global.rendition.attribute.rendition =
## points to a description of the rendering or presentation used for this element in the source text.
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.source.attributes =
tei_att.global.source.attribute.source
@@ -588,8 +612,44 @@ tei_att.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
tei_att.global.attributes =
tei_att.global.rendition.attributes,
tei_att.global.linking.attributes,
@@ -628,7 +688,9 @@ tei_att.global.attribute.xmllang =
tei_att.global.attribute.xmlbase =
## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.attribute.xmlspace =
## signals an intention about how white space should be managed by applications.
@@ -653,7 +715,9 @@ tei_att.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.script =
@@ -670,7 +734,9 @@ tei_att.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.medium =
@@ -739,7 +805,9 @@ tei_att.resourced.attributes = tei_att.resourced.attribute.url
tei_att.resourced.attribute.url =
## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
tei_att.measurement.attributes =
tei_att.measurement.attribute.unit,
tei_att.measurement.attribute.unitRef,
@@ -819,7 +887,9 @@ tei_att.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.measurement.attribute.quantity =
## (quantity) specifies the number of the specified units that comprise the measurement
@@ -837,7 +907,7 @@ tei_att.measurement.attribute.commodity =
}
}?
sch:pattern [
- id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -871,7 +941,9 @@ tei_att.naming.attribute.nymRef =
## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.notated.attributes = tei_att.notated.attribute.notation
tei_att.notated.attribute.notation =
@@ -941,7 +1013,7 @@ tei_att.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "foo-att.typed-subtypeTyped-constraint-rule-6"
+ id = "foo-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -984,7 +1056,7 @@ tei_att.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "foo-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -1007,7 +1079,9 @@ tei_att.pointing.attribute.target =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.pointing.attribute.evaluate =
@@ -1032,7 +1106,11 @@ tei_att.pointing.group.attribute.domains =
## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
tei_att.pointing.group.attribute.targFunc =
[
@@ -1086,16 +1164,20 @@ tei_att.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.spanning.attributes = tei_att.spanning.attribute.spanTo
tei_att.spanning.attribute.spanTo =
## indicates the end of a span initiated by the element bearing this attribute.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1152,7 +1234,7 @@ tei_att.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1176,11 +1258,15 @@ tei_att.timed.attributes =
tei_att.timed.attribute.start =
## indicates the location within a temporal alignment at which this element begins.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.timed.attribute.end =
## indicates the location within a temporal alignment at which this element ends.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.transcriptional.attributes =
tei_att.editLike.attributes,
tei_att.written.attributes,
@@ -1772,7 +1858,9 @@ tei_att.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_model.correspActionPart =
tei_model.dateLike
@@ -1873,7 +1961,7 @@ tei_p =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -1895,7 +1983,7 @@ tei_p =
]
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -2084,7 +2172,7 @@ tei_desc =
tei_macro.limitedContent
>> sch:pattern [
id =
- "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2174,9 +2262,11 @@ tei_rt =
tei_att.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
- id = "foo-rt-target-rt-target-not-span-constraint-report-7"
+ id = "foo-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2196,7 +2286,9 @@ tei_rt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2220,7 +2312,9 @@ tei_rt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2589,7 +2683,7 @@ tei_ptr =
element tei:ptr {
empty
>> sch:pattern [
- id = "foo-ptr-ptrAtts-constraint-report-8"
+ id = "foo-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2623,7 +2717,7 @@ tei_ref =
element tei:ref {
tei_macro.paraContent
>> sch:pattern [
- id = "foo-ref-refAtts-constraint-report-9"
+ id = "foo-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2663,7 +2757,7 @@ tei_list =
(tei_label, tei_model.global*, tei_item, tei_model.global*)+)),
(tei_model.divBottom, tei_model.global*)*)
>> sch:pattern [
- id = "foo-list-gloss-list-must-have-labels-constraint-rule-11"
+ id = "foo-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -2829,6 +2923,7 @@ tei_graphic =
tei_att.media.attributes,
tei_att.resourced.attributes,
tei_att.declaring.attributes,
+ tei_att.typed.attributes,
empty
}
tei_binaryObject =
@@ -3179,7 +3274,7 @@ tei_relatedItem =
element tei:relatedItem {
((tei_model.biblLike | tei_model.ptrLike)?)
>> sch:pattern [
- id = "foo-relatedItem-targetorcontent1-constraint-report-10"
+ id = "foo-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3211,7 +3306,9 @@ tei_relatedItem =
tei_att.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_l =
@@ -3225,7 +3322,7 @@ tei_l =
| tei_model.global)*)
>> sch:pattern [
id =
- "foo-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "foo-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3286,7 +3383,7 @@ tei_lg =
]
>> sch:pattern [
id =
- "foo-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3343,6 +3440,7 @@ tei_stage =
tei_att.ascribed.directed.attributes,
tei_att.global.attributes,
tei_att.placement.attributes,
+ tei_att.written.attributes,
## indicates the kind of stage direction.
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -3820,7 +3918,7 @@ tei_quotation =
element tei:quotation {
(tei_model.pLike*)
>> sch:pattern [
- id = "foo-quotation-quotationContents-constraint-report-13"
+ id = "foo-quotation-quotationContents-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -3993,7 +4091,9 @@ tei_namespace =
tei_att.global.attributes,
## specifies the full formal name of the namespace concerned.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
tei_rendition =
@@ -4055,7 +4155,7 @@ tei_citeStructure =
}?)
>> sch:pattern [
id =
- "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -4094,7 +4194,7 @@ tei_citeStructure =
attribute match { text }
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -4115,7 +4215,7 @@ tei_citeStructure =
]
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -4156,7 +4256,9 @@ tei_citeData =
tei_att.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_cRefPattern =
@@ -4319,7 +4421,9 @@ tei_conversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -4327,7 +4431,9 @@ tei_conversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_appInfo =
@@ -4436,7 +4542,9 @@ tei_keywords =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_classCode =
@@ -4452,7 +4560,9 @@ tei_classCode =
" element, or some other resource."
]
]
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_catRef =
@@ -4469,7 +4579,9 @@ tei_catRef =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_calendarDesc =
@@ -4568,7 +4680,9 @@ tei_change =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4696,7 +4810,7 @@ tei_div =
(tei_model.divBottom, tei_model.global*)*)?)
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-14"
+ "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -4718,7 +4832,7 @@ tei_div =
]
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-15"
+ "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16"
"\x{a}" ~
" "
sch:rule [
@@ -5140,41 +5254,57 @@ tei_att.global.linking.attribute.corresp =
## (corresponds) points to elements that correspond to the current element in some way.
attribute corresp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.synch =
## (synchronous) points to elements that are synchronous with the current element.
attribute synch {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.sameAs =
## points to an element that is the same as the current element.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.copyOf =
## points to an element of which the current element is a copy.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.next =
## points to the next element of a virtual aggregate of which the current element is part.
- attribute next { xsd:anyURI }?
+ attribute next {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.prev =
## (previous) points to the previous element of a virtual aggregate of which the current element is part.
- attribute prev { xsd:anyURI }?
+ attribute prev {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.exclude =
## points to elements that are in exclusive alternation with the current element.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.select =
## selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_link =
@@ -5223,7 +5353,7 @@ tei_ab =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-16"
+ "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-17"
"\x{a}" ~
" "
sch:rule [
@@ -5245,7 +5375,7 @@ tei_ab =
]
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17"
+ "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18"
"\x{a}" ~
" "
sch:rule [
@@ -5357,7 +5487,9 @@ tei_when =
" element, which is obtained by adding the interval to the time of the reference point."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_timeline =
@@ -5368,7 +5500,9 @@ tei_timeline =
tei_att.global.attributes,
## designates the origin of the timeline, i.e. the time at which it begins.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"specifies the unit of time corresponding to the "
@@ -5503,7 +5637,11 @@ tei_alt =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## states whether the alternations gathered in this collection are exclusive or inclusive.
@@ -5657,7 +5795,9 @@ tei_annotation =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
diff --git a/Test/expected-results/test34.combined.json b/Test/expected-results/test34.combined.json
index e5328bf91..003c0a238 100644
--- a/Test/expected-results/test34.combined.json
+++ b/Test/expected-results/test34.combined.json
@@ -2280,7 +2280,7 @@
{ "min" : "1",
"max" : "1",
"dataRef" :
- { "name" : "anyURI" } } } ],
+ { "key" : "teidata.pointer" } } } ],
"content" :
[
{ "type" : "empty" } ] },
@@ -5507,7 +5507,8 @@
[ "att.global",
"att.media",
"att.resourced",
- "att.declaring" ],
+ "att.declaring",
+ "att.typed" ],
"unknown" :
[ ] },
"attributes" :
@@ -10029,7 +10030,8 @@
"atts" :
[ "att.ascribed.directed",
"att.global",
- "att.placement" ],
+ "att.placement",
+ "att.written" ],
"unknown" :
[ ] },
"attributes" :
@@ -17354,7 +17356,8 @@
"content" :
[
{ "type" : "dataRef",
- "name" : "anyURI" } ] },
+ "name" : "anyURI",
+ "restriction" : "\\S*" } ] },
{ "ident" : "teidata.numeric",
"ns" : "http:\/\/foo.foo\/foo",
@@ -17431,7 +17434,8 @@
"content" :
[
{ "type" : "dataRef",
- "name" : "anyURI" } ] },
+ "name" : "anyURI",
+ "restriction" : "\\S+" } ] },
{ "ident" : "teidata.prefix",
"ns" : "http:\/\/foo.foo\/foo",
diff --git a/Test/expected-results/test34.rnc b/Test/expected-results/test34.rnc
index 2f758b292..ac89511a6 100644
--- a/Test/expected-results/test34.rnc
+++ b/Test/expected-results/test34.rnc
@@ -54,14 +54,18 @@ tei_att.anchoring.attribute.targetEnd =
## (target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.attributes = tei_att.ascribed.attribute.who
tei_att.ascribed.attribute.who =
## indicates the person, or group of people, to whom the element content is ascribed.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.directed.attributes =
tei_att.ascribed.attributes,
@@ -70,7 +74,9 @@ tei_att.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.canonical.attributes =
tei_att.canonical.attribute.key, tei_att.canonical.attribute.ref
@@ -82,7 +88,9 @@ tei_att.canonical.attribute.ref =
## (reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ranging.attributes =
tei_att.ranging.attribute.atLeast,
@@ -207,7 +215,9 @@ tei_att.written.attribute.hand =
" element describing the hand considered responsible for the content of the element concerned."
]
]
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.breaking.attributes = tei_att.breaking.attribute.break
tei_att.breaking.attribute.break =
@@ -361,7 +371,9 @@ tei_att.datable.attribute.calendar =
## indicates one or more systems or calendars to which the date represented by the content of this element belongs.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "foo-att.datable-calendar-calendar-constraint-rule-4"
@@ -396,7 +408,9 @@ tei_att.datable.attribute.period =
]
]
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attributes =
tei_att.datcat.attribute.datcat, tei_att.datcat.attribute.valueDatcat
@@ -404,13 +418,17 @@ tei_att.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.declarable.attributes = tei_att.declarable.attribute.default
tei_att.declarable.attribute.default =
@@ -430,7 +448,9 @@ tei_att.declaring.attribute.decls =
## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.fragmentable.attributes = tei_att.fragmentable.attribute.part
tei_att.fragmentable.attribute.part =
@@ -525,7 +545,9 @@ tei_att.global.responsibility.attribute.resp =
## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.editLike.attributes =
tei_att.editLike.attribute.evidence,
@@ -581,7 +603,9 @@ tei_att.global.rendition.attribute.rendition =
## points to a description of the rendering or presentation used for this element in the source text.
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.source.attributes =
tei_att.global.source.attribute.source
@@ -589,8 +613,44 @@ tei_att.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
tei_att.global.attributes =
tei_att.global.rendition.attributes,
tei_att.global.linking.attributes,
@@ -629,7 +689,9 @@ tei_att.global.attribute.xmllang =
tei_att.global.attribute.xmlbase =
## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.attribute.xmlspace =
## signals an intention about how white space should be managed by applications.
@@ -654,7 +716,9 @@ tei_att.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.script =
@@ -671,7 +735,9 @@ tei_att.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.medium =
@@ -740,7 +806,9 @@ tei_att.resourced.attributes = tei_att.resourced.attribute.url
tei_att.resourced.attribute.url =
## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
tei_att.measurement.attributes =
tei_att.measurement.attribute.unit,
tei_att.measurement.attribute.unitRef,
@@ -820,7 +888,9 @@ tei_att.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.measurement.attribute.quantity =
## (quantity) specifies the number of the specified units that comprise the measurement
@@ -838,7 +908,7 @@ tei_att.measurement.attribute.commodity =
}
}?
sch:pattern [
- id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -872,7 +942,9 @@ tei_att.naming.attribute.nymRef =
## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.notated.attributes = tei_att.notated.attribute.notation
tei_att.notated.attribute.notation =
@@ -942,7 +1014,7 @@ tei_att.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "foo-att.typed-subtypeTyped-constraint-rule-6"
+ id = "foo-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -985,7 +1057,7 @@ tei_att.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "foo-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -1008,7 +1080,9 @@ tei_att.pointing.attribute.target =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.pointing.attribute.evaluate =
@@ -1033,7 +1107,11 @@ tei_att.pointing.group.attribute.domains =
## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
tei_att.pointing.group.attribute.targFunc =
[
@@ -1087,16 +1165,20 @@ tei_att.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.spanning.attributes = tei_att.spanning.attribute.spanTo
tei_att.spanning.attribute.spanTo =
## indicates the end of a span initiated by the element bearing this attribute.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1153,7 +1235,7 @@ tei_att.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1177,11 +1259,15 @@ tei_att.timed.attributes =
tei_att.timed.attribute.start =
## indicates the location within a temporal alignment at which this element begins.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.timed.attribute.end =
## indicates the location within a temporal alignment at which this element ends.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.transcriptional.attributes =
tei_att.editLike.attributes,
tei_att.written.attributes,
@@ -1777,7 +1863,9 @@ tei_att.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_model.correspActionPart =
tei_model.dateLike
@@ -1878,7 +1966,7 @@ tei_p =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -1900,7 +1988,7 @@ tei_p =
]
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -2089,7 +2177,7 @@ tei_desc =
tei_macro.limitedContent
>> sch:pattern [
id =
- "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2179,9 +2267,11 @@ tei_rt =
tei_att.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
- id = "foo-rt-target-rt-target-not-span-constraint-report-7"
+ id = "foo-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2201,7 +2291,9 @@ tei_rt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2225,7 +2317,9 @@ tei_rt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2594,7 +2688,7 @@ tei_ptr =
element ptr {
empty
>> sch:pattern [
- id = "foo-ptr-ptrAtts-constraint-report-8"
+ id = "foo-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2628,7 +2722,7 @@ tei_ref =
element ref {
tei_macro.paraContent
>> sch:pattern [
- id = "foo-ref-refAtts-constraint-report-9"
+ id = "foo-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2668,7 +2762,7 @@ tei_list =
(tei_label, tei_model.global*, tei_item, tei_model.global*)+)),
(tei_model.divBottom, tei_model.global*)*)
>> sch:pattern [
- id = "foo-list-gloss-list-must-have-labels-constraint-rule-11"
+ id = "foo-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -2834,6 +2928,7 @@ tei_graphic =
tei_att.media.attributes,
tei_att.resourced.attributes,
tei_att.declaring.attributes,
+ tei_att.typed.attributes,
empty
}
tei_binaryObject =
@@ -3184,7 +3279,7 @@ tei_relatedItem =
element relatedItem {
((tei_model.biblLike | tei_model.ptrLike)?)
>> sch:pattern [
- id = "foo-relatedItem-targetorcontent1-constraint-report-10"
+ id = "foo-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3216,7 +3311,9 @@ tei_relatedItem =
tei_att.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_l =
@@ -3230,7 +3327,7 @@ tei_l =
| tei_model.global)*)
>> sch:pattern [
id =
- "foo-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "foo-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3291,7 +3388,7 @@ tei_lg =
]
>> sch:pattern [
id =
- "foo-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3348,6 +3445,7 @@ tei_stage =
tei_att.ascribed.directed.attributes,
tei_att.global.attributes,
tei_att.placement.attributes,
+ tei_att.written.attributes,
## indicates the kind of stage direction.
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -3825,7 +3923,7 @@ tei_quotation =
element quotation {
(tei_model.pLike*)
>> sch:pattern [
- id = "foo-quotation-quotationContents-constraint-report-13"
+ id = "foo-quotation-quotationContents-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -3998,7 +4096,9 @@ tei_namespace =
tei_att.global.attributes,
## specifies the full formal name of the namespace concerned.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
tei_rendition =
@@ -4060,7 +4160,7 @@ tei_citeStructure =
}?)
>> sch:pattern [
id =
- "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -4099,7 +4199,7 @@ tei_citeStructure =
attribute match { text }
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -4120,7 +4220,7 @@ tei_citeStructure =
]
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -4161,7 +4261,9 @@ tei_citeData =
tei_att.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_cRefPattern =
@@ -4322,7 +4424,9 @@ tei_conversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -4330,7 +4434,9 @@ tei_conversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_appInfo =
@@ -4439,7 +4545,9 @@ tei_keywords =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_classCode =
@@ -4455,7 +4563,9 @@ tei_classCode =
" element, or some other resource."
]
]
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_catRef =
@@ -4472,7 +4582,9 @@ tei_catRef =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_calendarDesc =
@@ -4571,7 +4683,9 @@ tei_change =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4699,7 +4813,7 @@ tei_div =
(tei_model.divBottom, tei_model.global*)*)?)
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-14"
+ "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -4721,7 +4835,7 @@ tei_div =
]
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-15"
+ "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16"
"\x{a}" ~
" "
sch:rule [
@@ -5143,41 +5257,57 @@ tei_att.global.linking.attribute.corresp =
## (corresponds) points to elements that correspond to the current element in some way.
attribute corresp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.synch =
## (synchronous) points to elements that are synchronous with the current element.
attribute synch {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.sameAs =
## points to an element that is the same as the current element.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.copyOf =
## points to an element of which the current element is a copy.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.next =
## points to the next element of a virtual aggregate of which the current element is part.
- attribute next { xsd:anyURI }?
+ attribute next {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.prev =
## (previous) points to the previous element of a virtual aggregate of which the current element is part.
- attribute prev { xsd:anyURI }?
+ attribute prev {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.exclude =
## points to elements that are in exclusive alternation with the current element.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.select =
## selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_link =
@@ -5226,7 +5356,7 @@ tei_ab =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-16"
+ "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-17"
"\x{a}" ~
" "
sch:rule [
@@ -5248,7 +5378,7 @@ tei_ab =
]
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17"
+ "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18"
"\x{a}" ~
" "
sch:rule [
@@ -5360,7 +5490,9 @@ tei_when =
" element, which is obtained by adding the interval to the time of the reference point."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_timeline =
@@ -5371,7 +5503,9 @@ tei_timeline =
tei_att.global.attributes,
## designates the origin of the timeline, i.e. the time at which it begins.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"specifies the unit of time corresponding to the "
@@ -5506,7 +5640,11 @@ tei_alt =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## states whether the alternations gathered in this collection are exclusive or inclusive.
@@ -5660,7 +5798,9 @@ tei_annotation =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
diff --git a/Test/expected-results/test35.rnc b/Test/expected-results/test35.rnc
index 6355721c6..08b3e995c 100644
--- a/Test/expected-results/test35.rnc
+++ b/Test/expected-results/test35.rnc
@@ -52,14 +52,18 @@ tei_att.anchoring.attribute.targetEnd =
## (target end) points to the end of the span to which the note is attached, if the note is not embedded in the text at that point.
attribute targetEnd {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.attributes = tei_att.ascribed.attribute.who
tei_att.ascribed.attribute.who =
## indicates the person, or group of people, to whom the element content is ascribed.
attribute who {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ascribed.directed.attributes =
tei_att.ascribed.attributes,
@@ -68,7 +72,9 @@ tei_att.ascribed.directed.attribute.toWhom =
## indicates the person, or group of people, to whom a speech act or action is directed.
attribute toWhom {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.canonical.attributes =
tei_att.canonical.attribute.key, tei_att.canonical.attribute.ref
@@ -80,7 +86,9 @@ tei_att.canonical.attribute.ref =
## (reference) provides an explicit means of locating a full definition or identity for the entity being named by means of one or more URIs.
attribute ref {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.ranging.attributes =
tei_att.ranging.attribute.atLeast,
@@ -205,7 +213,9 @@ tei_att.written.attribute.hand =
" element describing the hand considered responsible for the content of the element concerned."
]
]
- attribute hand { xsd:anyURI }?
+ attribute hand {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.breaking.attributes = tei_att.breaking.attribute.break
tei_att.breaking.attribute.break =
@@ -359,7 +369,9 @@ tei_att.datable.attribute.calendar =
## indicates one or more systems or calendars to which the date represented by the content of this element belongs.
attribute calendar {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
sch:pattern [
id = "foo-att.datable-calendar-calendar-constraint-rule-4"
@@ -394,7 +406,9 @@ tei_att.datable.attribute.period =
]
]
attribute period {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attributes =
tei_att.datcat.attribute.datcat, tei_att.datcat.attribute.valueDatcat
@@ -402,13 +416,17 @@ tei_att.datcat.attribute.datcat =
## contains a PID (persistent identifier) that aligns the given element with the appropriate Data Category (or categories) in ISOcat.
attribute ns2:datcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.datcat.attribute.valueDatcat =
## contains a PID (persistent identifier) that aligns the content of the given element or the value of the given attribute with the appropriate simple Data Category (or categories) in ISOcat.
attribute ns2:valueDatcat {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.declarable.attributes = tei_att.declarable.attribute.default
tei_att.declarable.attribute.default =
@@ -428,7 +446,9 @@ tei_att.declaring.attribute.decls =
## identifies one or more declarable elements within the header, which are understood to apply to the element bearing this attribute and its content.
attribute decls {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.fragmentable.attributes = tei_att.fragmentable.attribute.part
tei_att.fragmentable.attribute.part =
@@ -523,7 +543,9 @@ tei_att.global.responsibility.attribute.resp =
## (responsible party) indicates the agency responsible for the intervention or interpretation, for example an editor or transcriber.
attribute resp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.editLike.attributes =
tei_att.editLike.attribute.evidence,
@@ -579,7 +601,9 @@ tei_att.global.rendition.attribute.rendition =
## points to a description of the rendering or presentation used for this element in the source text.
attribute rendition {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.source.attributes =
tei_att.global.source.attribute.source
@@ -587,8 +611,44 @@ tei_att.global.source.attribute.source =
## specifies the source from which some aspect of this element is drawn.
attribute source {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
+sch:pattern [
+ id =
+ "foo-att.global.source-source-only_1_ODD_source-constraint-rule-5"
+ "\x{a}" ~
+ " "
+ sch:rule [
+ context = "tei:*/@source"
+ "\x{a}" ~
+ " "
+ sch:let [
+ name = "srcs"
+ value = "tokenize( normalize-space(.),' ')"
+ ]
+ "\x{a}" ~
+ " "
+ sch:report [
+ test =
+ "( parent::tei:classRef | parent::tei:dataRef | parent::tei:elementRef | parent::tei:macroRef | parent::tei:moduleRef | parent::tei:schemaSpec ) and $srcs[2]"
+ "\x{a}" ~
+ " When used on a schema description element (like\x{a}" ~
+ " "
+ sch:value-of [ select = "name(..)" ]
+ "), the @source attribute\x{a}" ~
+ " should have only 1 value. (This one has "
+ sch:value-of [ select = "count($srcs)" ]
+ ".)\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+ ]
+ "\x{a}" ~
+ " "
+]
tei_att.global.attributes =
tei_att.global.rendition.attributes,
tei_att.global.linking.attributes,
@@ -627,7 +687,9 @@ tei_att.global.attribute.xmllang =
tei_att.global.attribute.xmlbase =
## provides a base URI reference with which applications can resolve relative URI references into absolute URI references.
- attribute xml:base { xsd:anyURI }?
+ attribute xml:base {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.attribute.xmlspace =
## signals an intention about how white space should be managed by applications.
@@ -652,7 +714,9 @@ tei_att.handFeatures.attribute.scribeRef =
]
]
attribute scribeRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.script =
@@ -669,7 +733,9 @@ tei_att.handFeatures.attribute.scriptRef =
]
]
attribute scriptRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.handFeatures.attribute.medium =
@@ -738,7 +804,9 @@ tei_att.resourced.attributes = tei_att.resourced.attribute.url
tei_att.resourced.attribute.url =
## (uniform resource locator) specifies the URL from which the media concerned may be obtained.
- attribute url { xsd:anyURI }
+ attribute url {
+ xsd:anyURI { pattern = "\S+" }
+ }
tei_att.measurement.attributes =
tei_att.measurement.attribute.unit,
tei_att.measurement.attribute.unitRef,
@@ -818,7 +886,9 @@ tei_att.measurement.attribute.unitRef =
" element that defines a unit of measure."
]
]
- attribute unitRef { xsd:anyURI }?
+ attribute unitRef {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.measurement.attribute.quantity =
## (quantity) specifies the number of the specified units that comprise the measurement
@@ -836,7 +906,7 @@ tei_att.measurement.attribute.commodity =
}
}?
sch:pattern [
- id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-5"
+ id = "foo-att.measurement-att-measurement-unitRef-constraint-rule-6"
"\x{a}" ~
" "
sch:rule [
@@ -870,7 +940,9 @@ tei_att.naming.attribute.nymRef =
## (reference to the canonical name) provides a means of locating the canonical form (nym) of the names associated with the object named by the element bearing it.
attribute nymRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.notated.attributes = tei_att.notated.attribute.notation
tei_att.notated.attribute.notation =
@@ -940,7 +1012,7 @@ tei_att.typed.attribute.subtype =
xsd:token { pattern = "[^\p{C}\p{Z}]+" }
}?
sch:pattern [
- id = "foo-att.typed-subtypeTyped-constraint-rule-6"
+ id = "foo-att.typed-subtypeTyped-constraint-rule-7"
"\x{a}" ~
" "
sch:rule [
@@ -983,7 +1055,7 @@ tei_att.pointing.attribute.targetLang =
"")
}?
sch:pattern [
- id = "foo-att.pointing-targetLang-targetLang-constraint-rule-7"
+ id = "foo-att.pointing-targetLang-targetLang-constraint-rule-8"
"\x{a}" ~
" "
sch:rule [
@@ -1006,7 +1078,9 @@ tei_att.pointing.attribute.target =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.pointing.attribute.evaluate =
@@ -1031,7 +1105,11 @@ tei_att.pointing.group.attribute.domains =
## optionally specifies the identifiers of the elements within which all elements indicated by the contents of this element lie.
attribute domains {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?
tei_att.pointing.group.attribute.targFunc =
[
@@ -1085,16 +1163,20 @@ tei_att.edition.attribute.edRef =
## (edition reference) provides a pointer to the source edition in which the associated feature (for example, a page, column, or line break) occurs at this point in the text.
attribute edRef {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.spanning.attributes = tei_att.spanning.attribute.spanTo
tei_att.spanning.attribute.spanTo =
## indicates the end of a span initiated by the element bearing this attribute.
- attribute spanTo { xsd:anyURI }?
+ attribute spanTo {
+ xsd:anyURI { pattern = "\S+" }
+ }?
sch:pattern [
id =
- "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-8"
+ "foo-att.spanning-spanTo-spanTo-points-to-following-constraint-rule-9"
"\x{a}" ~
" "
sch:rule [
@@ -1151,7 +1233,7 @@ tei_att.styleDef.attribute.schemeVersion =
}?
sch:pattern [
id =
- "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-9"
+ "foo-att.styleDef-schemeVersion-schemeVersionRequiresScheme-constraint-rule-10"
"\x{a}" ~
" "
sch:rule [
@@ -1175,11 +1257,15 @@ tei_att.timed.attributes =
tei_att.timed.attribute.start =
## indicates the location within a temporal alignment at which this element begins.
- attribute start { xsd:anyURI }?
+ attribute start {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.timed.attribute.end =
## indicates the location within a temporal alignment at which this element ends.
- attribute end { xsd:anyURI }?
+ attribute end {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.transcriptional.attributes =
tei_att.editLike.attributes,
tei_att.written.attributes,
@@ -1771,7 +1857,9 @@ tei_att.locatable.attribute.where =
]
]
attribute where {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_model.correspActionPart =
tei_model.dateLike
@@ -1871,7 +1959,7 @@ tei_p =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-5"
+ "foo-p-abstractModel-structure-p-in-ab-or-p-constraint-report-6"
"\x{a}" ~
" "
sch:rule [
@@ -1893,7 +1981,7 @@ tei_p =
]
>> sch:pattern [
id =
- "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-6"
+ "foo-p-abstractModel-structure-p-in-l-or-lg-constraint-report-7"
"\x{a}" ~
" "
sch:rule [
@@ -2082,7 +2170,7 @@ tei_desc =
tei_macro.limitedContent
>> sch:pattern [
id =
- "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-10"
+ "foo-desc-deprecationInfo-only-in-deprecated-constraint-rule-11"
"\x{a}" ~
" "
sch:rule [
@@ -2172,9 +2260,11 @@ tei_rt =
tei_att.transcriptional.attributes,
(
## supplies a pointer to the base being glossed by this ruby text.
- attribute target { xsd:anyURI }?)
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
- id = "foo-rt-target-rt-target-not-span-constraint-report-7"
+ id = "foo-rt-target-rt-target-not-span-constraint-report-8"
"\x{a}" ~
" "
sch:rule [
@@ -2194,7 +2284,9 @@ tei_rt =
],
(
## points to the starting point of the span of text being glossed by this ruby text.
- attribute from { xsd:anyURI }?)
+ attribute from {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-from-rt-from-constraint-assert-7"
"\x{a}" ~
@@ -2218,7 +2310,9 @@ tei_rt =
],
(
## points to the ending point of the span of text being glossed.
- attribute to { xsd:anyURI }?)
+ attribute to {
+ xsd:anyURI { pattern = "\S+" }
+ }?)
>> sch:pattern [
id = "foo-rt-to-rt-to-constraint-assert-8"
"\x{a}" ~
@@ -2587,7 +2681,7 @@ tei_ptr =
element tei:ptr {
empty
>> sch:pattern [
- id = "foo-ptr-ptrAtts-constraint-report-8"
+ id = "foo-ptr-ptrAtts-constraint-report-9"
"\x{a}" ~
" "
sch:rule [
@@ -2621,7 +2715,7 @@ tei_ref =
element tei:ref {
tei_macro.paraContent
>> sch:pattern [
- id = "foo-ref-refAtts-constraint-report-9"
+ id = "foo-ref-refAtts-constraint-report-10"
"\x{a}" ~
" "
sch:rule [
@@ -2661,7 +2755,7 @@ tei_list =
(tei_label, tei_model.global*, tei_item, tei_model.global*)+)),
(tei_model.divBottom, tei_model.global*)*)
>> sch:pattern [
- id = "foo-list-gloss-list-must-have-labels-constraint-rule-11"
+ id = "foo-list-gloss-list-must-have-labels-constraint-rule-12"
"\x{a}" ~
" "
sch:rule [
@@ -2827,6 +2921,7 @@ tei_graphic =
tei_att.media.attributes,
tei_att.resourced.attributes,
tei_att.declaring.attributes,
+ tei_att.typed.attributes,
empty
}
tei_binaryObject =
@@ -3177,7 +3272,7 @@ tei_relatedItem =
element tei:relatedItem {
((tei_model.biblLike | tei_model.ptrLike)?)
>> sch:pattern [
- id = "foo-relatedItem-targetorcontent1-constraint-report-10"
+ id = "foo-relatedItem-targetorcontent1-constraint-report-11"
"\x{a}" ~
" "
sch:rule [
@@ -3209,7 +3304,9 @@ tei_relatedItem =
tei_att.typed.attributes,
## points to the related bibliographic element by means of an absolute or relative URI reference
- attribute target { xsd:anyURI }?,
+ attribute target {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_l =
@@ -3223,7 +3320,7 @@ tei_l =
| tei_model.global)*)
>> sch:pattern [
id =
- "foo-l-abstractModel-structure-l-in-l-constraint-report-11"
+ "foo-l-abstractModel-structure-l-in-l-constraint-report-12"
"\x{a}" ~
" "
sch:rule [
@@ -3284,7 +3381,7 @@ tei_lg =
]
>> sch:pattern [
id =
- "foo-lg-abstractModel-structure-lg-in-l-constraint-report-12"
+ "foo-lg-abstractModel-structure-lg-in-l-constraint-report-13"
"\x{a}" ~
" "
sch:rule [
@@ -3341,6 +3438,7 @@ tei_stage =
tei_att.ascribed.directed.attributes,
tei_att.global.attributes,
tei_att.placement.attributes,
+ tei_att.written.attributes,
## indicates the kind of stage direction.
## Suggested values include: 1] setting; 2] entrance; 3] exit; 4] business; 5] novelistic; 6] delivery; 7] modifier; 8] location; 9] mixed
@@ -3799,7 +3897,7 @@ tei_quotation =
element tei:quotation {
(tei_model.pLike*)
>> sch:pattern [
- id = "foo-quotation-quotationContents-constraint-report-13"
+ id = "foo-quotation-quotationContents-constraint-report-14"
"\x{a}" ~
" "
sch:rule [
@@ -3972,7 +4070,9 @@ tei_namespace =
tei_att.global.attributes,
## specifies the full formal name of the namespace concerned.
- attribute name { xsd:anyURI },
+ attribute name {
+ xsd:anyURI { pattern = "\S*" }
+ },
empty
}
tei_rendition =
@@ -4034,7 +4134,7 @@ tei_citeStructure =
}?)
>> sch:pattern [
id =
- "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-12"
+ "foo-citeStructure-delim-citestructure-inner-delim-constraint-rule-13"
"\x{a}" ~
" "
sch:rule [
@@ -4073,7 +4173,7 @@ tei_citeStructure =
attribute match { text }
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-outer-match-constraint-rule-13"
+ "foo-citeStructure-match-citestructure-outer-match-constraint-rule-14"
"\x{a}" ~
" "
sch:rule [
@@ -4094,7 +4194,7 @@ tei_citeStructure =
]
>> sch:pattern [
id =
- "foo-citeStructure-match-citestructure-inner-match-constraint-rule-14"
+ "foo-citeStructure-match-citestructure-inner-match-constraint-rule-15"
"\x{a}" ~
" "
sch:rule [
@@ -4135,7 +4235,9 @@ tei_citeData =
tei_att.citeStructurePart.attributes,
## (property) A URI indicating a property definition.
- attribute property { xsd:anyURI },
+ attribute property {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_cRefPattern =
@@ -4298,7 +4400,9 @@ tei_conversion =
"."
]
]
- attribute fromUnit { xsd:anyURI },
+ attribute fromUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
[
a:documentation [
"the target unit of measurement for a conversion from a source unit referenced in "
@@ -4306,7 +4410,9 @@ tei_conversion =
"."
]
]
- attribute toUnit { xsd:anyURI },
+ attribute toUnit {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_appInfo =
@@ -4415,7 +4521,9 @@ tei_keywords =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_classCode =
@@ -4431,7 +4539,9 @@ tei_classCode =
" element, or some other resource."
]
]
- attribute scheme { xsd:anyURI },
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ },
empty
}
tei_catRef =
@@ -4448,7 +4558,9 @@ tei_catRef =
" element, or by some other resource."
]
]
- attribute scheme { xsd:anyURI }?,
+ attribute scheme {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_calendarDesc =
@@ -4547,7 +4659,9 @@ tei_change =
## (target) points to one or more elements that belong to this change.
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?,
empty
}
@@ -4675,7 +4789,7 @@ tei_div =
(tei_model.divBottom, tei_model.global*)*)?)
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-14"
+ "foo-div-abstractModel-structure-div-in-l-or-lg-constraint-report-15"
"\x{a}" ~
" "
sch:rule [
@@ -4697,7 +4811,7 @@ tei_div =
]
>> sch:pattern [
id =
- "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-15"
+ "foo-div-abstractModel-structure-div-in-ab-or-p-constraint-report-16"
"\x{a}" ~
" "
sch:rule [
@@ -5119,41 +5233,57 @@ tei_att.global.linking.attribute.corresp =
## (corresponds) points to elements that correspond to the current element in some way.
attribute corresp {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.synch =
## (synchronous) points to elements that are synchronous with the current element.
attribute synch {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.sameAs =
## points to an element that is the same as the current element.
- attribute sameAs { xsd:anyURI }?
+ attribute sameAs {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.copyOf =
## points to an element of which the current element is a copy.
- attribute copyOf { xsd:anyURI }?
+ attribute copyOf {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.next =
## points to the next element of a virtual aggregate of which the current element is part.
- attribute next { xsd:anyURI }?
+ attribute next {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.prev =
## (previous) points to the previous element of a virtual aggregate of which the current element is part.
- attribute prev { xsd:anyURI }?
+ attribute prev {
+ xsd:anyURI { pattern = "\S+" }
+ }?
tei_att.global.linking.attribute.exclude =
## points to elements that are in exclusive alternation with the current element.
attribute exclude {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_att.global.linking.attribute.select =
## selects one or more alternants; if one alternant is selected, the ambiguity or uncertainty is marked as resolved. If more than one alternant is selected, the degree of ambiguity or uncertainty is marked as reduced by the number of alternants not selected.
attribute select {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
}?
tei_link =
@@ -5202,7 +5332,7 @@ tei_ab =
tei_macro.paraContent
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-16"
+ "foo-ab-abstractModel-structure-ab-in-ab-or-p-constraint-report-17"
"\x{a}" ~
" "
sch:rule [
@@ -5224,7 +5354,7 @@ tei_ab =
]
>> sch:pattern [
id =
- "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-17"
+ "foo-ab-abstractModel-structure-ab-in-l-or-lg-constraint-report-18"
"\x{a}" ~
" "
sch:rule [
@@ -5336,7 +5466,9 @@ tei_when =
" element, which is obtained by adding the interval to the time of the reference point."
]
]
- attribute since { xsd:anyURI }?,
+ attribute since {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
empty
}
tei_timeline =
@@ -5347,7 +5479,9 @@ tei_timeline =
tei_att.global.attributes,
## designates the origin of the timeline, i.e. the time at which it begins.
- attribute origin { xsd:anyURI }?,
+ attribute origin {
+ xsd:anyURI { pattern = "\S+" }
+ }?,
[
a:documentation [
"specifies the unit of time corresponding to the "
@@ -5482,7 +5616,11 @@ tei_alt =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI, xsd:anyURI, xsd:anyURI* }
+ list {
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" },
+ xsd:anyURI { pattern = "\S+" }*
+ }
}?,
## states whether the alternations gathered in this collection are exclusive or inclusive.
@@ -5636,7 +5774,9 @@ tei_annotation =
## specifies the destination of the reference by supplying one or more URI References
attribute target {
- list { xsd:anyURI+ }
+ list {
+ xsd:anyURI { pattern = "\S+" }+
+ }
},
##
diff --git a/Test/expected-results/testdrama.compiled.xml b/Test/expected-results/testdrama.compiled.xml
index 62a036218..6b5029d59 100644
--- a/Test/expected-results/testdrama.compiled.xml
+++ b/Test/expected-results/testdrama.compiled.xml
@@ -1048,7 +1048,7 @@ Elements
9.5.2. Lexical View
18.3. Other Atomic Feature Values
-
+
teidata.enumerated =
teidata.word
-⚓
+⚓
The
On other elements it provides a pointer to the bibliographical source from which a - quotation or citation is drawn.
-In either case, the location may be provided using any form of URI, for example an
- absolute URI, a relative URI, or private scheme URI that is expanded to an absolute URI as
- documented in a
If more than one location is specified, the default assumption is that the required - source should be obtained by combining the resources indicated.
+The
On other elements it provides a pointer to the + bibliographical source from which a quotation or citation is + drawn.
+In either case, the location may be provided using any form
+ of URI, for example an absolute URI, a relative URI, a private
+ scheme URI of the form tei:x.y.z
, where
+ x.y.z
indicates the version number, e.g.
+ tei:4.3.2
for TEI P5 release 4.3.2 or (as a
+ special case) tei:current
for whatever is the
+ latest release, or a private scheme URI that is expanded to an
+ absolute URI as documented in a
When used on elements describing schema components,
+
Cependant, si les notes sont ordonnées et numérotées + et qu’on veuille reconstruire automatiquement leur numérotation + par un traitement informatique, il est inutile d’enregistrer le + numéro des notes.
+The
Within the body of a text, a
我就是英台。三年前我想出外求學,故而改扮男裝,不期与梁兄相遇,三載同窗多蒙照顧,英台感激不盡。
@@ -16054,7 +16106,7 @@ relatedItem element must be emptyHauptausgaben der TEI-Richtlinien werden seit langem informell mit einem Namen bezeichnet, der sich aus dem Buchstaben P (für proposal) @@ -23445,7 +23500,7 @@ during the evolution of the encoded representation of that text.
First published as part of TEI P2, this is the P5 - version using a name space.
+ version using a namespace.No source: this is an original work.
@@ -23476,12 +23531,12 @@ during the evolution of the encoded representation of that text.This element is required. It is customary to specify the
- TEI namespace http://www.tei-c.org/ns/1.0
on it, using
- the
This element is required. It is customary to specify the TEI
+ namespace
Cet élément est obligatoire.
@@ -23547,9 +23603,11 @@ during the evolution of the encoded representation of that text. 当該要素は必須であり,http://www.tei-c.org/ns/1.0
を指定することになっている.
Dieses Element ist obligatorisch. Es ist notwendig, darin den TEI-Namensraum
Dieses Element ist obligatorisch. Es ist notwendig,
+ auch den TEI-Namensraum
小燕子其實也無所愛,只是沉浸在朦朧而飄忽的夏夜夢里罷了。@@ -29434,7 +29492,7 @@ You must supply at least two values for @target on