# Doctype erstellen



## BlubBlub (12. Sep 2011)

Hi ich verwende das Document Objekt von org.w3c.dom 

Nun wollte ich eine XML Datei erstellen.
Wie erstelle ich damit folgenden Tag:

[XML]
<!DOCTYPE graphicAnimator SYSTEM "C:/Users/My/Desktop/graphicAnimator.dtd">
[/XML]

Bei JDOM gibt es ja sowas wie setDocType, aber ich kann keine Methode bei dem Document Obejekt findent aus org.w3c.dom .


```
Document document = null;
try
		{
			document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
		}
		catch (ParserConfigurationException e1)
		{
			e1.printStackTrace();
		}

		Element rootElement = document.createElement("graphicAnimator");
		Element mainPanelElement = document.createElement("mainPanel");
		Element eventsElement = document.createElement("events");
```

Was müsste ich hier an Code hinzufügen um das gewünschte Doctype Tag mit dem oben genannten Inhalt in das XML File einzufügen?


----------



## Marcinek (12. Sep 2011)

Ohne deine Importe zu sehen, würde ich sagen, dass du ganz normale Java XML Api nutzt.

Hier gibt es Beispiele unterschiedlicher Implementierung und wie man die XML Daten oben festlegen kann.

Tutorial : XML generation with Java


----------



## BlubBlub (12. Sep 2011)

alles klar danke.
Funktioniert jetzt:

```
try
		{
			TransformerFactory transformerFactory = TransformerFactory.newInstance();
			Transformer transformer = transformerFactory.newTransformer();
			
			OutputStream output = null;
			try
			{
				output = new FileOutputStream("C:/.../testfile.xml");
			}
			catch (FileNotFoundException e1)
			{
				e1.printStackTrace();
			}
			transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
			transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
			transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"C:/.../graphicAnimator.dtd");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
			transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
			DOMSource source = new DOMSource(document);
			StreamResult result = new StreamResult(output);
			transformer.transform(source, result);
		}
		catch (TransformerConfigurationException e1)
		{
			e1.printStackTrace();
		}
		catch (TransformerException e1)
		{
			e1.printStackTrace();
		}
		catch (TransformerFactoryConfigurationError e1)
		{
			e1.printStackTrace();
		}
```


----------

