![]() |
1
4
我面临着一个类似的问题,我找到的最佳解决方案是编写自己的XJC插件。XJC插件可以访问XML模式和生成的类,因此它似乎是获取限制信息的最简单方法。我的插件向生成的类中的任何字段添加了注释,这些字段在架构中对其应用了限制。例如,一个元素
将表现为
在生成的类文件中。然后,可以使用反射从字段中提取限制信息。 创建插件的文档不是很好,但我发现了 article 有用的。看看源代码 Default Value Plugin 了解如何深入到XJC在内存中表示的XML模式和生成的类结构。这个 JAXB , XSOM 和 CodeModel API也会有所帮助。 |
![]() |
2
1
看起来XSD包含语义“指南”,而不是清晰的规则。imho如果同意XSD,不遵守它会导致违反。 如果不是这样的话,并且XSD包含一些需要解释的指导原则,我会花时间理解XSD解析API,并尝试以这种方式解决问题。在这里再发明轮子没用。 但是,我会质疑所采用的方法,并尝试在XSD内部就清晰的规则达成一致。 |
![]() |
Dave · 在XSD中,如何在元素的内容中只允许空白? 7 年前 |
![]() |
Jakub Mosakowski · Xml架构唯一性不检查唯一性 7 年前 |
![]() |
Antek · XSD中的复杂元素验证 7 年前 |
![]() |
Phil · 动态XML模式验证文档的子部分 7 年前 |
![]() |
Feres.o · 在两个对象之间生成客户端wsimport未命中链接 7 年前 |