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? / xs:element name

xs:element name

xs:element name

xs:element name definiert den Namen eines XML-Elements. Der interne Aufbau, eventuelle Datentypen, Attribute und Childnodes können an verschiedenen Stellen präzisiert werden.

Es gibt verschiedene Design-Alternativen für XML-Schema. Die einfachste dürfte das der "russischen Puppe" sein:


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"  
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified">
  <xs:element name="Persons">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Person" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Lastname">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="20"/>
                    <xs:pattern value="[A-Z][a-z]{1,19}"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Firstname" 
                maxOccurs="unbounded">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="20"/>
                    <xs:pattern value="[A-Z][a-z]{1,19}"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>              
            </xs:sequence>
            <xs:attribute name="Age" 
              type="xs:nonNegativeInteger" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Dieses XML-Schema definiert beispielsweise die Struktur für das folgende XML-Dokument.


<?xml version="1.0" encoding="UTF-8"?>
<Persons>
    <Person Age="50">
        <Lastname>Aa</Lastname>
        <Firstname>Aa</Firstname>
        <Firstname>Aa</Firstname>
    </Person>    
</Persons>
Vorteil Für jedes XML-Element ist die Beziehung zu seinen -, -, -, - Nodes auch ohne speziellen Editor klar erkennbar.
Nachteil Bei wiederholtem Auftreten derselben Elemente in verschiedenen Verzweigungen sind Mehrfachdeklarationen unausweichlich. Das Design eignet sich nicht bei rekursiver Elementdeklaration.

Kommt ein targetNamespace ins Spiel, so hängt das XML-Beispieldokument von ab.


<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:wg="http://www.wilfried-grupe.de"
    targetNamespace="http://www.wilfried-grupe.de"
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified">
...
</xs:schema>

In diesem Fall (elementFormDefault="qualified", attributeFormDefault="unqualified") sieht das XML-Beispieldokument so aus:


<Persons xmlns="http://www.wilfried-grupe.de">
    <Person Age="50">
        <Lastname>Aa</Lastname>
        <Firstname>Aa</Firstname>
    </Person>
</Persons>

oder auch:


<wg:Persons 
    xmlns:wg="http://www.wilfried-grupe.de">
    <wg:Person Age="50">
        <wg:Lastname>Aa</wg:Lastname>        
        <wg:Firstname>Aa</wg:Firstname>
    </wg:Person>
</wg:Persons>

Im Fall (elementFormDefault="unqualified", attributeFormDefault="unqualified") sieht das XML-Beispieldokument dagegen so aus:


<wg:Persons xmlns:wg="http://www.wilfried-grupe.de">
    <Person Age="50">
        <Lastname>Aa</Lastname>        
        <Firstname>Aa</Firstname>
    </Person>
</wg:Persons>

oder mit DefaultNamespace:


<Persons xmlns="http://www.wilfried-grupe.de">
    <Person xmlns="" Age="50">
        <Lastname xmlns="">Aa</Lastname>        
        <Firstname xmlns="">Aa</Firstname>
    </Person>
</Persons>

wg / 22. April 2019



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






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_1.html