我是Java的新手,我有一个独特的要求。我从客户端获取xml数据,我已经定义了模式。现在,问题是客户端xml有比我拥有的模式更多的元素。怎么处理呢? 此外,有一些元素具有不同的架构,然后在架构中定义,我想将其转换为架构的形式。这是否有问题,因为架构通常用于验证?有人可以通过小例子向我概述如何处理问题吗?
答案 0 :(得分:2)
XML模式的目的是描述一组XML文档的结构。如果您的客户端发送的XML不符合您的架构,则必须满足以下三个条件之一:
客户端不正确。如果是这样,您应该拒绝他们的请求,因为它无效。
您的架构不正确。在这种情况下,您应该更正您的架构,以便准确描述请求中允许的内容。
您的架构完全描述了其他内容。在这种情况下,您应该编写另一个 描述允许请求的模式。您可能希望将与此架构匹配的文档转换为与新架构匹配的文档 - XSLT是完成此操作的绝佳工具。 我注意到你也标记了JAXB - 另一种执行转换的方法是构造两个模式的JAXB表示并自己在代码中执行转换。
这有用吗?我首先要说的是,您需要弄清楚您的XML架构在您的系统中扮演的角色,这是您在开始编写任何代码之前应该完成的设计任务。