• Keine Ergebnisse gefunden

Entities Entities

N/A
N/A
Protected

Academic year: 2022

Aktie "Entities Entities"

Copied!
50
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Ü Ü bung 2 bung 2

(2)

Ü Ü bung 2 bung 2

ƒƒ Fragen zur Vorlesung?Fragen zur Vorlesung?

ƒƒ In Depth: EntitiesIn Depth: Entities

ƒƒ MusterlMusterlöösung des Üsung des Übungblattes 1bungblattes 1

ƒƒ MusterlMusterlöösung des Üsung des Übungsblattes 2bungsblattes 2

ƒƒ Weitere Musterfragen Weitere Musterfragen

ƒƒ XML Tools: using Eclipse with DTDsXML Tools: using Eclipse with DTDs

ƒƒ XML Extra: other schema languagesXML Extra: other schema languages

(3)

In Depth: Entities

In Depth: Entities

(4)

Entities Entities

Built

Built--in Entitiesin Entities

ƒ e.g. & or >

ƒ predefined

Character Entities Character Entities

ƒ e.g. ó or ó

ƒ predefined

(5)

Entities Entities

General Entities General Entities

<!ENTITY empty-x-y "<x></x><y></y>">

ƒ Entity name is a valid XML name

ƒ Entity value can be anything as long as it is well formed

ƒ Entity values can contain other entities!

ƒ Entity reference in XML document: &empty-x-y;

ƒ Can be used in DTD where they will eventually be

included in the XML document, e.g. attribute default value

(6)

External Parsed Entities

• Entity values can be external to the entity declaration

<!ENTITY footer SYSTEM „/mypages/footer.xml“>

• As element CDATA but not allowed in attributes

• Validating parsers must retrieve external entities

• The resulting document (after insertion of an external entity) must be well formed, the entity value itself must not be well formed

• There are also external unparsed entities, for non-XML

(7)

Entities

Parameter Entities Parameter Entities

<!ENTITY % shared „childelement1 childelement2">

ƒ Element and attribute declarations may re-use structure

ƒ Parameter entities allow this shared structure to be placed in one location

ƒ Entity reference in DTD: %shared;

<!ELEMENT parentelement %shared;>

(8)

Internal and External DTD Subset

• <!DOCTYPE BookStore SYSTEM „book.dtd“ [

<!ELEMENT BookStore (Book|BookStore)*>

]>

• Between […] is the internal DTD subset

• After the SYSTEM keyword is the external DTD subset

• DTD subsets can not override each others‘ element and attribute declarations

(9)

Overriding Entities

• Parameter entities are more useful with external DTDs

• They can be redefined by the internal DTD subset

• If case of a conflict, the internal DTD subset has precedence

• External parameter entities are also useful to split large DTDs into smaller external subsets

• To include them at validation time, declare an external parameter entity and then use the entity reference

<!ENTITY % names SYSTEM „names.dtd“>

%names;

(10)

Entities in DTDs and XML Schema

• Shocking but true: there is something in DTDs that can not be done in XML Schema…

declaring entities!

(11)

Musterl

Musterl ö ö sung des sung des

Ü Ü bungsblattes 1 bungsblattes 1

(12)

Wie kann Wohlgeformtheit bzgl. XML 1.0 und 1.1 erreicht Wie kann Wohlgeformtheit bzgl. XML 1.0 und 1.1 erreicht

werden?

werden?

ƒ streng genommen gar nicht!

ƒ Grund: XML-Deklaration

ƒ entweder nicht vorhanden Î nicht wohlgeformt bzgl.

XML 1.1

ƒ oder vorhanden, dann

- entweder version="1.0" Î nicht wohlgeformt bzgl.

XML 1.1

- oder version="1.1" Î nicht wohlgeformt bzgl. XML

Wohlgeformtheit bzgl. XML 1.0/1.1

(13)

Was kann erreicht werden?

Was kann erreicht werden?

Sowohl XML

Sowohl XML--1.01.0--Parser als auch XMLParser als auch XML--1.11.1--Parser kParser köönnen nnen das Dokument verarbeiten.

das Dokument verarbeiten.

Und wie?

Und wie?

ƒ keine XML-Deklaration oder eine mit version="1.0"

ƒ XML-1.0-Parser ;

ƒ XML-1.1-Parser:

- XML 1.1 verlangt von Parsern, dass beide Versionen erkannt werden:

- wenn keine XML-Deklaration oder explizit Version 1.0: Wohlgeformtheit gemäß XML 1.0 ;

- in allen anderen Fällen: Wohlgeformtheit gemäß XML

(14)

Musterlösung

(15)

Musterlösung mit Standardnamensraum

(16)

Musterlösung

(17)

Musterlösung

(18)

Musterlösung

(19)

Musterlösung (Teil 2)

(20)

Musterl

Musterl ö ö sung des sung des

Ü Ü bungsblattes 2 bungsblattes 2

(21)

ipoDefaultNS.xml: purchaseOrder

(22)

