和xml元素中的<element> </element>

时间:2014-11-24 10:57:26

标签: xml dtd

我目前正在尝试为XML文件编写DTD。

在xml中我遇到过这类事情:

<CHAMP NAME="JBRTHDTC" DOMAIN="DM" DB="YES:CRF" TYPE="JOUR" FORCED="YES" AFFICHE="YES">
    <![CDATA[ Date de naissance: ]]>
    <MESSAGE><![CDATA[Date de naissance (Jour)]]></MESSAGE>
</CHAMP>    

将CDATA和xml元素放在另一个中是否可以?

如果是这样,我如何设法在DTD中编写它?像

ELEMENT CHAMP (MESSAGE?|CDATA??)>

1 个答案:

答案 0 :(得分:0)

您必须将CHAMP声明为混合内容模型。

这意味着CHAMP可以包含#PCDATA(解析后的字符数据)或MESSAGE。 (在混合内容模型中,您仍然可以拥有CDATA个部分。)

必须以某种方式声明,因此您将无法限制MESSAGE的出现次数。任何顺序都是零{或} #PCDATAMESSAGE

示例:

<!DOCTYPE CHAMP [
<!ELEMENT CHAMP (#PCDATA|MESSAGE)*>
<!ATTLIST CHAMP
        NAME    CDATA #IMPLIED
        DOMAIN  CDATA #IMPLIED
        DB      CDATA #IMPLIED
        TYPE    CDATA #IMPLIED
        FORCED  CDATA #IMPLIED
        AFFICHE CDATA #IMPLIED>
<!ELEMENT MESSAGE (#PCDATA)>
]>
<CHAMP NAME="JBRTHDTC" DOMAIN="DM" DB="YES:CRF" TYPE="JOUR" FORCED="YES" AFFICHE="YES">
    <![CDATA[ Date de naissance: ]]>
    <MESSAGE><![CDATA[Date de naissance (Jour)]]></MESSAGE>
</CHAMP>