[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 メーリングリストの案内