Java XML 应用法度应用本地 Catalog
添加时间:2013-8-6 点击量:
XML 声明的DTD、Schema若是位于收集,解析时,解析器可能无法获取,导致解析失败
解决办法是应用XML Catalog,解析器向它恳求资料,而XML Catalog返回的资料是否位于收集或本地对解析器是透明的
1,Sax 解析
Sax解析时应用 XML Catalog的API是:
- org.xml.sax.XMLReader.setEntityResolver()
- org.xml.sax.EntityResolver
- org.xml.sax.ext.EntityResolver2
EntityResolver 用于 Sax 1.0 解析器,EntityResolver2 扩大 EntityResolver,用于 Sax 2 解析器。若是解析器是Sax 2解析器且指定 EntityResolver2 对象,将会应用EntityResolver2 接口办法,不然应用 EntityResolver 接口办法
2,DOM 解析
首要API:
- javax.xml.parsers.DocumentBuilder.setEntityResolver()
- javax.xml.parsers.DocumentBuilderFactory.setSchema()
- javax.xml.validation.Schema
- javax.xml.validation.SchemaFactory.setResourceResolver()
- org.w3c.xml.ls.LSResourceResolver
不久不多说
我们永远不要期待别人的拯救,只有自己才能升华自己。自己已准备好了多少容量,方能吸引对等的人与我们相遇,否则再美好的人出现、再动人的事情降临身边,我们也没有能量去理解与珍惜,终将擦肩而过。—— 姚谦《品味》
XML 声明的DTD、Schema若是位于收集,解析时,解析器可能无法获取,导致解析失败
解决办法是应用XML Catalog,解析器向它恳求资料,而XML Catalog返回的资料是否位于收集或本地对解析器是透明的
1,Sax 解析
Sax解析时应用 XML Catalog的API是:
- org.xml.sax.XMLReader.setEntityResolver()
- org.xml.sax.EntityResolver
- org.xml.sax.ext.EntityResolver2
EntityResolver 用于 Sax 1.0 解析器,EntityResolver2 扩大 EntityResolver,用于 Sax 2 解析器。若是解析器是Sax 2解析器且指定 EntityResolver2 对象,将会应用EntityResolver2 接口办法,不然应用 EntityResolver 接口办法
2,DOM 解析
首要API:
- javax.xml.parsers.DocumentBuilder.setEntityResolver()
- javax.xml.parsers.DocumentBuilderFactory.setSchema()
- javax.xml.validation.Schema
- javax.xml.validation.SchemaFactory.setResourceResolver()
- org.w3c.xml.ls.LSResourceResolver
不久不多说
我们永远不要期待别人的拯救,只有自己才能升华自己。自己已准备好了多少容量,方能吸引对等的人与我们相遇,否则再美好的人出现、再动人的事情降临身边,我们也没有能量去理解与珍惜,终将擦肩而过。—— 姚谦《品味》