How do I reference a definition and at the same time modify it?

W

WilliamB

New RELAX NG user here. So let's say I have the following definitions
in my RELAX NG schema:

<define name="DefineElementA">
<element name="ElementA">
<interleave>

<optional>
<element name="ElementB">
<text/>
</element>
</optional>

<optional>
<element name="ElementC">
<text/>
</element>
</optional>

<optional>
<element name="ElementD">
<text/>
</element>
</optional>

</interleave>
</element>
</define>

<define name="DefineElementE">
<interleave>
<ref name="DefineElementA"/>

<optional>
<element name="ElementF">
<text/>
</element>
</optional>

</interleave>
</define>

I want the definition "DefineElementE" to reference the definition
"DefineElementA" like above, but I also want to change the referenced
definition in the context of "DefineElementE" so that element
"ElementD" is required. ElementE is sort of like a subclass of
ElementA: it inherits all of ElementA's child elements. Simply
duplicating ElementA's definition in ElementE and making ElementD
required would break inheritance. Is there another way?

William Beaumont
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top