Frage

Ist es möglich, den Wert einer Variablen oder Attribut angeben sollte wie nicht some_value

Ich habe eine seltsame Anforderung, wo die XSD nicht bekannt, die Werte werden an ihn gesendet. Der Wert dieser bestimmten Tag kann ein String mit einem beliebigen Wert sein außer einem Wert (sagen wir data_migration).

Der Absender sollte mit dem Fehler quittiert werden, wenn der betreffende Wert gesendet wird.

Ist es möglich, diese Einschränkung zu geben?

War es hilfreich?

Lösung

Ich bin kein Experte regex, aber das simple macht alles mit data_migration ungültig zu starten.

<xs:simpleType name="notDataMigration">
  <xs:restriction base="xs:string">
    <xs:pattern value="^(?!data_migration).*" />
  </xs:restriction>
</xs:simpleType>

Andere Tipps

Ich weiß nicht, ob Sie speziell Wert ausschließen. Ich bin nicht sicher, ob das hilft, aber Sie können zwei getrennte Aufzählungen erstellen und dann die Vereinigung der Aufzählungen erstellen.

<xsd:simpleType name="IncludedEnumType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="pending" />
    <xsd:enumeration value="in_process" />
    <xsd:enumeration value="failed" />
    <xsd:enumeration value="unknown" />
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="ExcludedEnumType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="data_migration" />
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="CombinedEnumType">
  <xsd:union memberTypes="IncludedEnumType ExcludedEnumType" />
</xsd:simpleType>

Sie würden entweder IncludedEnumType oder CombinedEnumType verwendet, falls nötig. offensichtlich ausgeschlossen würden die Werte in IncludedEnumType die ExcludedEnumType verwenden.

Dieser Ansatz verwendet Lösung 2 aus diesen Artikeln von IBM .

Verwenden von regulären Ausdrücken ein Muster zu geben, oder wie in Ihrem Fall, was ein Muster nicht enthalten.

http://www.w3schools.com/schema/schema_facets.asp

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top