can pure ODD define an alternation of attribute patterns?
Piotr Banski <[email protected]> Thu, 23 Mar 2017 02:26:06 +0100
| Newsgroups | gmane.text.tei.general |
|---|---|
| Message-ID | <[email protected]> |
Hi all,
I would like to define an alternation of patterns of up to three
attributes, where the datatype of attribute.2 and attribute.3 is uniform
and depends on the value of attribute.1.
Something like the following (in **pseudo-markup**):
<rng:choice>
<rng:group> "pointer", data.pointer,
data.pointer </rng:group>
<rng:group> "character", data.nonNegativeInteger,
data.nonNegativeInteger </rng:group>
<rng:group> "byte_offset", data.nonNegativeInteger,
data.nonNegativeInteger </rng:group>
<rng:group> "time_in_sec", data.integer,
data.integer </rng:group>
.... etc.
</rng:choice>
I could do that in RNG, but can I do that in ODD as well?
If I understand correctly, ODD expects me to list the three attDef
declarations in an <attList> for my new class, and to declare a new data
type that groups the data types that I need for attribute.2 and
attribute.3, and to make the value of attribute.1 a closed list, and
then to slam a huuuge piece of Schematron onto this (hopefully inside
this very class definition; I haven't checked that) that would attempt
to rule out unwanted sequences.
Is my diagnosis correct? I probably wouldn't mind being wrong.
I also admit to having a rather hazy idea of the extent of the
difference in "staticness" between listing potential patterns in an RNG
schema on the one hand, and defining them in the ODD on the other. I
mean, I am not really sure if I could <alternate> a series of
<sequence>s containing <attDef>s. Would I end up defining a single
attribute several times? Would/Should ODD allow me to do that?
Thanks in advance,
Piotr