Probleme beim Erstellen einer XML

hdi

Top Contributor
Hi,

also ich nutze die XML-Klassen die mit dem JDK kommen, d.h. DocumentBuilder, Document, Element usw (ist das eig dieses DOM Zeug?)

Nun habe ich folgendes PRoblem:
Ich will eine Struktur erzeugen die so aussieht: (muss man jetzt nicht genau anschauen, ist nur exemplarisch)

[XML]<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:eek:rg.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore"
xmlns:eek:rg.eclipse.epf.uma.resourcemanager="http:///org/eclipse/epf/uma/resourcemanager.ecore"
xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0">
<org.eclipse.epf.uma.resourcemanager:ResourceManager xmi:id="_WsghwKo4Ed-qZavwIxiEzA"
guid="_WsghwKo4Ed-qZavwIxiEzA">
<subManagers xmi:id="_SMBqEKpBEd-ERbKl4wZxfg" href="uma://_SLuvIKpBEd-ERbKl4wZxfg#_SMBqEKpBEd-ERbKl4wZxfg"/>
<resourceDescriptors xmi:id="_SMCRIKpBEd-ERbKl4wZxfg" id="_SLuvIKpBEd-ERbKl4wZxfg"
uri="new_plug-in/plugin.xmi"/>
</org.eclipse.epf.uma.resourcemanager:ResourceManager>
<org.eclipse.epf.uma:MethodLibrary xmi:id="_Wsc3Yao4Ed-qZavwIxiEzA" name="Library1"
guid="_Wsc3Yao4Ed-qZavwIxiEzA">
<methodPlugins xmi:id="_SLuvIKpBEd-ERbKl4wZxfg" href="uma://_SLuvIKpBEd-ERbKl4wZxfg#_SLuvIKpBEd-ERbKl4wZxfg"/>
</org.eclipse.epf.uma:MethodLibrary>
</xmi:XMI>[/XML]

Ich scheitere schon an der zweiten Zeile:

Java:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("xmi:XMI");
root.setAttribute("xmi:version", "2.0");

Der Aufruf der setAttribute Methode gibt mir den Fehler:
FEHLER: 'Der Namensbereich für Präfix 'xmi' wurde nicht deklariert.'

Ich kenn mich mit diesen ganzen Klassen null aus, benutze sie zum ersten mal. Ich hab keine Ahnung wie ich jetzt einen Namespace deklariere damit?!

PS: Ehrlich gesagt scheitere ich schon an der allerersten Zeile, im Moment schreib ich die ganz normal per FileWriter da rein, und hänge erst nachher das ran was mir der DocumentBuilder zusammenbaut :/

Danke für die Hilfe!!
 
Zuletzt bearbeitet von einem Moderator:

hdi

Top Contributor
Hey, dank dir - ich hab damit auch schon etwas rumgespielt gehabt, aber iwie check ich das nicht ganz.

Ich hab jetzt folgendes gemacht:

Java:
		Element root = doc.createElementNS("xmi","XMI");
		root.setAttributeNS("xmi","version","2.0");

Herauskommen tut aber:
<XMI xmlns:ns0="xmi" ns0:version="2.0" xmlns="xmi"/>

Was ich will ist:
<xmi:XMI xmi:version="2.0"/>

Und zu der ersten Zeile, also das hier:
<?xml version="1.0" encoding="UTF-8"?>
Wie kann ich sowas realisieren? Ist das dieses Document#createProcessingInstruciton? Wenn ja weiß ich auch hier nicht so recht wie ich das machen soll, hab das noch nicht so hinbekommen.

Danke für die Hilfe!
 

sylo

Bekanntes Mitglied
Hi

Und zu der ersten Zeile, also das hier:

Zitat:
<?xml version="1.0" encoding="UTF-8"?>

Wie kann ich sowas realisieren? Ist das dieses Document#createProcessingInstruciton? Wenn ja weiß ich auch hier nicht so recht wie ich das machen soll, hab das noch nicht so hinbekommen.

Wenn du eine komplett neue xml datei erstellen möchtest, dann könntest du die erste Zeile einfach mit einem FileWriter reinschreiben.

Grüße
sylo
 

hdi

Top Contributor
@sylo
ja so mache ich es ja im moment. ist aber nicht allzu schön.
Das ist aber noch akzeptabel, ist ja nur eine Zeile.

Aber das mit den Namespaces muss ich hinkriegen, weil solange ich das nicht kann muss ich die gesamte XML per FileWriter schreiben. Das ist natürlich absolut umständlich und sinnlos.
 

