Java XML 应用程序使用本地 Catalog
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
不多说
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!