David Sewell wrote:
> I've just been attempting to create an ODD file that will produce a P5
> schema that will allow html:table (i.e., 'table' in the XHTML namespace)
> anywhere that a TEI-namespace table is permitted. But I'm not quite
> clear on how to add an element from another namespace. I tried something
> along
> the lines of
>
> <elementSpec module="figures" ident="html:table" mode="add">
>
> (having defined the 'html' prefix and included a RelaxNG version of
> the XHTML schema), but Roma doesn't seem to like prefixed element names.
> What am I missing here?
I am afraid its not as simple as it might be. What you have to do is
locate a Relax NG grammar for XHTML (let's call it xhtml.rng) and then
massage TEI patterns by hand. Thus:
<moduleRef url="http://www.whatever.org/xhtml.rng">
<content>
<rng:define name="model.inter" combine="choice">
<rng:ref name="html.table"/>
</rng:define>
</content>
</moduleRef>
so
a) <moduleRef>'s @url loads an external file of Relax NG code
b) <moduleRef> has an optional <content> child whose contents are
injected into the final schema.
c) you have to add to one of the TEI class patterns. we modify class.inter.
What's wrong with this? Something serious - the pattern which identifies
the HTML table element in xhtml.rng is actually "table", which is
identical to the name in TEI. So in the example above I have used
"html.table", which would mean changing the XHTML RNG file. Names of
things in Relax NG are NOT name-spaced, unfortunately.
If this isn't making sense, please shout!
--
Sebastian Rahtz
Information Manager, Oxford University Computing Services
13 Banbury Road, Oxford OX2 6NN. Phone +44 1865 283431
OSS Watch: JISC Open Source Advisory Service
http://www.oss-watch.ac.uk
|