Java Валидация Xml через DTD
Хочу чтоб xml был valid. Я не понимаю как это сделать.
На выходе имею - "Childs nodes:fromheadingbody". Тоесть текстовые разделители успешно пропускает парсер. Стоит мне убрать DTD описание полностью, вывод будет - " Childs nodes:to#textfrom#textheading#textbody#text". Стоит мне DTD переписать таким образом -
"<!DOCTYPE note [
<!ELEMENT note (ewaeae)>
]>"
Тогда выводить будет только название узлов, без текстов. Почему так? Я прочитал про DTD и думал , что если я укажу строго перечень дочерних узлов в скобках , значит столько узлов и с таким названием там и должно быть, по итогу я могу в скобках написать все что угодно и ничего не меняется. Может дело в том что надо добавить ErrorHandler, если так то подскажите как это правильно делать. В целом суть вопроса в том , что у меня DTD не работает и я не знаю почему.Заранее благодарен.
DocumentBuilderFactory myFactory = DocumentBuilderFactory.newInstance(); myFactory.setValidating(true); myFactory.setIgnoringElementContentWhitespace(true); DocumentBuilder myBuilder = myFactory.newDocumentBuilder(); Document doc = myBuilder.parse("E:\\Projects\\primer.xml"); Element mainElem = doc.getDocumentElement(); NodeList ListChilds = mainElem.getChildNodes(); String maneText = " Childs nodes:"; for (int i = 1; i < ListChilds.getLength();i++ ) { Node child = ListChilds.item(i); maneText += child.getNodeName()+" "; } maneText +="</br>\n";<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Напоминание</heading> <body>Не забудь обо мне в эти выходные!</body> </note>