back to top   XML

 

Warum ist XML eine Baumstruktur?

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.

Warum sind in Elementen, die ausschließlich über elementartigen Inhalt verfügen dürfen Leerzeichen zugelassen?

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.

XPath

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.




separator line
Service provided by Mario Jeckle
Generated: 2004-06-11T07:12:02+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/eBusinessEng/FAQ.html
RDF metadata describing this page RDF description for this page