Laden...

XML Schema Fragen

Erstellt von mosspower vor 15 Jahren Letzter Beitrag vor 15 Jahren 777 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 15 Jahren
XML Schema Fragen

Hallo "Kollegen",

ich bin jetzt nicht so tief drinnen in Schematas aber ich wollte einfach einmal nachfragen, ob es möglich ist bei Elementen, die Text enthalten (müssen) von vornherein zu prüfen, ob der Inhalt, nach einem Trim nicht ein Leerstring ist? Ist das mittels XSD möglich? Ich möchte keine (extra) Validierung durchführen und auf Empty nach einem Trim prüfen.

Die zweite Frage ist, ob man in einem Schema referenzieren kann. Mal angenommen ich habe 5 verschiedene Elemente (aus welchen Gründen auch immer) und die müssen alle gegen einen gleichen regulären Ausdruck laufen - muss ich dann dies wirklich explizit für jedes Element angeben oder gibt es da eine Möglichkeit der Referenzierung?

Danke schon einmal für eure Antworten.

998 Beiträge seit 2007
vor 15 Jahren

Hallo Herr Kollege 😉 ,

die einzige Möglichkeit die mir einfallen würde, wär das ganze per RegExp zu prüfen (Also dann würde der Fall gar nicht mehr auftreten), z.B. so:


<xs:element name="Elm">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[ ]*[A-z]+[ ]*" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

Ja, wenn du es mit nicht Anonymen Typen machst, kannst du doch einfach den Typ referenzieren:


<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="RegExpTyp">
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][a-z]*" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="Collection">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Element1" type="RegExpTyp" />
        <xs:element name="Element2" type="RegExpTyp" />
        <xs:element name="Element3" type="RegExpTyp" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Hoffe das hilf dir.

Gruß David