Ebenius

Top Contributor
hdi, wenn Du mal fix auf den ersten Link (das Tutorial) geklickt, die Seite durchgelesen und danach Dein Eingangs-XML angesehen hättest, hättest Du wahrscheinlich heraus gefunden, dass der Namespace "http://www.omg.org/XMI" heißt und der Namespace-Prefix "xmi" diesem Namespace zugewiesen wird. Das erste Argument der [c]xyzNS(…, …)[/c]-Methoden ist immer der Namespace und nicht der Prefix.

Ebenius
 

hdi

Top Contributor
Hey,

muss ich mal wieder rauskramen da ich bisher nicht dazu gekommen bin.
Also ich hab mir das Tutorial durchgelesen. Aber in meinem Fall sieht das ein bisschen komplzierter aus:

<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:eek:rg.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" xmlns:eek:rg.eclipse.epf.uma.resourcemanager="http:///org/eclipse/epf/uma/resourcemanager.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0">

Also grundsätzlich müsste ich diese Namespaces jetzt so anlegen oder:
Java:
	 doc.createElementNS("http://www.omg.org/XMI","xmi");
	 doc.createElementNS("http://www.eclipse.org/epf/uma/1.0.5/uma.ecore", "org.eclipse.epf.uma");
	 doc.createElementNS("http:///org/eclipse/epf/uma/resourcemanager.ecore","org.eclipse.epf.uma.resourcemanager");
	 doc.createElementNS("http://www.eclipse.org/epf", "epf");

Die Frage ist was mach ich jetzt zur Root, und wie hänge ich quasi mehrere solcher Definitionen aneinander? Im obigen Code ist das ja irgendwie alles in einem Schritt gemacht, und irgendwie verwenden die da das "xmi" bevor sie es erstmal als Namespace deklarieren?
Also das XML oben kann ich jetzt schon ganz gut verstehen, ich sehe was NS-Deklarationen sind und was halt Attribute sind, aber wie generier ich das jetzt mit DOM?

Und die erste Zeile mit dem <?xml versteh ich noch immer nicht, mit was für einer Methode erzeugt man denn sowas in DOM?

Danke!
 

Noctarius

Top Contributor
Zum Grund-Namespace würde ich den NS machen den du am meisten brauchst. Aber was meinst du mit "hintereinander hängen"?

