]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Stripped <TAB>s using tabstops of 2.
authorPeter Bernard West <pbwest@apache.org>
Thu, 24 Oct 2002 15:19:35 +0000 (15:19 +0000)
committerPeter Bernard West <pbwest@apache.org>
Thu, 24 Oct 2002 15:19:35 +0000 (15:19 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@195359 13f79535-47bb-0310-9956-ffa450edef68

docs/foschema/schema2completion.xsl
docs/foschema/schema2dtd.xsl

index 0cbaef14bd16305cda586416acb8afa08364cfd9..3e342dfb8fda4888d5bea1a1c70ce3d03a48841a 100644 (file)
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
 
 <xsl:stylesheet saxon:trace="no"
-               version="1.1"
-               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-               xmlns:saxon="http://icl.com/saxon"
-               xmlns:xs = "http://www.w3.org/2001/XMLSchema"
-               xmlns:fo="http://www.w3.org/1999/XSL/Format"
-               xmlns:date="http://exslt.org/dates-and-times"
-               xmlns:math="http://exslt.org/math"
-               extension-element-prefixes="saxon date math"
-               exclude-result-prefixes="fo xs">
+    version="1.1"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:saxon="http://icl.com/saxon"
+    xmlns:xs = "http://www.w3.org/2001/XMLSchema"
+    xmlns:fo="http://www.w3.org/1999/XSL/Format"
+    xmlns:date="http://exslt.org/dates-and-times"
+    xmlns:math="http://exslt.org/math"
+    extension-element-prefixes="saxon date math"
+    exclude-result-prefixes="fo xs">
 
 <xsl:output method="xml" version="4.0" omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>
 <xsl:variable name="properties" select="document('foproperties.xml')"/>
 
 <xsl:template match="/xs:schema">
-       <xsl:apply-templates select="./xs:element"/>
+  <xsl:apply-templates select="./xs:element"/>
 </xsl:template>
 
 <xsl:template match="xs:group">
-       <xsl:for-each select="./xs:choice/xs:element">
-               <xsl:value-of select="./@ref"/>
-               <xsl:text>|</xsl:text>
-       </xsl:for-each>
-       <!-- Remove any Groups not implemented by FOP -->
-       <xsl:for-each select="./xs:choice/xs:group[substring(./@ref,string-length(./@ref) - 3) != '_Not']">
-               <xsl:variable name="ref">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:apply-templates select="/xs:schema/xs:group[@name=$ref]"/>
-       </xsl:for-each>
+  <xsl:for-each select="./xs:choice/xs:element">
+    <xsl:value-of select="./@ref"/>
+    <xsl:text>|</xsl:text>
+  </xsl:for-each>
+  <!-- Remove any Groups not implemented by FOP -->
+  <xsl:for-each select="./xs:choice/xs:group[substring(./@ref,string-length(./@ref) - 3) != '_Not']">
+    <xsl:variable name="ref">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:apply-templates select="/xs:schema/xs:group[@name=$ref]"/>
+  </xsl:for-each>
 </xsl:template>
 
 <xsl:template match="xs:attributeGroup">
-       <xsl:for-each select="./xs:attribute">
-               <xsl:apply-templates select="."/>
-       </xsl:for-each>
-       <!-- Remove any attributeGroups not implemented by FOP -->
-       <xsl:for-each select="./xs:attributeGroup[substring(./@ref,string-length(./@ref) - 3) != '_Not']">
-               <xsl:variable name="ref">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:apply-templates select="/xs:schema/xs:attributeGroup[@name = $ref]"/>
-       </xsl:for-each>
+  <xsl:for-each select="./xs:attribute">
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+  <!-- Remove any attributeGroups not implemented by FOP -->
+  <xsl:for-each select="./xs:attributeGroup[substring(./@ref,string-length(./@ref) - 3) != '_Not']">
+    <xsl:variable name="ref">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:apply-templates select="/xs:schema/xs:attributeGroup[@name = $ref]"/>
+  </xsl:for-each>
 </xsl:template>
 
 <xsl:template match="xs:simpleType">
-       <xsl:variable name="name" select="@name"/>
-       <xsl:for-each select="./xs:restriction/xs:enumeration">
-               <xsl:value-of select="./@value"/>
-               <xsl:text>|</xsl:text>
-               <xsl:message>Attribute <xsl:value-of select="./@value"/></xsl:message>
-       </xsl:for-each>
-       <xsl:variable name="unions" select="./xs:union/@memberTypes"/>
-       <xsl:if test="$unions">
-               <xsl:call-template name="splitUnion">
-                       <xsl:with-param name="union" select="$unions"/>
-               </xsl:call-template>
-       </xsl:if>
-               <xsl:for-each select="./xs:annotation/xs:documentation/xs:enumeration">
-                       <xsl:comment>
-                               This supplies annotated list values inserted in the schema
-                               solely for the purpose of supplying examples of valid values for a type.
-                       </xsl:comment>
-                       <xsl:value-of select="./@value"/>
-                       <xsl:text>|</xsl:text>
-                       <xsl:message>Fake Attribute <xsl:value-of select="./@value"/></xsl:message>
-               </xsl:for-each>
+  <xsl:variable name="name" select="@name"/>
+  <xsl:for-each select="./xs:restriction/xs:enumeration">
+    <xsl:value-of select="./@value"/>
+    <xsl:text>|</xsl:text>
+    <xsl:message>Attribute <xsl:value-of select="./@value"/></xsl:message>
+  </xsl:for-each>
+  <xsl:variable name="unions" select="./xs:union/@memberTypes"/>
+  <xsl:if test="$unions">
+    <xsl:call-template name="splitUnion">
+      <xsl:with-param name="union" select="$unions"/>
+    </xsl:call-template>
+  </xsl:if>
+    <xsl:for-each select="./xs:annotation/xs:documentation/xs:enumeration">
+      <xsl:comment>
+        This supplies annotated list values inserted in the schema
+        solely for the purpose of supplying examples of valid values for a type.
+      </xsl:comment>
+      <xsl:value-of select="./@value"/>
+      <xsl:text>|</xsl:text>
+      <xsl:message>Fake Attribute <xsl:value-of select="./@value"/></xsl:message>
+    </xsl:for-each>
 </xsl:template>
 
 <xsl:template name="splitUnion">
-       <xsl:param name="union"/>
-       <xsl:variable name="type">
-               <xsl:call-template name="strip_fo">
-                       <xsl:with-param name="ref">
-                               <xsl:if test="not(substring-before($union,' '))">
-                                       <xsl:value-of select="$union"/>
-                               </xsl:if>
-                               <xsl:value-of select="substring-before($union,' ')"/>
-                       </xsl:with-param>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:message>Calling <xsl:value-of select="$type"/></xsl:message>
-       <xsl:apply-templates select="/xs:schema/xs:simpleType[@name = $type]"/>
-       <xsl:if test="substring-after($union,' ')">
-               <xsl:call-template name="splitUnion">
-                       <xsl:with-param name="union" select="substring-after($union,' ')"/>
-               </xsl:call-template>
-       </xsl:if>
+  <xsl:param name="union"/>
+  <xsl:variable name="type">
+    <xsl:call-template name="strip_fo">
+      <xsl:with-param name="ref">
+        <xsl:if test="not(substring-before($union,' '))">
+          <xsl:value-of select="$union"/>
+        </xsl:if>
+        <xsl:value-of select="substring-before($union,' ')"/>
+      </xsl:with-param>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:message>Calling <xsl:value-of select="$type"/></xsl:message>
+  <xsl:apply-templates select="/xs:schema/xs:simpleType[@name = $type]"/>
+  <xsl:if test="substring-after($union,' ')">
+    <xsl:call-template name="splitUnion">
+      <xsl:with-param name="union" select="substring-after($union,' ')"/>
+    </xsl:call-template>
+  </xsl:if>
 </xsl:template>
 
 <xsl:template match="xs:element">
-       <xsl:text disable-output-escaping="yes">&lt;element name="fo:</xsl:text>
-       <xsl:value-of select="./@name"/>
-       <xsl:text>"
+  <xsl:text disable-output-escaping="yes">&lt;element name="fo:</xsl:text>
+  <xsl:value-of select="./@name"/>
+  <xsl:text>"
 content="</xsl:text>
-       <xsl:choose>
-               <xsl:when test="( not(./xs:complexType/xs:sequence) and not(./xs:complexType/xs:choice) )">
-                       <xsl:text>EMPTY</xsl:text>
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:text>(</xsl:text>
-                       <xsl:if test="./xs:complexType/@mixed = 'true'">
-                               <xsl:text>#PCDATA|</xsl:text>
-                       </xsl:if>
-                       <xsl:for-each select="./xs:complexType/xs:sequence|./xs:complexType/xs:choice">
-                               <xsl:for-each select="./xs:element">
-                                       <xsl:value-of select="./@ref"/>
-                                       <xsl:text>|</xsl:text>
-                               </xsl:for-each>
-                               <xsl:for-each select="./xs:group">
-                                       <xsl:variable name="ref">
-                                               <xsl:call-template name="strip_fo">
-                                                       <xsl:with-param name="ref" select="./@ref"/>
-                                               </xsl:call-template>
-                                       </xsl:variable>
-                                       <xsl:apply-templates select="/xs:schema/xs:group[@name=$ref]"/>
-                               </xsl:for-each>
-                       </xsl:for-each>
-                       <xsl:text>)</xsl:text>
-               </xsl:otherwise>
-       </xsl:choose>
-       <xsl:text disable-output-escaping="yes">"&gt;
+  <xsl:choose>
+    <xsl:when test="( not(./xs:complexType/xs:sequence) and not(./xs:complexType/xs:choice) )">
+      <xsl:text>EMPTY</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>(</xsl:text>
+      <xsl:if test="./xs:complexType/@mixed = 'true'">
+        <xsl:text>#PCDATA|</xsl:text>
+      </xsl:if>
+      <xsl:for-each select="./xs:complexType/xs:sequence|./xs:complexType/xs:choice">
+        <xsl:for-each select="./xs:element">
+          <xsl:value-of select="./@ref"/>
+          <xsl:text>|</xsl:text>
+        </xsl:for-each>
+        <xsl:for-each select="./xs:group">
+          <xsl:variable name="ref">
+            <xsl:call-template name="strip_fo">
+              <xsl:with-param name="ref" select="./@ref"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:apply-templates select="/xs:schema/xs:group[@name=$ref]"/>
+        </xsl:for-each>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:text disable-output-escaping="yes">"&gt;
 </xsl:text>
-       <xsl:for-each select="./xs:complexType/xs:attribute">
-               <xsl:apply-templates select="."/>
-       </xsl:for-each>
-       <xsl:for-each select="./xs:complexType/xs:attributeGroup">
-               <xsl:variable name="ref">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:apply-templates select="/xs:schema/xs:attributeGroup[@name = $ref]"/>
-       </xsl:for-each>
-       <xsl:text disable-output-escaping="yes">
+  <xsl:for-each select="./xs:complexType/xs:attribute">
+    <xsl:apply-templates select="."/>
+  </xsl:for-each>
+  <xsl:for-each select="./xs:complexType/xs:attributeGroup">
+    <xsl:variable name="ref">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:apply-templates select="/xs:schema/xs:attributeGroup[@name = $ref]"/>
+  </xsl:for-each>
+  <xsl:text disable-output-escaping="yes">
 &lt;/element&gt;
 </xsl:text>
 </xsl:template>
 
 <xsl:template match="xs:attribute">
-       <xsl:variable name="attributeName" select="./@name"/>
-       <xsl:variable name="type">
-               <xsl:call-template name="strip_fo">
-                       <xsl:with-param name="ref" select="./@type"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:message>Processing type = <xsl:value-of select="$type"/></xsl:message>
-       <attribute name="{$attributeName}">
-               <xsl:attribute name="type">
-                       <xsl:variable name="content">
-                               <xsl:choose>
-                                       <xsl:when test="$properties/property-list/generic-property-list/property[name = $attributeName]/enumeration">
-                                               <!-- Get the valid values from FOP -->
-                                               <xsl:for-each select="$properties/property-list/generic-property-list/property[name = $attributeName]/enumeration/value">
-                                                       <xsl:value-of select="."/><xsl:text>|</xsl:text>
-                                               </xsl:for-each>
-                                       </xsl:when>
-                                       <xsl:otherwise>
-                                               <xsl:apply-templates select="/xs:schema/xs:simpleType[@name = $type]"/>
-                                       </xsl:otherwise>
-                               </xsl:choose>
-                       </xsl:variable>
-                       <xsl:choose>
-                               <xsl:when test="$content != ''">
-                                       <xsl:text>(</xsl:text>
-                                       <xsl:value-of select="$content"/>
-                                       <xsl:text>)</xsl:text>
-                               </xsl:when>
-                               <xsl:otherwise>
-                                       <xsl:text>CDATA</xsl:text>
-                               </xsl:otherwise>
-                       </xsl:choose>
-               </xsl:attribute>
-       </attribute>
+  <xsl:variable name="attributeName" select="./@name"/>
+  <xsl:variable name="type">
+    <xsl:call-template name="strip_fo">
+      <xsl:with-param name="ref" select="./@type"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:message>Processing type = <xsl:value-of select="$type"/></xsl:message>
+  <attribute name="{$attributeName}">
+    <xsl:attribute name="type">
+      <xsl:variable name="content">
+        <xsl:choose>
+          <xsl:when test="$properties/property-list/generic-property-list/property[name = $attributeName]/enumeration">
+            <!-- Get the valid values from FOP -->
+            <xsl:for-each select="$properties/property-list/generic-property-list/property[name = $attributeName]/enumeration/value">
+              <xsl:value-of select="."/><xsl:text>|</xsl:text>
+            </xsl:for-each>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:apply-templates select="/xs:schema/xs:simpleType[@name = $type]"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:variable>
+      <xsl:choose>
+        <xsl:when test="$content != ''">
+          <xsl:text>(</xsl:text>
+          <xsl:value-of select="$content"/>
+          <xsl:text>)</xsl:text>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:text>CDATA</xsl:text>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </attribute>
 </xsl:template>
 
 <xsl:template name="strip_fo">
-       <xsl:param name="ref"/>
-       <xsl:choose>
-               <xsl:when test="substring($ref,1,3) = 'fo:'">
-                       <xsl:value-of select="substring($ref,4)"/>
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:value-of select="$ref"/>
-               </xsl:otherwise>
-       </xsl:choose>
+  <xsl:param name="ref"/>
+  <xsl:choose>
+    <xsl:when test="substring($ref,1,3) = 'fo:'">
+      <xsl:value-of select="substring($ref,4)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$ref"/>
+    </xsl:otherwise>
+  </xsl:choose>
 </xsl:template>
 
 </xsl:stylesheet>
\ No newline at end of file
index e4bcc0db8a833328ea96595cb7c232b66fe9db81..0ef7215ebb567e8d3c263b1beee9f5b96747691b 100644 (file)
@@ -1,15 +1,15 @@
 <?xml version="1.0"?>
 
 <xsl:stylesheet saxon:trace="no"
-               version="1.1"
-               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-               xmlns:saxon="http://icl.com/saxon"
-               xmlns:xs = "http://www.w3.org/2001/XMLSchema"
-               xmlns:fo="http://www.w3.org/1999/XSL/Format"
-               xmlns:date="http://exslt.org/dates-and-times"
-               xmlns:math="http://exslt.org/math"
-               extension-element-prefixes="saxon date math"
-               exclude-result-prefixes="fo">
+    version="1.1"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:saxon="http://icl.com/saxon"
+    xmlns:xs = "http://www.w3.org/2001/XMLSchema"
+    xmlns:fo="http://www.w3.org/1999/XSL/Format"
+    xmlns:date="http://exslt.org/dates-and-times"
+    xmlns:math="http://exslt.org/math"
+    extension-element-prefixes="saxon date math"
+    exclude-result-prefixes="fo">
 
 <xsl:output method="xml" version="1.0" omit-xml-declaration="no" indent="yes"/>
 <xsl:strip-space elements="*"/>
 </xsl:text><xsl:comment> Entity definitions for groups of formatting objects             </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text>
-       <xsl:apply-templates select="./xs:simpleType"/>
+  <xsl:apply-templates select="./xs:simpleType"/>
 <xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> Attribute Groups                                                </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment>
-       <xsl:apply-templates select="./xs:attributeGroup"/>
+  <xsl:apply-templates select="./xs:attributeGroup"/>
 <xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> Element Groups                                                  </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text>
-       <xsl:apply-templates select="./xs:group"/>
+  <xsl:apply-templates select="./xs:group"/>
 <xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> Elements                                                        </xsl:comment><xsl:text>
 </xsl:text><xsl:comment> *************************************************************** </xsl:comment><xsl:text>
 </xsl:text>
-       <xsl:apply-templates select="./xs:element"/>
+  <xsl:apply-templates select="./xs:element"/>
 </xsl:template>
 
 <xsl:template match="xs:group">
-       <xsl:text disable-output-escaping="yes">
+  <xsl:text disable-output-escaping="yes">
 &lt;!ENTITY % </xsl:text><xsl:value-of select="./@name"/><xsl:text> "</xsl:text> 
-       <xsl:for-each select="./xs:choice/xs:element">
-               <xsl:text>
-       </xsl:text>
-               <xsl:value-of select="./@ref"/>
-               <xsl:if test="position() != last()">
-                       <xsl:text> |</xsl:text>
-               </xsl:if>
-       </xsl:for-each>
-       <xsl:if test="./xs:choice/xs:group">
-               <xsl:variable name="ref1">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./xs:choice/xs:group[1]/@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:variable name="ref2">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./xs:choice/xs:group[2]/@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:text>
-       %</xsl:text>
-               <xsl:value-of select="$ref1"/>
-               <xsl:text>;</xsl:text>
-               <xsl:if test="(/xs:schema/xs:group[@name = $ref1]/xs:choice/xs:element) and (/xs:schema/xs:group[@name = $ref2]/xs:choice/xs:element)">
-                       <xsl:text>| </xsl:text>
-               </xsl:if>
-               <xsl:text>
-       %</xsl:text>
-               <xsl:value-of select="$ref2"/><xsl:text>;</xsl:text>
-       </xsl:if>
-       <xsl:text disable-output-escaping="yes">
+  <xsl:for-each select="./xs:choice/xs:element">
+    <xsl:text>
+  </xsl:text>
+    <xsl:value-of select="./@ref"/>
+    <xsl:if test="position() != last()">
+      <xsl:text> |</xsl:text>
+    </xsl:if>
+  </xsl:for-each>
+  <xsl:if test="./xs:choice/xs:group">
+    <xsl:variable name="ref1">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./xs:choice/xs:group[1]/@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="ref2">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./xs:choice/xs:group[2]/@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:text>
+  %</xsl:text>
+    <xsl:value-of select="$ref1"/>
+    <xsl:text>;</xsl:text>
+    <xsl:if test="(/xs:schema/xs:group[@name = $ref1]/xs:choice/xs:element) and (/xs:schema/xs:group[@name = $ref2]/xs:choice/xs:element)">
+      <xsl:text>| </xsl:text>
+    </xsl:if>
+    <xsl:text>
+  %</xsl:text>
+    <xsl:value-of select="$ref2"/><xsl:text>;</xsl:text>
+  </xsl:if>
+  <xsl:text disable-output-escaping="yes">
 "&gt;</xsl:text>
 </xsl:template>
 
 <xsl:template match="xs:attributeGroup">
-       <xsl:text disable-output-escaping="yes">
+  <xsl:text disable-output-escaping="yes">
 &lt;!ENTITY % </xsl:text><xsl:value-of select="./@name"/><xsl:text> "</xsl:text>
-       <xsl:for-each select="./xs:attribute">
-               <xsl:variable name="name">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@name"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:variable name="type">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@type"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:text>
-       </xsl:text>
-               <xsl:value-of select="$name"/>
-               <xsl:choose>
-                       <xsl:when test="$type = 'xs:string'">
-                               <xsl:text> CDATA</xsl:text>
-                       </xsl:when>
-                       <xsl:when test="/xs:schema/xs:simpleType[@name = $type]/xs:restriction/xs:enumeration">
-                               <!--This item is a directly enumerated type-->
-                               <xsl:text> (%</xsl:text>
-                               <xsl:value-of select="$type"/>
-                               <xsl:text>;)</xsl:text>
-                       </xsl:when>
-                       <xsl:otherwise>
-                               <xsl:text> CDATA</xsl:text>
-                       </xsl:otherwise>
-               </xsl:choose>
-               <xsl:text> #IMPLIED</xsl:text>
-       </xsl:for-each>
-       <xsl:for-each select="./xs:attributeGroup">
-               <xsl:variable name="ref">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:text>
-       %</xsl:text><xsl:value-of select="$ref"/><xsl:text>;</xsl:text>
-       </xsl:for-each>
-       <xsl:text disable-output-escaping="yes">
-       "&gt;</xsl:text>
+  <xsl:for-each select="./xs:attribute">
+    <xsl:variable name="name">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@name"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="type">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@type"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:text>
+  </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:choose>
+      <xsl:when test="$type = 'xs:string'">
+        <xsl:text> CDATA</xsl:text>
+      </xsl:when>
+      <xsl:when test="/xs:schema/xs:simpleType[@name = $type]/xs:restriction/xs:enumeration">
+        <!--This item is a directly enumerated type-->
+        <xsl:text> (%</xsl:text>
+        <xsl:value-of select="$type"/>
+        <xsl:text>;)</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> CDATA</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:text> #IMPLIED</xsl:text>
+  </xsl:for-each>
+  <xsl:for-each select="./xs:attributeGroup">
+    <xsl:variable name="ref">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:text>
+  %</xsl:text><xsl:value-of select="$ref"/><xsl:text>;</xsl:text>
+  </xsl:for-each>
+  <xsl:text disable-output-escaping="yes">
+  "&gt;</xsl:text>
 </xsl:template>
 
 <xsl:template match="xs:simpleType">
-       <xsl:if test="./xs:restriction/xs:enumeration">
-               <xsl:text disable-output-escaping="yes">
+  <xsl:if test="./xs:restriction/xs:enumeration">
+    <xsl:text disable-output-escaping="yes">
 &lt;!ENTITY % </xsl:text><xsl:value-of select="./@name"/><xsl:text> "</xsl:text>
-               <xsl:for-each select="./xs:restriction/xs:enumeration">
-                       <xsl:value-of select="./@value"/>
-                       <xsl:if test="position() != last()">
-                               <xsl:text>|</xsl:text>
-                       </xsl:if>
-               </xsl:for-each>
-               <xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
-       </xsl:if>
+    <xsl:for-each select="./xs:restriction/xs:enumeration">
+      <xsl:value-of select="./@value"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>|</xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
+  </xsl:if>
 </xsl:template>
 
 <xsl:template match="xs:element">
-       <xsl:text disable-output-escaping="yes">&lt;!ELEMENT fo:</xsl:text>
-       <xsl:value-of select="./@name"/>
-       <xsl:choose>
-               <xsl:when test="( not(./xs:complexType/xs:sequence) and not(./xs:complexType/xs:choice) )">
-                       <xsl:text> EMPTY</xsl:text>
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:text> (</xsl:text>
-                       <xsl:if test="./xs:complexType/@mixed = 'true'">
-                               <xsl:text>#PCDATA|</xsl:text>
-                       </xsl:if>
-                       <xsl:for-each select="./xs:complexType/xs:sequence">
-                               <xsl:for-each select="./xs:element">
-                                       <xsl:value-of select="./@ref"/>
-                                       <xsl:call-template name="addPlus"/>
-                                       <xsl:if test="position() != last()">
-                                               <xsl:text>,</xsl:text>
-                                       </xsl:if>
-                               </xsl:for-each>
-                               <xsl:for-each select="./xs:group">
-                                       <xsl:text>%</xsl:text>
-                                       <xsl:variable name="ref">
-                                               <xsl:call-template name="strip_fo">
-                                                       <xsl:with-param name="ref" select="./@ref"/>
-                                               </xsl:call-template>
-                                       </xsl:variable>
-                                       <xsl:value-of select="$ref"/>
-                                       <xsl:text>;</xsl:text>
-                                       <xsl:call-template name="addPlus"/>
-                                       <xsl:if test="position() != last()">
-                                               <xsl:text>,</xsl:text>
-                                       </xsl:if>
-                               </xsl:for-each>
-                       </xsl:for-each>
-                       <xsl:for-each select="./xs:complexType/xs:choice">
-                               <xsl:for-each select="./xs:element">
-                                       <xsl:value-of select="./@ref"/>
-                                       <xsl:call-template name="addPlus"/>
-                                       <xsl:if test="position() != last()">
-                                               <xsl:text>|</xsl:text>
-                                       </xsl:if>
-                               </xsl:for-each>
-                               <xsl:for-each select="./xs:group">
-                                       <xsl:text>%</xsl:text>
-                                       <xsl:variable name="ref">
-                                               <xsl:call-template name="strip_fo">
-                                                       <xsl:with-param name="ref" select="./@ref"/>
-                                               </xsl:call-template>
-                                       </xsl:variable>
-                                       <xsl:value-of select="$ref"/>
-                                       <xsl:text>;</xsl:text>
-                                       <xsl:call-template name="addPlus"/>
-                                       <xsl:if test="position() != last()">
-                                               <xsl:text>|</xsl:text>
-                                       </xsl:if>
-                               </xsl:for-each>
-                       </xsl:for-each>
-                       <xsl:text>)</xsl:text>
-               </xsl:otherwise>
-       </xsl:choose>
-       <xsl:for-each select="./xs:complexType/xs:sequence">
-               <xsl:call-template name="addPlus"/>
-       </xsl:for-each>
-       <xsl:for-each select="./xs:complexType/xs:choice">
-               <xsl:call-template name="addPlus"/>
-       </xsl:for-each>
-       <xsl:text disable-output-escaping="yes">&gt;
+  <xsl:text disable-output-escaping="yes">&lt;!ELEMENT fo:</xsl:text>
+  <xsl:value-of select="./@name"/>
+  <xsl:choose>
+    <xsl:when test="( not(./xs:complexType/xs:sequence) and not(./xs:complexType/xs:choice) )">
+      <xsl:text> EMPTY</xsl:text>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text> (</xsl:text>
+      <xsl:if test="./xs:complexType/@mixed = 'true'">
+        <xsl:text>#PCDATA|</xsl:text>
+      </xsl:if>
+      <xsl:for-each select="./xs:complexType/xs:sequence">
+        <xsl:for-each select="./xs:element">
+          <xsl:value-of select="./@ref"/>
+          <xsl:call-template name="addPlus"/>
+          <xsl:if test="position() != last()">
+            <xsl:text>,</xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+        <xsl:for-each select="./xs:group">
+          <xsl:text>%</xsl:text>
+          <xsl:variable name="ref">
+            <xsl:call-template name="strip_fo">
+              <xsl:with-param name="ref" select="./@ref"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select="$ref"/>
+          <xsl:text>;</xsl:text>
+          <xsl:call-template name="addPlus"/>
+          <xsl:if test="position() != last()">
+            <xsl:text>,</xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:for-each>
+      <xsl:for-each select="./xs:complexType/xs:choice">
+        <xsl:for-each select="./xs:element">
+          <xsl:value-of select="./@ref"/>
+          <xsl:call-template name="addPlus"/>
+          <xsl:if test="position() != last()">
+            <xsl:text>|</xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+        <xsl:for-each select="./xs:group">
+          <xsl:text>%</xsl:text>
+          <xsl:variable name="ref">
+            <xsl:call-template name="strip_fo">
+              <xsl:with-param name="ref" select="./@ref"/>
+            </xsl:call-template>
+          </xsl:variable>
+          <xsl:value-of select="$ref"/>
+          <xsl:text>;</xsl:text>
+          <xsl:call-template name="addPlus"/>
+          <xsl:if test="position() != last()">
+            <xsl:text>|</xsl:text>
+          </xsl:if>
+        </xsl:for-each>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+  <xsl:for-each select="./xs:complexType/xs:sequence">
+    <xsl:call-template name="addPlus"/>
+  </xsl:for-each>
+  <xsl:for-each select="./xs:complexType/xs:choice">
+    <xsl:call-template name="addPlus"/>
+  </xsl:for-each>
+  <xsl:text disable-output-escaping="yes">&gt;
 &lt;!ATTLIST fo:</xsl:text>
-       <xsl:value-of select="./@name"/>
-       <xsl:for-each select="./xs:complexType/xs:attribute">
-               <xsl:variable name="name">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@name"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:variable name="type">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@type"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:text>
-       </xsl:text>
-               <xsl:value-of select="$name"/>
-               <xsl:choose>
-                       <xsl:when test="$type = 'xs:string'">
-                               <xsl:text> CDATA</xsl:text>
-                       </xsl:when>
-                       <xsl:when test="/xs:schema/xs:simpleType[@name = $type]/xs:restriction/xs:enumeration">
-                               <!--This item is a directly enumerated type-->
-                               <xsl:text> (%</xsl:text>
-                               <xsl:value-of select="$type"/>
-                               <xsl:text>;)</xsl:text>
-                       </xsl:when>
-                       <xsl:otherwise>
-                               <xsl:text> CDATA</xsl:text>
-                       </xsl:otherwise>
-               </xsl:choose>
-               <xsl:choose>
-                       <xsl:when test="@use = 'required'">
-                               <xsl:text> #REQUIRED</xsl:text>
-                       </xsl:when>
-                       <xsl:otherwise>
-                               <xsl:text> #IMPLIED</xsl:text>
-                       </xsl:otherwise>
-               </xsl:choose>
-       </xsl:for-each>
-       <xsl:for-each select="./xs:complexType/xs:attributeGroup">
-               <xsl:variable name="ref">
-                       <xsl:call-template name="strip_fo">
-                               <xsl:with-param name="ref" select="./@ref"/>
-                       </xsl:call-template>
-               </xsl:variable>
-               <xsl:text>
-       %</xsl:text>
-               <xsl:value-of select="$ref"/>
-               <xsl:text>;</xsl:text>
-       </xsl:for-each>
-       <xsl:text disable-output-escaping="yes">
+  <xsl:value-of select="./@name"/>
+  <xsl:for-each select="./xs:complexType/xs:attribute">
+    <xsl:variable name="name">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@name"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="type">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@type"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:text>
+  </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:choose>
+      <xsl:when test="$type = 'xs:string'">
+        <xsl:text> CDATA</xsl:text>
+      </xsl:when>
+      <xsl:when test="/xs:schema/xs:simpleType[@name = $type]/xs:restriction/xs:enumeration">
+        <!--This item is a directly enumerated type-->
+        <xsl:text> (%</xsl:text>
+        <xsl:value-of select="$type"/>
+        <xsl:text>;)</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> CDATA</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:choose>
+      <xsl:when test="@use = 'required'">
+        <xsl:text> #REQUIRED</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text> #IMPLIED</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:for-each>
+  <xsl:for-each select="./xs:complexType/xs:attributeGroup">
+    <xsl:variable name="ref">
+      <xsl:call-template name="strip_fo">
+        <xsl:with-param name="ref" select="./@ref"/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:text>
+  %</xsl:text>
+    <xsl:value-of select="$ref"/>
+    <xsl:text>;</xsl:text>
+  </xsl:for-each>
+  <xsl:text disable-output-escaping="yes">
 &gt;
 </xsl:text>
 </xsl:template>
 
 <xsl:template name="addPlus">
-       <xsl:choose>
-               <xsl:when test="(@minOccurs = 0) and (@maxOccurs = 'unbounded')">
-                       <xsl:text>*</xsl:text>
-               </xsl:when>
-               <xsl:when test="(@minOccurs = 0) and ((@maxOccurs = 1) or not(@maxOccurs))">
-                       <xsl:text>?</xsl:text>
-               </xsl:when>
-               <xsl:when test="((@minOccurs = 1) or not(@minOccurs)) and (@maxOccurs = 'unbounded')">
-                       <xsl:text>+</xsl:text>
-               </xsl:when>
-               <xsl:when test="not(@minOccurs) and not(@maxOccurs)">
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:text>!error!</xsl:text>
-               </xsl:otherwise>
-       </xsl:choose>
+  <xsl:choose>
+    <xsl:when test="(@minOccurs = 0) and (@maxOccurs = 'unbounded')">
+      <xsl:text>*</xsl:text>
+    </xsl:when>
+    <xsl:when test="(@minOccurs = 0) and ((@maxOccurs = 1) or not(@maxOccurs))">
+      <xsl:text>?</xsl:text>
+    </xsl:when>
+    <xsl:when test="((@minOccurs = 1) or not(@minOccurs)) and (@maxOccurs = 'unbounded')">
+      <xsl:text>+</xsl:text>
+    </xsl:when>
+    <xsl:when test="not(@minOccurs) and not(@maxOccurs)">
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:text>!error!</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
 </xsl:template>
 
 <xsl:template name="strip_fo">
-       <xsl:param name="ref"/>
-       <xsl:choose>
-               <xsl:when test="substring($ref,1,3) = 'fo:'">
-                       <xsl:value-of select="substring($ref,4)"/>
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:value-of select="$ref"/>
-               </xsl:otherwise>
-       </xsl:choose>
+  <xsl:param name="ref"/>
+  <xsl:choose>
+    <xsl:when test="substring($ref,1,3) = 'fo:'">
+      <xsl:value-of select="substring($ref,4)"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:value-of select="$ref"/>
+    </xsl:otherwise>
+  </xsl:choose>
 </xsl:template>
 
 </xsl:stylesheet>
\ No newline at end of file