クラス MXSerializer
- java.lang.Object
-
- org.xmlpull.mxp1_serializer.MXSerializer
-
- すべての実装されたインタフェース:
XmlSerializer
public class MXSerializer extends Object implements XmlSerializer
Implementation of XmlSerializer interface from XmlPull V1 API. This implementation is optimzied for performance and low memory footprint.Implemented features:
- FEATURE_NAMES_INTERNED - when enabled all returned names (namespaces, prefixes) will be interned and it is required that all names passed as arguments MUST be interned
- FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
Implemented properties:
- PROPERTY_SERIALIZER_INDENTATION
- PROPERTY_SERIALIZER_LINE_SEPARATOR
-
-
フィールドの概要
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 MXSerializer()
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 XmlSerializerattribute(String namespace, String name, String value)Write an attribute.voidcdsect(String text)protected voidcloseStartTag()voidcomment(String text)voiddocdecl(String text)voidendDocument()Finish writing.XmlSerializerendTag(String namespace, String name)Write end tag.protected voidensureElementsCapacity()protected voidensureNamespacesCapacity()voidentityRef(String text)voidflush()Write all pending output to the stream.intgetDepth()Returns the current depth of the element.booleangetFeature(String name)Return the current value of the feature with given name.StringgetName()Returns the name of the current element as set by startTag().StringgetNamespace()Returns the namespace URI of the current element as set by startTag().StringgetPrefix(String namespace, boolean generatePrefix)Return namespace that corresponds to given prefix If there is no prefix bound to this namespace return null but if generatePrefix is false then return generated prefix.protected StringgetPrefix(String namespace, boolean generatePrefix, boolean nonEmpty)ObjectgetProperty(String name)Look up the value of a property.WritergetWriter()voidignorableWhitespace(String text)protected StringlookupOrDeclarePrefix(String namespace)protected static Stringprintable(char ch)protected static Stringprintable(String s)simple utility method -- good for debuggingvoidprocessingInstruction(String text)protected voidrebuildIndentationBuf()For maximum efficiency when writing indents the required output is pre-computed This is internal function that recomputes buffer after user requested chnages.protected voidreset()voidsetFeature(String name, boolean state)Set feature identified by name (recommended to be URI for uniqueness).voidsetOutput(OutputStream os, String encoding)Set to use binary output stream with given encoding.voidsetOutput(Writer writer)Set the output to the given writer.voidsetPrefix(String prefix, String namespace)Binds the given prefix to the given namespace.voidsetProperty(String name, Object value)Set the value of a property.voidstartDocument(String encoding, Boolean standalone)Write <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) This method can only be called just after setOutput.XmlSerializerstartTag(String namespace, String name)Writes a start tag with the given namespace and name.XmlSerializertext(char[] buf, int start, int len)Writes text, where special XML chars are escaped automaticallyXmlSerializertext(String text)Writes text, where special XML chars are escaped automaticallyprotected voidwriteAttributeValue(String value, Writer out)protected voidwriteElementContent(char[] buf, int off, int len, Writer out)protected voidwriteElementContent(String text, Writer out)protected voidwriteIndent()
-
-
-
フィールドの詳細
-
FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
protected final String FEATURE_SERIALIZER_ATTVALUE_USE_APOSTROPHE
- 関連項目:
- 定数フィールド値
-
PROPERTY_SERIALIZER_INDENTATION
protected final String PROPERTY_SERIALIZER_INDENTATION
- 関連項目:
- 定数フィールド値
-
PROPERTY_SERIALIZER_LINE_SEPARATOR
protected final String PROPERTY_SERIALIZER_LINE_SEPARATOR
- 関連項目:
- 定数フィールド値
-
namesInterned
protected boolean namesInterned
-
attributeUseApostrophe
protected boolean attributeUseApostrophe
-
indentationString
protected String indentationString
-
lineSeparator
protected String lineSeparator
-
location
protected String location
-
out
protected Writer out
-
autoDeclaredPrefixes
protected int autoDeclaredPrefixes
-
depth
protected int depth
-
elNamespace
protected String[] elNamespace
-
elName
protected String[] elName
-
elPrefix
protected String[] elPrefix
-
elNamespaceCount
protected int[] elNamespaceCount
-
namespaceEnd
protected int namespaceEnd
-
namespacePrefix
protected String[] namespacePrefix
-
namespaceUri
protected String[] namespaceUri
-
finished
protected boolean finished
-
pastRoot
protected boolean pastRoot
-
setPrefixCalled
protected boolean setPrefixCalled
-
startTagIncomplete
protected boolean startTagIncomplete
-
doIndent
protected boolean doIndent
-
seenTag
protected boolean seenTag
-
seenBracket
protected boolean seenBracket
-
seenBracketBracket
protected boolean seenBracketBracket
-
buf
protected char[] buf
-
precomputedPrefixes
protected static final String[] precomputedPrefixes
-
offsetNewLine
protected int offsetNewLine
-
indentationJump
protected int indentationJump
-
indentationBuf
protected char[] indentationBuf
-
maxIndentLevel
protected int maxIndentLevel
-
writeLineSepartor
protected boolean writeLineSepartor
-
writeIndentation
protected boolean writeIndentation
-
-
メソッドの詳細
-
reset
protected void reset()
-
ensureElementsCapacity
protected void ensureElementsCapacity()
-
ensureNamespacesCapacity
protected void ensureNamespacesCapacity()
-
setFeature
public void setFeature(String name, boolean state) throws IllegalArgumentException, IllegalStateException
インタフェースからコピーされた説明:XmlSerializerSet feature identified by name (recommended to be URI for uniqueness). Some well known optional features are defined in http://www.xmlpull.org/v1/doc/features.html. If feature is not recocgnized or can not be set then IllegalStateException MUST be thrown.- 定義:
setFeatureインタフェース内XmlSerializer- 例外:
IllegalStateException- If the feature is not supported or can not be setIllegalArgumentException
-
getFeature
public boolean getFeature(String name) throws IllegalArgumentException
インタフェースからコピーされた説明:XmlSerializerReturn the current value of the feature with given name.NOTE: unknown properties are always returned as null
- 定義:
getFeatureインタフェース内XmlSerializer- パラメータ:
name- The name of feature to be retrieved.- 戻り値:
- The value of named feature.
- 例外:
IllegalArgumentException- if feature string is null
-
rebuildIndentationBuf
protected void rebuildIndentationBuf()
For maximum efficiency when writing indents the required output is pre-computed This is internal function that recomputes buffer after user requested chnages.
-
writeIndent
protected void writeIndent() throws IOException- 例外:
IOException
-
setProperty
public void setProperty(String name, Object value) throws IllegalArgumentException, IllegalStateException
インタフェースからコピーされた説明:XmlSerializerSet the value of a property. (the property name is recommened to be URI for uniqueness). Some well known optional properties are defined in http://www.xmlpull.org/v1/doc/properties.html. If property is not recocgnized or can not be set then IllegalStateException MUST be thrown.- 定義:
setPropertyインタフェース内XmlSerializer- 例外:
IllegalStateException- if the property is not supported or can not be setIllegalArgumentException
-
getProperty
public Object getProperty(String name) throws IllegalArgumentException
インタフェースからコピーされた説明:XmlSerializerLook up the value of a property. The property name is any fully-qualified URI. INOTE: unknown properties are
always returned as null - 定義:
getPropertyインタフェース内XmlSerializer- パラメータ:
name- The name of property to be retrieved.- 戻り値:
- The value of named property.
- 例外:
IllegalArgumentException
-
getWriter
public Writer getWriter()
-
setOutput
public void setOutput(Writer writer)
インタフェースからコピーされた説明:XmlSerializerSet the output to the given writer.WARNING no information about encoding is available!
- 定義:
setOutputインタフェース内XmlSerializer
-
setOutput
public void setOutput(OutputStream os, String encoding) throws IOException
インタフェースからコピーされた説明:XmlSerializerSet to use binary output stream with given encoding.- 定義:
setOutputインタフェース内XmlSerializer- 例外:
IOException
-
startDocument
public void startDocument(String encoding, Boolean standalone) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrite <?xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) This method can only be called just after setOutput.- 定義:
startDocumentインタフェース内XmlSerializer- 例外:
IOException
-
endDocument
public void endDocument() throws IOExceptionインタフェースからコピーされた説明:XmlSerializerFinish writing. All unclosed start tags will be closed and output will be flushed. After calling this method no more output can be serialized until next call to setOutput()- 定義:
endDocumentインタフェース内XmlSerializer- 例外:
IOException
-
setPrefix
public void setPrefix(String prefix, String namespace) throws IOException
インタフェースからコピーされた説明:XmlSerializerBinds the given prefix to the given namespace. This call is valid for the next element including child elements. The prefix and namespace MUST be always declared even if prefix is not used in element (startTag() or attribute()) - for XML 1.0 it must result in declaringxmlns:prefix='namespace'(orxmlns:prefix="namespace"depending what character is used to quote attribute value).NOTE: this method MUST be called directly before startTag() and if anything but startTag() or setPrefix() is called next there will be exception.
NOTE: prefixes "xml" and "xmlns" are already bound and can not be redefined see: Namespaces in XML Errata.
NOTE: to set default namespace use as prefix empty string.
- 定義:
setPrefixインタフェース内XmlSerializer- パラメータ:
prefix- must be not null (or IllegalArgumentException is thrown)namespace- must be not null- 例外:
IOException
-
getPrefix
public String getPrefix(String namespace, boolean generatePrefix)
インタフェースからコピーされた説明:XmlSerializerReturn namespace that corresponds to given prefix If there is no prefix bound to this namespace return null but if generatePrefix is false then return generated prefix.NOTE: if the prefix is empty string "" and defualt namespace is bound to this prefix then empty string ("") is returned.
NOTE: prefixes "xml" and "xmlns" are already bound will have values as defined Namespaces in XML specification
- 定義:
getPrefixインタフェース内XmlSerializer
-
getDepth
public int getDepth()
インタフェースからコピーされた説明:XmlSerializerReturns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when startTag() is called. The depth is decremented after the call to endTag() event was observed.<!-- outside --> 0 <root> 1 sometext 1 <foobar> 2 </foobar> 2 </root> 1 <!-- outside --> 0- 定義:
getDepthインタフェース内XmlSerializer
-
getNamespace
public String getNamespace()
インタフェースからコピーされた説明:XmlSerializerReturns the namespace URI of the current element as set by startTag().NOTE: that measn in particaulr that:
- if there was startTag("", ...) then getNamespace() returns ""
- if there was startTag(null, ...) then getNamespace() returns null
- 定義:
getNamespaceインタフェース内XmlSerializer- 戻り値:
- namespace set by startTag() that is currently in scope
-
getName
public String getName()
インタフェースからコピーされた説明:XmlSerializerReturns the name of the current element as set by startTag(). It can only be null before first call to startTag() or when last endTag() is called to close first startTag().- 定義:
getNameインタフェース内XmlSerializer- 戻り値:
- namespace set by startTag() that is currently in scope
-
startTag
public XmlSerializer startTag(String namespace, String name) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrites a start tag with the given namespace and name. If there is no prefix defined for the given namespace, a prefix will be defined automatically. The explicit prefixes for namespaces can be established by calling setPrefix() immediately before this method. If namespace is null no namespace prefix is printed but just name. If namespace is empty string then serialzier will make sure that default empty namespace is declared (in XML 1.0 xmlns='') or throw IllegalStateException if default namespace is already bound to non-empty string.- 定義:
startTagインタフェース内XmlSerializer- 例外:
IOException
-
attribute
public XmlSerializer attribute(String namespace, String name, String value) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrite an attribute. Calls to attribute() MUST follow a call to startTag() immediately. If there is no prefix defined for the given namespace, a prefix will be defined automatically. If namespace is null or empty string no namespace prefix is printed but just name.- 定義:
attributeインタフェース内XmlSerializer- 例外:
IOException
-
closeStartTag
protected void closeStartTag() throws IOException- 例外:
IOException
-
endTag
public XmlSerializer endTag(String namespace, String name) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrite end tag. Repetition of namespace and name is just for avoiding errors.Background: in kXML endTag had no arguments, and non matching tags were very difficult to find... If namespace is null no namespace prefix is printed but just name. If namespace is empty string then serialzier will make sure that default empty namespace is declared (in XML 1.0 xmlns='').
- 定義:
endTagインタフェース内XmlSerializer- 例外:
IOException
-
text
public XmlSerializer text(String text) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrites text, where special XML chars are escaped automatically- 定義:
textインタフェース内XmlSerializer- 例外:
IOException
-
text
public XmlSerializer text(char[] buf, int start, int len) throws IOException
インタフェースからコピーされた説明:XmlSerializerWrites text, where special XML chars are escaped automatically- 定義:
textインタフェース内XmlSerializer- 例外:
IOException
-
cdsect
public void cdsect(String text) throws IOException
- 定義:
cdsectインタフェース内XmlSerializer- 例外:
IOException
-
entityRef
public void entityRef(String text) throws IOException
- 定義:
entityRefインタフェース内XmlSerializer- 例外:
IOException
-
processingInstruction
public void processingInstruction(String text) throws IOException
- 定義:
processingInstructionインタフェース内XmlSerializer- 例外:
IOException
-
comment
public void comment(String text) throws IOException
- 定義:
commentインタフェース内XmlSerializer- 例外:
IOException
-
docdecl
public void docdecl(String text) throws IOException
- 定義:
docdeclインタフェース内XmlSerializer- 例外:
IOException
-
ignorableWhitespace
public void ignorableWhitespace(String text) throws IOException
- 定義:
ignorableWhitespaceインタフェース内XmlSerializer- 例外:
IOException
-
flush
public void flush() throws IOExceptionインタフェースからコピーされた説明:XmlSerializerWrite all pending output to the stream. If method startTag() or attribute() was called then start tag is closed (final >) before flush() is called on underlying output stream.NOTE: if there is need to close start tag (so no more attribute() calls are allowed) but without flushinging output call method text() with empty string (text("")).
- 定義:
flushインタフェース内XmlSerializer- 例外:
IOException
-
writeAttributeValue
protected void writeAttributeValue(String value, Writer out) throws IOException
- 例外:
IOException
-
writeElementContent
protected void writeElementContent(String text, Writer out) throws IOException
- 例外:
IOException
-
writeElementContent
protected void writeElementContent(char[] buf, int off, int len, Writer out) throws IOException- 例外:
IOException
-
printable
protected static final String printable(String s)
simple utility method -- good for debugging
-
printable
protected static final String printable(char ch)
-
-