我在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>
答案 0 :(得分:1)
如果您正在编写模式,请使用带有processContents =“skip”或processContent =“lax”的通配符,以确保未声明的元素不会产生有效性错误。
如果您正在使用预先存在的架构,那么请检查您的解析器/验证器是否允许您过滤您看到的错误,或者从预先存在的架构中获取辅助架构。使用通配符可以使辅助模式中的内容有效,即使它们在主模式中无效。