Frage

Ich glaube, das hat mit keyref zu tun, aber ich bin nicht sicher, und ich bin wirklich nicht sicher, dass es überhaupt getan werden kann.

Zum Beispiel, sagen, ich habe myElement1 und myElement2. Wenn es keine myElement2 in der XML-Datei, dann existiert myElement1 müssen, sonst ist es optional.

Gibt es eine Möglichkeit, diese Art der Validierung in meiner XSD-Datei zu erzwingen?

War es hilfreich?

Lösung

Ähnliche Fragen wurden mehrfach gefragt .. in Stackoverflow oder irgendwelche Tech-Blogs ..

, aber die Antwort ist immer nicht möglich ,


Fälle wie:

(a) Validieren Element abhängig von dem Wert oder in Gegenwart eines anderen Elements / attribute
(B) Validieren Wert eines Elements in Abhängigkeit von dem Wert oder in Gegenwart eines anderen Elements / attribute
(C) Validieren Attribut abhängig von dem Wert oder in Gegenwart eines anderen Elements / attribute
(D) definierenden Elemente / Attribute gleichen Namens verschiedenen Typen / Datatypes unter den gleichen Umfang aufweist
(E) Validierung untergeordnete Elemente auf der Grundlage des Wertes oder das Vorhandensein eines anderen Elements / Attribut

Alle oben genannten Fälle sind nicht möglich ..

zu erreichen

, aber wenn Sie etwas Transformation Sache umsetzen können .. dann können Sie Hilfe bekommen. was ich damit sagen will ist „Anhieb durch Transformation und ändern Sie die XML wie pro Ihre Anforderung,

Beispiel :: wenn das jeweilige Feld mit einem Wert erwartet wird .. passiert die XML, wie es ist, wenn die Bedingung erfüllt ist und nicht passieren, wenn es nicht der Fall ist .. im nächsten Satz wird XSD validieren und offensichtlich Fehler aus :) Sie herausfinden können, dass es Ihre benutzerdefinierte Validierung fehlt ..

sowieso die Absicht ist, auf Block oder Pass die xml nach den Daten .. und das ist, was Sie tun ..

Hinweis: Schematron hat sich in der Praxis gut vor kurzem gekommen sind! Hier ist das Tutorial: http://zvon.org/xxl/SchematronTutorial/General/contents. html

Andere Tipps

Was würde ich vorschlagen, ist XSD erstellen für jede Fälle definiert unter:

Fälle wie:

  1. Validieren Element abhängig von dem Wert oder in Gegenwart eines anderen Elements / Attribut.
  2. Validieren Wert eines Elements in Abhängigkeit von dem Wert oder in Gegenwart eines anderen Elements / Attribut.
  3. Validieren Attribut abhängig von dem Wert oder in Gegenwart eines anderen Elements / Attribut.
  4. Das Ignorieren (random) Elemente / Attribute aus Validierung ist nicht erlaubt. (Ich will sagen ist die Nutzung von hat Einschränkungen.)
  5. Elemente / Attribute gleicher Name verschiedene Datentypen hat.
  6. Validieren Kind-Elemente auf der Grundlage von Wert oder Vorhandensein anderer Elemente / Attribute.

Und schafft es eigene XML für die.

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