Ähnliche Fragen wurden bereits mehrfach .. in Stackoverflow oder jede Tech-Blogs ..
aber die Antwort ist immer nicht möglich,
Fällen wie gefragt) Validierendes Element abhängig vom Wert oder Vorhandensein eines anderen Elements/Attributs
(b) Validierungswert eines Elements abhängig vom Wert oder Vorhandensein eines anderen Elements/Attributs
(c) Attribut abhängig von dem Wert oder in Gegenwart eines anderen Elements/attribute Validieren
(d) Elemente/Attribute gleichen Namens
verschiedenen Typen/Datatypes unter den gleichen Umfang aufweist definieren (e) auf der Basis untergeordneten Elemente Validieren der Wert oder Vorhandensein anderer Elemente/Attribute
alle oben genannten Fälle nicht möglich zu erreichen ..
aber wenn Sie etwas Transformation Sache umsetzen können .. dann können Sie Hilfe bekommen. was ich meine zu sagen ist "zuerst durch Transformation und ändern Sie die XML nach Ihrer Anforderung,
Beispiel :: Wenn das bestimmte Feld mit einem gewissen Wert erwartet .. übergeben Sie das XML, wie es ist, wenn die Bedingung erfüllt ist und nicht übergeben, wenn es nicht .. im nächsten Block XSD wird validieren und offensichtlich Fehler aus :) können Sie herausfinden, dass es Ihre benutzerdefinierte Validierung fehlt ..
sowieso die Absicht ist es Block oder Pass die Xml nach den Daten .. und das ist, was Sie tun ..
Hinweis: Schematron wurde kürzlich in die Praxis umgesetzt! Hier ist das Tutorial: http://zvon.org/xxl/SchematronTutorial/General/contents.html
Ich bin ziemlich sicher, dass die Antwort nicht wegen Mehrdeutigkeit ist: Das Schema für den Container solcher Elemente würde zwei verschiedene Definitionen haben. Die einzige Lösung besteht darin, das Element "optional/erforderlich" als optional zu deklarieren und eine zweite Phasenvalidierung zu verwenden. –