Assertion-Meldungen
In XML Schema 1.1 können für complexTypes (mittels xs:assert Elementen) und simpleTypes (mittels xs:assertion Elementen) Assertions definiert werden.
Oft ist es nützlich, wenn z.B. mit der Definition einer Assertion auch eine Erläuterung dazu verfügbar ist, damit eine entsprechende Meldung angezeigt werden kann, wenn die Assertion bei der Validierung des XML-Instanzdokuments nicht erfüllt wird. Da in der XML Schema-Spezifikation keine derartige Meldung vorgesehen ist, können Sie in XMLSpy im Altova xml-schema-extensions Namespace https://www.altova.com/de/xml-schema-extensions (oder in jedem anderen Namespace) zusammen mit der Definition der Assertion eine Meldung definieren, die bei der Validierung des XML-Instanzdokuments verwendet werden soll. Zum Beispiel:
<xs:assert test="count(//MyNode) ge 1" altova:message="Es muss mindestens ein MyNode-Element vorhanden sein"/> oder
<xs:assertion test="count(//MyNode) ge 1" altova:message="Es muss mindestens ein MyNode-Element vorhanden sein"/>
Wenn die in der Assertion definierte Einschränkung nicht erfüllt wird, zeigt der Validierungsprozessor von XMLSpy zusammen mit der Validierungsfehlermeldung die mit der Assertion verknüpfte Erklärung als Meldung an. Der Validierungsprozessor gibt den Wert eines assert/@message Attributs oder eines assertion/@message Attributs unabhängig davon aus, in welchem Namespace sich das message Attribut befindet. Sie können in der Schema-Ansicht jedoch nur message Attribute bearbeiten, die sich im Altova xml-schema-extension Namespace befinden. Um message Attribute in anderen Namespaces zu bearbeiten, verwenden Sie die Textansicht.
Bearbeiten von xs:assert Meldungen
In der Schema-Ansicht können im Attributes/Assertions/Identity Constraints (AAIDC)-Bereich oder in der Eingabehilfe Details des jeweiligen complexType (für complexTypes) xs:assert Elemente erstellt und bearbeitet werden. In der Abbildung unten sehen Sie eine Assertion für den complexType orderType. Die Assertion (in diesem Fall ein xs:assert) wird zusammen mit einer Assertion-Meldung auf dem Register "Assertions" (der Schema-Übersicht) definiert.
Wenn die Option Assertions im Diagramm anzeigen aktiviert ist, können Assertions zu complexTypes auch in der Content Model-Ansicht erstellt und bearbeitet werden. Um eine Assertion-Meldung hinzuzufügen oder zu bearbeiten, wählen Sie die Assertion aus und geben Sie die Assertion-Meldung in die Eingabehilfe "Details" ein (siehe Abbildung unten).
Beachten Sie, dass auf diese Art erstellte Assertion-Meldungen sich im Altova xml-schema-extensions Namespace https://www.altova.com/de/xml-schema-extensions befinden. Wenn Sie die erste Assertion-Meldung im XML-Schema-Dokument über den AAIDC-Bereich oder die Eingabehilfe "Details" hinzufügen, wird zum xs:schema Element automatisch der Altova xml-schema-extensions Namespace deklariert.
Wenn eine XML-Datei validiert wird und die Assertion bei der Überprüfung als nicht zutreffend ausgewertet wird, wird die für die Assertion definierte Meldung zusammen mit einer Fehlermeldung angezeigt (siehe Abbildung unten).
Bearbeiten von xs:assertion Meldungen
In der Schema-Ansicht können in der Eingabehilfe "Facets" für den jeweiligen simpleType xs:assertion Elemente (für simpleTypes) erstellt und bearbeitet werden. Um die Assertion-Meldung zu bearbeiten, klicken Sie mit der rechten Maustaste in der Eingabehilfe "Facets" auf die Assertion (siehe Abbildung unten), klicken Sie im daraufhin angezeigten Menü auf Details und bearbeiten Sie die Meldung im Modusfenster der Assertion Details (siehe Abbildung unten).Beachten Sie, dass auf diese Art erstellte Assertion-Meldungen sich im Altova xml-schema-extensions Namespace https://www.altova.com/de/xml-schema-extensions befinden. Wenn Sie die erste Assertion-Meldung im XML-Schema-Dokument über das Assertions-Details-Modusfenster eingeben, wird der Namespace automatisch im xs:schema Element deklariert.
Wenn eine XML-Datei validiert wird und die Assertion bei der Überprüfung als nicht zutreffend ausgewertet wird, wird die für die Assertion definierte Meldung zusammen mit einer Fehlermeldung angezeigt (siehe Abbildung unten).