mirror of
https://github.com/boostorg/boostbook.git
synced 2025-05-11 13:23:59 +00:00
Merge some of the boostbook changes from trunk.
* XML validity fix for a test. * Valid docbook lists. * Updated documentation build settings. * Fix doxygen problem when two files have the same name. Fixes #1192. * Avoid including `type` elements in generated docbook. * Update setup_boostbook scripts. [SVN r63463]
This commit is contained in:
parent
6a013b856f
commit
4936070d81
@ -8,9 +8,6 @@ project boost/doc ;
|
|||||||
import boostbook : boostbook ;
|
import boostbook : boostbook ;
|
||||||
|
|
||||||
boostbook boostbook : boostbook.xml :
|
boostbook boostbook : boostbook.xml :
|
||||||
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
|
|
||||||
<xsl:param>boost.root=../../../..
|
<xsl:param>boost.root=../../../..
|
||||||
<xsl:param>boost.libraries=../../../../libs/libraries.htm
|
|
||||||
<xsl:param>navig.graphics=1
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -11,12 +11,12 @@
|
|||||||
|
|
||||||
# User configuration
|
# User configuration
|
||||||
# (MAINTANERS: please, keep in synch with setup_boostbook.sh)
|
# (MAINTANERS: please, keep in synch with setup_boostbook.sh)
|
||||||
DOCBOOK_XSL_VERSION = "1.73.2"
|
DOCBOOK_XSL_VERSION = "1.75.2"
|
||||||
DOCBOOK_DTD_VERSION = "4.2"
|
DOCBOOK_DTD_VERSION = "4.2"
|
||||||
FOP_VERSION = "0.94"
|
FOP_VERSION = "0.94"
|
||||||
FOP_JDK_VERSION="1.4"
|
FOP_JDK_VERSION="1.4"
|
||||||
FOP_MIRROR = "http://mirrors.ibiblio.org/pub/mirrors/apache/xmlgraphics/fop/binaries"
|
FOP_MIRROR = "http://mirrors.ibiblio.org/pub/mirrors/apache/xmlgraphics/fop/binaries"
|
||||||
SOURCEFORGE_MIRROR = "http://dl.sourceforge.net"
|
SOURCEFORGE_DOWNLOAD = "http://sourceforge.net/projects/docbook/files"
|
||||||
|
|
||||||
# No user configuration below this point-------------------------------------
|
# No user configuration below this point-------------------------------------
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ def adjust_user_config( config_file
|
|||||||
def setup_docbook_xsl( tools_directory ):
|
def setup_docbook_xsl( tools_directory ):
|
||||||
print "DocBook XSLT Stylesheets ..."
|
print "DocBook XSLT Stylesheets ..."
|
||||||
DOCBOOK_XSL_TARBALL = os.path.join( tools_directory, "docbook-xsl-%s.tar.gz" % DOCBOOK_XSL_VERSION )
|
DOCBOOK_XSL_TARBALL = os.path.join( tools_directory, "docbook-xsl-%s.tar.gz" % DOCBOOK_XSL_VERSION )
|
||||||
DOCBOOK_XSL_URL = "%s/sourceforge/docbook/%s" % ( SOURCEFORGE_MIRROR, os.path.basename( DOCBOOK_XSL_TARBALL ) )
|
DOCBOOK_XSL_URL = "%s/docbook-xsl/%s/%s/download" % (SOURCEFORGE_DOWNLOAD, DOCBOOK_XSL_VERSION, os.path.basename( DOCBOOK_XSL_TARBALL ) )
|
||||||
|
|
||||||
if os.path.exists( DOCBOOK_XSL_TARBALL ):
|
if os.path.exists( DOCBOOK_XSL_TARBALL ):
|
||||||
print " Using existing DocBook XSLT Stylesheets (version %s)." % DOCBOOK_XSL_VERSION
|
print " Using existing DocBook XSLT Stylesheets (version %s)." % DOCBOOK_XSL_VERSION
|
||||||
|
@ -7,19 +7,19 @@
|
|||||||
|
|
||||||
# User configuration
|
# User configuration
|
||||||
# (MAINTANERS: please, keep in synch with setup_boostbook.py)
|
# (MAINTANERS: please, keep in synch with setup_boostbook.py)
|
||||||
DOCBOOK_XSL_VERSION=1.73.2
|
DOCBOOK_XSL_VERSION=1.75.2
|
||||||
DOCBOOK_DTD_VERSION=4.2
|
DOCBOOK_DTD_VERSION=4.2
|
||||||
FOP_VERSION=0.94
|
FOP_VERSION=0.94
|
||||||
FOP_JDK_VERSION=1.4
|
FOP_JDK_VERSION=1.4
|
||||||
FOP_MIRROR=http://mirrors.ibiblio.org/pub/mirrors/apache/xmlgraphics/fop/binaries
|
FOP_MIRROR=http://mirrors.ibiblio.org/pub/mirrors/apache/xmlgraphics/fop/binaries
|
||||||
SOURCEFORGE_MIRROR=http://dl.sourceforge.net
|
SOURCEFORGE_DOWNLOAD=http://sourceforge.net/projects/docbook/files/
|
||||||
HTTP_GET_CMD="curl -O -L"
|
HTTP_GET_CMD="curl -O -L"
|
||||||
|
|
||||||
# No user configuration below this point-------------------------------------
|
# No user configuration below this point-------------------------------------
|
||||||
|
|
||||||
# Get the DocBook XSLT Stylesheets
|
# Get the DocBook XSLT Stylesheets
|
||||||
DOCBOOK_XSL_TARBALL=docbook-xsl-$DOCBOOK_XSL_VERSION.tar.gz
|
DOCBOOK_XSL_TARBALL=docbook-xsl-$DOCBOOK_XSL_VERSION.tar.gz
|
||||||
DOCBOOK_XSL_URL=$SOURCEFORGE_MIRROR/sourceforge/docbook/$DOCBOOK_XSL_TARBALL
|
DOCBOOK_XSL_URL=$SOURCEFORGE_DOWNLOAD/docbook-xsl/$DOCBOOK_XSL_VERSION/$DOCBOOK_XSL_TARBALL/download
|
||||||
if test -f $DOCBOOK_XSL_TARBALL; then
|
if test -f $DOCBOOK_XSL_TARBALL; then
|
||||||
echo "Using existing DocBook XSLT Stylesheets (version $DOCBOOK_XSL_VERSION)."
|
echo "Using existing DocBook XSLT Stylesheets (version $DOCBOOK_XSL_VERSION)."
|
||||||
else
|
else
|
||||||
|
@ -8,9 +8,6 @@ project boost/test ;
|
|||||||
import boostbook : boostbook ;
|
import boostbook : boostbook ;
|
||||||
|
|
||||||
boostbook alt : alt.xml :
|
boostbook alt : alt.xml :
|
||||||
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
|
|
||||||
<xsl:param>boost.root=../../../..
|
<xsl:param>boost.root=../../../..
|
||||||
<xsl:param>boost.libraries=../../../../libs/libraries.htm
|
|
||||||
<xsl:param>navig.graphics=1
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Copyright Daniel James 2009
|
Copyright Daniel James 2009
|
||||||
@ -5,7 +6,6 @@ Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|||||||
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML//EN"
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML//EN"
|
||||||
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||||||
|
|
||||||
|
@ -16,9 +16,6 @@ boostbook standalone
|
|||||||
:
|
:
|
||||||
example.xml
|
example.xml
|
||||||
:
|
:
|
||||||
<xsl:param>boost.root=../../../../..
|
<xsl:param>boost.root=../../../../..
|
||||||
<xsl:param>boost.libraries=../../../../../libs/libraries.htm
|
|
||||||
<xsl:param>html.stylesheet=../../../../../doc/html/boostbook.css
|
|
||||||
|
|
||||||
<dependency>autodoc
|
<dependency>autodoc
|
||||||
;
|
;
|
||||||
|
@ -71,7 +71,7 @@ namespace example
|
|||||||
* Embedded docbook list:
|
* Embedded docbook list:
|
||||||
*
|
*
|
||||||
* \xmlonly
|
* \xmlonly
|
||||||
* <orderedlist><listitem>1</listitem><listitem>2</listitem></orderedlist>
|
* <orderedlist><listitem><simpara>1</simpara></listitem><listitem><simpara>2</simpara></listitem></orderedlist>
|
||||||
* \endxmlonly
|
* \endxmlonly
|
||||||
*
|
*
|
||||||
* \a Special \b Bold \c Typewriter \e Italics \em emphasis \p parameter
|
* \a Special \b Bold \c Typewriter \e Italics \em emphasis \p parameter
|
||||||
|
@ -390,6 +390,10 @@
|
|||||||
<xsl:apply-templates mode="annotation"/>
|
<xsl:apply-templates mode="annotation"/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="type" mode="annotation">
|
||||||
|
<xsl:apply-templates mode="annotation"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template match="comment()" mode="annotation">
|
<xsl:template match="comment()" mode="annotation">
|
||||||
<xsl:copy/>
|
<xsl:copy/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
@ -98,14 +98,14 @@
|
|||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<xsl:for-each select="concept">
|
<xsl:for-each select="concept">
|
||||||
<listitem>
|
<listitem><simpara>
|
||||||
<xsl:call-template name="internal-link">
|
<xsl:call-template name="internal-link">
|
||||||
<xsl:with-param name="to">
|
<xsl:with-param name="to">
|
||||||
<xsl:call-template name="generate.id"/>
|
<xsl:call-template name="generate.id"/>
|
||||||
</xsl:with-param>
|
</xsl:with-param>
|
||||||
<xsl:with-param name="text" select="@name"/>
|
<xsl:with-param name="text" select="@name"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</listitem>
|
</simpara></listitem>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
@ -204,8 +204,7 @@
|
|||||||
<xsl:param name="in-file"/>
|
<xsl:param name="in-file"/>
|
||||||
<xsl:param name="with-namespace-refs"/>
|
<xsl:param name="with-namespace-refs"/>
|
||||||
|
|
||||||
<xsl:if test="contains(string(location/attribute::file),
|
<xsl:if test="string(location/attribute::file)=$in-file">
|
||||||
concat('/', $in-file)) ">
|
|
||||||
|
|
||||||
<!-- The short name of this class -->
|
<!-- The short name of this class -->
|
||||||
<xsl:variable name="name-with-spec">
|
<xsl:variable name="name-with-spec">
|
||||||
@ -261,7 +260,9 @@
|
|||||||
<xsl:apply-templates select="briefdescription" mode="passthrough"/>
|
<xsl:apply-templates select="briefdescription" mode="passthrough"/>
|
||||||
<xsl:apply-templates select="detaileddescription" mode="passthrough"/>
|
<xsl:apply-templates select="detaileddescription" mode="passthrough"/>
|
||||||
<xsl:apply-templates select="inbodydescription" mode="passthrough"/>
|
<xsl:apply-templates select="inbodydescription" mode="passthrough"/>
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
</xsl:element>
|
</xsl:element>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
@ -269,8 +270,7 @@
|
|||||||
<xsl:template name="enum">
|
<xsl:template name="enum">
|
||||||
<xsl:param name="in-file"/>
|
<xsl:param name="in-file"/>
|
||||||
|
|
||||||
<xsl:if test="contains(string(location/attribute::file),
|
<xsl:if test="string(location/attribute::file)=$in-file">
|
||||||
concat('/', $in-file))">
|
|
||||||
<xsl:variable name="name">
|
<xsl:variable name="name">
|
||||||
<xsl:call-template name="strip-qualifiers">
|
<xsl:call-template name="strip-qualifiers">
|
||||||
<xsl:with-param name="name" select="name"/>
|
<xsl:with-param name="name" select="name"/>
|
||||||
@ -384,7 +384,7 @@
|
|||||||
<xsl:apply-templates mode="toplevel">
|
<xsl:apply-templates mode="toplevel">
|
||||||
<xsl:with-param name="with-namespace-refs"
|
<xsl:with-param name="with-namespace-refs"
|
||||||
select="innernamespace"/>
|
select="innernamespace"/>
|
||||||
<xsl:with-param name="in-file" select="string(compoundname)"/>
|
<xsl:with-param name="in-file" select="location/attribute::file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</header>
|
</header>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
@ -498,11 +498,15 @@
|
|||||||
</xsl:when>
|
</xsl:when>
|
||||||
|
|
||||||
<xsl:when test="@kind='function'">
|
<xsl:when test="@kind='function'">
|
||||||
<xsl:call-template name="function" />
|
<xsl:call-template name="function">
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:call-template>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
|
|
||||||
<xsl:when test="@kind='typedef'">
|
<xsl:when test="@kind='typedef'">
|
||||||
<xsl:call-template name="typedef" />
|
<xsl:call-template name="typedef">
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:call-template>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
|
|
||||||
<xsl:when test="@kind='variable'">
|
<xsl:when test="@kind='variable'">
|
||||||
@ -664,6 +668,7 @@
|
|||||||
<method-group name="public static functions">
|
<method-group name="public static functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
@ -672,6 +677,7 @@
|
|||||||
<method-group name="protected static functions">
|
<method-group name="protected static functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
@ -680,13 +686,14 @@
|
|||||||
<method-group name="private static functions">
|
<method-group name="private static functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='public-func'">
|
<xsl:when test="@kind='public-func'">
|
||||||
<xsl:variable name="members" select="./memberdef"/>
|
<xsl:variable name="members" select="./memberdef"/>
|
||||||
<xsl:variable name="num-internal-only">
|
<xsl:variable name="num-internal-only">
|
||||||
<xsl:value-of
|
<xsl:value-of
|
||||||
select="count($members[contains(detaileddescription/para,
|
select="count($members[contains(detaileddescription/para,
|
||||||
'INTERNAL ONLY')])"/>
|
'INTERNAL ONLY')])"/>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
@ -694,6 +701,7 @@
|
|||||||
<method-group name="public member functions">
|
<method-group name="public member functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates/>
|
||||||
@ -703,6 +711,7 @@
|
|||||||
<method-group name="protected member functions">
|
<method-group name="protected member functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates/>
|
||||||
@ -718,6 +727,7 @@
|
|||||||
<method-group name="private member functions">
|
<method-group name="private member functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
@ -728,15 +738,20 @@
|
|||||||
<method-group name="friend functions">
|
<method-group name="friend functions">
|
||||||
<xsl:apply-templates>
|
<xsl:apply-templates>
|
||||||
<xsl:with-param name="in-section" select="true()"/>
|
<xsl:with-param name="in-section" select="true()"/>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</method-group>
|
</method-group>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='public-static-attrib' or @kind='public-attrib'">
|
<xsl:when test="@kind='public-static-attrib' or @kind='public-attrib'">
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='public-type'">
|
<xsl:when test="@kind='public-type'">
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='private-type'">
|
<xsl:when test="@kind='private-type'">
|
||||||
<!--skip private members-->
|
<!--skip private members-->
|
||||||
@ -765,7 +780,9 @@
|
|||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind='user-defined'">
|
<xsl:when test="@kind='user-defined'">
|
||||||
<xsl:apply-templates/>
|
<xsl:apply-templates>
|
||||||
|
<xsl:with-param name="in-file" select="$in-file"/>
|
||||||
|
</xsl:apply-templates>
|
||||||
</xsl:when>
|
</xsl:when>
|
||||||
<xsl:when test="@kind=''">
|
<xsl:when test="@kind=''">
|
||||||
<xsl:apply-templates select="memberdef[generate-id() =
|
<xsl:apply-templates select="memberdef[generate-id() =
|
||||||
@ -875,8 +892,7 @@
|
|||||||
<xsl:template name="typedef">
|
<xsl:template name="typedef">
|
||||||
<xsl:param name="in-file" select="''"/>
|
<xsl:param name="in-file" select="''"/>
|
||||||
|
|
||||||
<xsl:if test="contains(string(location/attribute::file),
|
<xsl:if test="string(location/attribute::file)=$in-file">
|
||||||
concat('/', $in-file))">
|
|
||||||
<!-- TBD: Handle public/protected/private -->
|
<!-- TBD: Handle public/protected/private -->
|
||||||
<typedef>
|
<typedef>
|
||||||
<!-- Name of the type -->
|
<!-- Name of the type -->
|
||||||
@ -1007,8 +1023,7 @@
|
|||||||
|
|
||||||
<xsl:variable name="firstpara"
|
<xsl:variable name="firstpara"
|
||||||
select="normalize-space(detaileddescription/para[1])"/>
|
select="normalize-space(detaileddescription/para[1])"/>
|
||||||
<xsl:if test="contains(string(location/attribute::file),
|
<xsl:if test="string(location/attribute::file)=$in-file
|
||||||
concat('/', $in-file))
|
|
||||||
and
|
and
|
||||||
not($firstpara=normalize-space($boost.doxygen.overload))">
|
not($firstpara=normalize-space($boost.doxygen.overload))">
|
||||||
|
|
||||||
@ -1182,8 +1197,7 @@
|
|||||||
<!-- Handle member variables -->
|
<!-- Handle member variables -->
|
||||||
<xsl:template name="variable">
|
<xsl:template name="variable">
|
||||||
<xsl:param name="in-file"/>
|
<xsl:param name="in-file"/>
|
||||||
<xsl:if test="contains(string(location/attribute::file),
|
<xsl:if test="string(location/attribute::file)=$in-file">
|
||||||
concat('/', $in-file))">
|
|
||||||
<data-member>
|
<data-member>
|
||||||
<xsl:attribute name="name">
|
<xsl:attribute name="name">
|
||||||
<xsl:value-of select="name/text()"/>
|
<xsl:value-of select="name/text()"/>
|
||||||
|
@ -162,4 +162,9 @@
|
|||||||
conceptname|macroname|globalname" mode="highlight">
|
conceptname|macroname|globalname" mode="highlight">
|
||||||
<xsl:apply-templates select="." mode="annotation"/>
|
<xsl:apply-templates select="." mode="annotation"/>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<xsl:template match="type" mode="highlight">
|
||||||
|
<xsl:apply-templates mode="highlight"/>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
</xsl:stylesheet>
|
</xsl:stylesheet>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user