org.apache.axis.wsdl.symbolTable
Class Utils
public
class
Utils
extends Object
This class contains static utility methods for the emitter.
Author: Rich Scheuerle (scheu@us.ibm.com) Tom Jordahl (tomj@macromedia.com)
Method Summary |
static String | genQNameAttributeString(QName qname, String prefix)
Generate an XML prefixed attribute value with a corresponding xmlns
declaration for the prefix. |
static String | genQNameAttributeStringWithLastLocalPart(QName qname, String prefix) |
static String | getAttribute(Node node, String attr)
Given a node, return the value of the given attribute.
|
static Vector | getAttributesWithLocalName(Node node, String localName)
Given a node, return the attributes that have the specified local name.
|
static HashSet | getDerivedTypes(TypeEntry type, SymbolTable symbolTable)
This method returns a set of all types that are derived
from this type via an extension of a complexType
|
static String | getLastLocalPart(String localPart) |
static QName[] | getMemberTypeQNames(Node node)
Method getMemberTypeQNames
|
protected static HashSet | getNestedTypes(TypeEntry type, SymbolTable symbolTable, boolean derivedFlag)
This method returns a set of all the nested types.
|
static QName | getNodeNameQName(Node node)
XML nodes may have a name attribute.
|
static QName | getNodeQName(Node node)
An xml element may have a name.
|
static QName | getQNameFromPrefixedName(Node node, String prefixedName)
Convert a prefixed name into a qname
|
static String | getScopedAttribute(Node node, String attr)
Given a node, return the value of the given attribute.
|
static QName | getTypeQName(Node node, BooleanHolder forElement, boolean ignoreMaxOccurs)
An XML element or attribute node has several ways of
identifying the type of the element or attribute:
- use the type attribute to reference a complexType/simpleType
- use the ref attribute to reference another element, group or attributeGroup
- use of an anonymous type (i.e. a nested type underneath itself)
- a wsdl:part can use the element attribute.
|
public static String genQNameAttributeString(
QName qname, String prefix)
Generate an XML prefixed attribute value with a corresponding xmlns
declaration for the prefix. If there is no namespace,
don't prefix the name or emit the xmlns attribute.
Caller should provide the enclosing quotes.
Usage: println("name=\"" + genXMLQNameString(qname, "foo") + "\""
Parameters: qname prefix
Returns:
public static String genQNameAttributeStringWithLastLocalPart(
QName qname, String prefix)
public static String getAttribute(Node node, String attr)
Given a node, return the value of the given attribute.
Returns null if the attribute is not found
Parameters: node attr
Returns:
public static Vector getAttributesWithLocalName(Node node, String localName)
Given a node, return the attributes that have the specified local name.
Returns null if the attribute is not found
Parameters: node localName
Returns:
This method returns a set of all types that are derived
from this type via an extension of a complexType
Parameters: type symbolTable
Returns:
public static String getLastLocalPart(String localPart)
public static
QName[] getMemberTypeQNames(Node node)
Method getMemberTypeQNames
Parameters: node
Returns:
protected static HashSet getNestedTypes(
TypeEntry type,
SymbolTable symbolTable, boolean derivedFlag)
This method returns a set of all the nested types.
Nested types are types declared within this TypeEntry (or descendents)
plus any extended types and the extended type nested types
The elements of the returned HashSet are Types.
Parameters: type is the type entry to consider symbolTable is the symbolTable derivedFlag should be set if all dependendent derived types should also be
returned.
Returns:
public static
QName getNodeNameQName(Node node)
XML nodes may have a name attribute.
For example <.element name="foo" type="b:bar">.
has the name attribute value "foo". This routine gets the QName of the name attribute value.
Parameters: node
Returns:
public static
QName getNodeQName(Node node)
An xml element may have a name.
For example <.element name="foo" type="b:bar">.
has the name "element". This routine gets the full QName of the element.
Parameters: node
Returns:
public static
QName getQNameFromPrefixedName(Node node, String prefixedName)
Convert a prefixed name into a qname
Parameters: node prefixedName
Returns:
public static String getScopedAttribute(Node node, String attr)
Given a node, return the value of the given attribute.
If the attribute does not exist, searching continues through ancestor nodes until found.
This method is useful for finding attributes that pertain to a group of contained
nodes (i.e. xlmns, xmlns:tns, targetNamespace, name)
Parameters: node attr
Returns:
public static
QName getTypeQName(Node node,
BooleanHolder forElement, boolean ignoreMaxOccurs)
An XML element or attribute node has several ways of
identifying the type of the element or attribute:
- use the type attribute to reference a complexType/simpleType
- use the ref attribute to reference another element, group or attributeGroup
- use of an anonymous type (i.e. a nested type underneath itself)
- a wsdl:part can use the element attribute.
- an extension can use the base attribute.
This routine returns a QName representing this "type".
The forElement value is also returned to indicate whether the
QName represents an element (i.e. obtained using the ref attribute)
or a type.
Other attributes affect the QName that is returned.
If the "minOccurs" and "maxOccurs" are set such that the
type is a collection of "types", then an artificial qname is
returned to represent the collection.
Parameters: node of the reference forElement output parameter is set to true if QName is for an element
(i.e. ref= or element= attribute was used). ignoreMaxOccurs indicates whether minOccurs/maxOccurs affects the QName
Returns: QName representing the type of this element
Copyright B) 2005 Apache Web Services Project. All Rights Reserved.