ein XML Dokument aus eXist DB mit hilfe von Cocoon lesen

aytmolay

Grünschnabel
hallo Zusammen,

ich möchte gern ein XML Dokument aus eXistDB lesen,und dann diese Dokument ins HTML umwandeln.

ich habe ´s so überlegt.
  1. Die eXist DB läuft auf dem Port 8080 und ist mit dem Befehl java –jar start.jar jetty gestartet.
  2. ich habe den JDBC Treiber von eXist in Cocoon registriert
  3. ich habe eine Collection in der DB erstellt die heisst mydoc und in dieser Collection habe ich ein XML Dokument reingelegt, die Dokument heisst hallo.xml

meine Sitmap sieht so aus:
Code:
<map:match pattern="hallo"> 
<map:generate src="xmldb:exist://localhost:8080/db/mydoc/hallo.xml"/> 
<map:transform type="xslt" src="Documents/hallo2pdf.xsl"> 
<map:parameter name="use-request-parameters" value="true"/> 
</map:transform> 
<map:serialize type="fo2pdf"/> 
</map:match>

leider das funktioniert nicht. denn ich erhalte die Fehelermeldung:
Code:
org.xmldb.api.base.XMLDBException: Unknown or unparsable API for: xmldb:exist://localhost:8080/db/april


ich glaube mein Fehler ist das der Pseudoprotokol nicht rechtig ist.
xmldb:exist://localhost:8080/db/mydoc/hallo.xml
denn irgendwo in diesem pseudoprotokoll muss noch Username und Password reinkommen.

kann mir jemand helfen?
Danke.
 
Hallo,

aytmolay hat gesagt.:
ich glaube mein Fehler ist das der Pseudoprotokol nicht rechtig ist.
xmldb:exist://localhost:8080/db/mydoc/hallo.xml
denn irgendwo in diesem pseudoprotokoll muss noch Username und Password reinkommen.
Also um ein XML-Dokument komplett auszulesen, brauchst du keine eXist. Also es geht schon, aber wozu dann eine DB Aber bitte - die Variante über REST:
Code:
http://localhost:8080/exist/rest/db/mydoc/hallo.xml
Wenn du allerdings auf deine Collection zugreifen wolltest, um dann XQuery Anfragen zu stellen, ist deine URI wahrscheinlich falsch (jedenfalls wenn du eine Standardinstallation der eXist benutzt). Ich weiss nicht was Cocoon genau braucht (hab ich noch nicht gemacht). Es sollte aber eigentlich über folgende Form funktionieren
Code:
xmldb:exist://localhost:8080/exist/xmlrpc/db/mydoc

Ansonsten findest du in der Doku unter dem Abschnitt Deployment diverse Informationen zu den jeweiligen URI's um die eXist anzusprechen...

hth
THMD
 
ich weisse dass ich ein xml-Dokument direkt von der Festplatte lesen kann, denken wir unser XML-Dokument viel zu viel sind, und man muss sie in einer xmldb speichern, ich kann auf die datenbank über dein Browser und über die java Client anwendung zu greiffen, der URL lautet dann
Code:
xmldb:exist://localhost:8080/exist/xmlrpc
wenn eine verbindung aufgebaut ist dann kommt eine Meldung dass wir erstma anmelden als Username und passwd eingeben.

weisst du vielleicht wie man dass unter Cocoon macht?
ich versuche jetzt dass mit xsp (Extensible server pages) zu schaffen.

Gruss
 
Hi,
aytmolay hat gesagt.:
weisst du vielleicht wie man dass unter Cocoon macht?
ich versuche jetzt dass mit xsp (Extensible server pages) zu schaffen.
sorry, ich arbeite nicht mit Cocoon. Ich setze die eXist in nem anderen Umfeld ein, deshalb kann ich keine Aussagen dazu treffen, wie genau das mit cocoon funktioniert.

Die "normale" URI mit Name, Passwort sollte ungefähr so aussehen
Code:
name:passwort@xmldb:exist://localhost:8080/exist/xmlrpc
oder andersrum (passwort:name) - kann ich mir nicht merken.

Gruß
THMD
 

Neue Beiträge

Zurück