01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: */
19: package javax.xml.soap;
20:
21: /**
22: * A representation of an XML name. This interface provides methods for getting the local and
23: * namespace-qualified names and also for getting the prefix associated with the namespace for the
24: * name. It is also possible to get the URI of the namespace.
25: * <p/>
26: * The following is an example of a namespace declaration in an element. <PRE>
27: * <wombat:GetLastTradePrice xmlns:wombat="http://www.wombat.org/trader"> </PRE> ("xmlns"
28: * stands for "XML namespace".) The following shows what the methods in the <code>Name</code>
29: * interface will return. <UL> <LI><code>getQualifiedName</code> will return "prefix:LocalName" =
30: * "WOMBAT:GetLastTradePrice" <LI><code>getURI</code> will return "http://www.wombat.org/trader"
31: * <LI><code>getLocalName</code> will return "GetLastTracePrice" <LI><code>getPrefix</code> will
32: * return "WOMBAT" </UL>
33: * <p/>
34: * XML namespaces are used to disambiguate SOAP identifiers from application-specific identifiers.
35: * <p/>
36: * <code>Name</code> objects are created using the method <code>SOAPEnvelope.createName</code>,
37: * which has two versions. One method creates <code>Name</code> objects with a local name, a
38: * namespace prefix, and a namespace URI. and the second creates <code>Name</code> objects with just
39: * a local name. The following line of code, in which <i>se</i> is a <code>SOAPEnvelope</code>
40: * object, creates a new <code>Name</code> object with all three. <PRE> Name name =
41: * se.createName("GetLastTradePrice", "WOMBAT", "http://www.wombat.org/trader"); </PRE> The
42: * following line of code gives an example of how a <code>Name</code> object can be used. The
43: * variable <i>element</i> is a <code>SOAPElement</code> object. This code creates a new
44: * <code>SOAPElement</code> object with the given name and adds it to <i>element</i>. <PRE>
45: * element.addChildElement(name); </PRE>
46: */
47: public interface Name {
48:
49: /**
50: * Gets the local name part of the XML name that this <code>Name</code> object represents.
51: *
52: * @return a string giving the local name
53: */
54: public abstract String getLocalName();
55:
56: /**
57: * Gets the namespace-qualified name of the XML name that this <code>Name</code> object
58: * represents.
59: *
60: * @return the namespace-qualified name as a string
61: */
62: public abstract String getQualifiedName();
63:
64: /**
65: * Returns the prefix associated with the namespace for the XML name that this <code>Name</code>
66: * object represents.
67: *
68: * @return the prefix as a string
69: */
70: public abstract String getPrefix();
71:
72: /**
73: * Returns the URI of the namespace for the XML name that this <code>Name</code> object
74: * represents.
75: *
76: * @return the URI as a string
77: */
78: public abstract String getURI();
79: }
|