XML-Technologien
Posts 1-9 of 9
-
Dr. Tanja Sieber Premium Member Group moderatorThe company name is only visible to registered members.Einsatz DTD/Schema?
Hallo,
vor einigen Jahren, als es noch kein Schema gab, war ich noch ziemlich auf dem laufenden, was die ganze W3C-Welt angeht, habe mittlerweile vor allem in Bezug auf die Schema-Entwicklung ein wenig den Faden verloren. Mich würde interessieren, inwieweit Schema von gängigen XML-Editoren und Parsern unterstützt wird, welche Vorteile Schema gegenüber DTD-Verwendung hat, welche Nachteile und inwieweit es in der Praxis DTDs den Rang ablaufen wird oder bereits abgelaufen hat?
Herzliche Grüße, Tanja Sieber
- 31 Mar 2005, 07:55 am
-
Thomas J. SebestyenThe company name is only visible to registered members.Re: Einsatz DTD/Schema?
Hallo Tanja,
Tanja Sieber schrieb am 31.03.2005, 07:55:
Hallo,
vor einigen Jahren, als es noch kein Schema gab, war ich noch ziemlich auf dem laufenden, was die ganze W3C-Welt angeht, habe mittlerweile vor allem in Bezug auf die Schema-Entwicklung ein wenig den Faden verloren. Mich würde interessieren, inwieweit Schema von gängigen XML-Editoren und Parsern unterstützt wird,
Es gibt mittlerweile viele Schemaeditoren (Open-Sourvce und kommerziell). Mache gut, mache weniger gut. Siehe:
http://www.w3.org/XML/Schema#Tools
Die Problematik bei den Editoren liegt in der Validierung von Schemas, die mitunter sehr komplex aufallen können.
welche Vorteile Schema gegenüber DTD-Verwendung hat, welche Nachteile und inwieweit es in der Praxis DTDs den Rang ablaufen wird oder bereits abgelaufen hat?
Keine leichte frage, auf die man kurz antworten kann.
Unterschiede zwischen DTD und XML Schema in kürze:
Syntax:
DTD (1): EBNF
XML Schema (2): XML
Programme zum Bearbeiten:
1) Vorwiegend SGML-Programme
2) Alle XML-Programme
DOM-fähig:
1) Nein
2) Ja, da XML
Inhaltsmodell:
1) Einfache Aufzählung oder Auswahl, nur 0, 1 oder beliebige Vorkommen von Elementtypen Detaillierter Modell,
2) exakte Vorkommen von Elementtypen auch in mixed content, und benannte Modell-gruppen
Datentypen:
1) Nur einige Wenige: String, ID, NMTOKEN, IDREF etc.
2) Alle moderne Datentypen: String, numerische Typen, Datum und Zeit und Strukturen
Erweiterbarkeit:
1) Beschränkt, wollte man die Verwendbarkeit der DTDs erweitern, müsste man die XML-Spezifikation ändern
2) Unbeschränkt basierend auf XML
Wortschatz:
1) Keine Mehrfachverwendung von Namen, eine DTD pro Dokument
2) Basierend auf Namensräume: uneinge-schränkte Verwendung von Namen
Dynamik:
1) Keine, nur „per Hand“ editier-bar
2) Ja, eine XML Schema kann auch zur Laufzeit geändert / erweitert werden
Abwärtskompatibilität:
1) Ja, XML soll weiterhin kom-patibel zu SGML bleiben
2) Nein, XML Schemas basieren auf moderne Technologie
In einigen Bereichen hat XML-Schema die DTD abgelöst, weil es besser die gestellten anforderungen erfüllen kann. Die meisten Anwendungen für XML Schema lassen sich in wenigen Kategorien zusammenfassen: Validierung, Abfrageunterstützung, Abfrage, Bindung und Editierung, Dokumentation.
Ich hoffe dies hilft als eine sehr kurze Skizze.
Grüße
Thomas
- 01 Apr 2005, 9:17 pm
-
Dr. Tanja Sieber Premium Member Group moderatorThe company name is only visible to registered members.Re^2: Einsatz DTD/Schema?
Hallo Thomas, vielen Dank für Deine ausführliche Auflistung,
habe an einigen Stellen ein paar Fragezeichen, und zwar zu:
DOM-fähig:
1) Nein
2) Ja, da XML DOM heisst doch, dass ich quasi aus einem XML-Dokument ein XML-Objekt mache, das heisst aber wiederum für dieses XML-Dokument an und für sich, dass es ziemlich egal ist, ob ich über eine DTD oder ein XML-Schema die Struktur festgelegt habe, oder?
Erweiterbarkeit:
1) Beschränkt, wollte man die Verwendbarkeit der DTDs erweitern, müsste man die XML-Spezifikation ändern
2) Unbeschränkt basierend auf XML Was heisst das genau?
Wortschatz:
1) Keine Mehrfachverwendung von Namen, eine DTD pro Dokument
2) Basierend auf Namensräume: uneinge-schränkte Verwendung von Namen
zu 1) Aber da kann man doch auch tricksen, indem man mehrere DTDs verwendet und diese dann über Namensräume im XML-Dokument einbindet??
Dynamik:
1) Keine, nur „per Hand“ editier-bar
2) Ja, eine XML Schema kann auch zur Laufzeit geändert / erweitert werden
AHAAAAAAAA
Viele Grüße aus Ungarn, Tanja
- 04 Apr 2005, 09:23 am
-
Thomas J. SebestyenThe company name is only visible to registered members.Re^3: Einsatz DTD/Schema?
Hallo Tanja,
Tanja Sieber schrieb am 04.04.2005, 09:23:
Hallo Thomas, vielen Dank für Deine ausführliche Auflistung,
habe an einigen Stellen ein paar Fragezeichen, und zwar zu:
DOM-fähig:
1) Nein
2) Ja, da XML
DOM heisst doch, dass ich quasi aus einem XML-Dokument ein XML-Objekt mache, das heisst aber wiederum für dieses XML-Dokument an und für sich, dass es ziemlich egal ist, ob ich über eine DTD oder ein XML-Schema die Struktur festgelegt habe, oder?
Kein XML-Objekt, aber ein DOM-Objekt, ja.
Für das XML-Dokument an sich ist es egal ob DTD oder Schema, ein XML-Dokument braucht weder das eine noch das andere damit es als DOM-Baum eingelesen werden kann.
Aber wenn man Validierung und nicht nur Wohlgeformtheit benötigt kann es dazu kommen dass es nicht egal ist, nämlich dann wenn die Schema oder die DTD ebenfalls als DOM-Baum zur Verfügung stehen soll (z.B. bei dynamischen Erweiterungen etc.) Da scheitert eine DTD. Schema, da XML-Basierend, kann ebenso wie ein "normales" XML-Dokument eingelesen werden.
Erweiterbarkeit:
1) Beschränkt, wollte man die Verwendbarkeit der DTDs erweitern, müsste man die XML-Spezifikation ändern
2) Unbeschränkt basierend auf XML
Was heisst das genau?
Eine DTD kannst man nicht von der Grundstrukturen her Erweitern, z.B. ist der Konnektor "&" für XML-DTDs nicht erlaubt, ebenso sind exclusive Auschließungen nicht möglich " a (-a)".
Sollte das ermöglicht werden, müsste man die XML-Spez. erweitern.
Mit Schema sind diese Probleme nicht vorhanden.
Wortschatz:
1) Keine Mehrfachverwendung von Namen, eine DTD pro Dokument
2) Basierend auf Namensräume: uneinge-schränkte Verwendung von Namen
zu 1) Aber da kann man doch auch tricksen, indem man mehrere DTDs verwendet und diese dann über Namensräume im XML-Dokument einbindet??
;-)
Das ist aber mächtig viel Arbiet für sehr wenig Nutzen, vergleich :
http://aktuell.de.selfhtml.org/artikel/xml/namensraeume/inde...
Grüße
Thomas
Viele Grüße aus Ungarn, Tanja Ah, Magyarorszég érdekesen hangzik, mit csinálsz te ott? ;-)
- 04 Apr 2005, 10:04 am
-
Dr. Tanja Sieber Premium Member Group moderatorThe company name is only visible to registered members.Re^4: Einsatz DTD/Schema?
Szia Thomas,
miért magyarul tudsz?
Eine DTD kannst man nicht von der Grundstrukturen her Erweitern, z.B. ist der Konnektor "&" für XML-DTDs nicht erlaubt, ebenso sind exclusive Auschließungen nicht möglich " a (-a)".
Sollte das ermöglicht werden, müsste man die XML-Spez. erweitern.
Mit Schema sind diese Probleme nicht vorhanden.
WAS sind denn exklusive Ausschließungen? Ich dachte, dass Exklusionen gleichbedeutend sind mit Ausschließungen, aber was ist eine exklusive Ausschließung?
In- und Exklusionen sind doch bei DTD auch möglich?????
Tanja
- 04 Apr 2005, 10:26 am
-
Thomas J. SebestyenThe company name is only visible to registered members.Re^5: Einsatz DTD/Schema?
Hallo Tnaj,
Tanja Sieber schrieb am 04.04.2005, 10:26:
Szia Thomas,
miért magyarul tudsz? >
Még nem felejtettem el ;-)
De te honnan tudsz?
Eine DTD kannst man nicht von der Grundstrukturen her Erweitern, z.B. ist der Konnektor "&" für XML-DTDs nicht erlaubt, ebenso sind exclusive Auschließungen nicht möglich " a (-a)".
Sollte das ermöglicht werden, müsste man die XML-Spez. erweitern.
Mit Schema sind diese Probleme nicht vorhanden.
WAS sind denn exklusive Ausschließungen? Ich dachte, dass Exklusionen gleichbedeutend sind mit Ausschließungen, aber was ist eine exklusive Ausschließung?
Vielleicht der falsche Ausdruck.
In- und Exklusionen sind doch bei DTD auch möglich?????
In XML-DTDs sind weder Inklusionen noch Exclusionen erlaubt.
Z.B. ist folgendes in einer XML-DTD nicht erlaubt:
<!ELEMENT form (p | div2 | div1)* -(form) >
Z.B. für HTML ist folgendes definiert:
<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
was ausschließt, dass ein A-Element ein anderes A-Element enthält. Die HTML-DTDs sind aber SGML-DTDs (HTML ist eine SGML-Anwendung).
Für XHTML ist dies nicht erlaubt (da XHTML XML-konform sein muss) und in den XHTML-DTDs wurde dies auch nicht mehr gemacht. Es gibt nur einen normativen Teil in der Spzifikation (siehe:
http://www.w3.org/TR/xhtml1/#h-4.9 und
http://www.w3.org/TR/xhtml1/#prohibitions) wo diese Regel festgeschrieben sind.
Ein Validator der XHTML-Validiert findet solche Verschachtelungsfehler nicht.
Ein XHTML-Schema-Validator kann aber die Schema (
http://www.w3.org/TR/xhtml1-schema/#xhtml1-strict) überprüfen:
<xs:element name="a">
<xs:annotation>
<xs:documentation>
content is "Inline" except that anchors shouldn't be nested
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="a.content">
...
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
Grüße
Thomas
- 04 Apr 2005, 12:45 pm
-
Dr. Tanja Sieber Premium Member Group moderatorThe company name is only visible to registered members.Re^6: Einsatz DTD/Schema?
Szia Thomas
ah, te magyar, ugye?
én most tanulok magyarul, de sajnos még nem tudom:-)
In XML-DTDs sind weder Inklusionen noch Exclusionen erlaubt.
Z.B. ist folgendes in einer XML-DTD nicht erlaubt:
<!ELEMENT form (p | div2 | div1)* -(form) > okay, okay, okay, ich hab nämlich früher mal eine DTD entwickelt, die dann in früheren FrameMAker Versionen weiter verarbeitet wurden, aber das waren damals noch SGML-DTDs, weil FrameMAker damals XMl noch nicht unterstützt hatte.
Danke für Deine Antwort,
Tanja
- 04 Apr 2005, 1:05 pm
-
Thomas J. SebestyenThe company name is only visible to registered members.Re^7: Einsatz DTD/Schema?
Hallo Tanja,
Tanja Sieber schrieb am 04.04.2005, 13:05:
Szia Thomas
ah, te magyar, ugye?
elméletileg ;-)
én most tanulok magyarul, de sajnos még nem tudom:-) de ahoz képest jól megy ;-)
okay, okay, okay, ich hab nämlich früher mal eine DTD entwickelt, die dann in früheren FrameMAker Versionen weiter verarbeitet wurden, aber das waren damals noch SGML-DTDs, weil FrameMAker damals XMl noch nicht unterstützt hatte.
Danke für Deine Antwort,
Alles klar, gern geschehen.
Grüße
Thomas
- 05 Apr 2005, 11:28 am
-
Post visible to registered members
