Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Методы LexicalHandler Xerces'a / 4 сообщений из 4, страница 1 из 1
14.09.2005, 16:30
    #33269524
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Методы LexicalHandler Xerces'a
Немогу понять почему невыполняются методы интерфейса LexicalHandler. Классом SomeClass наследую методы сразу двух интерфейсов LexicalHandler, ContentHandler. Так вот методы второго замечательно обробатываются.
Кто нибуть работал с этими интерфейсами?
...
Рейтинг: 0 / 0
15.09.2005, 11:51
    #33270763
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Методы LexicalHandler Xerces'a
Может что непонятно описал? Или никто с этим неработал?
...
Рейтинг: 0 / 0
15.09.2005, 11:55
    #33270779
Методы LexicalHandler Xerces'a
Привиди простой примерчик кода, который не работает "как надо".

Может поможет...
...
Рейтинг: 0 / 0
15.09.2005, 12:49
    #33271013
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Методы LexicalHandler Xerces'a
Строю дерево XML документа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
String vendorParserClass = "org.apache.xerces.parsers.SAXParser";

XMLReader reader = XMLReaderFactory.createXMLReader(vendorParserClass);

    ContentHandler jTreeContentHandler= new  JTreeContentHandler(treeModel,base);
    ErrorHandler jTreeErrorHandler= new  JTreeErrorHandler();

   //регистрируем
    reader.setContentHandler(jTreeContentHandler);
    reader.setErrorHandler(jTreeErrorHandler);
    reader.setEntityResolver( new  SimpleEntityResolver());
    reader.setFeature("http://xml.org/sax/features/validation",true);

    InputSource inputSource =  new  InputSource(xmlURI);
    reader.parse(inputSource);

Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
 class  JTreeContentHandler  implements  ContentHandler,LexicalHandler {
     private  DefaultTreeModel treeModel;
     private  DefaultMutableTreeNode current;

     private  Locator locator;
     private  Map namespaceMapping;

     public  JTreeContentHandler(DefaultTreeModel treeModel,
                               DefaultMutableTreeNode current) {
       this .treeModel = treeModel;
       this .current = current;
       this .namespaceMapping= new  HashMap();
    }
// Все методы ContentHandler выкладывать нестану, они работают

     public   void  setDocumentLocator(Locator locator){
       this .locator=locator;
    }
     public   void  startDocument()  throws  SAXException{
    }
     public   void  endDocument ()   throws  SAXException{
    }

     public   void  processingInstruction(String target,String data)  throws  SAXException{
      DefaultMutableTreeNode pi= new  DefaultMutableTreeNode("PI (target = '"+target+"',data= '"+data+"')");
      current.add(pi);
    }
     public   void  startPrefixMapping(String prefix,String uri){
      namespaceMapping.put(uri,prefix);
    }

     public   void  characters( char [] ch, int  start, int  length){
      String s= new  String(ch,start,length);
      DefaultMutableTreeNode data= new  DefaultMutableTreeNode("Символьные данные: '"+s+"'");
      current.add(data);
    }

// Эти методы (LexicalHandler) парсером не вызываются 
     public   void  startDTD(String name,String publicID,String systemID)  throws  SAXException{
      JOptionPane.showMessageDialog( null ,"DTD");
      DefaultMutableTreeNode dtdReference= new  DefaultMutableTreeNode("DTD для '"+name+"'");
       if (publicID!= null ){
        DefaultMutableTreeNode publicIDNode= new  DefaultMutableTreeNode("Публичный идентификатор: '"+publicID+"'");
        dtdReference.add(publicIDNode);
      }
       if (systemID!= null ){
        DefaultMutableTreeNode systemIDNode= new  DefaultMutableTreeNode("Системный ID: '"+systemID+"'");
        dtdReference.add(systemIDNode);
      }
      current.add(dtdReference);
    }

     public   void  endDTD()  throws  SAXException{
    }

     public   void  startEntity(String name) throws  SAXException{
     DefaultMutableTreeNode entity=  new  DefaultMutableTreeNode("Сущность: '"+name+"'");
     current.add(entity);
     current=entity;
    }
     public   void  endEntity(String name)  throws  SAXException{
      current=(DefaultMutableTreeNode)current.getParent();
    }

     public   void  startCDATA()  throws  SAXException{
      DefaultMutableTreeNode cdata=  new  DefaultMutableTreeNode("Секция CDATA");
      current.add(cdata);
      current=cdata;
    }
     public   void  endCDATA()  throws  SAXException{
      current=(DefaultMutableTreeNode)current.getParent();
    }

     public   void  comment( char [] ch,  int  start, int  length)  throws  SAXException{
      String comment= new  String(ch,start,length);
      DefaultMutableTreeNode commentNode=  new  DefaultMutableTreeNode(comment);
      current.add(commentNode);
    }

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


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