Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j: добавить встроенный DTD / 5 сообщений из 5, страница 1 из 1
17.06.2005, 14:11
    #33121911
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j: добавить встроенный DTD
Требуется получить примерно следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE titles [
<!ELEMENT description (#PCDATA)>
<!ELEMENT language (name)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT title (name, description, text)>
<!ELEMENT titles (language, title+)>
]>
<titles>
  <language>
    <name>English</name>
  </language>
  <title>
    <name>Button.Add</name>
    <description>Add button caption</description>
    <text>Add</text>
  </title>
</titles>

Каким образом в dom4j задается подобный DOCTYPE?
...
Рейтинг: 0 / 0
17.06.2005, 14:38
    #33122005
XM
XM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j: добавить встроенный DTD
Код: 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.
34.
 import  org.dom4j.*;
 import  org.dom4j.io.*;
 import  org.dom4j.dtd.*;
 import  org.dom4j.tree.*;
 import  java.io.*;
 import  java.util.*;
 public   class  t {
         public   static   void  main(String[] arg)  throws  Exception{
                Document doc=DocumentHelper.createDocument();
                DefaultDocumentType docType= new  DefaultDocumentType("titles", "titles.dtd");
                ArrayList list= new  ArrayList();
                list.add( new  ElementDecl("description", "(#PCDATA)"));
                list.add( new  ElementDecl("language", "(name)"));
                list.add( new  ElementDecl("text", "(#PCDATA)"));
                list.add( new  ElementDecl("name", "(#PCDATA)"));
                list.add( new  ElementDecl("title", "(name, description, text)"));
                list.add( new  ElementDecl("titles", "(language, title+)"));
                docType.setInternalDeclarations(list);

                doc.setDocType(docType);
                Element titles=doc.addElement("titles");
                titles.addElement("language").addElement("name").setText("English");
                Element title=titles.addElement("title");
                title.addElement("name").setText("Button.Add");
                title.addElement("description").setText("Add button caption");
                title.addElement("text").setText("Add");

                Writer w= new  OutputStreamWriter( new  FileOutputStream(arg[ 0 ]), "UTF-8");
                OutputFormat format= new  OutputFormat("  ", true, "UTF-8");
                XMLWriter xw= new  XMLWriter(w, format);
                xw.write(doc);
                w.close();
        }
}
Оно?
...
Рейтинг: 0 / 0
17.06.2005, 14:44
    #33122023
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j: добавить встроенный DTD
XM
> Оно?


Ага, оно, спасибо.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
17.06.2005, 15:35
    #33122172
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j: добавить встроенный DTD
Только вот образуется следующая строка:

Код: plaintext
<!DOCTYPE titles SYSTEM "titles.dtd" [

а хотелось бы:

Код: plaintext
<!DOCTYPE titles [
...
Рейтинг: 0 / 0
17.06.2005, 15:48
    #33122206
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
dom4j: добавить встроенный DTD
Ага, дошло:

Код: plaintext
1.
DocumentType docType =  new  DefaultDocumentType("titles", "");

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / dom4j: добавить встроенный DTD / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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