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

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

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


для dtd - ну не знам, возможно что-то подобное
...
Рейтинг: 0 / 0
23.06.2005, 16:24
    #33131721
svby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
Нужно для DTD!
...
Рейтинг: 0 / 0
24.06.2005, 01:11
    #33132390
svby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
Как сделать для 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
24.06.2005, 10:55
    #33132813
johanna
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
Код: plaintext
1.
2.
3.
4.
// Use the validating parser
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
     try  {
        ...
dtd указывается в самой xml, а чтобы parser произвёл валидацию надо сделать так:
...
Рейтинг: 0 / 0
24.06.2005, 15:40
    #33133811
svby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
Такой вопрос.

Програмно создаю 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
24.06.2005, 16:44
    #33134004
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
...
Рейтинг: 0 / 0
24.06.2005, 17:17
    #33134076
svby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java-xml-dtd
В задании написана у меня:
System requirements: JDK 1.3.x, Apache Xalan/Xerces

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

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


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