我正在寻找像dom4j这样的东西,但没有dom4j的瑕疵,例如文档不好或丢失,看似停滞的开发状态.
背景:我一直在使用和 提倡 dom4j,但是我觉得它并不完全正确,因为我知道这个库远非最佳(例如:看看XSLT相关样式表类中的方法是如何记录的;你会传递什么来运行( )作为String mode参数?)
要求:与使用 纯JDK(javax.xml和org.w3c.dom包)时相比,库应该使基本的XML处理更容易.这样的事情:
我真的很喜欢dom4j所承诺的,实际上:" 易于使用的开源库,用于处理XML,XPath和XSLT [...],完全支持DOM,SAX和JAXP. "即将推出的dom4j 2.0确实声称能解决所有问题:充分利用Java 5并添加缺少的文档.但不幸的是,如果你仔细观察:
警告:dom4j 2.0处于pre-alpha阶段.它很可能无法编译.如果它可以随机编译,很可能无法运行.如果它偶尔运行,它可能会突然爆炸.如果要使用dom4j,则需要1.6.1版.真.
......并且网站已经说了很长时间了.那么有没有一个很好的替代dom4j?请为您的首选库提供一些理由,而不是仅仅转储名称和链接.:-)
我有 VAST XML 并针对大量 2.0.1 xsd 对其进行验证。它引发以下错误:-
属性“xsi:noNamespaceSchemaLocation”不允许出现在元素“VAST”中
我的 VAST XML:-
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.0"
xsi:noNamespaceSchemaLocation="vast.xsd">
<Ad id="11267375">
<InLine>
<AdSystem version="1.0">Sample vast</AdSystem>
<AdTitle><![CDATA[AD_NFM3122HD.mov]]></AdTitle>
<Description><![CDATA[<p> </p>]]></Description>
<Creatives>
<Creative sequence="1" AdID="" id="11267375">
<Linear>
<Duration>00:00:15</Duration>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
Run Code Online (Sandbox Code Playgroud)
VAST 2.0.1.xsd - https://github.com/chrisdinn/vast/blob/master/lib/vast_2.0.1.xsd
当我xsi:noNamespaceSchemaLocation="vast.xsd">从 VAST Xml 中删除时。它运作良好。
我应该xsi:noNamespaceSchemaLocation="vast.xsd">肯定需要使用这个。它有什么用?
我必须在其中使用的 XSD 文件名是什么而不是“vast.xsd”?
我在 java 1.8 上运行,这是我的堆栈跟踪
org.xml.sax.SAXParseException; cvc-complex-type.3.2.2: Attribute 'xsi:noNamespaceSchemaLocation' is not allowed to appear in element 'VAST'.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:452) …Run Code Online (Sandbox Code Playgroud)