Jana: Sinn von "restriction"???

Hallo Leute, hatte vor ein paar Tagen schonmal gepostet aber irgendwie ist mein Beitrag weg?!?

Also nun nochmal:

Wo ist eigentlich der Sinn von "restriction" in xsd-Dateien? Da ich doch den Basistypen bzw. sämtliche Elemente, Attribute (eingeschränkt) wieder angeben muss? Dann kann ich doch auch gleich einen neuen Typ definieren??

Hoffe, ihr könnt mich da aufklären!

Dank!

Jana

  1. Hello,

    Hoffe, ihr könnt mich da aufklären!

    ein Versuch ist es Wert...
    Eine restriction mündet in einem neuen Typ, die Frage ist nur, ob du dem Typ einen Namen gibst oder nicht. Ich weiß nicht genau, an welcher Syntax du dich störst, aber prinzipiell ergibt die Restriction einen neuen Typ mit Einschränkungen gegenüber seinem Elterntyp.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    There's no such thing as a free lunch  --  Milton Friedman
  2. Hallo,

    Hallo Leute, hatte vor ein paar Tagen schonmal gepostet aber irgendwie ist mein Beitrag weg?!?

    Dann hat wohl niemand darauf geantwortet.

    Also nun nochmal:

    Wo ist eigentlich der Sinn von "restriction" in xsd-Dateien? Da ich doch den Basistypen bzw. sämtliche Elemente, Attribute (eingeschränkt) wieder angeben muss? Dann kann ich doch auch gleich einen neuen Typ definieren??

    Dann definiere doch einen neuen Typ. Wenn dir das lieber ist (oft lohnt sich das sogar, wenn man weiß, dass man einen bestimmten Typ immer wieder brauchen wird).
    "Restriction" ist - wie der Name sagt - Einschränkung und durch sie kann man neue einfache Typen durch Ableitung von bestehenden einfachen Typen definieren.

    Hier mal das Bsp. aus der Schema-spez. genommen:

    <xsd:simpleType name="ISBNTyp">
        <xsd:restriction base="xsd:string">
        <xsd:pattern value="\d{9}[0-9X]"/>
        </xsd:restriction>
    </xsd:simpleType>

    Normalerweise kannst du im String eben Strings stehen haben. Im Bsp. wird das eingeschränkt und dadurch der neue einfacher Typ "ISBNTyp" definiert. Den kann man dann an der gewünschten Stelle z.B. als
     <xsd:attribute name="ISBN" type="ISBNTyp" use="required"/>  verwenden.

    Wenn du aber ein Schema hast wo jedes mal statt »type="ISBNTyp"« die Ableitung komplett ausgeführt wird, hast du es einfach mit einem schlecht designten Schema zu tun.

    Grüße
    Thomas