@Retention(value=RUNTIME) @Target(value={FIELD,METHOD}) public @interface XmlIDREF
图一个JavaBean属性的XML IDREF。
保存在XML序列化一个对象图参照完整性由XML反序列化,要求对象引用是通过引用或包含适当的整理。注释@XmlID和@XmlIDREF允许自定义映射通过遏制或参考JavaBean属性的类型。
使用
的 @XmlIDREF注释可以用下面的程序元素:看到“包装规范”的额外的信息共享javax.xml.bind.package javadoc。
使用是受以下约束:
注意:如果集合项目类型或属性的类型(非集合类型)是java.lang.Object,那么实例必须包含一个属性/字段注释的@XmlID属性。
XmlElement
,XmlAttribute
,XmlList
,和XmlElements
。例子:MapJavaBean属性xs:IDREF(即通过引用而不是遏制)
/ /例如:代码片段公共类航运{@ XmlIDREF公众客户getcustomer();公共无效setcustomer(客户);的…}<!——例如:XML模式片段- >< xs:complexType名称=“航运”>< xs:复杂的内容>< xs:序列>< xs:元名称=“客户”type=“XS:IDREF”/>的…< / xs:序列>< / xs:复杂的内容>< / xs:名称>
例2:以下是一个完整的遏制与参考的例子。
/ /默认情况下,用户映射到复杂型xs:Customer公共类客户/ /MapJavaBean属性的类型xs:ID@ XmlID公共字符串getcustomerid();公共无效setcustomerid(字符串ID);/ /…未显示的其他属性}/ /默认映射为一个复合型xs:Invoice发票公共类发票参考/参考Map@ XmlIDREF公众客户getcustomer();公共无效setcustomer(客户);/ /…这里没有显示的其他属性}/ /默认情况下,航运Map复杂型xs:Shipping公共类航运{参考/参考Map@ XmlIDREF公众客户getcustomer();公共无效setcustomer(客户);}至少有一个类必须通过遏制引用客户;/ /客户实例不会整理。@ xmlelement(name=“资料”)公共课资料{默认情况下的安全壳/Map参考客户。公众客户getcustomer();默认情况下的安全壳映射引用。公共运输getshipping();默认情况下,以遏制发票/ /Map参考。getinvoice()公用发票;}<!上面的代码片段,XML Schema映射-->< xs:complexType名称=“发票”>< xs:复杂的内容>< xs:序列>< xs:元名称=“客户”type=“XS:IDREF”/>的…< / xs:序列>< / xs:复杂的内容>< / xs:名称>< xs:complexType名称=“航运”>< xs:复杂的内容>< xs:序列>< xs:元名称=“客户”type=“XS:IDREF”/>的…< / xs:序列>< / xs:复杂的内容>< / xs:名称>< xs:complexType名称=“客户”>< xs:复杂的内容>< xs:序列>的…< / xs:序列>< xs:属性名=“CustomerID”type=“XS:ID”/>< / xs:复杂的内容>< / xs:名称>< xs:complexType名称=“用户数据”>< xs:复杂的内容>< xs:序列>< xs:元名称=“客户”type=“XS:客户”/>< xs:元名称=“航运”type=“XS:航运”/>< xs:元名称=“发票”type=“XS:发票”/>< / xs:序列>< / xs:复杂的内容>< / xs:名称>< xs:元素名称“资料”type=“XS:客户数据”/><!符合上述XML模式的实例文档 <资料> <客户id =“爱丽丝”> 的…< /客户> <航运客户=“爱丽丝”> 的…< /航运> <发票客户=“爱丽丝”> 的…< /发票>< /资料> 发票客户=“爱丽丝”> 航运客户=“爱丽丝”> 客户id> 资料>
例3:映射列表重复型IDREF元
/ /代码片段公共类航运{@ XmlIDREF@ xmlelement(name =“爱丽丝”)公共列表客户;}<!“XML模式片段”>< xs:complexType名称=“航运”>< xs:序列>< xs:选择minoccurs =“0”=“maxOccurs无界”>< xs:元名称=“爱丽丝”type=“XS:IDREF”/>< / xs:选择>< / xs:序列>< / xs:名称>
例4:映射的列表,列表的元素类型的比较。
/ /代码片段公共类航运{@ XmlIDREF@ XmlElements(@ xmlelement(name=“爱丽丝”,类型为“客户类”)@ xmlelement(name=“约翰”,类型为“国际客户。班”)公共列表客户;}<!“XML模式片段”>< xs:complexType名称=“航运”>< xs:序列>< xs:选择minoccurs =“0”=“maxOccurs无界”>< xs:元名称=“爱丽丝”type=“XS:IDREF”/>< xs:元名称=“约翰”type=“XS:IDREF”/>< / xs:选择>< / xs:序列>< / xs:名称>
XmlID
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.