XML | XML-Schema | XPath | XSL-T | XSL-FO | XQuery | XProc | SVG |
XML-Schema / elementFormDefault, attributeFormDefault
![]() |
![]() |
➪ In XML-Schema finden Sie häufig Deklarationen wie elementFormDefault="qualified" oder attributeFormDefault="unqualified". Hierbei geht es um die Namespaces lokal definierter Elemente/Attribute in einem XML-Schema.
elementFormDefault und attributeFormDefault sind nur relevant, wenn ein @targetNamespace deklariert ist. In diesem Fall müssen GLOBAL deklarierte Elemente und Attribute qualified sein. Die qualified/unqualified-Deklaration von elementFormDefault und attributeFormDefault betreffen lediglich LOKAL deklarierte Elemente oder Attribute.
Nehmen Sie dieses XML-Schema:
<xs:schema
elementFormDefault="qualified"
attributeFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wg="https://www.wilfried-grupe.de"
targetNamespace="https://www.wilfried-grupe.de">
<xs:attribute name="id" type="xs:nonNegativeInteger"/>
<xs:element name="Mensch">
<xs:complexType>
<xs:sequence>
<xs:element name="vorname" type="wg:stringmax20"/>
<xs:element ref="wg:name"/>
</xs:sequence>
<xs:attribute ref="wg:id"/>
<xs:attribute name="Geburtsdatum" type="xs:date"/>
</xs:complexType>
</xs:element>
<xs:element name="name" type="wg:stringmax20"/>
<xs:simpleType name="stringmax20">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{1}[a-z]{1,19}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Die Elemente Mensch und name, das Attribut id sowie der SimpleType stringmax20 sind global deklariert. Sie gehören damit zum targetNamespace "https://www.wilfried-grupe.de". Für die folgenden Vergleiche achten Sie besonders auf die lokal deklarierten Elemente/Attribute vorname und Geburtsdatum.
Mit elementFormDefault="qualified" und attributeFormDefault="qualified" sieht die XML Beispieldatei so aus:
<Mensch
xmlns="https://www.wilfried-grupe.de"
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
wg:Geburtsdatum="2006-05-04">
<vorname>Aa</vorname>
<name>Aa</name>
</Mensch>
oder auch:
<wg:Mensch
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
wg:Geburtsdatum="2006-05-04">
<wg:vorname>Aa</wg:vorname>
<wg:name>Aa</wg:name>
</wg:Mensch>
Mit elementFormDefault="unqualified" und attributeFormDefault="unqualified" sieht die XML Beispieldatei so aus:
<Mensch
xmlns="https://www.wilfried-grupe.de"
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
Geburtsdatum="2006-05-04">
<vorname xmlns="">Aa</vorname>
<name>Aa</name>
</Mensch>
... alternativ:
<wg:Mensch
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
Geburtsdatum="2006-05-04">
<vorname xmlns="">Aa</vorname>
<wg:name>Aa</wg:name>
</wg:Mensch>
Mit elementFormDefault="unqualified" und attributeFormDefault="qualified" sieht die XML Beispieldatei so aus:
<Mensch
xmlns="https://www.wilfried-grupe.de"
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
wg:Geburtsdatum="2006-05-04">
<vorname xmlns="">Aa</vorname>
<name>Aa</name>
</Mensch>
alternativ:
<wg:Mensch
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50" wg:Geburtsdatum="2006-05-04">
<vorname xmlns="">Aa</vorname>
<wg:name>Aa</wg:name>
</wg:Mensch>
Mit elementFormDefault="qualified" und attributeFormDefault="unqualified" sieht die XML Beispieldatei so aus:
<Mensch
xmlns="https://www.wilfried-grupe.de"
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
Geburtsdatum="2006-05-04">
<vorname>Aa</vorname>
<name>Aa</name>
</Mensch>
alternativ:
<wg:Mensch
xmlns:wg="https://www.wilfried-grupe.de"
wg:id="50"
Geburtsdatum="2006-05-04">
<wg:vorname>Aa</wg:vorname>
<wg:name>Aa</wg:name>
</wg:Mensch>
Siehe auch http://www.w3.org/TR/xmlschema-0/.
wg / 21. November 2020
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de