powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как правельно заставить работать DTD (SAX,XML,DTD).
3 сообщений из 3, страница 1 из 1
как правельно заставить работать DTD (SAX,XML,DTD).
    #34099893
sysmanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть код
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
как правельно заставить работать DTD (SAX,XML,DTD).
    #34100084
sysmanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сори:
и project.dtd
<!ELEMENT project (class)*>
<!ELEMENT class (attribute)*>
<!ELEMENT attribute (#PCDATA)>
...
Рейтинг: 0 / 0
как правельно заставить работать DTD (SAX,XML,DTD).
    #34100159
sysmanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зделал.
Надо просто перегрузить интерфейс 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
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / как правельно заставить работать DTD (SAX,XML,DTD).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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