[xsl] Resolving character entities

Subject: [xsl] Resolving character entities
From: "rick@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 15 Feb 2024 15:52:11 -0000
Hi All,



I have this as the input:



<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE subtask [

<!ENTITY lt "&#38;">

<!ENTITY gt "&#62;">

<!ENTITY amp "&#38;">

]>



<subtask>

    <title>General Information</title>

    <prcitem1>

        <prcitem>

            <para>This document provides &lt; repair instructions &amp; for
the Fire Extinguisher components.</para>

        </prcitem>

    </prcitem1>

</subtask>



I want all of the entities to be resolved when I transform the file. This is
my stylesheet:



<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";

    xmlns:xs="http://www.w3.org/2001/XMLSchema";

    xmlns:math="http://www.w3.org/2005/xpath-functions/math";

    exclude-result-prefixes="xs math"

    version="3.0" expand-text="yes">



    <xsl:output indent="yes"/>



    <xsl:template match="/">

        <xsl:apply-templates/>

    </xsl:template>



    <xsl:mode on-no-match="shallow-copy"/>



</xsl:stylesheet>



This is my output:



<?xml version="1.0" encoding="UTF-8"?>

<subtask>

   <title>General Information</title>

   <prcitem1>

      <prcitem>

         <para>This document provides &lt; repair instructions &amp; for the
Fire Extinguisher components.</para>

      </prcitem>

   </prcitem1>

</subtask>



I was thinking that my $lt; should have been substituted with &#38;, etc.
Does it not matter because these are "valid" XML entities? Thank you.



Rick

Current Thread