(XSD) base="xs:string" Groß-/Kleinschreibung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • (XSD) base="xs:string" Groß-/Kleinschreibung

    Hallo nochmal,

    ich hab eine Liste mit Strings:

    Quellcode

    1. <xs:enumeration value="hallo"/>
    2. <xs:enumeration value="welt"/>
    3. ....


    Nun will ich aber das nicht nur "hallo" oder "welt" gültig ist sondern auch "Hallo" oder "WELT"
    Google sagt ein pattern der Form:

    Quellcode

    1. <xs:pattern value="([Ha][Ll][Ll][Oo])" />


    bauen.

    Aber das ist natürlich bei einer längeren Liste teuer, unübersichtlich und unschön.

    Kennt jemand eine bessere Lösung ?

    Gruß
  • Hi,
    Ich nehme an du bist über den Artikel von IBM gestoßen Case-insensitive enumerations <ibm.com/developerworks/library/x-<b>case</b>/index.html>

    Es bleibt dir nur entweder alle Permutationen miit möglicher Groß- und Kleinschreibung zu listen, oder den Regex zu bauen.
    Im Artikel von IBM wird übrigens ein XSLT Stylesheet verwendet um das Schema automatisch er erstellen.

    Im IBM Artikel wird die Datei offline modelliert. Aber vielleicht findest du auch einen XML Schema Validator der das XSLT vorher parst. (ich bezweifle aber, dass es sowas gibt)

  • Ich nehme an du bist über den Artikel von IBM gestoßen Case-insensitive enumerations <ibm.com/developerworks/librar…ong>/index.html>


    ja danke, den Artikel hab ich gelesen. Hab das ganze inzwischen mit einer Liste von RegEx gelöst und stehe schon vor dem nächsten Problem.

    XML Schema ist ein relativ neues Gebiet für mich ... ich gewinne jedoch immer mehr den Eindruck, dass
    The XML 1.0 specification defines the concepts of well-formedness and validity
    (w3.org/TR/NOTE-xml-schema-req) so in der Praxis nicht anwendbar ist. Kurz ist es möglich valides XML jeglicher Form mit XSD als gültig zu beschreiben ?

    Nun zu meinem aktuellem Problem:

    XML:

    Quellcode

    1. <auto:auto>
    2. <auto:title>Marke-X</auto:title>
    3. <auto:desc>schnelles Auto</auto:desc>
    4. <auto:about>schnell</auto:about>
    5. <auto:desctwo>Auto mit Lenkrad</auto:desctwo>
    6. <auto:about>grün</auto:about>
    7. </auto:auto>


    Wobei Bedingung ist das "<auto:about>" vom type string sein muss (mehr ist nicht bekannt) und 0-15 Auftreten muss.

    <xs:all> wäre meine erste Wahl, geht aber nicht weil hier "maxOccurs" nicht größer als 1 sein darf.
    <xs:sequence> lässt zwar maxOccurs mit 15 zu, verhindert aber das die Reihenfolge beliebig ist.

    Danke für Hinweise und bereits gelieferten Antworten
    Auirio
  • ich bin verwirrt.. ich habe verschiedene Lösungen bei google gefunden: [google]xsd:sequence reihenfolge[/google]

    aber ist eine sequence ohne Reihenfolge nicht einfach choice?

    Wobei Bedingung ist das "<auto:about>" vom type string sein muss (mehr ist nicht bekannt) und 0-15 Auftreten muss.


    Quellcode

    1. <xs:choice>
    2. <xs:element name="about" type="xs:string" minOccurs="0" maxOccurs="15"/>
    3. </xs:choice>