我有一個非常簡單的類,我想以XML形式傳輸。接受的XML格式是由name屬性和字符串值序列組成的字段列表。我可以標註我的課讓我能:如何將簡單Java類的字段名映射爲名稱/值對序列
- 使用類名作爲XML實體的屬性「類型」
- 使用類的字段的XML序列字段的名稱作爲屬性「名」?
什麼是推薦的方式?這個例子類問題:
class MyEntityType {
public List<String> myField1; // = {"A", "B"}
public List<String> myField2; // = {"C", "D"}
}
以XML格式:
<Entity type="MyEntityType">
<Fields>
<Field name="myField1">
<Value>A</Value>
<Value>B</Value
</Field>
<Field name="myField2">
<Value>C</Value>
<Value>D</Value>
</Field>
</Fields>
</Entity>
我想什麼來避免被其聲明一個Field類,並把他們的名單在我的對象,因爲我想要執行一組特定的必填字段。
class MyEntityType {
public static class Field {
String name;
String values
}
public List<Fields> fields;
}
出於完整性這些都是支持的架構:
<xs:complexType name="EntityComplexType" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:sequence>
<xs:element name="Fields" type="FieldsComplexType" />
</xs:sequence>
<xs:attribute name="Type" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="FieldsComplexType" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:sequence>
<xs:element name="Field" type="FieldComplexType" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="FieldComplexType" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:sequence>
<xs:element name="Value" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Alias" type="xs:string" use="optional" />
<xs:attribute name="ReferenceValue" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" use="required" />
</xs:complexType>
您的XML Schema文件與XML示例不匹配。 – laune