Package com.google.api.client.xml
Class Xml
- java.lang.Object
-
- com.google.api.client.xml.Xml
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Xml.CustomizeParser
Customizes the behavior of XML parsing.
-
Field Summary
Fields Modifier and Type Field Description private static org.xmlpull.v1.XmlPullParserFactory
factory
XML pull parser factory.static java.lang.String
MEDIA_TYPE
"application/xml; charset=utf-8"
media type used as a default for XML parsing.(package private) static java.lang.String
TEXT_CONTENT
Text content.
-
Constructor Summary
Constructors Modifier Constructor Description private
Xml()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.xmlpull.v1.XmlPullParser
createParser()
Returns a new XML pull parser.static org.xmlpull.v1.XmlSerializer
createSerializer()
Returns a new XML serializer.private static java.lang.String
getFieldName(boolean isAttribute, java.lang.String alias, java.lang.String namespace, java.lang.String name)
private static org.xmlpull.v1.XmlPullParserFactory
getParserFactory()
private static void
parseAttributeOrTextContent(java.lang.String stringValue, java.lang.reflect.Field field, java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,java.lang.Object> destinationMap, java.lang.String name)
Parses the string value of an attribute value or text content.static void
parseElement(org.xmlpull.v1.XmlPullParser parser, java.lang.Object destination, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser)
Parses an XML element using the given XML pull parser into the given destination object.private static boolean
parseElementInternal(org.xmlpull.v1.XmlPullParser parser, java.util.ArrayList<java.lang.reflect.Type> context, java.lang.Object destination, java.lang.reflect.Type valueType, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser)
Returns whether the customize parser has requested to stop or reached end of document.private static void
parseNamespacesForElement(org.xmlpull.v1.XmlPullParser parser, XmlNamespaceDictionary namespaceDictionary)
Parses the namespaces declared on the current element into the namespace dictionary.private static java.lang.Object
parseTextContentForElement(org.xmlpull.v1.XmlPullParser parser, java.util.List<java.lang.reflect.Type> context, boolean ignoreTextContent, java.lang.reflect.Type textContentType)
private static java.lang.Object
parseValue(java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.String value)
private static void
setValue(java.lang.Object value, java.lang.reflect.Field field, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,java.lang.Object> destinationMap, java.lang.String name)
Sets the value of a given field or map entry.static java.lang.String
toStringOf(java.lang.Object element)
Shows a debug string representation of an element data object of key/value pairs.
-
-
-
Field Detail
-
MEDIA_TYPE
public static final java.lang.String MEDIA_TYPE
"application/xml; charset=utf-8"
media type used as a default for XML parsing.Use
HttpMediaType.equalsIgnoreParameters(com.google.api.client.http.HttpMediaType)
for comparing media types.- Since:
- 1.10
-
TEXT_CONTENT
static final java.lang.String TEXT_CONTENT
Text content.- See Also:
- Constant Field Values
-
factory
private static org.xmlpull.v1.XmlPullParserFactory factory
XML pull parser factory.
-
-
Method Detail
-
getParserFactory
private static org.xmlpull.v1.XmlPullParserFactory getParserFactory() throws org.xmlpull.v1.XmlPullParserException
- Throws:
org.xmlpull.v1.XmlPullParserException
-
createSerializer
public static org.xmlpull.v1.XmlSerializer createSerializer()
Returns a new XML serializer.- Throws:
java.lang.IllegalArgumentException
- if encountered anXmlPullParserException
-
createParser
public static org.xmlpull.v1.XmlPullParser createParser() throws org.xmlpull.v1.XmlPullParserException
Returns a new XML pull parser.- Throws:
org.xmlpull.v1.XmlPullParserException
-
toStringOf
public static java.lang.String toStringOf(java.lang.Object element)
Shows a debug string representation of an element data object of key/value pairs.It will make up something for the element name and XML namespaces. If those are known, it is better to use
XmlNamespaceDictionary.toStringOf(String, Object)
.- Parameters:
element
- element data object of key/value pairs (GenericXml
,Map
, or any object with public fields)
-
parseAttributeOrTextContent
private static void parseAttributeOrTextContent(java.lang.String stringValue, java.lang.reflect.Field field, java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,java.lang.Object> destinationMap, java.lang.String name)
Parses the string value of an attribute value or text content.- Parameters:
stringValue
- string valuefield
- field to set ornull
if not applicablevalueType
- value type (class, parameterized type, or generic array type) ornull
for nonecontext
- context list, going from least specific to most specific type context, for example container class and its fielddestination
- destination object ornull
for nonegenericXml
- generic XML ornull
if not applicabledestinationMap
- destination map ornull
if not applicablename
- key name
-
setValue
private static void setValue(java.lang.Object value, java.lang.reflect.Field field, java.lang.Object destination, GenericXml genericXml, java.util.Map<java.lang.String,java.lang.Object> destinationMap, java.lang.String name)
Sets the value of a given field or map entry.- Parameters:
value
- valuefield
- field to set ornull
if not applicabledestination
- destination object ornull
for nonegenericXml
- generic XML ornull
if not applicabledestinationMap
- destination map ornull
if not applicablename
- key name
-
parseElement
public static void parseElement(org.xmlpull.v1.XmlPullParser parser, java.lang.Object destination, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException
Parses an XML element using the given XML pull parser into the given destination object.Requires the the current event be
XmlPullParser.START_TAG
(skipping any initialXmlPullParser.START_DOCUMENT
) of the element being parsed. At normal parsing completion, the current event will either beXmlPullParser.END_TAG
of the element being parsed, or theXmlPullParser.START_TAG
of the requestedatom:entry
.- Parameters:
parser
- XML pull parserdestination
- optional destination object to parser into ornull
to ignore XML contentnamespaceDictionary
- XML namespace dictionary to store unknown namespacescustomizeParser
- optional parser customizer ornull
for none- Throws:
java.io.IOException
org.xmlpull.v1.XmlPullParserException
-
parseElementInternal
private static boolean parseElementInternal(org.xmlpull.v1.XmlPullParser parser, java.util.ArrayList<java.lang.reflect.Type> context, java.lang.Object destination, java.lang.reflect.Type valueType, XmlNamespaceDictionary namespaceDictionary, Xml.CustomizeParser customizeParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException
Returns whether the customize parser has requested to stop or reached end of document. Otherwise, identical toparseElement(XmlPullParser, Object, XmlNamespaceDictionary, CustomizeParser)
.- Throws:
java.io.IOException
org.xmlpull.v1.XmlPullParserException
-
getFieldName
private static java.lang.String getFieldName(boolean isAttribute, java.lang.String alias, java.lang.String namespace, java.lang.String name)
-
parseTextContentForElement
private static java.lang.Object parseTextContentForElement(org.xmlpull.v1.XmlPullParser parser, java.util.List<java.lang.reflect.Type> context, boolean ignoreTextContent, java.lang.reflect.Type textContentType) throws org.xmlpull.v1.XmlPullParserException, java.io.IOException
- Throws:
org.xmlpull.v1.XmlPullParserException
java.io.IOException
-
parseValue
private static java.lang.Object parseValue(java.lang.reflect.Type valueType, java.util.List<java.lang.reflect.Type> context, java.lang.String value)
-
parseNamespacesForElement
private static void parseNamespacesForElement(org.xmlpull.v1.XmlPullParser parser, XmlNamespaceDictionary namespaceDictionary) throws org.xmlpull.v1.XmlPullParserException
Parses the namespaces declared on the current element into the namespace dictionary.- Parameters:
parser
- XML pull parsernamespaceDictionary
- namespace dictionary- Throws:
org.xmlpull.v1.XmlPullParserException
-
-