如何解决如何对节点元素重新排序,使其与xsd:sequence顺序匹配?
如果我正确地理解了您的问题,那么您想要的是一种“神奇的”(如简单的方式)根据外部XSD重新安排节点的方式,而不是使用一些XML API来移动节点的方式。
如果为true,那么我还不知道有任何API提供了实现此类问题的通用方法。考虑到XSD能够描述的内容模型的复杂性,它也不是一件容易的事。
在非常简单的情况下,实际上也无法解决。考虑一个非常简单的示例:想象一个由两个选择组成的内容模型,即i)序列a-b-c,ii)序列b-c-a。XML内容按c- b-a的顺序排列(根据您的要求,您要采用无效的XML并使其有效)。在此示例中,哪种方法是正确的?
当然,我并不是说这是您的情况。我只是想指出为什么据我所知没有人提出解决这一问题的办法。
如果序列下的内容模型非常琐碎,从而允许采用明确的方式来解决它,而与XML到达的顺序无关,或者XML内容始终以已知但错误的方式出现,那么您必须使用您首选的XML操作方法对其进行编码- 但我建议您不要尝试使其通用,它只是顺其自然;)…。
解决方法
有什么方法可以对Node对象中的元素进行重新排序,以使其与xsd:sequence
顺序匹配?我已阅读的文档Node.normalize
,但似乎没有执行该功能。还有什么可以做的吗?
我相信可以使用XSLT做到这一点,但这听起来像是使用XSLT的解决方案太复杂了,而且它是一个特殊的java-
xlst
解析器来执行操作,而不是拥有Java原生的东西。
还是我实际上需要编写一个复杂的函数来为我做处理?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。