3 Stimmen

Hinzufügen von Einschränkung und Attribut(en) zu complexType

Einem einfachen Element mit type="xs:int" Ich möchte sowohl eine Einschränkung als auch eine Reihe von Attributen hinzufügen. Die einzige Möglichkeit, die ich kenne, ist ein zweistufiger Ansatz:

  1. Einen benannten (globalen) Typ deklarieren und alle Einschränkungen in den benannten Typ aufnehmen

  2. Verweisen Sie auf den genannten Typ in der base eines <xs:extension> und fügen Sie die Attribute zu dem Erweiterungsknoten hinzu.

Es wäre schön, wenn ich die Deklaration eines globalen benannten Typs vermeiden könnte, da das Schema dynamisch generiert wird und es viel sauberer wäre, alle Einschränkungen lokal festzulegen. Z.B. wie folgt:

<xs:complexType>
  <xs:simpleContent>
    <xs:extension base="xs:int">
      <xs:minInclusive>2</xs:minInclusive>
      <xs:attribute name="myAttribute" type="xs:boolean" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

oder im Falle eines String-Typs:

<xs:complexType>
  <xs:simpleContent>
    <xs:extension base="xs:string">
      <xs:enumeration Value="FOO" />
      <xs:enumeration Value="BAR" />
      <xs:enumeration Value="BAZ" />
      <xs:attribute name="myAttribute" type="xs:boolean" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

Leider scheint eine solche "kombinierte" Erklärung nicht zulässig zu sein.

2voto

Tomasz Nurkiewicz Punkte 322861

Das ist nicht möglich, bitte überprüfen Sie das: Sowohl ein Attribut als auch eine Einschränkung für ein Element im XML-Schema haben antworten Sie.

1voto

oiavorskyi Punkte 2863

Leider ist es nicht möglich, dies zu tun. Die Art und Weise, wie Sie es derzeit tun (mit separatem Typ) ist der richtige Weg. Solche Anfragen wurden gestellt antes de (wenn auch vielleicht nicht in SO).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X