Deklaration von purchaseOrder Deklaration von purchaseOrder

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

<!ELEMENT purchaseOrder (shipTo, billTo, Items)>

<!ATTLIST purchaseOrder

xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"

xmlns CDATA #FIXED "http://www.altova.com/IPO"

xmlns:ipo CDATA #FIXED "http://www.altova.com/IPO"

orderDate CDATA #REQUIRED >

Probleme:

ƒ funktioniert nur mit Präfixen xsi und ipo

ƒ funktioniert nur mit Standard-Namensraum:

(23)

ipoDefaultNS.xml: shipTo

(24)

Deklaration von shipTo Deklaration von shipTo

<!ELEMENT shipTo (name, street, city, (postcode | (state, zip)))>

<!ATTLIST shipTo

export-code CDATA #IMPLIED

xsi:type (ipo:EU-Address | ipo:US-Address) #REQUIRED

>

Probleme:

ƒ kein Zusammenhang zwischen Struktur von shipTo und xsi:type

(25)

ipoDefaultNS.xml: billTo

(26)

Deklaration von billTo Deklaration von billTo

<!ELEMENT billTo (name, street, city, (postcode | (state, zip)))>

<!ATTLIST billTo

xsi:type (ipo:EU-Address | ipo:US-Address) #REQUIRED

>

Problem:

ƒ kein Zusammenhang zwischen Struktur von billTo und xsi:type

(27)

ipoDefaultNS.xml: Items und item

(28)

Deklarationen von Items und item Deklarationen von Items und item

<!ELEMENT Items (item+)>

<!ELEMENT item (productName, quantity, price, comment?, shipDate)>

<!ATTLIST item partNum CDATA #REQUIRED>

<!ATTLIST item partNum IDID #REQUIRED>

oder besser

(29)

Die restlichen Deklarationen Die restlichen Deklarationen

