以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  About DTD, please help me, thx.  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=6762)


--  作者:fesser
--  发布时间:4/15/2004 2:19:00 PM

--  About DTD, please help me, thx.
我定義了個DTD﹐其他部份都正確﹐就下面這段出錯﹐為什麼呢﹖哪位大俠幫幫我。

<!ELEMENT doc_tag (#PCDATA | rb_item)>
<!ELEMENT rb_item (item_doc, item_dtd) >
<!ELEMENT item_doc (#PCDATA)>
<!ELEMENT item_dtd (#PCDATA)>

我想達到的目的是﹕某個元素的值是一個#PCDATA﹐或則是一個元素﹐應該怎麼表達﹖

在XMLSPY中的錯誤提示為﹕
This file is not well-formed:
% expected.

光標指在<!ELEMENT doc_tag (#PCDATA | rb_item)>這行上。



--  作者:robert
--  发布时间:4/15/2004 2:50:00 PM

--  
<!ELEMENT doc_tag any>

--  作者:fesser
--  发布时间:4/15/2004 2:53:00 PM

--  
麻煩能解釋一下嗎﹖any的話不就無法限定是什麼元素了嗎﹖
--  作者:fesser
--  发布时间:4/15/2004 2:56:00 PM

--  
當然我知道可以寫成
<!ELEMENT doc_tag (item | rb_item)>
<!ELEMENT item (#PCDATA)>
<!ELEMENT rb_item (item_doc, item_dtd) >
<!ELEMENT item_doc (#PCDATA)>
<!ELEMENT item_dtd (#PCDATA)>
但一來太複雜了﹐還有我想知道錯哪裡了﹖因為在<<XML  Pocket Consultant>>書中說可以採用下面的定義方法﹕
<! ELEMENT element_name (#PCDATA | child1 | ... | childN)>
--  作者:sam
--  发布时间:4/15/2004 2:59:00 PM

--  
偶也遇到同样的问题,顶一下
--  作者:robert
--  发布时间:4/15/2004 4:15:00 PM

--  
我来解答在<!ELEMENT doc_tag (#PCDATA | rb_item)>右括号加个"*"==><!ELEMENT doc_tag (#PCDATA | rb_item)*>就可以了



--  作者:fesser
--  发布时间:4/15/2004 4:21:00 PM

--  
謝謝ROBERT﹐<!element doc_tag (#pcdata | rb_item)*>成功了﹗
但<!ELEMENT doc_tag (#PCDATA , rb_item)*>為什麼又出錯了呢﹖

--  作者:robert
--  发布时间:4/15/2004 4:33:00 PM

--  
混合内容只可以指定可以出现的子元素的名字,不可以约束它的出现次数和循序,或者是否出现除了更改子元素列表,混合内容其他的操作无效,你的里面不可以有逗号,换成"|"就可以了
--  作者:fesser
--  发布时间:4/15/2004 4:42:00 PM

--  
太感谢robert了,学到了很多东西,谢谢
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms