Announcement

Collapse
No announcement yet.

Leeres Element

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

  • Leeres Element

    Hallo,

    wie kann ich mittels Xml Schema ein Element spezifieren, das entweder ein Integer oder leer ist.
    Ich möchte das Element also entweder so
    Code:
    <element>2</element>
    oder so
    Code:
    <element />
    verwenden.

    Habe mir überlegt einen neuen complexType zu definieren:
    Code:
    <xsd:complexType name="beispiel">
        <xsd:choice>
            <!-- Keine Ahnung, was hierher gehört!? -->
        </xsd:choice>
    </xsd:complexType>
    Schonmal Danke!

    googolplex

  • #2
    Im Schema:
    <xs:element name="element_name" type="xs:integer" nillable="true"/>

    Im Instanzdokument:
    <element_name xsi:nil="true"/>

    Comment


    • #3
      Hallo,

      danke, für die Antwort, aber
      Originally posted by Thomas Meinike View Post
      <element_name xsi:nil="true"/>
      ist das ganze auch irgendwie ohne xsi:nil="true" möglich? Ich würde das Instanzdokument gern von solchen "Dingen" frei halten.

      googolplex

      Comment


      • #4
        AFAIK ist das für Schema-Definitionen so vorgesehen. Stellt sich noch die Frage, ob die Elemente wirklich leer sein sollen oder ob vielleicht einfach minOccurs="0" reicht und somit nicht benötigte Elemente ggf. weggelassen werden können.

        Comment


        • #5
          Originally posted by Thomas Meinike View Post
          AFAIK ist das für Schema-Definitionen so vorgesehen.
          Hmm, schade.

          Originally posted by Thomas Meinike View Post
          Stellt sich noch die Frage, ob die Elemente wirklich leer sein sollen oder ob vielleicht einfach minOccurs="0" reicht und somit nicht benötigte Elemente ggf. weggelassen werden können.
          Weglassen kann ich die Elemente in meinem Fall nicht.
          Ich werde nun wahrscheinlich als Elementwert -1 (als reguläre Werte kommen nur 1 bis 6 in Frage) angeben, wenn kein Wert vorhanden ist.

          Danke für deine Hilfe!

          googolplex

          Comment


          • #6
            Wie kann man obiges Problem mit Attributen statt Elementen in der XML-Datei lösen, also ein Attribut soll entweder leer (null) oder ein Integer sein?

            type="xs:integer" nillable="true", xsi:nil="true" geht ja für Attribute nicht.

            Dürfen dann in der XML-Datei leere Integer-Werte zwingend nicht vorhanden sein?

            Comment


            • #7
              Was sollen "leere integer-Werte" sein? Wenn das Attribut vom Datentyp xs:xyz sein soll, dann ist das eben so gewollt. Definiere das Attribut alternativ als optional (use="optional"), dann darf es fehlen. Ansonsten besteht die Möglichkeit zur Definition eines regulären Ausdrucks auf der Basis des Typs xs:string, der bestimmte Ziffern aus dem erwarteten Wertebereich erlaubt und auch den Leerstring einschließt.

              Comment


              • #8
                use="optional" funktioniert zwar, aber wenn das Attribut in der XML-Datei vorhanden ist, darf es nicht leer sein.
                Dann muss ich das wohl mit xs:string so machen, wenn es z.B. bei xs:integer keine Möglichkeit gibt, Nullwerte einzuschließen.

                Comment

                Working...
                X