2014-11-24 53 views
1

我正在嘗試爲XML文件編寫DTD。<!{CDATA[]]>和<ELEMENT>在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元素:

在XML中我碰到這種事來?

如果是這樣,我該如何設法將其寫入DTD?像

ELEMENT CHAMP (MESSAGE?|CDATA??)> 

回答

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>