powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java-xml-dtd
11 сообщений из 11, страница 1 из 1
java-xml-dtd
    #33130138
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста.

Имею два файла: произвольный файл file.xml и мой myfile.dtd.
В программу можно импортировать только те файлы XML, которые соотвествуют заданому описание документа DTD(файл myfile.dtd). Как сделать проверку?

Заранее благодарен.
...
Рейтинг: 0 / 0
java-xml-dtd
    #33130151
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анализатор любой. Включить праверку на правильность нужно методом setValidating(true). Как указать файл dtd? Идею хоть какую!
...
Рейтинг: 0 / 0
java-xml-dtd
    #33130580
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svbyАнализатор любой. Включить праверку на правильность нужно методом setValidating(true). Как указать файл dtd? Идею хоть какую!а его не надо указывать,он д.б. указан в самом хмл файле!
...
Рейтинг: 0 / 0
java-xml-dtd
    #33131562
jdev333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для W3C Schema делается так:
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION,
"ххххх.xsd");


для dtd - ну не знам, возможно что-то подобное
...
Рейтинг: 0 / 0
java-xml-dtd
    #33131721
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно для DTD!
...
Рейтинг: 0 / 0
java-xml-dtd
    #33132390
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать для xsd понимаю.
static final String JAXP_SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource";
...
SAXParser saxParser = spf.newSAXParser();
...
saxParser.setProperty(JAXP_SCHEMA_SOURCE, new File(schemaSource));

Аналогичный метод для dtd существует? Если нет то как обойди это ограничение чтобы провирять с файла dtd.
...
Рейтинг: 0 / 0
java-xml-dtd
    #33132813
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
// Use the validating parser
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
     try  {
        ...
dtd указывается в самой xml, а чтобы parser произвёл валидацию надо сделать так:
...
Рейтинг: 0 / 0
java-xml-dtd
    #33133811
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой вопрос.

Програмно создаю xml. В XML нужно добавить описание DTD.Толко DTD не ссылку на отдельный файл, а в сам файл xml.
Что должно пулучится(файл XML):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE All [
<!ELEMENT All (name, phone,email, description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<All>
<name>t1</name>
<phone>t2</phone>
<email>t3</email>
<description>t3</description>
</All>

Начало программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
DocumentBuilderFactory fact =DocumentBuilderFactory.newInstance();
DocumentBuilder builder= null ;
 try {
builder=fact.newDocumentBuilder();
} catch (ParserConfigurationException ex){
ex.printStackTrace();
}
Document doc=builder.newDocument();

Text txtName=doc.createTextNode("t1");
Text txtPhone=doc.createTextNode("t2");
Text txtEmail=doc.createTextNode("t3");
Text txtDescription=doc.createTextNode("t4");

Element root=doc.createElement("All");
Element elementName=doc.createElement("name");
Element elementPhone=doc.createElement("phone");
Element elementEmail=doc.createElement("email");
Element elementDescription=doc.createElement("description");

elementName.appendChild(txtName);
elementEmail.appendChild(txtEmail);
elementPhone.appendChild(txtPhone);
elementDescription.appendChild(txtDescription);

root.appendChild(elementName);
root.appendChild(elementPhone);
root.appendChild(elementEmail);
root.appendChild(elementDescription);
doc.appendChild(root);

Transformer t=TransformerFactory.newInstance().newTransformer();
t.transform( new  DOMSource(doc,  new  StreamResult( new  FileOutputStream( new  File("myfile.xml"))));

Как добавить DTD?
...
Рейтинг: 0 / 0
java-xml-dtd
    #33134004
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
java-xml-dtd
    #33134076
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В задании написана у меня:
System requirements: JDK 1.3.x, Apache Xalan/Xerces

dom4j не входит туда?
...
Рейтинг: 0 / 0
java-xml-dtd
    #33134139
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svbydom4j не входит туда?

Нет, это http://dom4j.org/
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / java-xml-dtd
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]