23
XML Schema Kurzpräsentation von Herbert Schlechta

XML Schema Kurzpräsentation von Herbert Schlechta

Embed Size (px)

Citation preview

Page 1: XML Schema Kurzpräsentation von Herbert Schlechta

XML Schema

Kurzpräsentation von Herbert Schlechta

Page 2: XML Schema Kurzpräsentation von Herbert Schlechta

DTD und die Nachteile

• keine Einschränkung auf den Inhalt• hoher Programmieraufwand um die korrekte

Dateneingabe zu erzwingen• DTDs sind nicht in XML definiert• kein Zugriff auf Schnittstellen wie DOM

Page 3: XML Schema Kurzpräsentation von Herbert Schlechta

XML Schema Aufgabe

Ein Schema beschreibt und definiert• die Bedeutung• die mögliche Verwendung• die Beziehungder Teile innerhalb eines XML-Dokuments.

Page 4: XML Schema Kurzpräsentation von Herbert Schlechta

Teile eines XML-Dokuments

• Datentypen• Elemente und deren Inhalte• Attribute und deren mögliche Werte• Entitäten und ihr Inhalt und Notation

Page 5: XML Schema Kurzpräsentation von Herbert Schlechta

Datentypenbaum

Page 6: XML Schema Kurzpräsentation von Herbert Schlechta

Einfache Datentypen

• xsd:string• xsd:boolean• xsd:dateTime• xsd:integer

Page 7: XML Schema Kurzpräsentation von Herbert Schlechta

Einfacher Datentype selbst erstellt

<xsd:element name=“preis”><xsd:simpleType>

<xsd:restriction base=“xsd:decimal”/><xsd:minExclusive value=“0”/><xsd:maxExclusive value=“100”/>

</xsd:restriction></xsd:simpleType>

</xsd:element>

Page 8: XML Schema Kurzpräsentation von Herbert Schlechta

Komplexer Datentyp<xsd:element name=“adresse”>

<xsd:complexType><xsd:sequence>

<xsd:element name=“strasse” type=“xsd:string”/>

<xsd:element name=“hausnummer” type=“xsd:string”/>

<xsd:element name=“plz” type=“xsd:string”/>

<xsd:element name=“ort” type=“xsd:string”/>

</xsd:sequence><xsd:attribute name=“vorhanden”

type=“xsd:boolean”/></xsd:complexType>

</xsd:element>

Page 9: XML Schema Kurzpräsentation von Herbert Schlechta

Benannte Datentype

<xsd:schema xmlns…….>…<xsd:element name=“preis”>

<xsd:simpleType><xsd:restriction base=“xsd:decimal”/>

<xsd:minExclusive value=“0”/><xsd:maxExclusive value=“100”/>

</xsd:restriction></xsd:simpleType>

</xsd:element>…</xsd:schema>

<xsd:element name=“neuerPreis” type=“preis”/>

Page 10: XML Schema Kurzpräsentation von Herbert Schlechta

Aufbau eines XML-Schemas<?xml version=“1.0” encoding=“ISO-8859-1”?><xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema>

<xsd:element name=“adresse”><xsd:complexType>

<xsd:sequence><xsd:element name=“strasse”

type=“xsd:string”/><xsd:element name=“hausnummer”

type=“xsd:string”/><xsd:element name=“plz”

type=“xsd:string”/><xsd:element name=“ort”

type=“xsd:string”/></xsd:sequence><xsd:attribute name=“vorhanden”

type=“xsd:boolean”/></xsd:complexType>

</xsd:element></xsd:schema>

Page 11: XML Schema Kurzpräsentation von Herbert Schlechta

Einfache Elemente

• hat kein Kindelement• hat keine Attribute

Page 12: XML Schema Kurzpräsentation von Herbert Schlechta

Komplexe Elemente

• alles was kein einfaches Element ist!!!

Page 13: XML Schema Kurzpräsentation von Herbert Schlechta

Kompositor 1

<xsd:complexType name=“adresse”><xsd:sequence>

<xsd:element name=“strasse” type=“xsd:string”/><xsd:element name=“hausnummer” type=“xsd:string”/><xsd:element name=“plz” type=“xsd:string”/><xsd:element name=“ort” type=“xsd:string”/>

