PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [XML] X-Path-Abfragen



July
09.10.2005, 12:56
Für die FH muss ich eine Hausarbeit schreiben, das Thema ist XML.
Da ich teilweise keine Zeit habe, die vorlesung zu besuchen (und mir das auch etwas zu lange dauert, hab keine Lust, am Ende des Semesters erst anfangen zu können, dann sinds wieder zig Prüfungen auf einmal >_>), versuch ich, mir das meiste selbst zu erarbeiten, klappt soweit auch ganz gut.
Jetzt häng ich aber gerade an den X-Path-Ausdrücken und weiß nicht, ob die so richtig sind, bzw. ob das so funktionieren würde, oder nicht.
Daher würd mich mal interessieren, ob jemand zufällig ein Programm kennt, wo man solche Ausdrücke eingeben kann, die dann auf die entsprechende XML-Datei angewendet werden, um eben zu kontrollieren, ob das so richtig ist.
Am allerbesten wärs, wenn man das ganze eventuell auch über einen Assisstenten eingeben kann, falls das mit der direkten Path-Eingabe nicht zum erwünschten Ergebnis führt.

MuadDib
09.10.2005, 13:53
Ich kenn mich mit XML ganz und gar nicht aus, meine Freundin aber umso mehr: Sie sagt, XMLSpy ist da ein ganz brauchbares Tool dafür (Gibts eine Home Edition auf http://www.altova.com/download_spy_home.html. Und da glaub ich ihr einfach.

July
09.10.2005, 14:27
Das hab ich auch schon. Nur steht da dauernd irgendwas von "man darf nur ein advanced feature am Tag nutzen" und son Kram. Und scheinbar hab ich schon irgendwas anderes für diesen Tag 'missbraucht', sowas passiert halt, wenn man keine Ahnung hat >_>
Komplette Freeware-Tools, die nicht irgendwie eingeschränkt sind, gibts da scheinbar nicht?! Vielleicht weiß deine Freundin das ja ^_^ Ansonsten sag ihr aber Danke, ich werd mich dann mal mit diesem Programm etwas genauer befassen, bis vorhin dachte ich, man kann da nur Schemata und so mit erstellen/bearbeiten/whatever :)

MuadDib
09.10.2005, 14:53
Komplette Freeware-Tools, die nicht irgendwie eingeschränkt sind, gibts da scheinbar nicht?! Vielleicht weiß deine Freundin das ja ^_^
Zwei Dinger gibts da noch: Zum einen Oxygen (http://www.oxygenxml.com/), der nicht ganz frei ist, oder aber auch Cooktop (http://www.xmlcooktop.com/), der komplett frei ist. Wie gut die im Feature-Umfang und in der XPath Umsetzung sind, weiß ich leider nicht. XMLSpy soll aber laut meiner Liebsten das beste dafür sein.



Ansonsten sag ihr aber Danke,
Werd ich ausrichten.

July
03.12.2005, 21:33
*ihren XML-Thread mal wieder ausbuddelt*

Vielleicht kann mir hier ja jemand helfen, oder MuadDib fragt seine Freundin noch mal ganz lieb? *hust*

Ich hab jetzt folgendes Problem:
Wir sollten ein XML-Schema erstellen zu einer XML-Datei, hab ich auch brav gemacht.
Im Kopf des Schemas steht folgendes
<xs:schema xmlns="http://www.rhejvandar.de/xml/default" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.rhejvandar.de/xml/default" elementFormDefault="qualified" attributeFormDefault="unqualified">
Also ein Defaul-Namensraum, der angeblich immer angegeben werden muss (ohne kriege ich auch eine Fehlermeldung, da ich innerhalb des Schemas Referenzen benutzen soll) um zu zeigen, dass alle Elemente die nicht zu den Schema-Elementen gehören, automatisch eben dazu gehören, dann der Namensraum für das XML-Schema und dann schließlich die Zielangabe für den Default-Namensraum. Die Adresse muss da mit dem Default-Namensraum übereinstimmen, existieren muss sie angeblich nicht (gibt es auch nicht und es funktioniert ja nunmal, ich wüsste eh nicht, was da drinzustehen hat :rolleyes: ).

In meiner XML-Datei steht im Kopf dann folgendes


<videospiele xmlns="http://www.rhejvandar.de/xml/default" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.rhejvandar.de/xml/default
C:\DOKUME~1\*editiert*\Desktop\videospiele.xsd">
Hier muss ebenfalls wieder der Default-Namensraum angegeben werden, ansonsten meckert er, dass er nicht valide wäre.

Jetzt ist mein Problem folgendes. Wenn ich in Cooktop oder XML-Spy Xpath oder XQuery Abfragen eingebe, funktioniert das nicht, da krieg ich jedes Mal ne leere Menge raus >_> Wenn ich dann aber den Default-Namensraum und sonstige Angaben im 'videospiele'-Elemente aus der XML-Datei rausnehme, funktionierts (nur dass dann eben die XML-Datei so nicht mehr valide ist :-/ )
Hab das bisher auch so gemacht, das Problem ist jetzt nur, dass ich bei einer XQuery-Abfrage darauf angewiesen bin, dass der Datentyp angegeben wird, der ja im XML-Schema für jedes Element definiert wird. Da ich aber jetzt nicht mehr aufs Schema zugreife, nimmt er alles als String, und nicht als decimal oder double-Wert, so dass ich damit nicht rechnen kann, was ich aber machen muss :(

Meine Frage ist daher: Wie schaffe ich es, dass ich Xquery und XPath-Abfragen zum Laufen bringe, ohne die Namensräume da rauszunehmen? Gibt es da irgendwelche besonderheiten, die man beachten muss?

edit: juhu, durch zufall hab ich rausgekriegt wies geht :) also vergesst meine anfrage einfach *hust*

MuadDib
05.12.2005, 19:14
edit: juhu, durch zufall hab ich rausgekriegt wies geht also vergesst meine anfrage einfach *hust*
*Freundin wieder einpack*. Sorry, habs erst jetzt gelesen. Wie hast dus gelöst (rein Interesse halber).

July
05.12.2005, 20:23
*Freundin wieder einpack*. Sorry, habs erst jetzt gelesen. Wie hast dus gelöst (rein Interesse halber).

Macht nichts :) Habs zum Glück ja recht schnell doch noch rausbekommen. Bin (ich weiß auch nicht wie) zufällig über den Ausdruck xsi:noNamespaceSchemaLocation, die ich dann in den Kopf der XML-Datei gepackt habe, statt xsi:schemaLocation, das hat dann funktioniert ^^
Naja, jetzt schlag ich mich mit XQuery rum, vielleicht belästige ich dich dann irgendwann mal da mit Fragen ;) Ach ja, eine hab ich doch glatt *g* Kannst sie mal fragen, ob man auch nach Attributen sortieren kann oder nur nach Elementen?! Wenn ja, hab ich wohl bloß irgendwas falsch formuliert ._.

MuadDib
06.12.2005, 10:57
Also, ich kenn mich sowieso nicht mehr aus, meine Herzallerliebste glaubt allerdings, dass es nicht möglich ist (ist sich allerdings auch nicht mehr sicher, schon wieder eine Zeit her), weil laut W3C Recommendation die Ordnung von Attributen fix ist, allerdings implementierungsabhängig.

Ein order by $x/@attribute geht also (soweit wir wissen) nicht...