0 Replies Latest reply on Oct 30, 2010 8:41 PM by dkelly60

    Question about XML and namespaces

    dkelly60 Level 1

      I am having some trouble understanding working with XLM namespaces in AS3. I need to output a programs data in OpenDocument text format (.odt) for editing by word processing programs.

       

      The root declaration of an .odt document declares a set of namespaces some of which I have shown below. The XML below is a short section representative of the output I need to construct and save. And to use in illustration for my question.

       

      As I understand it the namespace when declared in the root element can be used by any decendent element. However my attempts to work with the namespace in AS3 keep producing a "Error #1083: The prefix "office" for element "office:font-face-decls" is not bound."

       

      So my question is how do I add elements dynamically to the XML without generating the error. My attempts to date have only been successful when I add the xmls declaration to the decendent node e.g.

      <style:style xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" 
      style:name="Table1" style:family="table">

       

      instead of

      <style:style style:name="Table1" style:family="table">

       

       

      Example XML for .odt

      <office:document-content office:version="1.1" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
           xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
           xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
           xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
           xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0">  
        <office:font-face-decls>
          <style:font-face style:name="Tahoma1" svg:font-family="Tahoma"/>
        </office:font-face-decls>
        <office:automatic-styles>
          <style:style style:name="Table1" style:family="table">
            <style:table-properties style:width="16.999cm" table:align="margins"/>
          </style:style>
        </office:automatic-styles>
        <office:body>
          <office:text>
            <text:sequence-decls>
              <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
            </text:sequence-decls>
            <table:table table:name="Table1" table:style-name="Table1">
              <table:table-column table:style-name="Table1.A"/>
              <table:table-column table:style-name="Table1.B" table:number-columns-repeated="2"/>
              <table:table-column table:style-name="Table1.D"/>
              <table:table-row>
                <table:table-cell table:style-name="Table1.A1" office:value-type="string">
                  <text:p text:style-name="Table_20_Contents">Client</text:p>
                </table:table-cell>
                <table:table-cell table:style-name="Table1.B1" table:number-columns-spanned="3" office:value-type="string">
                  <text:p text:style-name="Table_20_Contents"/>
                </table:table-cell>
                <table:covered-table-cell/>
                <table:covered-table-cell/>
              </table:table-row>
            </table:table>
          </office:text>
        </office:body>
      </office:document-content>