Beispiel Personaldaten

(veraltet, XML Schema von 2000)

Personaldaten personal.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE personnel SYSTEM "personal.dtd">
<personnel>

  <person id="Big.Boss">
    <name><family>Boss</family> <given>Big</given></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
  </person>

  <person id="one.worker">
    <name><family>Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name><family>Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="three.worker">
    <name><family>Worker</family> <given>Three</given></name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="four.worker">
    <name><family>Worker</family> <given>Four</given></name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="five.worker">
    <name><family>Worker</family> <given>Five</given></name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

</personnel>

Document type definition der Personaldaten personal.dtd:

<?xml encoding="UTF-8"?>
<!ELEMENT personnel (person)+>

<!ELEMENT person (name,email*,url*,link?)>
<!ATTLIST person id ID #REQUIRED>
<!ATTLIST person note CDATA #IMPLIED>
<!ATTLIST person contr (true|false) 'false'>
<!ATTLIST person salary CDATA #IMPLIED>

<!ELEMENT name ((family,given)|(given,family))>

<!ELEMENT family (#PCDATA)>

<!ELEMENT given (#PCDATA)>

<!ELEMENT email (#PCDATA)>

<!ELEMENT url EMPTY>
<!ATTLIST url href CDATA 'http://'>

<!ELEMENT link EMPTY>
<!ATTLIST link manager IDREF #IMPLIED>
<!ATTLIST link subordinates IDREFS #IMPLIED>

<!NOTATION gif PUBLIC '-//APP/Photoshop/4.0' 'photoshop.exe'>

Personaldaten in XML Schema personal-schema.xml:

<?xml version="1.0" encoding="UTF-8"?>
<personnel xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
	   xsi:noNamespaceSchemaLocation='personal.xsd'>

  <person id="Big.Boss" >
    <name><family>Boss</family> <given>Big</given></name>
    <email>chief@foo.com</email>
    <link subordinates="one.worker two.worker three.worker four.worker five.worker"/>
  </person>

  <person id="one.worker">
    <name><family>Worker</family> <given>One</given></name>
    <email>one@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="two.worker">
    <name><family>Worker</family> <given>Two</given></name>
    <email>two@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="three.worker">
    <name><family>Worker</family> <given>Three</given></name>
    <email>three@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="four.worker">
    <name><family>Worker</family> <given>Four</given></name>
    <email>four@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

  <person id="five.worker">
    <name><family>Worker</family> <given>Five</given></name>
    <email>five@foo.com</email>
    <link manager="Big.Boss"/>
  </person>

</personnel>

XML Schema definition der Personaldaten personal.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<schema>

 <element name="personnel">
  <complexType>
   <element ref="person" minOccurs='1' maxOccurs='unbounded'/>
  </complexType>
 </element>

 <element name="person">
  <complexType>
   <element ref="name"/>
   <element ref="email" minOccurs='0' maxOccurs='unbounded'/>
   <element ref="url"   minOccurs='0' maxOccurs='unbounded'/>
   <element ref="link"  minOccurs='0' maxOccurs='1'/>

   <attribute name="id"  type="ID" use='required'/>
   <attribute name="note" type="string"/>
   <attribute name="contr" type="NMTOKEN" use='default' value="false">
    <simpleType base="string">
     <enumeration value="true"/>
     <enumeration value="false"/>
    </simpleType>
   </attribute>
   <attribute name="salary" type="integer"/>
  </complexType>
 </element>

 <element name="name">
  <complexType content='elementOnly'>
   <all>
    <element ref="family"/>
    <element ref="given"/>
   </all>
  </complexType>
 </element>

 <element name="family" type='string'/>

 <element name="given" type='string'/>

 <element name="email" type='string'/>

 <element name="url">
  <complexType content="empty">
   <attribute name="href" type="string" default="http://"/>
  </complexType>
 </element>

 <element name="link">
  <complexType content="empty">
   <attribute name="manager" type="IDREF"/>
   <attribute name="subordinates" type="IDREFS"/>
  </complexType>
 </element>

 <notation name='gif' public='-//APP/Photoshop/4.0' system='photoshop.exe'/>

</schema>

© Universität Mannheim, Rechenzentrum, 1998-2001.

Heinz Kredel
Last modified: Sat Feb 2 16:46:22 MET 2002