dtd #PCDATA для дочерних узлов в xml - PullRequest
1 голос
/ 25 июля 2011

У меня есть несколько дочерних узлов, которые повторяются.Как мне создать внутреннее пространство имен DTD, чтобы f1 и f2 использовали #PCDATA?

<xsl:for-each select="a/b/c/d/e[1]/f">
        <tr>
          <td><xsl:value-of select="f1"></td>       
          <td><xsl:value-of select="f2">/td> 
          <td>
</xsl:for-each>
<xsl:for-each select="a/b/c/d/e[2]/f">
        <tr>
          <td><xsl:value-of select="f1"></td>       
          <td><xsl:value-of select="f2">/td> 
          <td>
</xsl:for-each>

XML:

<a>
<b>
<c>
<d>
<e section="1">
<f>
<f1></f1><f2></f2>
</f>
</e>
<e section="2">
<f>
<f1></f1><f2></f2>
</f>
</e>
</d>
</c>
</b>
</a>

Как создать внутреннее пространство имен DTD, чтобы сделать f1 и f2использовать #PCDATA?

1 Ответ

1 голос
/ 25 июля 2011

Подходящий DTD:

<!DOCTYPE a [

    <!ELEMENT a (b)>
    <!ELEMENT b (c)>
    <!ELEMENT c (d)>
    <!ELEMENT d (e*)>
    <!ELEMENT e (f)>
    <!ELEMENT f (f1, f2)>
    <!ELEMENT f1 (#PCDATA)>
    <!ELEMENT f2 (#PCDATA)>

    <!ATTLIST e section CDATA #REQUIRED>

]>
...