XmlTransient (Java EE 5)

Java EE API


javax.xml.bind.annotation Annotation Type XmlTransient


@Retention(value=RUNTIME)
@Target(value={FIELD,METHOD})
public @interface XmlTransient

Implements: Annotation
@Retention(value=RUNTIME)
@Target(value={FIELD, METHOD})

阻止将 JavaBean 属性映射到 XML 表示形式。

@XmlTransient 注释对于解决 JavaBean 属性名称与字段名称之间的名称冲突,或者用于防止字段/属性的映射。当取消首字母大写的 JavaBean 属性名称与字段名称相同时,就可能发生名称冲突。如果 JavaBean 属性引用该字段,那么可以通过防止映射使用 @XmlTransient 注释的字段或 JavaBean 属性来解决名称冲突。

用法

@XmlTransient 注释可以与以下程序元素一起使用:

  • JavaBean 属性
  • 字段

@XmlTransient 与所有其他定义于 JAXB 的注释互相排斥。

有关其他公共消息,请参阅 javax.xml.bind.package javadoc 中的“包规范”。

示例:解决 JavaBean 属性与字段名称之间的名称冲突

   // Example: Code fragment
   public class USAddress {

       // The field name "name" collides with the property name 
       // obtained by bean decapitalization of getName() below
       @XmlTransient public String name;

       String getName() {..};
       String setName() {..};
   }

    
   <!-- Example: XML Schema fragment -->
   <xs:complexType name="USAddress">
     <xs:sequence>
       <xs:element name="name" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 
英文文档:

Prevents the mapping of a JavaBean property to XML representation.

The @XmlTransient annotation is useful for resolving name collisions between a JavaBean property name and a field name or preventing the mapping of a field/property. A name collision can occur when the decapitalized JavaBean property name and a field name are the same. If the JavaBean property refers to the field, then the name collision can be resolved by preventing the mapping of either the field or the JavaBean property using the @XmlTransient annotation.

Usage

The @XmlTransient annotation can be used with the following program elements:

  • a JavaBean property
  • field

@XmlTransientis mutually exclusive with all other JAXB defined annotations.

See "Package Specification" in javax.xml.bind.package javadoc for additional common information.

Example: Resolve name collision between JavaBean property and field name

   // Example: Code fragment
   public class USAddress {

       // The field name "name" collides with the property name 
       // obtained by bean decapitalization of getName() below
       @XmlTransient public String name;

       String getName() {..};
       String setName() {..};
   }

    
   <!-- Example: XML Schema fragment -->
   <xs:complexType name="USAddress">
     <xs:sequence>
       <xs:element name="name" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 

Since:
JAXB2.0
Version:
$Revision: 1.8 $
Author:
Sekhar Vajjhala, Sun Microsystems, Inc.



Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

一看就知道只有菜鸟才干这么无知的事啦。

PS : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!