329 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.xml.bind.annotation
</div>
<h2 class="title" title="Annotation Type XmlElementDecl">Annotation Type XmlElementDecl</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre><a href="../../../../java/lang/annotation/Retention.html" title="annotation in java.lang.annotation">@Retention</a>(<a href="../../../../java/lang/annotation/Retention.html#value--">value</a>=<a href="../../../../java/lang/annotation/RetentionPolicy.html#RUNTIME">RUNTIME</a>)
<a href="../../../../java/lang/annotation/Target.html" title="annotation in java.lang.annotation">@Target</a>(<a href="../../../../java/lang/annotation/Target.html#value--">value</a>=<a href="../../../../java/lang/annotation/ElementType.html#METHOD">METHOD</a>)
public @interface <span class="memberNameLabel">XmlElementDecl</span></pre>
<div class="block">
<span>将工厂方法映射到XML元素。</span>
<p> <span><b>用法</b></span> </p>
<span>注释创建XML模式元素声明和返回表示元素声明的JAXBElement实例的<i>元素工厂方法</i>之间的映射。</span>
<span>通常元素工厂方法从模式生成和注释到Java包中的ObjectFactory类该包表示元素声明的目标命名空间的绑定。</span>
<span>因此,虽然注释语法允许在任何方法上使用@XmlElementDecl但语法上它的使用仅限于元素工厂方法的注释。</span>
<span>用法受以下限制:</span>
<ul>
<li> <span>包含使用@XmlElementDecl注释的元素工厂方法的类必须标记为<a href="../../../../javax/xml/bind/annotation/XmlRegistry.html" title="javax.xml.bind.annotation中的注释"><code>XmlRegistry</code></a></span> </li>
<li> <span>元素工厂方法必须将一个参数分配给<a href="../../../../java/lang/Object.html" title="java.lang中的类"><code>Object</code></a></span> </li>
</ul>
<p> <span><b>示例1</b>工厂方法注释</span> </p>
<pre> <span>// Example: code fragment
@XmlRegistry
class ObjectFactory {
@XmlElementDecl(name="foo")
JAXBElement&lt;String&gt; createFoo(String s) { ... }
}</span> </pre>
<pre> <span>&lt;!-- XML input --&gt;
&lt;foo&gt;string
// Example: code fragment corresponding to XML input
JAXBElement
<string>
o = (JAXBElement
<string>
)unmarshaller.unmarshal(aboveDocument); // print JAXBElement instance to show values System.out.println(o.getName()); // prints "{}foo" System.out.println(o.getValue()); // prints "string" System.out.println(o.getValue().getClass()); // prints "java.lang.String" &lt;!-- Example: XML schema definition --&gt; &lt;xs:element name="foo" type="xs:string"/&gt;
</string>
</string></span> </pre>
<p> <span><b>示例2</b>具有非局部作用域的元素声明</span> </p>
<p> <span>以下示例说明了在模式派生代码中的元素声明绑定中使用范围注释参数。</span> </p>
<p> <span>以下示例可能会在此javadoc的将来修订版本中替换。</span> </p>
<pre> <span>&lt;!-- Example: XML schema definition --&gt;
&lt;xs:schema&gt;
&lt;xs:complexType name="pea"&gt;
&lt;xs:choice maxOccurs="unbounded"&gt;
&lt;xs:element name="foo" type="xs:string"/&gt;
&lt;xs:element name="bar" type="xs:string"/&gt;
&lt;/xs:choice&gt;
&lt;/xs:complexType&gt;
&lt;xs:element name="foo" type="xs:int"/&gt;
&lt;/xs:schema&gt;</span> </pre>
<pre> <span>// Example: expected default binding
class Pea {
@XmlElementRefs({
@XmlElementRef(name="foo",type=JAXBElement.class)
@XmlElementRef(name="bar",type=JAXBElement.class)
})
List&lt;JAXBElement&lt;String&gt;&gt; fooOrBar;
}
@XmlRegistry
class ObjectFactory {
@XmlElementDecl(scope=Pea.class,name="foo")
JAXBElement
<string>
createPeaFoo(String s); @XmlElementDecl(scope=Pea.class,name="bar") JAXBElement
<string>
createPeaBar(String s); @XmlElementDecl(name="foo") JAXBElement
<integer>
createFoo(Integer i); }
</integer>
</string>
</string></span> </pre>
<span>没有范围createFoo和createPeaFoo将变得模糊因为它们都映射到具有相同本地名称“foo”的XML模式元素。</span>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
JAXB 2.0
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../../javax/xml/bind/annotation/XmlRegistry.html" title="javax.xml.bind.annotation中的注释"><code>XmlRegistry</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.required.element.summary">
<!-- --> </a> <h3>Required Element Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Required Element Summary table, listing required elements, and an explanation">
<caption>
<span>Required Elements</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Required Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#name--">name</a></span></code>
<div class="block">
XML元素的本地名称。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.optional.element.summary">
<!-- --> </a> <h3>Optional Element Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Optional Element Summary table, listing optional elements, and an explanation">
<caption>
<span>Optional Elements</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Optional Element and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#defaultValue--">defaultValue</a></span></code>
<div class="block">
该元素的默认值。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#namespace--">namespace</a></span></code>
<div class="block">
XML元素的命名空间名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../java/lang/Class.html" title="class in java.lang"></a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#scope--">scope</a></span></code>
<div class="block">
映射范围。
</div> </td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#substitutionHeadName--">substitutionHeadName</a></span></code>
<div class="block">
替换组头元素的XML本地名称。
</div> </td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#substitutionHeadNamespace--">substitutionHeadNamespace</a></span></code>
<div class="block">
替换组的头部XML元素的命名空间名称。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="annotation.type.element.detail">
<!-- --> </a> <h3>Element Detail</h3> <a name="name--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>name</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> name</pre>
<div class="block">
<span>XML元素的本地名称。</span>
<p> <span><b>评论者注意事项:</b>没有默认名称;</span> <span>由于注释是在工厂方法上,因此方法名称可以从工厂方法名称派生而不清楚。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#namespace--"><code>namespace()</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="scope--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>scope</h4> <pre>public abstract <a href="../../../../java/lang/Class.html" title="class in java.lang"></a> scope</pre>
<div class="block">
<span>映射范围。</span>
<p> <span>如果这不是<a href="../../../../javax/xml/bind/annotation/XmlElementDecl.GLOBAL.html" title="javax.xml.bind.annotation中的类"><code>XmlElementDecl.GLOBAL</code></a> ,那么这个元素声明映射只在指定的类中有效。</span> </p>
</div>
<dl>
<dt>
Default:
</dt>
<dd>
javax.xml.bind.annotation.XmlElementDecl.GLOBAL.class
</dd>
</dl> </li>
</ul> </li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="namespace--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>namespace</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> namespace</pre>
<div class="block">
<span>XML元素的命名空间名称。</span>
<p> <span>如果值为“## default”则该值是包含此工厂方法的类的包的名称空间名称。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#name--"><code>name()</code></a>
</dd>
</dl>
<dl>
<dt>
Default:
</dt>
<dd>
“##默认”
</dd>
</dl> </li>
</ul> </li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="substitutionHeadNamespace--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>substitutionHeadNamespace</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> substitutionHeadNamespace</pre>
<div class="block">
<span>替换组的头部XML元素的命名空间名称。</span>
<p> <span>这指定了本地名称由<tt>substitutionHeadName()指定</tt>的XML元素的命名空间名称。</span> </p>
<p> <span>如果<tt>susbtitutionHeadName()</tt>是“”,那么这个值只能是“## default”。</span> <span>但是该值被忽略,因为当<tt>susbstitutionHeadName()的</tt>值为“”时该元素不是susbtitution组的一部分。</span> </p>
<p> <span>如果<tt>susbtitutionHeadName()</tt>不是“”,值为“## default”那么命名空间名称就是映射包含类的包的类别的名称空间名称标记为<a href="../../../../javax/xml/bind/annotation/XmlRegistry.html" title="javax.xml.bind.annotation中的注释"><code>XmlRegistry</code></a></span> </p>
<p> <span>如果<tt>susbtitutionHeadName()</tt>不是“”,并且该值不是“## default”则该值是命名空间名称。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#substitutionHeadName--"><code>substitutionHeadName()</code></a>
</dd>
</dl>
<dl>
<dt>
Default:
</dt>
<dd>
“##默认”
</dd>
</dl> </li>
</ul> </li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="substitutionHeadName--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>substitutionHeadName</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> substitutionHeadName</pre>
<div class="block">
<span>替换组头元素的XML本地名称。</span>
<p> <span>如果值为“”,则此元素不是任何替换组的一部分。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../../javax/xml/bind/annotation/XmlElementDecl.html#substitutionHeadNamespace--"><code>substitutionHeadNamespace()</code></a>
</dd>
</dl>
<dl>
<dt>
Default:
</dt>
<dd>
“”
</dd>
</dl> </li>
</ul> </li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="defaultValue--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>defaultValue</h4> <pre>public abstract <a href="../../../../java/lang/String.html" title="class in java.lang">String</a> defaultValue</pre>
<div class="block">
<span>该元素的默认值。</span>
<p> <span></span> </p>
<pre> <span>''</span> </pre>
<span>被指定为该注释元素的默认值的值被用作穷人替代null以允许实现识别“无默认值”状态。</span>
</div>
<dl>
<dt>
Default:
</dt>
<dd>
“\ u0000”
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>