9、XML验证器优化之路:从JDOM到XOM的性能飞跃

XML验证器优化之路:从JDOM到XOM的性能飞跃

1. 背景与动机

在XML处理领域,验证是确保数据正确性的关键步骤,但同时也可能成为性能瓶颈。最初,JDOM在验证方面存在一些问题,虽然经过版本3的优化,验证时间下降了约四倍,但仍存在不足。开发者认为JDOM在API设计和正确性验证上不够完善,有可能创建格式错误的文档,于是决定开发XOM。

2. XOM的诞生与第二次优化:避免重复检查

XOM以正确性优先为原则,不允许为了性能而牺牲正确性。为了提高性能,需要解决验证问题。之前JDOM版本3对 checkXMLName 方法的优化有一定效果,但开发者希望在本次优化中完全消除不必要的检查。因为如果XML输入来自已知的可靠源,就不需要重复检查。

具体来说,XML解析器在输入到达验证器之前已经进行了许多必要的检查,重复检查会降低解析速度。因此,需要为不同类型的输入使用不同的路径。当从解析器已经读取和检查过的字符串创建对象时,构造函数不应再次验证元素名称;而当从库客户端传递的字符串创建对象时,构造函数则需要验证。

JDOM开发者曾考虑过这种优化,但由于糟糕的包设计而受阻。在JDOM中, SAXBuilder 类位于 org.jdom.input 包,而 Element Document 等节点类位于 org.jdom 包,这使得所有构造函数都必须是公共的,其他客户端也能调用,可能导致生成格式错误的XML。后来JDOM 1.0引入了接受未验证输入的特殊工厂类,但这也为

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值