Den XML-Header musst du nicht selbst anlegen, der sollte automatisch mitgespeichert werden, da dieser das XML Encoding angibt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Probleme beim erstellen einer Jar XML & JSON 12
N Probleme bei der Formatierung beim Einfügen und löschen über DOM XML & JSON 7
L Jackson JSON: Probleme beim einlesen XML & JSON 1
F Probleme beim html parsen mit tagsoup XML & JSON 4
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
H JAXB Probleme beim Unmarshalling XML & JSON 3
C SAX Probleme beim lesen XML & JSON 4
D Probleme beim SAX parsing XML & JSON 4
byte Probleme beim Parsen von XHTML-Datei XML & JSON 4
R JAVA und DOM, probleme beim einfügen von elementen ?????? XML & JSON 6
Kirby.exe Probleme mit XML XPATH Select XML & JSON 3
G Probleme mit Jsoup in .jar File XML & JSON 11
K JAX-WS Bindin-Probleme XML & JSON 1
B Probleme mit RelativeLayout XML & JSON 1
K XOM Builder Probleme XML & JSON 3
N Jsoup: PHP-Tags bereiten Probleme? XML & JSON 2
M SAX-Parsing Probleme XML & JSON 23
M Probleme mit XPath bei Java XML & JSON 5
G Probleme mit XML und JTree XML & JSON 9
klattiator Probleme mit Codierung XML & JSON 3
T XML und Sonderzeichen, Probleme mit ASP.NET Server XML & JSON 2
G Probleme mit Namespaces XML & JSON 5
D Probleme mit Eclipse Modeling Framework (EMF) XML & JSON 2
S PDF Erzeugung - Probleme mit der XML Datei bei Schema-Infos XML & JSON 2
F JAXB - Nachträglich hinzugefügter Code macht Probleme XML & JSON 2
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
F Unmarshall Probleme XML & JSON 5
R Probleme mit Transformer und StreamResult XML & JSON 4
C Probleme mit Include XML & JSON 10
C POI + jXLS Probleme XML & JSON 3
B DOM DTD laden abschalten, Probleme mit Doctypes und PIs XML & JSON 2
S Probleme mit Jdom XML & JSON 3
G probleme mit package XML & JSON 12
M Probleme mit String XML & JSON 3
H Probleme mit xmlrpc und php XML & JSON 13
B Probleme mit Zugriff auf eXist-Datenbank XML & JSON 9
H Neu bei JAVA- Probleme mit der Integration von Xerces XML & JSON 3
P Probleme mit jdom XML & JSON 5
W Ungleiches Escaping beim Marshalling XML & JSON 8
S Hilfe beim RDF-Graphen XML & JSON 0
R Beim Serialisieren fehlt die letzte Zeile XML & JSON 5
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
A XML-Fehler beim Prefix von xmlns XML & JSON 2
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
G Langsam beim SAX-Parsen - woran liegts? XML & JSON 2
A Fehler beim Erzeugen eines XML-Schema XML & JSON 4
B Validierung nur beim einlesen oder auch beim schreiben? XML & JSON 4
D JAXBException beim Marshaller XML & JSON 4
M Read / write Problem beim ByteStrom XML & JSON 2
whitenexx Problem beim parsen von Facebook XML XML & JSON 3
J Dateinamen beim Start auslesen XML & JSON 8
F Hilfe beim bearbeiten von XML elemente XML & JSON 3
N XStream ConversionException beim Deserialisieren in (Hibernate)Objekt XML & JSON 6
G Problem beim schreiben von XML in eine File XML & JSON 2
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
sylo Beim Erzeugen einer XML Datei auch die XML Struktur erzeugen? XML & JSON 11
B Problem beim löschen von ChildNodes aus einem XML-DOM XML & JSON 3
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
N Hilfe beim Einstieg in EMF XML & JSON 6
D Das Programm hängt etwa 5 Sekunden beim Aufruf der parse-Methode XML & JSON 6
D Tabs/Einrückungen der XML-Elemente gehen beim Schreiben verloren XML & JSON 5
T Problem beim Parsen von Attribut xmlns="urn:com:test&qu XML & JSON 6
G XML Tag beim Einlesen manipulieren XML & JSON 2
J Problem beim XML-Lesen XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
P NullPointerException beim Auslesen XML & JSON 8
M Performance beim Binding XML & JSON 2
E XOM setzen von XML-Schema declaration beim erzeugen XML-File XML & JSON 2
J Fehler beim laden einer .xml XML & JSON 3
G DOCTYPE Problem beim Transformer/TransformerFactory etc. XML & JSON 13
P OutOfMemoryError beim Einlesen einer XML-Datei XML & JSON 7
P Problem beim erstellen eines neuen Elements (JDOM) XML & JSON 5
S JDOM-Kein indent beim XMLOutputter XML & JSON 4
C Zeile herausfinden in der ein Fehler beim Einlesen entsteht XML & JSON 3
V Datenverlust nach sortieren (nur beim serialisieren) XML & JSON 4
S Problem beim Erstellen eines pdfs XML & JSON 3
R Problem beim Auslesen von Attributen XML & JSON 4
S Jackson: Erstellen Sie Klassen für Jackson aus XSD XML & JSON 2
T Tags in XML Datei mit Java erstellen XML & JSON 3
W Openapi Beschreibung erstellen XML & JSON 3
Z json inkl. Array/Verschachtelung erstellen XML & JSON 2
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
L Soapnachricht aus String erstellen XML & JSON 0
U jar Datei mit ant erstellen XML & JSON 1
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
D XML-Datei per Button erstellen XML & JSON 3
P Eclipse - Ant Skript - jar erstellen mit Referenced Libraries - build.xml XML & JSON 5
S XML file lässt sich in Eclipse nicht erstellen XML & JSON 2
P (Eclipse)Ant Script, .jar Datei erstellen mit MANIFEST.MF XML & JSON 12
B Doctype erstellen XML & JSON 2
B XML file erstellen und in lesbarer form speichern XML & JSON 2
I Tablle mit xsl erstellen XML & JSON 2
D XML Liste erstellen XML & JSON 9
S Konforme XML Datei über XSD erstellen XML & JSON 2
D XSD Datei erstellen XML & JSON 4
B XML auf Basis einer DTD erstellen XML & JSON 2
F Standard für das erstellen von XML? XML & JSON 4
K DTD aus XML erstellen XML & JSON 2
ARadauer Aus XML Datei Objekte erstellen... XML & JSON 3
H XML String erstellen XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben