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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • WilliamB

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

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

    <define name="DefineEle mentA">
    <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="DefineEle mentE">
    <interleave>
    <ref name="DefineEle mentA"/>

    <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
Working...