【问题标题】:Parsing a XML string using JAXB使用 JAXB 解析 XML 字符串
【发布时间】:2014-11-21 07:42:36
【问题描述】:

我正在使用JAXB 解析器将XML 转换为Java 对象。我已经从XML 架构(XSD) 生成了JAXB 文件。

在传递 XML 字符串时,我定义了 xsi:noNamespaceSchemaLocation='Typetest.xsd'。因此,这将针对 XML 架构 Typetest.xsd 验证 XML 文档。

但我的问题是我从未定义过JAXB 解析器获取架构文件的路径。

那么JAXB将如何确定路径呢?

<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="TypeTest.xsd">
</book>

【问题讨论】:

    标签: xml xml-parsing jaxb xsd xml-serialization


    【解决方案1】:

    要对unmarshal 操作启用验证,您必须在Unmarshaller 上设置Schema 的实例。

    以下是我博客上一个示例的链接:

    【讨论】:

    • 感谢您的回复。我对架构的验证没有任何问题。但我只是好奇解组器实际上是从哪里找到路径的?从我的代码中,我只是将 xml 字符串传递给 unmarshaller。你能用一个例子来解释一下吗?
    • @jegadees - Unmarshaller 找不到路径。您需要创建Schema 的实例并将其设置在自己的Unmarshaller 上。我在答案中添加了一个示例链接。
    • 正是我正在寻找的答案..谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2016-02-05
    • 2017-05-07
    • 2015-03-25
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多