Laden...

Welche XSD ist besser?

Erstellt von John444 vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.969 Views
J
John444 Themenstarter:in
42 Beiträge seit 2005
vor 17 Jahren
Welche XSD ist besser?

Hallo...

ich schreibe gerade eine XSD die später eine XML-Datei validieren soll welche zum austausch von Daten zwischen verschiedenen Applikationen dient.

Hier zwei Bsp. die fast die gleiche XML-Datei zulassen.
Welche ist besser:

Eine flache Hierarchie


  <xs:element name="options1">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="main" type="main-type"/>        
        <xs:element name="remote" type="remote-type"/>        
        <xs:element name="db" type="db-type"/>        
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="main-type">
    <xs:sequence>
      <xs:element name="modelname" type="xs:string"/>      
      <xs:element name="modelpath" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="remote-type">
    <xs:sequence>
      <xs:element name="pc" type="xs:string"/>
      <xs:element name="weiter" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="db-type">
    <xs:sequence>
      <xs:element name="constring" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

Oder eine tiefe Hierarchie


  <xs:element name="options2">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="main">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="modelname" type="xs:string"/>
              <xs:element name="modelpath" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="remote">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="pc" type="xs:string"/>
              <xs:element name="weiter" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="db">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="constring" type="xs:string"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

Die Elemente main db und remote haben weitere Complexe Typen bzw. weitere Hierarchie Stufen... diese habe ich aus Übersichtsgründen weggelassen.

DANKE

S
8.746 Beiträge seit 2005
vor 17 Jahren

Wenn die Frage lautet: Machen globale Typen Sinn, dann lautet die Antwort: Ja, wenn sie denn (potentiell) mehrfach verwendet werden.

J
John444 Themenstarter:in
42 Beiträge seit 2005
vor 17 Jahren

ich sollte also nur globale typen verwenden wenn ich sie auch wirklich häufiger brauche

sonst halt fall 2... richtig.

347 Beiträge seit 2006
vor 17 Jahren

Original von John444
ich sollte also nur globale typen verwenden wenn ich sie auch wirklich häufiger brauche

sonst halt fall 2... richtig. Ich finde es einfach übersichtlicher wenn zu komplexe typen nicht inline definiert sind.
Außerdem kann man die generierten Klassen aus inline-Typen eigentlich nur als Appetitzügler benutzen, oder als Brechmittel.