Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


Warum XML-Validierung? / elementFormDefault, attributeFormDefault

elementFormDefault, attributeFormDefault

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="http://www.wilfried-grupe.de"
    targetNamespace="http://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 "http://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="http://www.wilfried-grupe.de"
   xmlns:wg="http://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="http://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="http://www.wilfried-grupe.de"
   xmlns:wg="http://www.wilfried-grupe.de" 
   wg:id="50" 
   Geburtsdatum="2006-05-04">
    <vorname xmlns="">Aa</vorname>
    <name>Aa</name>
</Mensch>

... alternativ:


<wg:Mensch 
   xmlns:wg="http://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="http://www.wilfried-grupe.de"
   xmlns:wg="http://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="http://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="http://www.wilfried-grupe.de"
   xmlns:wg="http://www.wilfried-grupe.de" 
   wg:id="50" 
   Geburtsdatum="2006-05-04">
    <vorname>Aa</vorname>
    <name>Aa</name>
</Mensch>

alternativ:


<wg:Mensch 
   xmlns:wg="http://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 / 22. April 2019



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.




xs:choice



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/XSD3_8.html