这是我的 XML 内容: 我自己做了,所以我可以改变它,只是发现这个结构适合我的数据。
<root>
<someProperty>prop</someProperty>
<myObject>
<someProperty2>prop2</someProperty3>
<someProperty3>prop3</someProperty3>
<mapping>
<entry>
<key>key1</key>
<value>value1</value>
</entry>
<entry>
<key>key2</key>
<value>value2</value>
</entry>
</mapping>
</myObject>
<myObject>
<someProperty2>prop2</someProperty3>
<someProperty3>prop3</someProperty3>
<mapping>
<entry>
<key>key3</key>
<value>value3</value>
</entry>
</mapping>
</myObject>
</root>
我想在java类方面实现的是这样的:
Class 1:
class Root {
String someProperty;
List<MyObject> myObjects;
}
Class 2:
class MyObject {
String someProperty2;
String someProperty3;
Map<String, String> mapping;
}
我有点努力为我的 XML 创建 XSD 架构以正确执行反序列化。 基本上我认为我需要一个正确的 XSD 模式,以便 JAXB 可以正确生成 Java 类。 那么您能否为给定的 XML 提供正确的 XSD 架构示例?
有很多工具可以从给定的 XML 创建 XSD(例如,Oxygen 中有一个),但我不会那样做;这是一个过于复杂的解决方案。如今,一种更简单的方法是将 XML 转换为 JSON,然后从 Java 代码访问 JSON。或者使用 XSLT 3.0,您可以绕过 JSON 并将 XML 转换为可以直接从 Java 访问的映射和数组。