C# Class SimpleFramework.Xml.Stream.NodeWriter

The NodeWriter object is used to create a writer that will write well formed indented XML for a given output node. This is used in the serialization process to convert an object into an XML document.

This keeps a stack of all the active output nodes so that if an output node has been committed it cannot write any further data to the XML document. This allows all output nodes to be independent of each other as the node write organizes the write access.

显示文件 Open project: ngallagher/simplexml Class Usage Examples

Public Methods

Method Description
Commit ( OutputNode parent ) : void

This method is used to commit all nodes on the stack up to and including the specified node. This will effectively create end tags for any nodes that are currently open up to the specified element. Once committed the output node can no longer be used to create child elements, nor can any of its child elements.

IsCommitted ( OutputNode node ) : bool

This is used to determine if the specified node has been committed. If this returns tre then the node is committed and cannot be used to add further child elements.

IsRoot ( OutputNode node ) : bool

This method is used to determine if the node is the root node for the XML document. The root node is the first node in the document and has no sibling nodes. This is false if the node has a parent node or a sibling node.

NodeWriter ( Writer result ) : System.Collections.Generic

Constructor for the NodeWriter object. This will create the object that is used to control an output elements access to the generated XML document. This keeps a stack of active and uncommitted elements.

NodeWriter ( Writer result, Format format ) : System.Collections.Generic

Constructor for the NodeWriter object. This will create the object that is used to control an output elements access to the generated XML document. This keeps a stack of active and uncommitted elements.

Remove ( OutputNode node ) : void

This method is used to remove the output node from the output buffer if that node has not yet been committed. This allows a node that has been created to be deleted, ensuring that it will not affect the resulting XML document structure.

WriteAttributes ( OutputNode node ) : void

This is used to write the attributes of the specified node to the output. This will iterate over each node entered on to the node. Once written the node is considered inactive.

WriteComment ( OutputNode node ) : void

This is used to write a comment to the document. Comments appear just before the element name, this allows an logical association between the comment and the node to be made.

WriteElement ( OutputNode parent, String name ) : OutputNode

This is used to create a new element under the specified node. This will effectively commit all nodes that are open until this node is encountered. Once the specified node is encountered on the stack a new element is created with the specified name.

WriteEnd ( OutputNode node ) : void

This is used to write a new end element to the resulting XML document. This will acquire the name and value of the given node, if the node has a value that is written. Finally a new end tag is written to the document and the output is flushed.

WriteEnd ( OutputNode node, Mode mode ) : void

This is used to write a new end element to the resulting XML document. This will acquire the name and value of the given node, if the node has a value that is written. Finally a new end tag is written to the document and the output is flushed.

WriteName ( OutputNode node ) : void

This is used to write a new start element to the resulting XML document. This will create an output node of the specified name before writing the start tag. Once the tag is written the node is pushed on to the head of the output node stack.

WriteNamespaces ( OutputNode node ) : void

This is used to write the namespaces of the specified node to the output. This will iterate over each namespace entered on to the node. Once written the node is considered qualified.

WriteRoot ( ) : OutputNode

This is used to acquire the root output node for the document. This will create an empty node that can be used to generate the root document element as a child to the document.

Depending on whether or not an encoding has been specified this method will write a prolog to the generated XML document. Each prolog written uses an XML version of "1.0".

WriteStart ( OutputNode parent, String name ) : OutputNode

This is used to begin writing on a new XML element. This is typically done by writing any comments required. This will create an output node of the specified name before writing the comment, if any exists. Once the comment has been written the node is pushed on to the head of the output node stack.

WriteStart ( OutputNode node ) : void

This is used to write the XML element to the underlying buffer. The element is written in the order of element prefix and name followed by the attributes an finally the namespaces for the element. Once this is finished the element is committed to

Private Methods

Method Description
NodeWriter ( Writer result, Format format, bool verbose ) : System.Collections.Generic

Constructor for the NodeWriter object. This will create the object that is used to control an output elements access to the generated XML document. This keeps a stack of active and uncommitted elements.

Method Details

Commit() public method

This method is used to commit all nodes on the stack up to and including the specified node. This will effectively create end tags for any nodes that are currently open up to the specified element. Once committed the output node can no longer be used to create child elements, nor can any of its child elements.
public Commit ( OutputNode parent ) : void
parent OutputNode /// this is the node that is to be committed ///
return void

IsCommitted() public method

