Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / как правельно заставить работать DTD (SAX,XML,DTD). / 3 сообщений из 3, страница 1 из 1
02.11.2006, 10:49:14
    #34099893
sysmanx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правельно заставить работать DTD (SAX,XML,DTD).
Есть код
lib\Project.java
Код: 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.
35.
36.
 package  lib;

 import  javax.xml.parsers.*;
 import  org.xml.sax.*;
 import  java.io.*;

 public   class  Project  extends  HandlerBase{

	 public   void  startElement(String name,AttributeList attributes){
		System.out.println(name);
	}

	 public   static   void  main(String arg[]){
		Project p =  new  Project();
		SAXParserFactory spf = SAXParserFactory.newInstance();
		spf.setNamespaceAware(true);
		spf.setValidating(true);
		 try {
			SAXParser sp = spf.newSAXParser();
			 try {
			      sp.parse( new  File("project.xml"),p);
			} catch (SAXException ex){
				ex.printStackTrace(System.out);
			} catch (IllegalArgumentException  ex){
				ex.printStackTrace(System.out);
			} catch (IOException ex){
				ex.printStackTrace(System.out);
			}
		} catch (ParserConfigurationException ex){
			ex.printStackTrace(System.out);
		} catch (SAXException ex){
			ex.printStackTrace(System.out);
		}

	}
}
есть два файла :
project.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "project.dtd">
<project>
 < class >
  <www/>
  <attribute/>
 </ class >
</project>
и project.dtd
Код: plaintext
1.
2.
<!ELEMENT project ( class )*>
<!ELEMENT  class  (attribute)*>
<!ELEMENT  class  (#PCDATA)>

Вывод программы:
Код: plaintext
1.
2.
3.
4.
project
 class 
www
attribute
Вопрос, почему не падает, ведь в DTD описон у class есть только attribute.
...
Рейтинг: 0 / 0
02.11.2006, 11:27:02
    #34100084
sysmanx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правельно заставить работать DTD (SAX,XML,DTD).
сори:
и project.dtd
<!ELEMENT project (class)*>
<!ELEMENT class (attribute)*>
<!ELEMENT attribute (#PCDATA)>
...
Рейтинг: 0 / 0
02.11.2006, 11:42:14
    #34100159
sysmanx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как правельно заставить работать DTD (SAX,XML,DTD).
Зделал.
Надо просто перегрузить интерфейс ErrorHandler, который есть у класса HandlerBase.

Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
 package  lib;

 import  javax.xml.parsers.*;
 import  org.xml.sax.*;
 import  java.io.*;

 public   class  Project  extends  HandlerBase{

	 public   void  error(SAXParseException ex) throws  SAXException{
		 throw  ex;
	}
	 public   void  fatalError(SAXParseException ex) throws  SAXException{
		 throw  ex;
	}
	 public   void  warning(SAXParseException ex) throws  SAXException{
		 throw  ex;
	}

	 public   void  startElement(String name,AttributeList attributes){
		System.out.println(name);
	}

	 public   static   void  main(String arg[]){
		Project p =  new  Project();
		SAXParserFactory spf = SAXParserFactory.newInstance();
		spf.setNamespaceAware(true);
		spf.setValidating(true);
		 try {
			SAXParser sp = spf.newSAXParser();
			 try {
				sp.parse( new  File("project.xml"),p);
			} catch (SAXException ex){
				ex.printStackTrace(System.out);
			} catch (IllegalArgumentException  ex){
				ex.printStackTrace(System.out);
			} catch (IOException ex){
				ex.printStackTrace(System.out);
			}
		} catch (ParserConfigurationException ex){
			ex.printStackTrace(System.out);
		} catch (SAXException ex){
			ex.printStackTrace(System.out);
		}

	}
}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / как правельно заставить работать DTD (SAX,XML,DTD). / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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