OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Pros and cons DocBook vs Word2003



On Friday, November 14, 2003, at 09:03  AM, Jirka Kosek wrote:

> You can think about WordML as RTF expressed in XML syntax. So nothing  
> fancy and elegant, but much more easy to process than .doc or .rtf.

Awhile back I found some information on WordML and played with a  
stylesheet for it.  It is incredibly minimal, and I can't confirm it's  
valid since I do not have access to Word2003, but it should give an  
idea.  At some point it'd be nice to see full support for WordML,  
though html + css can get you a long way to native-.doc-like files (and  
is a lot easier to do than WordML).

Anyway, here's an instance from a DocBook-like schema I was also  
playing with:

<article>
     <info>
	    <title>Article Title</title>
	</info>
	<content>
	    <section>
		    <info>
			    <title>Section Title</title>
			</info>
			<para>A paragraph.</para>
			<para>Another paragraph, with <emphasis>emphasis</emphasis> and a  
footnote.<footnote><para>Footnote</para></footnote></para>
		</section>
	</content>
</article>

And here's the stylesheet:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="http://schemas.microsoft.com/office/word/2003/2/wordml";
xmlns:wx="http://schemas.microsoft.com/office/word/2003/2/auxHint";>
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
     <xsl:template match="/">
         <xsl:processing-instruction
name="mso-application">progid="Word.Document"</xsl:processing- 
instruction>
         <w:wordDocument>
             <xsl:apply-templates/>
         </w:wordDocument>
     </xsl:template>
     <xsl:template match="/">
         <o:DocumentProperties>
             <o:Title>
                 <xsl:value-of select="//info/title"/>
             </o:Title>
         </o:DocumentProperties>
       <!-- Define styles used in the document -->
       <w:styles>
       <w:fonts>
       <w:defaultFonts w:ascii="Times New Roman" w:fareast="Times New  
Roman" w:h-ansi="Times New Roman" w:cs="Times New Roman"/>
       <w:font w:name="Tahoma">
          <w:panose-1 w:val="020B0604030504040204"/>
          <w:charset w:val="00"/>
          <w:family w:val="Swiss"/>
          <w:pitch w:val="variable"/>
          <w:sig w:usb-0="61007A87" w:usb-1="80000000"  
w:usb-2="00000008" w:usb-3="00000000" w:csb-0="000101FF"  
w:csb-1="00000000"/>
       </w:font>
	</w:fonts>
       <w:versionOfBuiltInStylenames w:val="3"/>
       <w:latentStyles w:defLockedState="off" w:latentStyleCount="156"/>
       <w:style w:type="paragraph" w:default="on"  
w:styleId="MsoBodyText">
          <w:name w:val="MsoBodyText"/>
          <w:rPr>
             <wx:font wx:val="Times New Roman"/>
          </w:rPr>
       </w:style>
          <w:style w:type="paragraph" w:styleId="Heading1">
             <w:name w:val="heading 1"/>
             <w:pPr>
                <w:pStyle w:val="Heading1"/>
                <w:keepNext/>
                <w:spacing w:before="60" w:after="120"/>
                <w:outlineLvl w:val="1"/>
             </w:pPr>
             <w:rPr>
                <w:rFonts w:ascii="Arial" w:h-ansi="Arial"/>
                <w:b/>
                <w:sz w:val="36"/>
             </w:rPr>
          </w:style>
          <w:style w:type="paragraph" w:styleId="Heading2">
             <w:name w:val="heading 2"/>
             <w:pPr>
                <w:pStyle w:val="Heading2"/>
                <w:keepNext/>
                <w:spacing w:before="180" w:after="0"/>
                <w:outlineLvl w:val="2"/>
             </w:pPr>
             <w:rPr>
                <w:rFonts w:ascii="Arial" w:h-ansi="Arial"/>
                <w:b/>
                <w:sz w:val="28"/>
             </w:rPr>
          </w:style>
	     <w:style w:type="paragraph" w:styleId="Heading3">
                 <w:name w:val="heading 3"/>
                 <w:pPr>
                     <w:pStyle w:val="Heading3"/>
                     <w:keepNext/>
                     <w:spacing w:before="240" w:after="60"/>
                     <w:outlineLvl w:val="2"/>
                 </w:pPr>
                 <w:rPr>
                     <w:rFonts w:ascii="Arial" w:h-ansi="Arial"/>
                     <w:b/>
                     <w:sz w:val="26"/>
                 </w:rPr>
	     </w:style>
          <w:style w:type="character" w:styleId="Hyperlink">
             <w:name w:val="Hyperlink"/>
             <w:basedOn w:val="DefaultParagraphFont"/>
             <w:rPr>
                <w:color w:val="0000FF"/>
                <w:u w:val="single"/>
             </w:rPr>
          </w:style>
       </w:styles>
       <!-- Start the actual document -->
         <w:body>
             <xsl:apply-templates/>
         </w:body>
     </xsl:template>
     <xsl:template match="article/info/title">
         <w:p>
		    <w:pPr>
                <w:pStyle w:val="Heading1"/>
             </w:pPr>
		    <w:r>
		    <w:t>
             <xsl:apply-templates/>
		    </w:t>
		    </w:r>
         </w:p>	
	</xsl:template>
     <xsl:template match="article/content/section/info/title">
         <w:p>
		    <w:pPr>
                <w:pStyle w:val="Heading2"/>
             </w:pPr>
		    <w:r>
		    <w:t>
             <xsl:apply-templates/>
		    </w:t>
		    </w:r>
         </w:p>	
	</xsl:template>
     <xsl:template match="para">
         <w:p>
		    <w:pPr>
                <w:pStyle w:val="MsoBodyText"/>
             </w:pPr>
		    <w:r><w:t xml:space="preserve"><xsl:apply-templates/></w:t></w:r>
         </w:p>
     </xsl:template>
     <xsl:template match="footnote">
         <w:r>
		    <w:rPr>
		    <w:rStyle w:val="FootnoteReference"/>
		    </w:rPr>
		    <w:footnote>
		    <w:p>
		    <w:pPr>
		    <w:pStyle w:val="FootnoteText"/>
		    </w:pPr>
		    <w:r>
		    <w:rPr>
		    <w:rStyle w:val="FootnoteReference"/>
		    </w:rPr>
		    <w:footnoteRef/>
		    </w:r>
		    <w:r>
		    <w:t xml:space="preserve"><xsl:value-of select="para"/></w:t>
		    </w:r>
		    </w:p>
		    </w:footnote>
		</w:r>
     </xsl:template>
     <xsl:template match="emphasis">
         <w:r>
             <w:rPr>
                 <w:i/>
             </w:rPr>
		    <w:t xml:space="preserve"><xsl:apply-templates/></w:t>
         </w:r>
     </xsl:template>
     <xsl:template match="link">
         <w:hlink w:dest="{@url}">
             <w:r>
                 <w:rPr>
                     <w:rStyle w:val="Hyperlink"/>
                     <w:i/>
                 </w:rPr>
                 <xsl:apply-templates/>
             </w:r>
         </w:hlink>
     </xsl:template>
</xsl:stylesheet>

Bruce



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]