[Seasar-user:786] Re: DTD が効いてない件について

B isid.co.jp Yasuo Higa higa
2004年 5月 26日 (水) 13:49:23 JST


<[E-MAIL ADDRESS DELETED]> の、
   "[Seasar-user:781] DTDが効いてない件について" において、
   ""s.chinen" <[E-MAIL ADDRESS DELETED]>"さんは書きました:

ひがです。

> こんばんわ、知念です。
> 
> 以前「[Seasar-user:565] DTDの件」で話されていた
> コンポーネント定義XMLパース時にDTDが効いていない現象についてですが、
> org.seasar.framework.xml.SaxHandlerクラスにて、
> 以下のメソッドがオーバーライドされていないのが原因のようです。
> 
> org.xml.sax.ErrorHandler#error(SAXParseException)
> org.xml.sax.ErrorHandler#fatalError(SAXParseException) <= これは不要かも
> org.xml.sax.ErrorHandler#warning(SAXParseException)
> 
> org.xml.sax.helpers.DefaultHandlerのソースを確認した限りでは、
> javax.xml.parsers.SAXParser#setValidate(boolean)でtrueをセットしても、
> org.xml.sax.helpers.DefaultHandlerではerror,warningは無視している
> (fatalErrorだけはハンドリングした例外をそのままスローする)ため、
> サブクラスで適切にエラーを処理するようにオーバーライドしてやらないと
> 何も通知されてこないようです。
> 
> DTDの検証エラーについては、errorメソッドでハンドリングできました
> 
thx.
errorはそのまま例外をthrow。
warningはSystem.errに出力するように修正しておきます。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.



Seasar-user メーリングリストの案内