如何在解析时忽略不在XSD架构中的元素

时间:2014-12-29 10:49:32

标签: java xml validation parsing xsd

我在java中要求解析XML并跳过未在XSD架构中定义的任何标记。换句话说,只解析Schema中的元素,而不通过验证错误忽略其他元素。 只有在XSD中找到的元素具有不同的数据类型......等等时才会存在验证错误

**非常简单的架构: - **  root包含x,y,z所有字符串。

示例1

<root>
    <x>anyvalue</x>
    <y>anyvalue</y>
    <z>anyvalue</z>
</root>

结果1

<root>
    <x>anyvalue</x>
    <y>anyvalue</y>
    <z>anyvalue</z>
</root>

示例2: -

<root>
    <x>anyvalue</x>
    <notdefined>anyvalue</notdefined>
    <z>anyvalue</z>
</root>

结果2: -

<root>
    <x>anyvalue</x>
    <z>anyvalue</z>
</root>

示例3: -

<root>
    <notdefined>anyvalue</notdefined>
    <x>anyvalue</x>
    <z>anyvalue</z>
</root>

结果3: -

<root>
    <x>anyvalue</x>
    <z>anyvalue</z>
</root>

1 个答案:

答案 0 :(得分:1)

如果您正在编写模式,请使用带有processContents =“skip”或processContent =“lax”的通配符,以确保未声明的元素不会产生有效性错误。

如果您正在使用预先存在的架构,那么请检查您的解析器/验证器是否允许您过滤您看到的错误,或者从预先存在的架构中获取辅助架构。使用通配符可以使辅助模式中的内容有效,即使它们在主模式中无效。