Most visited

Recently visited

Added in API level 1

XmlSerializer

public interface XmlSerializer

org.xmlpull.v1.XmlSerializer


定义一个到XML Infoset序列化的接口。 如果序列化的XML是XML 1.0兼容的文本或其他格式的XML 1.0序列化(例如二进制XML,例如使用WBXML),则此接口将被抽象化。

请注意:此接口将成为XmlPull 1.2 API的一部分。 它被包括作为讨论的基础。 它可能以任何方式改变。

可能抛出的异常包括:IOException或运行时异常(可引发更多运行时异常但未声明,因此没有为此接口定义的语义):

注意:在某些实现中可能不支持写入CDSECT,ENTITY_REF,IGNORABLE_WHITESPACE,PROCESSING_INSTRUCTION,COMMENT和DOCDECL(例如,在序列化为WBXML时)。 在这种情况下,IllegalStateException将被抛出,建议使用可选功能来表示实现不支持这种输出。

Summary

Public methods

abstract XmlSerializer attribute(String namespace, String name, String value)

写一个属性。

abstract void cdsect(String text)
abstract void comment(String text)
abstract void docdecl(String text)
abstract void endDocument()

完成写作。

abstract XmlSerializer endTag(String namespace, String name)

写结束标签。

abstract void entityRef(String text)
abstract void flush()

将所有待处理的输出写入流中。

abstract int getDepth()

返回元素的当前深度。

abstract boolean getFeature(String name)

用给定名称返回该功能的当前值。

abstract String getName()

返回由startTag()设置的当前元素的名称。

abstract String getNamespace()

返回由startTag()设置的当前元素的名称空间URI。

abstract String getPrefix(String namespace, boolean generatePrefix)

返回与给定前缀对应的名称空间如果没有绑定到此名称空间的前缀返回null,但如果generatePrefix为false,则返回生成的前缀。

abstract Object getProperty(String name)

查找一个属性的值。

abstract void ignorableWhitespace(String text)
abstract void processingInstruction(String text)
abstract void setFeature(String name, boolean state)

设置按名称标识的功能(建议为唯一性的URI)。

abstract void setOutput(OutputStream os, String encoding)

设置为使用给定编码的二进制输出流。

abstract void setOutput(Writer writer)

将输出设置为给定的作者。

abstract void setPrefix(String prefix, String namespace)

将给定的前缀绑定到给定的名称空间。

abstract void setProperty(String name, Object value)

设置属性的值。

abstract void startDocument(String encoding, Boolean standalone)

用编码写入<?xml声明(如果编码不为空)和独立标志(如果独立不为null)这个方法只能在setOutput之后调用。

abstract XmlSerializer startTag(String namespace, String name)

用给定的名称空间和名称写入开始标记。

abstract XmlSerializer text(char[] buf, int start, int len)

写入文本,其中自动转义特殊的XML字符

abstract XmlSerializer text(String text)

写入文本,其中自动转义特殊的XML字符

Public methods

attribute

Added in API level 1
XmlSerializer attribute (String namespace, 
                String name, 
                String value)

写一个属性。 调用attribute()必须立即调用startTag()。 如果没有为给定名称空间定义前缀,则会自动定义前缀。 如果名称空间为空或空字符串,则不会打印名称空间前缀,而只是名称。

Parameters
namespace String
name String
value String
Returns
XmlSerializer
Throws
IOException
IllegalArgumentException
IllegalStateException

cdsect