<!ELEMENT name (#PCDATA)>

<!ELEMENT street (#PCDATA)>

<!ELEMENT city (#PCDATA)>

<!ELEMENT postcode (#PCDATA)>

<!ELEMENT state (#PCDATA)>

<!ELEMENT zip (#PCDATA)>

<!ELEMENT productName (#PCDATA)>

<!ELEMENT quantity (#PCDATA)>

<!ELEMENT price (#PCDATA)>

<!ELEMENT comment (#PCDATA)>

<!ELEMENT shipDate (#PCDATA)>

(30)

Deklaration von shipTo und billTo Deklaration von shipTo und billTo

<!ELEMENT shipTo (name, street, city, (postcode | (state, zip)))>(name, street, city, (postcode | (state, zip)))

<!ATTLIST shipTo

export-code CDATA #IMPLIED

xsi:type (ipo:EU-Address | ipo:US-Address) #REQUIRED

>

<!ELEMENT billTo (name, street, city, (postcode | (state, zip)))>(name, street, city, (postcode | (state, zip)))

<!ATTLIST billTo

xsi:type (ipo:EU-Address | ipo:US-Address) #REQUIRED

>

ƒ an zwei Stellen identische Strukturen

(31)

Verbesserte Version Verbesserte Version

<!ENTITY % Address "(name, street, city,(postcode|(state, zip)))">

<!ELEMENT shipTo %Address;>

<!ELEMENT billTo %Address;>

Ö wird Parameter Entity genannt

(32)

Musterfragen

Musterfragen

(33)

DTDs vs. XMLSchema DTDs vs. XMLSchema

To which of the following DTD declarations is the "self"

attribute above equivalent?

1. <!ATTLIST ethnos self (#PCDATA) #REQUIRED>

2. <!ATTLIST ethnos self PCDATA #REQUIRED>

3. <!ATTLIST ethnos self CDATA #FIXED>

4. <!ATTLIST ethnos self PCDATA #IMPLIED>

5. <!ATTLIST ethnos self CDATA #REQUIRED>

<xs:element name="ethnos">

<xs:complexType>

<xs:attribute name="self" type="xs:string" use="required"/>

</xs:complexType>

</xs:element>

(34)

Was k

Was k ö ö nnte g nnte g ü ü ltig sein? ltig sein?

A. <?xml version="1.0"?>

<!DOCTYPE galaxy SYSTEM "cosmos.dtd">

<galaxy>M85</galaxy>

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

<!DOCTYPE galaxy [ <!ELEMENT galaxy (#PCDATA)> ]>

<galaxy>M85</galaxy>

C. <?xml version="1.0"?>

<!DOCTYPE SYSTEM "http://www.example.com/cosmos.dtd">

(35)

Was k

Was k ö ö nnte g nnte g ü ü ltig sein? ltig sein?

D. <?xml version="1.0">

<!DOCTYPE galaxy SYSTEM

"http://www.example.com/cosmos.dtd">

<galaxy>M85</galaxy>

E. <?xml version="1.0"?>

<!DOCTYPE PUBLIC "http://www.example.com/cosmos.dtd">

<galaxy>M85</galaxy>

(36)

Entity Declarations Entity Declarations

What value will the expression &species; yield in an instance document based on this DTD?

1. erectus 2. habilis 3. sapiens 4. (empty)

<!ENTITY species "erectus">

<!ENTITY species "habilis">

<!ENTITY species "sapiens">

<!ENTITY species "">

(37)

Attribut

Attribut - - Deklarationen Deklarationen

According to this definition:

1. The name of the y element must match the name of an unparsed entity defined in the DTD.

2. The value of the y element must match the name of an unparsed entity defined in the DTD.

3. The name of the y attribute must match the name of an unparsed entity defined in the DTD.

4. The value of the y attribute must match the name of an unparsed entity defined in the DTD.

5. None of the above.

<!ATTLIST x y ENTITY #REQUIRED>

(38)

Element

Element - - Deklarationen Deklarationen

Which XML would be successfully validated?

A. <train />

B. <train>

<engine> That Could </engine>

</train>

<!ELEMENT train (engine?, wagon*)>

<!ELEMENT engine (#PCDATA)>

<!ELEMENT wagon (#PCDATA)>

(39)

Element

Element - - Deklarationen Deklarationen

Which XML would be successfully validated?

C. <train>

<engine> That Could

<wagon> Caboose </wagon>

</engine>

</train>

<!ELEMENT train (engine?, wagon*)>

<!ELEMENT engine (#PCDATA)>

<!ELEMENT wagon (#PCDATA)>

(40)

Element

Element - - Deklarationen Deklarationen

Which XML would be successfully validated?

D. <train>

<engine> No. 7 </engine>

<wagon> Pullman </wagon>

<wagon> Diner </wagon>

</train>

<!ELEMENT train (engine?, wagon*)>

<!ELEMENT engine (#PCDATA)>

<!ELEMENT wagon (#PCDATA)>

(41)

Element

Element - - Deklarationen Deklarationen

Which XML would be successfully validated?

E. <train>

<engine> No. 8 </engine>

<engine> No. 9 </engine>

<wagon> Wagon-Lits </wagon>

</train>

<!ELEMENT train (engine?, wagon*)>

<!ELEMENT engine (#PCDATA)>

<!ELEMENT wagon (#PCDATA)>

(42)

Was w

Was w ä ä re g re g ü ü ltig? ltig?

A. <audio_presentation modality="au|wav">&data;</audio_presentation>

B. <audio_presentation modality="wav">&data;</audio_presentation>

C. <audio_presentation>&data;</audio_presentation>

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

<!DOCTYPE audio_presentation [

<!ENTITY data "c:.wav">

<!ELEMENT audio_presentation (#PCDATA)>

<!NOTATION au PUBLIC "au 1.0" "http:\\www.example.com.exe">

<!NOTATION wav PUBLIC "wav 1.0" "http:\\www.example.com.exe">

<!ATTLIST audio_presentation modality NOTATION (au|wav) #REQUIRED>

]>

(43)

XML Tools

XML Tools

(44)
(45)
(46)
(47)

XML Extra: other

XML Extra: other

schema languages

schema languages

(48)

What is Relax NG?

RELAX NG is a schema language for XML. The key features of RELAX NG are that it:

• is simple

• is easy to learn

• has both an XML syntax and a compact non-XML syntax

• does not change the information set of an XML document

• supports XML namespaces

• treats attributes uniformly with elements so far as possible

• has unrestricted support for unordered content

• has unrestricted support for mixed content

• has a solid theoretical basis

(49)

Relax NG Relax NG

<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">

<zeroOrMore>

<element name="card">

<element name="name">

<text/>

</element>

<element name="email">

<text/>

</element>

<optional>

<element name="note">

<text/>

</element>

</optional>

</element>

</zeroOrMore>

<!ELEMENT addressBook (card*)>

<!ELEMENT card (name, email, note?)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT email (#PCDATA)>

<!ELEMENT note (#PCDATA)>

entspricht folg. DTD

(50)

Relax NG Relax NG

ƒ kein W3C-, sondern OASIS-Standard

ƒ integriert Datentypen von XML-Schema:

<element name="number">

<data type="integer"

datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>

</element>

ƒ Konverter Relax NG Î XML-Schema:

http://thaiopensource.com/relaxng/trang.html

ƒ mehr Informationen:

Referenzen

ÄHNLICHE DOKUMENTE

Das shipTo- und das billTo-Element einer gültigen Instanz kann entweder aus a) den Elementen name, street, city, und postcode oder aus b) den Elementen name, street, city, state

[r]

[r]

[r]

&lt;S&gt;&lt;/S&gt; mit Bindestrich daran ohne Spatium, S.. Reihen etc.) spielen insofern keine Rolle, da sie über die Stücktitelaufnahme sowieso auch indirekt mit dem

Beförderungsvertrag in diesem Sinne sei aber nur das zwischen dem Absender des Guts und dem Frachtführer bestehende Rechtsverhältnis, nicht jedoch der Vertrag zwischen

[r]

[r]