<?xml version="1.0" encoding="iso-8859-1"?>
<module name="Ft.Xml.MarkupWriter">
  <modification-date>2006-04-28 13:54:48</modification-date>
  <abstract>MarkupWriter provides a very friendly interface for generating XML content</abstract>
  <description>Copyright 2005 Fourthought, Inc. (USA).
Detailed license and copyright information: http://4suite.org/COPYRIGHT
Project home, documentation, distributions: http://4suite.org/</description>
  <classes>
    <class name="MarkupWriter" public="yes">
      <bases>
        <base documented="no" class="object"/>
      </bases>
      <abstract>General-purpose utility class for generating XML (may eventually be
expanded to produce more output types)</abstract>
      <description>Sample usage:

from Ft.Xml import MarkupWriter
writer = MarkupWriter(indent=u&quot;yes&quot;)
writer.startDocument()
writer.startElement(u'xsa')
writer.startElement(u'vendor')
#Element with simple text (#PCDATA) content
writer.simpleElement(u'name', content=u'Centigrade systems')
#Note writer.text(content) still works
writer.simpleElement(u'email', content=u&quot;info@centigrade.bogus&quot;)
writer.endElement(u'vendor')
#Element with an attribute
writer.startElement(u'product', attributes={u'id': u&quot;100\u00B0&quot;})
#Note writer.attribute(name, value, namespace=None) still works
writer.simpleElement(u'name', content=u&quot;100\u00B0 Server&quot;)
#XML fragment
writer.xmlFragment('&lt;version&gt;1.0&lt;/version&gt;&lt;last-release&gt;20030401&lt;/last-release&gt;')
#Empty element
writer.simpleElement(u'changes')
writer.endElement(u'product')
writer.endElement(u'xsa')
writer.endDocument()

Note on the difference between 4Suite writers and printers
Writer  - module that exposes a broad public API for building output
          bit by bit
Printer - module that simply takes a DOM and creates output from it
          as a whole, within one API invokation</description>
      <method-resolution-order>
        <base name="MarkupWriter" module="Ft.Xml.MarkupWriter"/>
        <base name="object"/>
      </method-resolution-order>
      <methods name="object">
        <method public="no" name="__getattr__" id="MarkupWriter-__getattr__">
          <abstract/>
          <description/>
          <arguments>
            <arg name="self"/>
            <arg name="value"/>
          </arguments>
        </method>
        <method public="no" name="__init__" id="MarkupWriter-__init__">
          <abstract>Convenience factory function for Markup writers (based on
xsl:output in XSLT)</abstract>
          <description/>
          <arguments>
            <arg name="self"/>
            <arg default="&lt;open file '&lt;stdout&gt;', mode 'w' at 0xb7d98068&gt;" name="stream"/>
            <var-keywords name="wargs"/>
          </arguments>
          <overrides documented="no" class="object"/>
        </method>
        <method public="yes" name="simpleElement" id="MarkupWriter-simpleElement">
          <abstract>Create a simple tag with optional attributes and content.  The
complete element, start tag, optional text content, end tag, will
all be generated by this one call.  Must *not* be matched with
an endElement call.</abstract>
          <description>Note: all &quot;strings&quot; in these parameters must be unicode objects
tagName - qualified name of the element
namespace - optional namespace URI
attributes - optional dictionary mapping name to unicode value
            the name can either be a unicode QName or a tuple
            of (QName, namespace URI)
content   - optional unicode object with the text body of the
            simple element
extraNss - optional dictionary (defaults to an empty one) that
           creates additional namespace declarations that the
           user wants to place on the specific element. Each key
           is a ns prefix, and each value a ns name (URI).
           You do not need to use extraNss if you will be using
           a similar namespace parameter.  In fact, most people
           will never need this parameter.</description>
          <arguments>
            <arg name="self"/>
            <arg name="tagName"/>
            <arg default="None" name="namespace"/>
            <arg default="None" name="extraNss"/>
            <arg default="None" name="attributes"/>
            <arg default="u''" name="content"/>
          </arguments>
        </method>
        <method public="yes" name="startElement" id="MarkupWriter-startElement">
          <abstract>Create a start tag with optional attributes.  Must eventually
be matched with an endElement call</abstract>
          <description>Note: all &quot;strings&quot; in these parameters must be unicode objects
tagName - qualified name of the element (must be unicode)
namespace - optional namespace URI
attributes - optional dictionary mapping name to unicode value
            the name can either be a unicode QName or a tuple
            of (QName, namespace URI)
extraNss - optional dictionary (defaults to an empty one) that
           creates additional namespace declarations that the
           user wants to place on the specific element. Each key
           is a ns prefix, and each value a ns name (URI).
           You do not need to use extraNss if you will be using
           a similar namespace parameter.  In fact, most people
           will never need this parameter.</description>
          <arguments>
            <arg name="self"/>
            <arg name="tagName"/>
            <arg default="None" name="namespace"/>
            <arg default="None" name="extraNss"/>
            <arg default="None" name="attributes"/>
          </arguments>
        </method>
        <method public="yes" name="xmlFragment" id="MarkupWriter-xmlFragment">
          <abstract>Incorporate a well-formed general entity into the output.
fragment of
fragment - string (must not be a Unicode object) to be incorporated
           verbatim into the output, after testing for wellp-formedness</abstract>
          <description/>
          <arguments>
            <arg name="self"/>
            <arg name="fragment"/>
          </arguments>
        </method>
      </methods>
      <members name="object">
        <member public="no" name="__dict__" id="MarkupWriter-__dict__">
          <value>&lt;attribute '__dict__' of 'MarkupWriter' objects&gt;</value>
        </member>
        <member public="no" name="__weakref__" id="MarkupWriter-__weakref__">
          <value>&lt;attribute '__weakref__' of 'MarkupWriter' objects&gt;</value>
        </member>
      </members>
      <inherited-methods documented="no" class="object">
        <member-reference name="__delattr__" public="no"/>
        <member-reference name="__getattribute__" public="no"/>
        <member-reference name="__hash__" public="no"/>
        <member-reference name="__new__" public="no"/>
        <member-reference name="__reduce__" public="no"/>
        <member-reference name="__reduce_ex__" public="no"/>
        <member-reference name="__repr__" public="no"/>
        <member-reference name="__setattr__" public="no"/>
        <member-reference name="__str__" public="no"/>
      </inherited-methods>
      <inherited-members documented="no" class="object">
        <member-reference name="__class__" public="no"/>
      </inherited-members>
    </class>
  </classes>
  <globals>
    <global public="yes" name="EMPTY_NAMESPACE" id="EMPTY_NAMESPACE">
      <value>None</value>
    </global>
    <global public="yes" name="EMPTY_PREFIX" id="EMPTY_PREFIX">
      <value>None</value>
    </global>
    <global public="yes" name="XMLNS_NAMESPACE" id="XMLNS_NAMESPACE">
      <value>u'http://www.w3.org/2000/xmlns/'</value>
    </global>
    <global public="yes" name="XML_NAMESPACE" id="XML_NAMESPACE">
      <value>u'http://www.w3.org/XML/1998/namespace'</value>
    </global>
  </globals>
</module>
