Frage zu Namensräumen
items
- xml
0 Thomas J.S.0 items0 Thomas J.S.0 items
0 fjh
Hallo Forum,
gerade ist bei meinem kleinen XML Exkurs das Kapitel Namensräume dran.
Das finde ich auch relativ verständlich, aber was ich nicht verstehe,
ist, wie ich eine xml file dann noch validiere. Da heißt es z.B. so:
-----------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<bestellung xmlns:produkt="http://localhost/XML/produkt" xmlns:kunde="http://localhost/XML/kunde">
produkt:nummerp49393</produkt:nummer>
kunde:lieferadresseDonnerbalkenstr.14, 80111 München</kunde:lieferadresse>
</bestellung>
------------------------------------------------
Ist ja auch so weit alles klar. Aber wie validiere ich jetzt dieses
mit Hilfe einer XSD Datei? Ich müßte ja eigentlich zwei xsd files
referenzieren, denn ich habe ja einen tag, der zu einem anderen Namensraum
gehört. Wenn ich das aber mache, wird die zweite xsd Datei gar nicht zur
Kenntnis genommen. In der einen xsd Datei mit einem anderen Namensraum
als dem vorgegebenen zu arbeiten, funzt natürlich auch nicht und wäre
ja auch nicht Sinn der Sache (würde ich denken). Denn gehen tut es doch
eigentlich darum, das ich in einer xml Datei mit unterschiedlichen
Naemensräumen arbeite und die dann aber trotzdem valide ist, oder? Kann
jemand helfen?
Grüße und Dank
items
Hallo,
Ist ja auch so weit alles klar. Aber wie validiere ich jetzt dieses mit Hilfe einer XSD Datei? Ich müßte ja eigentlich zwei xsd files referenzieren, denn ich habe ja einen tag, der zu einem anderen Namensraum gehört.
diese frage wird ziemlich gut unter:
http://www.w3.org/TR/xmlschema-1/#composition behandelt
grüße
thomas
Hallo Thomas,
dank erstmal für den Link. Habe ich mir durchgelesen und muß gestehen, dass ich kein Wort verstanden habe. Liegt vermutlich daran, das das Gebiet XML ziemlich neu für mich ist, denn mein Englisch ist eigentlich gar nicht soooo schlecht. Hast du vielleicht noch irgendwelche Links zu dem Thema, wo es ein bisschen deutlicher zu geht? Am besten mit irgendwelchen Beispielen? Google gibt da leider nix her.
Gruß und Dank
items
Hallo unbekannter,
Hast du vielleicht noch irgendwelche Links zu dem Thema, wo es ein bisschen deutlicher zu geht? Am besten mit irgendwelchen Beispielen?
vielleicht hilft die der teil von dem artikel: [ink:http://www.xml.com/pub/a/2000/11/29/schemas/part1.html?page=8#namespaces]
oder der tutorial von http://www.xfront.com/#tutorials
weitere artikel etc. findest du unter http://wdvl.com/Authoring/Languages/XML/Schema.html
grüße
thomas
Hallo Thomas,
jo. Danke. Damit kann ich mehr anfangen. Die W3C Geschichte war doch ein bisschen sehr trocken. Da habe ich keinen Fuß in die Tür bekommen. Bei der Suche über Google habe ich vorwiegend auf deutschen Seiten gesucht (bzw. deutschen Gruppen). Finde ich immer noch etwas schwieriger mich in irgendwas reinzufummeln, wenns auch noch auf Englisch zur Sache geht und bei der W3C Spec habe ich dann völlig die Grätsche gemacht :o).
Vielen Dank also für die Links
Grüße
Ralf
Hallo Ralf,
<?xml version="1.0" encoding="ISO-8859-1" ?>
<bestellung xmlns:produkt="http://localhost/XML/produkt" xmlns:kunde="http://localhost/XML/kunde">
produkt:nummerp49393</produkt:nummer>
kunde:lieferadresseDonnerbalkenstr.14, 80111 München</kunde:lieferadresse>
</bestellung>
Ist ja auch so weit alles klar. Aber wie validiere ich jetzt dieses
mit Hilfe einer XSD Datei?
Bei einer XML-Instanz, die keine Namensräume enthält, referenzierst Du ein Schema über das Attribut xsi:noNamespaceLocation im Wurzelelement des Instanzdokuments. Das weisst du ja schon.
Verwendest Du Namensräume (oder Jargon-mäßiger formuliert: bevölkerst Du Namensräume) in Deinem XML-Schema, musst du im Instanzdokument das Schema über das Attribut xsi:schemaLocation referenzieren. Als Wert gibst Du den/die Namensraum-URI(s) an, die Du im XML-Schema verwendest und den URI, wo sich das Schema befindet:
Also z.B
<bestellung
xmlns:produkt="http://localhost/XML/produkt"
xmlns:kunde="http://localhost/XML/kunde">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://localhost/XML/kunde ../xsd/sch054.xsd">
Im XML-Schema musst Du nun deinen Namensraum als sogenannten Zielnamensräume angeben
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://localhost/XML/kunde">
Wenn Du nun zwei Namensräume validieren willst, kannst du ein anderes Schema importieren (das einen anderen Namensraum bevölkert) und du musst das Attribut elementFormDefault="qualified" im XML-Schema-Element verwenden. In diese Richtung solltest Du bei den Links von Thomas mal weiterschauen.
Gruß
Franz
Hallo Franz,
Wenn Du nun zwei Namensräume validieren willst, kannst du ein anderes Schema importieren (das einen anderen Namensraum bevölkert) und du musst das Attribut elementFormDefault="qualified" im XML-Schema-Element verwenden. In diese Richtung solltest Du bei den Links von Thomas mal weiterschauen.
Vielen Dank. Werd ich machen. Steht so Zeugs auch in dem Schema Buch drin, das du mir empfohlen hast? Ich habe mir das bei Dussmann mal angeguckt und ein halbes Stündchen drin gelesen. Das war in der Tat (im Gegensatz zur W3C Spec.) überaus verständlich. Der Preis hat mich allerdings wirklich abgeschreckt. 50 EUR für ein gutes Fachbuch auszugeben finde ich ja inzwischen auch normal, aber bei 120 fing es irgendwie an wirklich ein bisschen weh zu tun. Zumal ich mir nicht sicher war, ob es sinnig ist, das anzulegen.
Der Umfang von XML wird mir erst langsam klar und ich habe ein bisschen Muffensausen, das ich mich da verzettele. Ich bin jetzt langsam bei XPath und XSL angekommen, aber das wird alles nur angerissen. Als ich vor drei Jahren mit diesen Web-Geschichten angefangen habe, hat sich eine völlig neue Welt erschlossen. Jetzt habe ich irgendwie den Eindruck, das sich diese Geschichte wiederholt. Tausend Sachen tun sich auf, in die man einsteigen könnte, aber was ist wirklich wichtig davon? Und letztendlich geht es ja auch nicht nur um Spaß, sondern auch um wirtschaftliche Überlegungen, denn schliesslich ernährt mich der Kram ja auch und da muss man sich ja schon ein bisschen überlegen, wo man seine Zeit investiert. XML hat sicherlich Zukunft, aber langsam scheint es mir, als gäbe es da ebenso wie im "normalen" Developing (PHP, Perl, JS usw.) ähnliche Möglichkeiten der Spezialisierung. Auf der einen Seite also sowas, wie einen Gesamtüberblick (der sicherlich immer wichtig ist) und auf der anderen Seite eben auch Sachen, bei denen man richtig gut Bescheid wissen sollte.
Diese Schema Geschichte finde ich ziemlich interessant und für "Pedanten" wie mich, scheint das ein sehr schönes Gebiet zu sein, um sich festzubeissen, aber die Relevanz innerhalb XML ist mir noch gar nicht so ganz klar, bzw. wie sich das ganze Gebiet XML überhaupt in meine tägliche Arbeit integrieren läßt. Bisher ist das eher sowas wie ein überaus spannender Ausflug.
Grüße
Ralf
Hallo Ralf,
Vielen Dank. Werd ich machen. Steht so Zeugs auch in dem Schema Buch drin, das du mir empfohlen hast?
Ja. Vielleicht nicht genau so, aber doch so, dass auch solche komplexeren Probleme kein leicht lösbar werden.
Ich habe mir das bei Dussmann mal angeguckt und ein halbes Stündchen drin gelesen. Das war in der Tat (im Gegensatz zur W3C Spec.) überaus verständlich. Der Preis hat mich allerdings wirklich abgeschreckt. 50 EUR für ein gutes Fachbuch auszugeben finde ich ja inzwischen auch normal, aber bei 120
Ja, aber doch 120 _Mark_! (sind ja fast 50 EURO).
fing es irgendwie an wirklich ein bisschen weh zu tun. Zumal ich mir nicht sicher war, ob es sinnig ist, das anzulegen.
Ja, die Bücher sind SCHWEINEteuer. Aber das WROX-Prinzip (Programmer for Programmer) geht meiner Meinung nach voll auf. Es sind zum Thema XML (woanders kann ich es schwer beurteilen) meistens die besten Bücher auf dem Markt. Ich habe mir inzwischen eine kleine Bibliothek angelegt, die mich eine Menge gekostet hat, aber es hat sich gelohnt. So ein Buch einfach mal an einem WE anzugehen ist einfach Gold Wert für das Grundverständnis. Du wirst einfach von Beginn an durch die Materie geführt und musst nur Dein Zeug nicht im Netz zusammensuchen. Wenn du ein konkeretes, schwierigeres Problem hast oder ein Tool nicht installiert bekommst, ist das Web immer noch das Beste, aber für den grundlegenden Beginn, sind solche Bücher einfach unersetzlich.
Der Umfang von XML wird mir erst langsam klar und ich habe ein bisschen Muffensausen, das ich mich da verzettele. Ich bin jetzt langsam bei XPath und XSL angekommen, aber das wird alles nur angerissen. Als ich vor drei Jahren mit diesen Web-Geschichten angefangen habe, hat sich eine völlig neue Welt erschlossen. Jetzt habe ich irgendwie den Eindruck, das sich diese Geschichte wiederholt. Tausend Sachen tun sich auf, in die man einsteigen könnte, aber was ist wirklich wichtig davon? Und letztendlich geht es ja auch nicht nur um Spaß, sondern auch um wirtschaftliche Überlegungen, denn schliesslich ernährt mich der Kram ja auch und da muss man sich ja schon ein bisschen überlegen, wo man seine Zeit investiert. XML hat sicherlich Zukunft, aber langsam scheint es mir, als gäbe es da ebenso wie im "normalen" Developing (PHP, Perl, JS usw.) ähnliche Möglichkeiten der Spezialisierung. Auf der einen Seite also sowas, wie einen Gesamtüberblick (der sicherlich immer wichtig ist) und auf der anderen Seite eben auch Sachen, bei denen man richtig gut Bescheid wissen sollte.
Ja, mit diesen Überlegungen triffst Du die Sache ganz gut. Ich bin auch eher so ein Verzetteler, aber das hat den Vorteil, dass man die Sachen dann irgendwann auch mal voll verstanden hat. Zumindest bei den Sachen, wo man die Zeit hatte, tiefer einzusteigen. Ist halt auch ne Typfrage.
Ich benötige das XML-Zeugs vor allem für einen Nebenjob als Vermittler der Materie. Da guckt man dann auch mal gerne aufs Detail, um einfach gegen Fragen gewappnet zu sein. Beruflich habe ich vom "Programmieren" her wenig mit XML zu tun. Die Frage nach dem "Ernährungswert" ist also durchaus berechtigt, denn ich hätte auch lieber ne reine XML-Stelle... Wenn man so die Stellenanzeigen durchforstet, wird XML-Know-How eigentlich überall gefordert, aber irgendwie immer so nebenher. Es gibt hier in Deutschland (in USA und England ist das aus meiner Sicht anders) wenig "Nur-XML-Jobs". Sinnvoll ist also in jedem Fall ein guter Überblick, was XML, DTDs, XML-Schema, XSLT und XPath leisten können. Außer für einige Spezialgebiete sind dies die wirtschaftlich relevantesten Dinge. Ich weiss ja nicht wohin du Dich beruflich orientierst bzw. bereits orientiert hast, aber für die Webentwicklung wird sicherlich XSLT immer wichtiger. Dort kann guten Gewissens tiefer einsteigen (z.B. mit dem Standardwerk von Michael Kay (auch von WROX) oder nem guten Einsteigerseminar für knapp 10 EURO bei bhv ;-)). Wenn du stark Richtung serverseitige Softwareentwicklung tendierst dann ist das wichtigste immer noch eine ausgewachsene Programmiersprache (die Kombination Java und XML ist sehr beliebt) und dann eben die ganzen Standard-APIs für XML: SAX, DOM, JAXP usw. In XML-Schema würde ich mich aber nicht zu tief verbeißen. Mit dem Buch von WROX bist du bereits ein halber Experte, der dann auch noch was, was man tuen kann, wenn XML-Schem auch nicht mehr hilft oder welche anderen Schema-Dialekte es sonst noch gibt. Das reicht dicke. Lange Rede kurzer Sinn: Spezialisierung auf NUR-XML reicht z.Zt. jobtechnisch nicht. Ohne ein gutes Wissen in einer Programmiersprache geht garnix. Sich bei den Programmier- und Scriptsprachen aber auf XML-Verarbeitung zu konzentrieren, ist aber sicherlich zukunfs- und gegenwartsträchtig.
Diese Schema Geschichte finde ich ziemlich interessant und für "Pedanten" wie mich, scheint das ein sehr schönes Gebiet zu sein, um sich festzubeissen, aber die Relevanz innerhalb XML ist mir noch gar nicht so ganz klar, bzw. wie sich das ganze Gebiet XML überhaupt in meine tägliche Arbeit integrieren läßt.
Relevant ist XML-Schema z.Zt. vor allem im E-Business (speziell B2B)-Bereich, da es mit XML-Schema möglich ist, eingehende XML-Business-Dokumente leicht auf den korrekten Inhalt (bis hin zu den richtigen Datentypen) zu checken. Stich-(oder besser Hype-)Worte Web Services mit SOAP und WSDL, die beide auf XML-Schema aufbauen. Aber auch das ist z.T. noch mehr Hype als Realität. Die Tendenz wird zudem hin zur toolunterstützten Erstellung von Schemata gehen.
Also laß dich nicht entmutigen von den ganzen neuen Trends und Akronymen. Niemand kann das alles wirklich gut beherrschen. Wer heute mit XSLT und XPath beginnt und auch schon mal in XML-Schema reinschnüffelt ist sicher nicht auf der falschen Fährte, solange es auch noch Spaß macht.
Gruß
Franz