XmlWrite

Writes XML and XHTML.

class cpip.util.XmlWrite.Element(theXmlStream, theElemName, theAttrs=None)

Represents an element in a markup stream.

exception cpip.util.XmlWrite.ExceptionXml

Exception specialisation for the XML writer.

exception cpip.util.XmlWrite.ExceptionXmlEndElement

Exception specialisation for end of element.

cpip.util.XmlWrite.RAISE_ON_ERROR = True

Global flag that sets the error behaviour If True then this module may raise an ExceptionXml and that might mask other exceptions. If False no ExceptionXml will be raised but a logging.error(...) will be written. These will not mask other Exceptions.

class cpip.util.XmlWrite.XmlStream(theFout, theEnc='utf-8', theDtdLocal=None, theId=0, mustIndent=True)

Creates and maintains an XML output stream.

characters(theString)

Encodes the string and writes it to the output.

comment(theS, newLine=False)

Writes a comment to the output stream.

endElement(name)

Ends an element.

id

A unique ID in this stream. The ID is incremented on each call.

literal(theString)

Writes theString to the output without encoding.

pI(theS)

Writes a Processing Instruction to the output stream.

startElement(name, attrs)

Opens a named element with attributes.

writeCDATA(theData)

Writes a CDATA section.

Example:

writeCSS(theCSSMap)

Writes a style sheet as a CDATA section. Expects a dict of dicts.

Example:

writeECMAScript(theScript)

Writes the ECMA script.

Example:

xmlSpacePreserve()

Suspends indentation for this element and its descendants.

cpip.util.XmlWrite.decodeString(theS)

Returns a string that is the argument decoded. May raise a TypeError.

cpip.util.XmlWrite.encodeString(theS, theCharPrefix='_')

Returns a string that is the argument encoded. RFC3548:

See section 3 of : http://www.faqs.org/rfcs/rfc3548.html

cpip.util.XmlWrite.nameFromString(theStr)

Returns a name from a string.

See http://www.w3.org/TR/1999/REC-html401-19991224/types.html#type-cdata

“ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens (“-”), underscores (“_”), colons (”:”), and periods (”.”).

This also works for in namespaces as ‘:’ is not used in the encoding.