This is used to determine if the specified node has been committed. If this returns tre then the node is committed and cannot be used to add further child elements.
public IsCommitted ( OutputNode node ) : bool
node OutputNode /// this is the node to check for commit status ///
return bool

IsRoot() public method

This method is used to determine if the node is the root node for the XML document. The root node is the first node in the document and has no sibling nodes. This is false if the node has a parent node or a sibling node.
public IsRoot ( OutputNode node ) : bool
node OutputNode /// this is the node that is check as the root ///
return bool

NodeWriter() public method

Constructor for the NodeWriter object. This will create the object that is used to control an output elements access to the generated XML document. This keeps a stack of active and uncommitted elements.
public NodeWriter ( Writer result ) : System.Collections.Generic
result Writer /// this is the output for the resulting document ///
return System.Collections.Generic

NodeWriter() public method

Constructor for the NodeWriter object. This will create the object that is used to control an output elements access to the generated XML document. This keeps a stack of active and uncommitted elements.
public NodeWriter ( Writer result, Format format ) : System.Collections.Generic
result Writer /// this is the output for the resulting document ///
format Format /// this is used to format the generated document ///
return System.Collections.Generic

Remove() public method

This method is used to remove the output node from the output buffer if that node has not yet been committed. This allows a node that has been created to be deleted, ensuring that it will not affect the resulting XML document structure.
public Remove ( OutputNode node ) : void
node OutputNode /// this is the output node that is to be removed ///
return void

WriteAttributes() public method

This is used to write the attributes of the specified node to the output. This will iterate over each node entered on to the node. Once written the node is considered inactive.
public WriteAttributes ( OutputNode node ) : void
node OutputNode /// this is the node to have is attributes written ///
return void

WriteComment() public method

This is used to write a comment to the document. Comments appear just before the element name, this allows an logical association between the comment and the node to be made.
public WriteComment ( OutputNode node ) : void
node OutputNode /// this is the node that is to have its name written ///
return void

WriteElement() public method

This is used to create a new element under the specified node. This will effectively commit all nodes that are open until this node is encountered. Once the specified node is encountered on the stack a new element is created with the specified name.
public WriteElement ( OutputNode parent, String name ) : OutputNode
parent OutputNode /// this is the node that is to be committed ///
name String /// this is the name of the start element to create ///
return OutputNode

WriteEnd() public method

This is used to write a new end element to the resulting XML document. This will acquire the name and value of the given node, if the node has a value that is written. Finally a new end tag is written to the document and the output is flushed.
public WriteEnd ( OutputNode node ) : void
node OutputNode /// this is the node that is to have an end tag ///
return void

WriteEnd() public method

This is used to write a new end element to the resulting XML document. This will acquire the name and value of the given node, if the node has a value that is written. Finally a new end tag is written to the document and the output is flushed.
public WriteEnd ( OutputNode node, Mode mode ) : void
node OutputNode /// this is the node that is to have an end tag ///
mode Mode
return void

WriteName() public method

This is used to write a new start element to the resulting XML document. This will create an output node of the specified name before writing the start tag. Once the tag is written the node is pushed on to the head of the output node stack.
public WriteName ( OutputNode node ) : void
node OutputNode /// this is the node that is to have its name written ///
return void

WriteNamespaces() public method

This is used to write the namespaces of the specified node to the output. This will iterate over each namespace entered on to the node. Once written the node is considered qualified.
public WriteNamespaces ( OutputNode node ) : void
node OutputNode /// this is the node to have is attributes written ///
return void

WriteRoot() public method

This is used to acquire the root output node for the document. This will create an empty node that can be used to generate the root document element as a child to the document.

Depending on whether or not an encoding has been specified this method will write a prolog to the generated XML document. Each prolog written uses an XML version of "1.0".

public WriteRoot ( ) : OutputNode
return OutputNode

WriteStart() public method

This is used to begin writing on a new XML element. This is typically done by writing any comments required. This will create an output node of the specified name before writing the comment, if any exists. Once the comment has been written the node is pushed on to the head of the output node stack.
public WriteStart ( OutputNode parent, String name ) : OutputNode
parent OutputNode /// this is the parent node to the next output node ///
name String /// this is the name of the node that is to be created ///
return OutputNode

WriteStart() public method

This is used to write the XML element to the underlying buffer. The element is written in the order of element prefix and name followed by the attributes an finally the namespaces for the element. Once this is finished the element is committed to
public WriteStart ( OutputNode node ) : void
node OutputNode /// this is the node that is to be fully written ///
return void