Added in API level 1
void cdsect (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

comment

Added in API level 1
void comment (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

docdecl

Added in API level 1
void docdecl (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

endDocument

Added in API level 1
void endDocument ()

完成写作。 所有未封闭的开始标签将被关闭并且输出将被刷新。 调用此方法后,不会再有更多的输出可以被序列化,直到下次调用setOutput()

Throws
IOException
IllegalArgumentException
IllegalStateException

endTag

Added in API level 1
XmlSerializer endTag (String namespace, 
                String name)

写结束标签。 命名空间和名称的重复只是为了避免错误。

背景:在kXML中,endTag没有参数,非匹配标签很难找到......如果名称空间为空,则不会打印名称空间前缀,而只是名称。 如果名称空间为空字符串,则序列化程序将确保声明默认的空名称空间(在XML 1.0 xmlns =''中)。

Parameters
namespace String
name String
Returns
XmlSerializer
Throws
IOException
IllegalArgumentException
IllegalStateException

entityRef

Added in API level 1
void entityRef (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

flush

Added in API level 1
void flush ()

将所有待处理的输出写入流中。 如果调用方法startTag()或attribute(),则在底层输出流上调用flush()之前,关闭start标记(final>)。

注意:如果需要关闭开始标记(因此不允许更多的attribute()调用),但不用用空字符串(text(“”))清空输出调用方法text()。

Throws
IOException

getDepth

Added in API level 1
int getDepth ()

返回元素的当前深度。 在根元素之外,深度为0.调用startTag()时,深度加1。 在观察到对endTag()事件的调用后,深度递减。

 <!-- outside -->     0
 <root>               1
   sometext                 1
     <foobar>         2
     </foobar>        2
 </root>              1
 <!-- outside -->     0
 

Returns
int

getFeature

Added in API level 1
boolean getFeature (String name)

用给定名称返回该功能的当前值。

注:未知属性 始终返回为空

Parameters
name String: The name of feature to be retrieved.
Returns
boolean The value of named feature.
Throws
IllegalArgumentException if feature string is null

getName

Added in API level 1
String getName ()

返回由startTag()设置的当前元素的名称。 它只能在第一次调用startTag()或第一次调用startTag()时调用lastTag()之前为null。

Returns
String namespace set by startTag() that is currently in scope

getNamespace

Added in API level 1
String getNamespace ()

返回由startTag()设置的当前元素的名称空间URI。

注意:这意味着:

  • if there was startTag("", ...) then getNamespace() returns ""
  • if there was startTag(null, ...) then getNamespace() returns null

Returns
String namespace set by startTag() that is currently in scope

getPrefix

Added in API level 1
String getPrefix (String namespace, 
                boolean generatePrefix)

返回与给定前缀对应的名称空间如果没有绑定到此名称空间的前缀返回null,但如果generatePrefix为false,则返回生成的前缀。

注:如果前缀为空字符串“”,并且默认命名空间与此前缀绑定,则返回空字符串(“”)。

注意:前缀“xml”和“xmlns”已经绑定将具有定义的值 Namespaces in XML specification

Parameters
namespace String
generatePrefix boolean
Returns
String
Throws
IllegalArgumentException

getProperty

Added in API level 1
Object getProperty (String name)

查找一个属性的值。 属性名称是任何完全限定的URI。 一世

注:未知属性是 总是返回为空

Parameters
name String: The name of property to be retrieved.
Returns
Object The value of named property.

ignorableWhitespace

Added in API level 1
void ignorableWhitespace (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

processingInstruction

Added in API level 1
void processingInstruction (String text)

Parameters
text String
Throws
IOException
IllegalArgumentException
IllegalStateException

setFeature

Added in API level 1
void setFeature (String name, 
                boolean state)

设置按名称标识的功能(建议为唯一性的URI)。 一些众所周知的可选功能在http://www.xmlpull.org/v1/doc/features.html中定义。 如果功能未被识别或无法设置,则必须抛出IllegalStateException。

Parameters
name String
state boolean
Throws
IllegalStateException If the feature is not supported or can not be set
IllegalArgumentException

setOutput

Added in API level 1
void setOutput (OutputStream os, 
                String encoding)

设置为使用给定编码的二进制输出流。

Parameters
os OutputStream
encoding String
Throws
IOException
IllegalArgumentException
IllegalStateException

setOutput

Added in API level 1
void setOutput (Writer writer)

将输出设置为给定的作者。

警告没有关于编码的信息!

Parameters
writer Writer
Throws
IOException
IllegalArgumentException
IllegalStateException

setPrefix

Added in API level 1
void setPrefix (String prefix, 
                String namespace)

将给定的前缀绑定到给定的名称空间。 此调用对包含子元素的下一个元素有效。 即使元素(startTag()或attribute())中没有使用前缀,也必须始终声明前缀和名称空间 - 对于XML 1.0,它必须导致声明xmlns:prefix='namespace' (或xmlns:prefix="namespace"取决于用于引用属性值的字符)。

注意:这个方法必须在startTag()之前直接调用,如果接下来调用了startTag()或setPrefix(),那么将会有异常。

注:前缀“xml”和“xmlns”已绑定,不能重新定义,请参阅: Namespaces in XML Errata

注意:将默认命名空间设置为前缀空字符串。

Parameters
prefix String: must be not null (or IllegalArgumentException is thrown)
namespace String: must be not null
Throws
IOException
IllegalArgumentException
IllegalStateException

setProperty

Added in API level 1
void setProperty (String name, 
                Object value)

设置属性的值。 (为了唯一性,建议使用URI的属性名称)。 一些众所周知的可选属性在http://www.xmlpull.org/v1/doc/properties.html中定义。 如果属性不被识别或者不能被设置,那么IllegalStateException必须被抛出。

Parameters
name String
value Object
Throws
IllegalStateException if the property is not supported or can not be set
IllegalArgumentException

startDocument

Added in API level 1
void startDocument (String encoding, 
                Boolean standalone)

用编码写入<?xml声明(如果编码不为空)和独立标志(如果独立不为null)这个方法只能在setOutput之后调用。

Parameters
encoding String
standalone Boolean
Throws
IOException
IllegalArgumentException
IllegalStateException

startTag

Added in API level 1
XmlSerializer startTag (String namespace, 
                String name)

用给定的名称空间和名称写入开始标记。 如果没有为给定名称空间定义前缀,则会自动定义前缀。 命名空间的显式前缀可以通过在此方法之前立即调用setPrefix()来建立。 如果名称空间为空,则不会打印名称空间前缀,而只是名称。 如果名称空间为空字符串,则序列化程序将确保声明默认的空名称空间(在XML 1.0 xmlns =''中),或者如果默认名称空间已经绑定到非空字符串,则会抛出IllegalStateException。

Parameters
namespace String
name String
Returns
XmlSerializer
Throws
IOException
IllegalArgumentException
IllegalStateException

text

Added in API level 1
XmlSerializer text (char[] buf, 
                int start, 
                int len)

写入文本,其中自动转义特殊的XML字符

Parameters
buf char
start int
len int
Returns
XmlSerializer
Throws
IOException
IllegalArgumentException
IllegalStateException

text

Added in API level 1
XmlSerializer text (String text)

写入文本,其中自动转义特殊的XML字符

Parameters
text String
Returns
XmlSerializer
Throws
IOException
IllegalArgumentException
IllegalStateException

Hooray!