Castor:如何在其对应的映射文件中的xsd文件中映射引用

时间:2018-08-07 19:03:02

标签: xsd xml-parsing castor

我的xsd中有一个带有ref =“ infogroup”的字段。我想知道如何编写等效的映射文件,以便Castor可以解析传入的xml数据。

下面是我的示例xsd文件

<?xml version = "1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:group name="infogroup">
    <xs:sequence>
      <xs:element name="firstname" type="xs:string" />
      <xs:element name="lastname" type="xs:string" />
    </xs:sequence>
  </xs:group>

  <xs:element name="student" type="studentType" />

  <xs:complexType name="studentType">
    <xs:sequence>
      <xs:group ref="infogroup" />
      <xs:element name="marks" type="xs:integer" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

Mapping.xml文件

<?xml version="1.0"?>
<mapping>
  <class name="com.abc.sample.Student">
    <field name="infogroup" type="com.abc.sample.Infogroup">
      <bind-xml name="infogroup" node="element" reference="true" />
    </field>
    <field name="marks" type="long">
      <bind-xml name="marks" node="element" />
    </field>
  </class>
  <class name="com.abc.sample.Infogroup">
    <field name="firstname" type="string">
      <bind-xml name="firstname" node="element" />
    </field>
    <field name="lastname" type="string">
      <bind-xml name="lastname" node="element" />
    </field>
  </class>
</mapping>

下面是我的示例数据

<?xml version = "1.0"?>

<student>
  <firstname>AAA</firstname>
  <lastname>BB</lastname>
  <marks>85</marks>
</student>

即使我给定了属性reference =“ true”,它也不会解析信息组字段。预先感谢。

0 个答案:

没有答案