[tei-council] conformance draft
Syd Bauman
Syd_Bauman at Brown.edu
Tue Apr 3 16:18:34 EDT 2007
> do you mean 2005? if so, I was not there. but no matter.
Yes, that was a boo-boo, sorry. 2004 was in Ghent, 2005 in Paris.
> > This is not at all clear to me. We haven't developed any rules,
> > guidelines, suggestions, hooks, or any such things for how this
> > would be done, have we? Could someone hack a TEI Relax NG schema
> > so that it made use of Relax NG features that ODD does not
> > support?
> certainly, in a content model, you could make a local element
> declaration, for instance.
Hmmm ... you mean in an ODD, or directly? Either way, that gives me
the capability to declare the <name> element differently when it is
inside a <respStmt>, right?
One of Relax NG's greatest powers is co-occurrence constraints. For
example, declaring that <name> must have character content or a key=
attribute, but not both[1]; or declaring the content of <address>
differently iff the type= is "USA"[2]. I do not think we can do these
things via ODD, nor do I have confidence that we can (or even should
bother) coming up with a good mechanism for doing so by manipulating
the Relax NG schemas somehow. I'm inclined to just say "yup, there
are things Relax NG can do that TEI cannot; you can certainly use
non-TEI conformant Relax NG schemas in addition to your normal
Roma-generated Relax NG schema -- but why not use Schematron embedded
in your ODD? Here is a sample of how to do that ...".
Notes
-----
[1]
element name {
attribute key { data.key }
| xsd:token { pattern = ".+" }
}
[2]
address = addressOther | addressUSA
addressUSA =
element address {
attribute type { xsd:token "USA" },
name,
street,
city,
state,
postCode
}
addressOther =
element address {
attribute type { xsd:token - "USA" },
addrLine+
}
More information about the tei-council
mailing list