Schemabezogene Markup in XML-Dokumenten
xsi:nil, xsi:type, xsi:schemaLocationund xsi:noNamespaceSchemaLocation.Zur schemabezogenen Markup in XML-Dokumenten gehören die folgenden Elemente:
xsi:nil
Wenn ein
XML-Element in der XML-Dokumentinstanz auf xsi:nil gesetzt wird, wird das zugehörige
dynamische Klassenfeld auf null gesetzt. Der auf dieses Feld angewendete Operator isunknown
gibt true zurück. Anders ausgedrückt, wenn ein
XML-Objekt mit der Methode driver.writeObject serialisiert wird, werden diesem Objekt die folgenden
Informationen hinzugefügt:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Beispiel für die Zuordnung von xsi:nil in einem XML-Dokument
Das folgende
Beispiel veranschaulicht die Zuordnung von xsi:nil in
einem XML-Dokument. Die Regel detectPersonWithMissingAddress verwendet
das Schlüsselwort isunknown, um eine Person zu finden, deren Adresse nicht bekannt ist.
Erläuterungen zu diesem Beispiel:
xsiist der Name des Namespace.Die Instanz
http://www.w3.org/2001/XMLSchemaist die URL.nilist ein Element des Namespace.
Im Folgenden sehen Sie das Schema:
<element name="person">
<complexType>
<sequence>
<element name="surname"/>
<element name="address" nillable="true"/>
</sequence>
<complexType>
</element>
Im Folgenden sehen Sie einen Auszug aus einem XML-Dokument:
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<surname>Smith</surname>
<address xsi:nil="true"/>
</person>
Im Folgenden sehen Sie die Regel:
rule detectPersonWithMissingAddress
{
when {
Person ( address isunknown );
}
then {
...
}
}
XML-Namespaces stellen universell eindeutige Namen für Elemente und Attribute bereit. Entwickler können die Namen für die folgenden Aktionen verwenden:
Fragmente aus verschiedenen Dokumenten ohne Namenskonflikte kombinieren
Wiederverwendbare Codemodule schreiben, die für bestimmte Elemente und Attribute aufgerufen werden können. Universell eindeutige Namen gewährleisten, dass solche Module nur für die richtigen Elemente und Attribute aufgerufen werden.
Definieren Sie Elemente und Attribute, die in anderen Schemas ohne das Risiko von Namenskonflikten wiederverwendet werden können.
xsi:type
Zum Eingrenzen des Typs eines Elements im XML-Dokument können Sie xsi-Polymorphie verwenden. Dieses Feature ersetzt den Standardtyp des Elements durch einen Subtyp.
Beispiel für die Zuordnung von xsi:type in einem XML-Dokument
Das folgende Beispiel veranschaulicht, wie xsi-Polymorphie verwendet wird. In dem Beispiel werden ein Schema und ein Auszug aus einem XML-Dokument verwendet.
Im Folgenden sehen Sie das Schema:
<element name="person" type="person"/>
<complexType name=" person " >
<sequence>
<element name="name">
<element name="surname">
</sequence>
</complexType>
<complexType name=" inhabitant ">
<complexContent>
<extension base="person">
<sequence>
<element name="address"/>
</sequence>
</extension>
</complexType>
Im Folgenden sehen Sie einen Auszug aus einem XML-Dokument:
<person xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:type="inhabitant">
<name>John</name>
<surname>Smith</surname>
<address>123 Downing Street, London</address>
</person>
xsi:schemaLocation und xsi:noNamespaceSchemaLocation
Diese Funktionen werden vom Parser unterstützt. Die generierten Informationen werden nicht in der XML-Bindung verwendet.