Java 如何从XSD和规则驱动XML生成?

Java 如何从XSD和规则驱动XML生成?,java,xml,xslt,xpath,xsd,Java,Xml,Xslt,Xpath,Xsd,我正在寻找一种标准技术来驱动基于XSD和一组规则的XML文档的生成。基本上,我有XSD,它告诉我XML应该是什么样子,哪些元素是必需的或可选的。XSDs中没有的是一组业务规则,这些规则表示“如果该元素的值是this,那么其他元素实际上是强制的”或“如果该元素的值是this,那么应该忽略其他元素” 我想到的是处理XSD和规则(可能用XPath之类的语言表示)并调用我的代码来生成强制值。最终文档的结构将根据驱动条件的元素的值动态变化 我想我可以用XSLT做一些接近我想要的事情。我将使用生成所有值,然

我正在寻找一种标准技术来驱动基于XSD和一组规则的XML文档的生成。基本上,我有XSD,它告诉我XML应该是什么样子,哪些元素是必需的或可选的。XSDs中没有的是一组业务规则,这些规则表示“如果该元素的值是this,那么其他元素实际上是强制的”或“如果该元素的值是this,那么应该忽略其他元素”

我想到的是处理XSD和规则(可能用XPath之类的语言表示)并调用我的代码来生成强制值。最终文档的结构将根据驱动条件的元素的值动态变化

我想我可以用XSLT做一些接近我想要的事情。我将使用生成所有值,然后使用XSLT强制执行这些条件。但在我的例子中,有些值可能需要很长时间才能生成,因此我希望避免计算不必要的值,这意味着这些值将被业务规则丢弃

这种技术存在吗?仅供参考,我正在用Java编写代码,但如果可能的话,我希望找到一种通用技术

干杯


Tom

您描述的问题可能可以由Schematron处理。它可以与XML模式一起使用,如果您已经知道XPath和XSLT,您将不会发现它很难理解。If可以基于XML模式无法实现的值和上下文指定不相关节点之间的复杂关系


可以在.

Schematron中找到的规范和许多教程看起来很有趣,但是如果我理解正确的话,这些规则用于验证已经生成的XML。我的目标是制定驱动XML生成的规则。这不一样,但如果我最终创建了自己的生成器,我可能会从schematron语言的部分内容中得到启发。