【问题标题】:Is it possible to validate XML against schemas present in that XML file using Java?是否可以使用 Java 针对该 XML 文件中存在的模式验证 XML?
【发布时间】:2016-02-10 22:45:19
【问题描述】:

所以我有一个 XML,它已经具有像这样在根标记中指定的所有模式

<Waybill xmlns="urn:some:uri1"
     xmlns:cac="urn:some:uri2"
     xmlns:cbc="urn:some:uri3"
     xmlns:ext="urn:some:uri4" xmlns:xxx="http://some.url.com">

是否可以在 Java 代码中针对这些内容验证我的 XML,这样我就不必在 Java 代码中再次重复它们? 到目前为止,我发现的所有示例都要求您在代码中明确指定 url

【问题讨论】:

  • 我的 XML 有点生疏,但这些只是名称空间。 URI 的真正含义不仅仅是一个唯一的字符串,而且它们绝对不是模式。 Here's an XML schema.
  • cac 或 cbc 在这种情况下是一个命名空间,但 URI 指向模式,不是吗?至少当我打开 URI 指向的文件时,它包含另一个以 w3.org/2001/XMLSchema" ... 开头的 XML 文件
  • plus Intellij Idea 实际上会根据顶部列出的那些模式验证 XML,并强调我在 XML 中所做的任何有趣的更改
  • Intellij 是 80% 的魔法。
  • 试试这个:docs.oracle.com/javase/7/docs/api/javax/xml/parsers/… 可能还需要使用 setNamespaceAware 属性。 DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); dbf.setValidating(true) DocumentBuilder builder=factory.newDocumentBuilder();文档 doc=builder.parse(new File(filename));

标签: java xml


【解决方案1】:

试试这个:Validating XML against XSD

神奇之处似乎在于:XMLConstants.W3C_XML_SCHEMA_NS_URI

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-17
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2012-12-01
    相关资源
    最近更新 更多