<!---->
<
xsl:
stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform"
xmlns:verb="
http://informatik.hu-berlin.de/xmlverbatim"
xmlns:xd="
http://www.pnp-software.com/XSLTdoc"
version="
1.0"
exclude-result-prefixes="
verb">
<
xsl:
output name="
xhtml"
omit-xml-declaration="
no"
method="
xhtml"
doctype-public="
-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="
no"
encoding="
UTF-8" />
<
xsl:
param name="
indent-elements"
select="
false()" />
<!---->
<
xsl:
template match="
/"
mode="
xmlverb">
<
xsl:
text>
</
xsl:
text>
<
xsl:
comment>
<
xsl:
text>
converted by xmlverbatim.xsl 1.1, (c) O. Becker </
xsl:
text>
</
xsl:
comment>
<
xsl:
text>
</
xsl:
text>
<
div class="
xmlverb-default">
<
xsl:
apply-templates mode="
xmlverb">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
</
xsl:
apply-templates>
</
div>
<
xsl:
text>
</
xsl:
text>
</
xsl:
template>
<!---->
<
xsl:
template match="
verb:wrapper">
<
xsl:
apply-templates mode="
xmlverb">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
</
xsl:
apply-templates>
</
xsl:
template>
<
xsl:
template match="
verb:wrapper"
mode="
xmlverb">
<
xsl:
apply-templates mode="
xmlverb">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
</
xsl:
apply-templates>
</
xsl:
template>
<
xsl:
template match="
*"
mode="
xmlverb">
<
xsl:
param name="
indent-elements"
select="
false()" />
<
xsl:
param name="
indent"
select="
''" />
<
xsl:
param name="
indent-increment"
select="
' '" />
<
xsl:
choose>
<
xsl:
when test="
self::xd:doc">
<
div class="
xd">
<!---->
<
xsl:
value-of select="
translate(preceding-sibling::text()[last()],' ',' ')" />
<
xsl:
apply-templates select="
self::*"
mode="
xmlverb_1">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
<
xsl:
with-param name="
indent"
select="
concat($indent, $indent-increment)" />
<
xsl:
with-param name="
indent-increment"
select="
$indent-increment" />
</
xsl:
apply-templates>
</
div>
</
xsl:
when>
<
xsl:
otherwise><
xsl:
apply-templates select="
self::*"
mode="
xmlverb_1">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
<
xsl:
with-param name="
indent"
select="
concat($indent, $indent-increment)" />
<
xsl:
with-param name="
indent-increment"
select="
$indent-increment" />
</
xsl:
apply-templates></
xsl:
otherwise>
</
xsl:
choose>
</
xsl:
template>
<!---->
<
xsl:
template match="
*"
mode="
xmlverb_1">
<
xsl:
param name="
indent-elements"
select="
false()" />
<
xsl:
param name="
indent"
select="
''" />
<
xsl:
param name="
indent-increment"
select="
' '" />
<
xsl:
if test="
$indent-elements">
<
br />
<
xsl:
value-of select="
$indent" />
</
xsl:
if>
<
xsl:
text>
<</
xsl:
text>
<
xsl:
variable name="
ns-prefix"
select="
substring-before(name(),':')" />
<
xsl:
if test="
$ns-prefix != ''">
<
span class="
xmlverb-element-nsprefix">
<
xsl:
value-of select="
$ns-prefix" />
</
span>
<
xsl:
text>
:</
xsl:
text>
</
xsl:
if>
<
span class="
xmlverb-element-name">
<
a name="
{generate-id(.)}"><
xsl:
value-of select="
local-name()" /></
a>
</
span>
<
xsl:
variable name="
pns"
select="
../namespace::*" />
<
xsl:
if test="
$pns[name()=''] and not(namespace::*[name()=''])">
<
span class="
xmlverb-ns-name">
<
xsl:
text>
xmlns</
xsl:
text>
</
span>
<
xsl:
text>
=""</
xsl:
text>
</
xsl:
if>
<
xsl:
for-each select="
namespace::*">
<
xsl:
if test="
not($pns[name()=name(current()) and .=current()])">
<
xsl:
call-template name="
xmlverb-ns" />
</
xsl:
if>
</
xsl:
for-each>
<
xsl:
for-each select="
@*">
<
xsl:
call-template name="
xmlverb-attrs" />
</
xsl:
for-each>
<
xsl:
choose>
<
xsl:
when test="
node()">
<
xsl:
text>
></
xsl:
text>
<
xsl:
apply-templates mode="
xmlverb">
<
xsl:
with-param name="
indent-elements"
select="
$indent-elements" />
<
xsl:
with-param name="
indent"
select="
concat($indent, $indent-increment)" />
<
xsl:
with-param name="
indent-increment"
select="
$indent-increment" />
</
xsl:
apply-templates>
<
xsl:
if test="
* and $indent-elements">
<
br />
<
xsl:
value-of select="
$indent" />
</
xsl:
if>
<
xsl:
text>
</</
xsl:
text>
<
xsl:
if test="
$ns-prefix != ''">
<
span class="
xmlverb-element-nsprefix">
<
xsl:
value-of select="
$ns-prefix" />
</
span>
<
xsl:
text>
:</
xsl:
text>
</
xsl:
if>
<
span class="
xmlverb-element-name">
<
xsl:
value-of select="
local-name()" />
</
span>
<
xsl:
text>
></
xsl:
text>
</
xsl:
when>
<
xsl:
otherwise>
<
xsl:
text>
/></
xsl:
text>
</
xsl:
otherwise>
</
xsl:
choose>
<
xsl:
if test="
not(parent::*)"><
br /><
xsl:
text>
</
xsl:
text></
xsl:
if>
</
xsl:
template>
<!---->
<
xsl:
template name="
xmlverb-attrs">
<
xsl:
text>
</
xsl:
text>
<
span class="
xmlverb-attr-name">
<
xsl:
value-of select="
name()" />
</
span>
<
xsl:
text>
="</
xsl:
text>
<
span class="
xmlverb-attr-content">
<
xsl:
call-template name="
html-replace-entities">
<
xsl:
with-param name="
text"
select="
normalize-space(.)" />
<
xsl:
with-param name="
attrs"
select="
true()" />
</
xsl:
call-template>
</
span>
<
xsl:
text>
"</
xsl:
text>
</
xsl:
template>
<!---->
<
xsl:
template name="
xmlverb-ns">
<
xsl:
if test="
name()!='xml'">
<
span class="
xmlverb-ns-name">
<
xsl:
text>
xmlns</
xsl:
text>
<
xsl:
if test="
name()!=''">
<
xsl:
text>
:</
xsl:
text>
</
xsl:
if>
<
xsl:
value-of select="
name()" />
</
span>
<
xsl:
text>
="</
xsl:
text>
<
span class="
xmlverb-ns-uri">
<
xsl:
value-of select="
." />
</
span>
<
xsl:
text>
"</
xsl:
text>
</
xsl:
if>
</
xsl:
template>
<!---->
<
xsl:
template match="
text()"
mode="
xmlverb">
<
span class="
xmlverb-text">
<
xsl:
call-template name="
preformatted-output">
<
xsl:
with-param name="
text">
<
xsl:
call-template name="
html-replace-entities">
<
xsl:
with-param name="
text"
select="
." />
</
xsl:
call-template>
</
xsl:
with-param>
</
xsl:
call-template>
</
span>
</
xsl:
template>
<!---->
<
xsl:
template match="
comment()"
mode="
xmlverb">
<
xsl:
text>
<!--</
xsl:
text>
<
span class="
xmlverb-comment">
<
xsl:
call-template name="
preformatted-output">
<
xsl:
with-param name="
text"
select="
." />
</
xsl:
call-template>
</
span>
<
xsl:
text>
--></
xsl:
text>
<
xsl:
if test="
not(parent::*)"><
br /><
xsl:
text>
</
xsl:
text></
xsl:
if>
</
xsl:
template>
<!---->
<
xsl:
template match="
processing-instruction()"
mode="
xmlverb">
<
xsl:
text>
<?</
xsl:
text>
<
span class="
xmlverb-pi-name">
<
xsl:
value-of select="
name()" />
</
span>
<
xsl:
if test="
.!=''">
<
xsl:
text>
</
xsl:
text>
<
span class="
xmlverb-pi-content">
<
xsl:
value-of select="
." />
</
span>
</
xsl:
if>
<
xsl:
text>
?></
xsl:
text>
<
xsl:
if test="
not(parent::*)"><
br /><
xsl:
text>
</
xsl:
text></
xsl:
if>
</
xsl:
template>
<!---->
<!---->
<!---->
<!---->
<
xsl:
template name="
html-replace-entities">
<
xsl:
param name="
text" />
<
xsl:
param name="
attrs" />
<
xsl:
variable name="
tmp">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
from"
select="
'>'" />
<
xsl:
with-param name="
to"
select="
'&gt;'" />
<
xsl:
with-param name="
value">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
from"
select="
'<'" />
<
xsl:
with-param name="
to"
select="
'&lt;'" />
<
xsl:
with-param name="
value">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
from"
select="
'&'" />
<
xsl:
with-param name="
to"
select="
'&amp;'" />
<
xsl:
with-param name="
value"
select="
$text" />
</
xsl:
call-template>
</
xsl:
with-param>
</
xsl:
call-template>
</
xsl:
with-param>
</
xsl:
call-template>
</
xsl:
variable>
<
xsl:
choose>
<!---->
<
xsl:
when test="
$attrs">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
from"
select="
' '" />
<
xsl:
with-param name="
to"
select="
'&#xA;'" />
<
xsl:
with-param name="
value">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
from"
select="
'"'" />
<
xsl:
with-param name="
to"
select="
'&quot;'" />
<
xsl:
with-param name="
value"
select="
$tmp" />
</
xsl:
call-template>
</
xsl:
with-param>
</
xsl:
call-template>
</
xsl:
when>
<
xsl:
otherwise>
<
xsl:
value-of select="
$tmp" />
</
xsl:
otherwise>
</
xsl:
choose>
</
xsl:
template>
<!---->
<
xsl:
template name="
replace-substring">
<
xsl:
param name="
value" />
<
xsl:
param name="
from" />
<
xsl:
param name="
to" />
<
xsl:
choose>
<
xsl:
when test="
contains($value,$from)">
<
xsl:
value-of select="
substring-before($value,$from)" />
<
xsl:
value-of select="
$to" />
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
value"
select="
substring-after($value,$from)" />
<
xsl:
with-param name="
from"
select="
$from" />
<
xsl:
with-param name="
to"
select="
$to" />
</
xsl:
call-template>
</
xsl:
when>
<
xsl:
otherwise>
<
xsl:
value-of select="
$value" />
</
xsl:
otherwise>
</
xsl:
choose>
</
xsl:
template>
<!---->
<
xsl:
template name="
preformatted-output">
<
xsl:
param name="
text" />
<
xsl:
call-template name="
output-nl">
<
xsl:
with-param name="
text">
<
xsl:
call-template name="
replace-substring">
<
xsl:
with-param name="
value"
select="
translate($text,' ',' ')" />
<
xsl:
with-param name="
from"
select="
' '" />
<
xsl:
with-param name="
to"
select="
' '" />
</
xsl:
call-template>
</
xsl:
with-param>
</
xsl:
call-template>
</
xsl:
template>
<!---->
<
xsl:
template name="
output-nl">
<
xsl:
param name="
text" />
<
xsl:
choose>
<
xsl:
when test="
contains($text,' ')">
<
xsl:
value-of select="
substring-before($text,' ')" />
<
br />
<
xsl:
text>
</
xsl:
text>
<
xsl:
call-template name="
output-nl">
<
xsl:
with-param name="
text"
select="
substring-after($text,' ')" />
</
xsl:
call-template>
</
xsl:
when>
<
xsl:
otherwise>
<
xsl:
value-of select="
$text" />
</
xsl:
otherwise>
</
xsl:
choose>
</
xsl:
template>
</
xsl:
stylesheet>
v