Ref an Value binden ?

xrax

Erfahrenes Mitglied
Hallo zusammen,

ich beginne gerade ein bereits bestehendes XML-Schema zu überarbeiten.
Diese ist als xsd erstellt worden.

Mein Problem ist nun dass das Schema nicht ganz dem entspricht was es sollte.
So schauts aus:

Code:
<?xml version="1.0"?><xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:include schemaLocation="inv.xsd" />
  <xsd:include schemaLocation="price.xsd" />
  .
  .
  <xsd:element name="Packet">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="MessageType">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:enumeration value="UP_INV" />
              <xsd:enumeration value="UP_PRICE" />
              .
              .
             </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
        <xsd:element name="Message">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:choice>
                <xsd:element ref="Stock_Inv" />
                <xsd:element ref="Stock_Price" />
                .
                .
             </xsd:choice>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Hier wird aber auch eine XML als valide angenommen die den MessageType "UP_INV" und in der ref auf Stock_Price verweist.
Das ist aber falsch. Ich möchte das es nur valide ist wenn MessageType "UP_INV" und die ref auf Stock_Inv verweist.

Kann ich irgendwie die Referenzen an das jeweils passenden Element MessageType binden ?

Besten Dank
xrax
 
Zurück