如何在通过 SAX Xerces 解析 XML Doc 时引用 XSD Schema 位置?
Posted
技术标签:
【中文标题】如何在通过 SAX Xerces 解析 XML Doc 时引用 XSD Schema 位置?【英文标题】:how to reference XSD Schema location while parsing XML Doc via SAX Xerces? 【发布时间】:2010-10-29 20:07:06 【问题描述】:如何在通过 SAX Xerces 解析 XML 时引用 XSD 架构位置?
>
< !-- xsi:noNamespaceSchemaLocation="F:\...\myschema_v2.5.xsd"
我必须在 XML Doc 中真正引用这个元素吗?我希望不是... -->
我也在Java代码中设置如下,不优雅,而架构位置是固定的(不适合生产) SaxParser.setProperty( "http://java.sun.com/xml/jaxp/properties/schemaSource", “F:...\myschema_v2.5.xsd” );
【问题讨论】:
【参考方案1】:在您的 jar 中包含架构并通过以下方式使用 getResourceAsStream 加载它
reader.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",
new InputSource(getClass().getResourceAsStream(xsdLocation)));
【讨论】:
【参考方案2】:我明白了。
必须如下使用,将“/com/firma/project/.../myschema_v2.5.xsd”作为参数。 不要忘记一开始路径中的 "/"。
【讨论】:
以上是关于如何在通过 SAX Xerces 解析 XML Doc 时引用 XSD Schema 位置?的主要内容,如果未能解决你的问题,请参考以下文章
如果输入文件中未指定 DTD,如何强制 SAX 解析器使用 DTD?