Announcement

Collapse
No announcement yet.

Gekapseltes XML bei Prüfung gegen XSD ausklammern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gekapseltes XML bei Prüfung gegen XSD ausklammern

    Guude

    Ich bin gerade am Grübeln, wie ich das hinbekomme:
    Gegeben sei ein großer Files mit XML gefüllt. Dabei ist der äußere Part des XMLs ein Wrapper um einen inneren Part.
    z.B.
    <?xml ...>
    <AUSSEN> <-- Wrappe ->>
    <AUSSEN_HDR> <-- Header infomation -->
    <Type>Type_Innen1</Type> <-- Angabe des Typs der inneren Struktur -->
    </AUSSEN_HDR>
    <INNEN1> <-- Ab hier Nutzlast von einem (beliebigen) Type -->
    ...
    </INNEN1>
    </AUSSEN1>

    Wenn ich diese Struktur einlesen und dabei gegen XSD validieren will, muss ich ja auch den inneren Type beschreiben.
    Angenommen, es geben innere Strukturen, die ich gar nicht weiter betrachten will, des Aufbau ich auch gar nicht genau kenne.
    Wie könnte man diese im XSD angeben, so dass in einem ersten Schritt nun der Wrapper validiert wird und erst wenn der Type feststeht, auch diese konkret getestet werden kann?

    Sachdienliche Hinweise sind willkommen :-)

    Gruß Ingo

  • #2
    Das XSD entsprechend ändern

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:element name="AUSSEN">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="AUSSEN_HDR"/>
            <xs:element name="INNEN1" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AUSSEN_HDR">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Type" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    Christian

    Comment


    • LegoFreak
      LegoFreak commented
      Editing a comment
      Hi Christian
      Sag doch gleich einer, dass es so eingfach geht :-)
      Danke für den Hinweis!
      Ingo
Working...
X