以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  请教一个简单问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=8002)


--  作者:joyce_hua
--  发布时间:6/1/2004 12:05:00 PM

--  请教一个简单问题
这个XML的DTD怎么写啊?我写的每次都不能validate
1.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE cpu SYSTEM "1.dtd">
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<cpu>
<para>abcdefg</para>
<para>hijklmn</para>
<para>opq<emph>rst</emph>uvw</para>
<para><emph>xyz</emph></para>
我的DTD:
1.dtd
<!ELEMENT title (#PCDATA)>
<!ELEMENT emph (#PCDATA)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT para (emph)>
<!ELEMENT cpu (title,para)>
报错:元素'para'已经被声明。
--  作者:joyce_hua
--  发布时间:6/1/2004 12:07:00 PM

--  
不好意思,刚刚上面的XML文档最末丢了一行cpu。
大家快来帮我看看啊!
--  作者:hugh
--  发布时间:8/12/2004 10:44:00 PM

--  
首先要说明一点,元素在DTD中使用元素声明进行声明时,
<!ELEMENT ElementName Type>
ElementName在单个DTD中必须是唯一的

其次,你可以使用混合元素解决你的问题:
1.dtd(我是根据你得XML文件写的):

<!ELEMENT cpu (title*,para+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT para (#PCDATA | emph)*>
<!ELEMENT emph (#PCDATA)>


另外,我建议你在声明时注意顺序:)



--  作者:helloworld
--  发布时间:8/24/2004 6:32:00 PM

--  
<!ELEMENT para (#PCDATA)>
<!ELEMENT para (emph)>

不能定义两个相同的元素


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
640.625ms