为给定的XML模式生成Stax Writer API

zed*_*doo 5 xml stax xsd

我有一个XML模式。我在Stax上写了一层薄薄的文字,以允许“即时”生成符合条件的文档(我不需要类似dom的API,我需要的空间很小/没有空间)。该API具有如下方法:

writeCar(String manufacturer)
writeWheels(String manufacturer, boolean winter)
...
Run Code Online (Sandbox Code Playgroud)

它们执行状态检查,然后调用适当的stax方法。

一个特殊之处是没有writeEndXXX方法(我的架构是明确的,因此您无法在wheel元素内放置任何汽车。这意味着我总是知道何时关闭打开的元素)。唯一的例外是,有一个flush()将写入所有未决的结束标记。

writeCar(..)   // <car>
writeWheels(..) // inside the car <wheels>
writeCar(..) // close the pending tags </wheels></car> and new car <car>
flush() // this writes all pending close tags
Run Code Online (Sandbox Code Playgroud)

这很好。现在,模式发展了:)

我现在正在手动更新API。因为我很道德,所以我真的不想这样做:)。给定XML模式定义后,是否有可用的工具可以生成此类API(或类似的API)?

Xst*_*ian 0

基于JAXB

  1. 从 XML 生成 XSD。您也可以使用此链接或其他工具可以正常工作。
  2. 通过 XJC 从 XSD 生成类,Maven 插件请参见此处
  3. 使用任何 JAXB 教程执行编组和解组以读取和写入 xml。看这里

我建议你也这些链接

我希望它能帮助你