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

 


Help: OASIS Mailing Lists Help | MarkMail Help

oiic-formation-discuss message

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


Subject: Re: [oiic-formation-discuss] Reason and example arguing for the use of an ODF (or XML) canonical form


This will identify any 'foreign' content in an odf document

Usage as a comment.

HTH


<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:dp="http://www.dpawson.co.uk/ns#";
  xmlns:xs   ="http://www.w3.org/2001/XMLSchema";

 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:table ="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
 xmlns:draw  ="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
 xmlns:fo    ="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
 xmlns:xlink ="http://www.w3.org/1999/xlink";
 xmlns:dc="http://purl.org/dc/elements/1.1/";
 xmlns:meta  ="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
 xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
 xmlns:svg   ="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
 xmlns:chart ="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
 xmlns:dr3d  ="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
 xmlns:math  ="http://www.w3.org/1998/Math/MathML";
 xmlns:form  ="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
 xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
 xmlns:xforms="http://www.w3.org/2002/xforms";


 xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
 xmlns:pres="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0"
 xmlns:anim ="urn:oasis:names:tc:opendocument:xmlns:animation:1.0"
 xmlns:smil ="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0"

 xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"



  version="2.0">


<!--
Copyright 2008 Dave Pawson

    foreign.xsl is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    foreign.xsl is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with foreign.xsl.  If not, see <http://www.gnu.org/licenses/>.
 -->


<!--
Usage:
Download http://prdownloads.sourceforge.net/saxon/saxonb9-1-0-1j.zip
Unzip saxon9.jar from that.
run with
>java -jar saxon9.jar -o report.html {inputfile} foreign.xsl
where inputfile is any ODF xml file
Then see 'report.html'
 -->


  <d:doc xmlns:d="http://www.dpawson.co.uk/ns#";>
 <revhistory>
   <purpose><para>This stylesheet works with an ODF file to produce a
report on foreign content</para></purpose>
   <revision>
    <revnumber>1.0</revnumber>
    <date> 2008</date>
    <authorinitials>DaveP</authorinitials>
    <revdescription>
     <para></para>
    </revdescription>
    <revremark></revremark>
   </revision>
  </revhistory>
  </d:doc>


  <xsl:output method="html" indent="yes" encoding="utf-8"/>


  <xsl:variable name="valid" as="xs:string*">
    <xsl:sequence select="'urn:oasis:names:tc:opendocument:xmlns:office:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:style:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:text:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:table:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:drawing:1.0',

'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0',
                          'http://www.w3.org/1999/xlink',
                          'http://purl.org/dc/elements/1.1/',
                          'urn:oasis:names:tc:opendocument:xmlns:meta:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0',

'urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:chart:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0',
                          'http://www.w3.org/1998/Math/MathML',
                          'urn:oasis:names:tc:opendocument:xmlns:form:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:script:1.0',
                          'http://www.w3.org/2002/xforms',
                          'urn:oasis:names:tc:opendocument:xmlns:config:1.0',

'urn:oasis:names:tc:opendocument:xmlns:presentation:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:animation:1.0',

'urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0',
                          'urn:oasis:names:tc:opendocument:xmlns:manifest:1.0'



                          "/>
  </xsl:variable>


  <xsl:template match="/">
    <html>
    <head>
    	<title> </title>
    	<link rel="STYLESHEET" href="xxx.css" type="text/css"/>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>	
      <body bgcolor="#FFFFFF">
        <h2>Report on foreign content in file <xsl:value-of
select="document-uri(/)"/></h2>
        <p><i>Copyright &#xA9; Dave Pawson, 2008</i></p>
	<p>Version 1.0. 2008-07-07T09:30:51Z</p>
        <xsl:apply-templates/>

      </body>
    </html>
  </xsl:template>


  <xsl:template match="*">
    <xsl:if test="not(namespace-uri(.) = $valid)">
      <p>
        <xsl:text>Element </xsl:text><xsl:value-of select="name()"/><xsl:text>
</xsl:text>
        <xsl:text>In namespace </xsl:text><xsl:value-of
select="namespace-uri()"/>

        <xsl:if test="text()">
          <br />
Content (<xsl:value-of select="."/>)
        </xsl:if>
        <xsl:if test="@*">
          <xsl:for-each select="@*">
            <br />
Attributes:  <xsl:value-of select="name(.)"/>=<xsl:value-of select="."/>
          </xsl:for-each>
        </xsl:if>

    </p>
    </xsl:if>

    <xsl:apply-templates/>
  </xsl:template>


  <xsl:template match="text()"/>


</xsl:stylesheet>


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