[Home] [By Thread] [By Date] [Recent Entries]

  • To: <xml-dev@l...>
  • Subject: schema & polymorphism - resolving duplicate element definitions
  • From: "Chris Hoehn" <chris@h...>
  • Date: Fri, 15 Feb 2002 11:00:08 -0800
  • Importance: Normal
  • In-reply-to: <3C6D6BB9.99E704FC@p...>

Aloha.  I'm in need of a little enlightenment (or a club over the head) in
regards to the proper use of namespaces for the following scenario.

I've got two schemas, A & B, that each define an element named EltC.  A and
B both use the same targetNamespace. A and C are both defined by a
"standards body" so I do not want to modify their definitions.

If I want to create another schema, Z,  which aggregates A & B (i.e. A & B
are children in Z), I have the problem of a duplicate definition of EltC.  I
have, to this point, tried creating Z by <include> or <import> of A & B.
Both of which give the problem of a duplicate definition.  This seems so be
an issue of polymorphism to me.

My question is... how can I properly <import> (or <include>) A & B in Z such
that there is not this definition conflict?  Is this even possible if A & B
have the same targetNamespace value?

fyi - The actual application is that A and B correspond to Request and
Response -type definitions and Z then is an interface that defines the
interaction.

(Abbreviated) Schema definitions follow...

Mahalo for any suggestions.

--Chris


//### A.xsd ####
<xsd:schema targetNamespace="StandardURI" xmlns="StandardURI"
xmlns:xsd=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified">
    <xsd:element name="EltC">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="EltD"/>
                <xsd:element ref="EltF"/>
            </xsd:sequence>
        <xsd:complexType>
    </xsd:element>
</xsd:schema>


//### B.xsd ####
<xsd:schema targetNamespace="StandardURI" xmlns="StandardURI"
xmlns:xsd=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified">
    <xsd:element name="EltC">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="EltD"/>
                <xsd:element ref="EltF"/>
                <xsd:element ref="EltG"/>
            </xsd:sequence>
        <xsd:complexType>
    </xsd:element>
</xsd:schema>


//### Z.xsd ####
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
    <xsd:include schemaLocation="A.xsd"/>
    <xsd:include schemaLocation="B.xsd"/>
</xsd:schema>


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member