diff options
author | Peter Bernard West <pbwest@apache.org> | 2002-10-24 15:19:35 +0000 |
---|---|---|
committer | Peter Bernard West <pbwest@apache.org> | 2002-10-24 15:19:35 +0000 |
commit | 3316a78091333b15939ee77327a8430853f6240b (patch) | |
tree | 556f895a1bb27fcad926c6041f18bef83bb3592d | |
parent | 53a25ebdeeeee1b25ba459100590584d868f2b7a (diff) | |
download | xmlgraphics-fop-3316a78091333b15939ee77327a8430853f6240b.tar.gz xmlgraphics-fop-3316a78091333b15939ee77327a8430853f6240b.zip |
Stripped <TAB>s using tabstops of 2.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@195359 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | docs/foschema/schema2completion.xsl | 318 | ||||
-rw-r--r-- | docs/foschema/schema2dtd.xsl | 478 |
2 files changed, 398 insertions, 398 deletions
diff --git a/docs/foschema/schema2completion.xsl b/docs/foschema/schema2completion.xsl index 0cbaef14b..3e342dfb8 100644 --- a/docs/foschema/schema2completion.xsl +++ b/docs/foschema/schema2completion.xsl @@ -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="*"/> @@ -17,181 +17,181 @@ <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"><element name="fo:</xsl:text> - <xsl:value-of select="./@name"/> - <xsl:text>" + <xsl:text disable-output-escaping="yes"><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">"> + <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">"> </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"> </element> </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 diff --git a/docs/foschema/schema2dtd.xsl b/docs/foschema/schema2dtd.xsl index e4bcc0db8..0ef7215eb 100644 --- a/docs/foschema/schema2dtd.xsl +++ b/docs/foschema/schema2dtd.xsl @@ -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="*"/> @@ -45,275 +45,275 @@ </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"> <!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"> "></xsl:text> </xsl:template> <xsl:template match="xs:attributeGroup"> - <xsl:text disable-output-escaping="yes"> + <xsl:text disable-output-escaping="yes"> <!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"> - "></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"> + "></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"> <!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">"></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">"></xsl:text> + </xsl:if> </xsl:template> <xsl:template match="xs:element"> - <xsl:text disable-output-escaping="yes"><!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">> + <xsl:text disable-output-escaping="yes"><!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">> <!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"> > </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 |