Q: Warum sind XML-Dokumente streng hierarchisch als Baum konzipiert? Wäre eine Organisation als Wald (d.h. die Zulassung von mehr als genau einem Wurzelknoten) nicht flexibler?
A: Hierfür gibt es zwei wesentliche Gründe.
Zum einen sind Bäume ein sehr verbreitetes, gut verstandenes und gut untersuchtes Gebiet, so daß für dies
Strukturierungsform eine Fülle verschiedener effizienter Algorithmen zur Verarbeitung existiert.
Zu anderen erlaubt die strenge Hierarchisierung von XML den Verzicht auf ein explizites Stromendesymbol
(ähnlich einem hervorgehobenen End-of-File Zeichen), da das schließende Tag des Starttags des Wurzelknotens automatisch
das Dokument begrenzt. Dieser Aspekt ist insbesondere bei der nicht-dateigebundenen Vererbeitung, etwa bei
der Übertragung von XML-Inhalten über Netzleitungen, wichtig, da hierdurch die XML-verarbeitende Kompontente einfacher
realisiert werden kann.
Q: Weshalb ist das nachfolgend wiedergegebene Dokument gültig (valid und sogar schema valid)
zur abgedruckten DTD und zum dargestellten Schema, obwohl es formatierende Leerzeichen enthält, die gemäß
den formulierten Inhaltsmodellen (es tritt weder PCDATA
noch mixed content auf) nicht
zugelassen sind?
XML-Dokument:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Child/>
</Root>
Document Type Definition:
<!ELEMENT Root (Child)>
<!ELEMENT Child EMPTY>
XML Schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="Child">
<xs:complexType/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
A: Die XML-Spezifikation gestattet im Abschnitt über Elementinhalte
ausdrücklich das Auftreten von separierenden white spaces
zur Formatierung der Kindelemente.
Die muß nicht durch die DTD oder das zugehörige XML Schema ausgedrückt werden, sondern ist unabhängig davon immer
zugelassen.
Auf der anderen Seite bedeutet dies auch, daß in der Konsequenz niemals mit den Mitteln der DTD oder eines Schemas
das Auftreten von formatierenden white spaces unterbunden werden kann.
Q: Sind die XPath-Ausdrücke /node1/node3/node8/self::node8
,
/node1/node3/node8/self::*
und /node1/node3/node8/self
äquivalent?
A: /node1/node3/node8/self::*
und /node1/node3/node8
sind gleichwertig und
liefern daher dieselbe Knotenmenge -- welche nur aus dem Knoten node8
besteht -- als
Resultat./node1/node3/node8/self
ist hingegen kein syntaktisch korrekter XPath,
da nach der Benennung der Achse -- in diesem Falle
self
zwingend der Name eines Knotens (d.h. der
Knotentyp) stehen muß. Hierbei sind auch Jokerzeichen wie
*
zugelassen, jedoch darf diese Angabe keinesfalls
fehlen.
Service provided by Mario Jeckle
Generated: 2004-06-11T07:12:02+01:00
Feedback SiteMap
This page's original location: http://www.jeckle.de/vorlesung/eBusinessEng/FAQ.html
RDF description for this page