01: /*
02: * The contents of this file are subject to the terms
03: * of the Common Development and Distribution License
04: * (the "License"). You may not use this file except
05: * in compliance with the License.
06: *
07: * You can obtain a copy of the license at
08: * https://jwsdp.dev.java.net/CDDLv1.0.html
09: * See the License for the specific language governing
10: * permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL
13: * HEADER in each file and include the License file at
14: * https://jwsdp.dev.java.net/CDDLv1.0.html If applicable,
15: * add the following below this CDDL HEADER, with the
16: * fields enclosed by brackets "[]" replaced with your
17: * own identifying information: Portions Copyright [yyyy]
18: * [name of copyright owner]
19: */
20:
21: package com.sun.xml.txw2.annotation;
22:
23: import com.sun.xml.txw2.TypedXmlWriter;
24:
25: import java.lang.annotation.Retention;
26: import java.lang.annotation.Target;
27:
28: import static java.lang.annotation.ElementType.METHOD;
29: import static java.lang.annotation.RetentionPolicy.RUNTIME;
30:
31: /**
32: * Specifies that the invocation of the method will produce an attribute.
33: *
34: * <p>
35: * The method signature has to match the form <tt>R foo(DT1,DT2,..)</tt>
36: *
37: * <p>
38: * R is either <tt>void</tt> or the type to which the interface that declares
39: * this method is assignable. In the case of the latter, the method will return
40: * <tt>this</tt> object, allowing you to chain the multiple attribute method
41: * invocations like {@link StringBuffer}.
42: *
43: * <p>
44: * DTi must be datatype objects.
45: *
46: * <p>
47: * When this method is called, a new attribute is added to the current element,
48: * whose value is whitespace-separated text from each of the datatype objects.
49: *
50: * @author Kohsuke Kawaguchi
51: */
52: @Retention(RUNTIME)
53: @Target({METHOD})
54: public @interface XmlAttribute {
55: /**
56: * The local name of the attribute.
57: *
58: * <p>
59: * If left unspecified, the method name is used as the attribute name.
60: *
61: */
62: String value() default "";
63:
64: /**
65: * The namespace URI of the attribute.
66: */
67: String ns() default "";
68: }
|