</xsd:sequence></xsd:complexType>

Page 14: XML Schema Kurzpräsentation von Herbert Schlechta

Kompositor 2

<xsd:complexType name=“erreichbarkeit”><xsd:all>

<xsd:element name=“festnetz” type=“xsd:string”/><xsd:element name=“handy” type=“xsd:string”/><xsd:element name=“e-mail” type=“xsd:string”/><xsd:element name=“fax” type=“xsd:string”/>

</xsd:all></xsd:complexType>

Page 15: XML Schema Kurzpräsentation von Herbert Schlechta

Kompositor 3

<xsd:complexType name=“familienstand”><xsd:choice>

<xsd:element name=“ledig”/><xsd:element name=“verheiratet”/><xsd:element name=“geschieden”/><xsd:element name=“verwitwet”/>

</xsd:choice></xsd:complexType>

Page 16: XML Schema Kurzpräsentation von Herbert Schlechta

Wildcards

<xsd:complexType name=“notizen”><xsd:sequence>

<xsd:element name=“uhrzeit” type=“xsd:time”/>

<xsd:element name=“datum” type=“xsd:date”/>

<xsd:any processContents=“skip”></xsd:sequence><xsd:anyAttribute/>

</xsd:complexType>

Page 17: XML Schema Kurzpräsentation von Herbert Schlechta

Attribute 1

<xsd:complexType name=“notizen”><xsd:sequence>

<xsd:element name=“uhrzeit” type=“xsd:time”/>

<xsd:element name=“datum” type=“xsd:date”/>

</xsd:sequence><xsd:attribute name=“eingangszeit”

type=“xsd:string”/></xsd:complexType>

Page 18: XML Schema Kurzpräsentation von Herbert Schlechta

Attribute 2

<xsd:element name=“einband”><xsd:simpleType>

<xsd:restriction base=“xsd:string”/><xsd:enumeration value=“Gebundene

Ausgabe”/><xsd:enumeration

value=“Taschenbuch”/><xsd:enumeration

value=“Broschüre”/></xsd:restriction>

</xsd:simpleType></xsd:element>

Page 19: XML Schema Kurzpräsentation von Herbert Schlechta

Attribute 3

<xsd:element name=“ISBN”><xsd:simpleType>

<xsd:restriction base=“xsd:string”/><xsd:pattern value=“\d{1}-\d{4}-d{4}-\

d{1}”/></xsd:restriction>

</xsd:simpleType></xsd:element>

Page 20: XML Schema Kurzpräsentation von Herbert Schlechta

Attribute 4

<xsd:complexType name=“notizen”><xsd:sequence>

<xsd:element name=“uhrzeit” type=“xsd:time”/><xsd:element name=“datum” type=“xsd:date”/>

</xsd:sequence><xsd:attribute name=“vorhanden” type=“xsd:boolean”

use=“required”/></xsd:complexType>

Page 21: XML Schema Kurzpräsentation von Herbert Schlechta

Namensraum

Namensraum:www.verein.at

namebeitragadresse…

Namensraum:www.planung.at

projektbeitragleitung…

Namensraum:www.medien.at

zeitschriftbeitragverlag…

Page 22: XML Schema Kurzpräsentation von Herbert Schlechta

Namensraumdeklaration 1

Namensraum:www.verein.at

namebeitragadresse…

<xsd:schemaxmlns:ve=“www.verein.at”>xmlns:me=“www.medien.at”>

<ve.element name=“name”/><ve.element name=“beitrag”/>…<me.element name=“beitrag”/>

Namensraum:www.medien.at

zeitschriftbeitragverlag…

Page 23: XML Schema Kurzpräsentation von Herbert Schlechta

Namensraumdeklaration 2

Namensraum:www.verein.at

namebeitragadresse…

xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:ve=“www.verein.at”>xmlns:me=“www.medien.at”>

<ve.element name=“name” type=“xsd:string”/><ve.element name=“beitrag” type=“xsd:integer/>…<me.element name=“beitrag” type=“xsd:string”/>

Namensraum:www.medien.at

zeitschriftbeitragverlag…