2
内部DTD宣言を使用してJDOMでXMLを作成する必要があります。今では 私は外部のDTDとそれを作成し、これをコードです:JDOM - 内部DTD宣言でXMLを作成するにはどうすればいいですか?
public static void makeFile(Element rootElement, String pathDtd){
Document documento = new Document();
DocType type = new DocType(rootElement.getName(), pathDtd);
documento.setDocType(type);
documento.setRootElement(rootElement);
XMLOutputter xmlOutputter = new XMLOutputter();
xmlOutputter.setFormat(Format.getPrettyFormat());
/* Validazione xml ottenuto */
String xmlOttenuto = xmlOutputter.outputString(documento);
SAXBuilder builder = new SAXBuilder(XMLReaders.DTDVALIDATING);
try {
Document documentoCorretto = builder.build(new StringReader(xmlOttenuto));
FileOutputStream fileOutputStream = new FileOutputStream(new File(rootElement.getName()+".xml"));
xmlOutputter.output(documentoCorretto, fileOutputStream);
} catch (FileNotFoundException e1){
System.err.println(e1);
} catch(IOException e2){
System.err.println(e2);
} catch (JDOMException e) {
e.printStackTrace();
}
}
それが唯一の書き込みを行う。この方法を使用して外部参照することなくDOCTYPEを作成することができます
注:完全なDTD宣言のない「<!DOCTYPEのrootElement>」。私はそれが完全なdtdを書くようにしたいのですが?このよう –
:!!!!<?xmlのバージョン= "1.0" スタンドアロン= "はい"> ]> <チュートリアルタイプ= "ウェブ"> XMLチュートリアル ます。http:!!/ /www.quackit.com/xml/tutorial HTMLチュートリアル http://www.quackit.com/html/tutorial –
は、次に 'type.setInternalSubset(" <!ELEMENTのチュートリアル(チュートリアル)+><!ELEMENTチュートリアル(名前、URL)を呼び出します><!ELEMENT name(#PCDATA)><!ELEMENT url(#PCDATA)><!ATTLISTチュートリアルタイプCDATA #REQUIRED> ")' – rolfl