dtd #PCDATA для дочерних узлов в xml

У меня есть несколько повторяющихся дочерних узлов. Как создать внутреннее пространство имен 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?


person tdjfdjdj    schedule 25.07.2011    source источник


Ответы (1)


Соответствующее 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>

]>
person Kirill Polishchuk    schedule 25.07.2011
comment
Большой. Но если мне нужны только pcdata для f1 и f2, нужно ли мне указывать каждый элемент из сквозного? - person tdjfdjdj; 25.07.2011