Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 当一个元素可以同时包含PCDATA和另一个元素时,DTD的正确格式是什么_Xml_Dtd - Fatal编程技术网

Xml 当一个元素可以同时包含PCDATA和另一个元素时,DTD的正确格式是什么

Xml 当一个元素可以同时包含PCDATA和另一个元素时,DTD的正确格式是什么,xml,dtd,Xml,Dtd,我得到了一个XML文件,我想为数据集编写DTD 这是我正在努力解决的部分的一个片段 <Course Number="CS124" Prerequisites="CS107 CS109" Instructors="DJ" Enrollment="60"> <Title>From Languages to Information</Title> <Description> Natural language processing. Cro

我得到了一个XML文件,我想为数据集编写DTD

这是我正在努力解决的部分的一个片段

<Course Number="CS124" Prerequisites="CS107 CS109" Instructors="DJ" Enrollment="60">
  <Title>From Languages to Information</Title>
  <Description>
    Natural language processing. Cross-listed as
    <Courseref Number="LING180"/>
    . 
    </Description>
</Course>
<Course Number="CS143" Prerequisites="CS107" Instructors="AA" Enrollment="90">
  <Title>Compilers</Title>
  <Description>
    Principles and practices for design and implementation of compilers and interpreters.
  </Description>
</Course>

从语言到信息
自然语言处理。交叉列为
. 
编译程序
编译器和解释器设计和实现的原则和实践。
当元素中有PCDATA,但也可以选择其他元素时,什么是使DTD适合XML的正确方法?(参见元件说明)

我认为这样做会奏效:

<!ELEMENT Description ((#PCDATA | Courseref)*)>
<!ELEMENT Description (#PCDATA | Courseref)*>

但是我得到了一个解析错误:

ContentDecl:应为名称或“(”字符


要使此XML有效,写出DTD的正确方法是什么?

括号太多:




这样行吗?元素有PCDATA和CourseRef。我自己不确定,因为我会一直避免整个情况。是的,它会起作用。该声明说
描述
元素可以有任何数字(
(…)*
)以任何顺序排列的
#PCDATA
Courseref
子元素。在文本中看到元素并不少见。例如,想想代码中的格式化XML注释。或者在这种情况下,可能是一个课程查看器,其中
Courseref
元素在UI中呈现给用户时被链接替换。干杯,希望我不会呃,我需要它,但以防万一。我一直非常喜欢标记我想标记的东西。就我个人而言,我会用标记标记文本,比如前言,避免一开始就陷入混乱。哦,出于好奇,你为什么还在使用DTD?它是关于数据库的课程。那么使用模式就更有用了。这是未来的下一步当然,DTD是必须完成的。
<!ELEMENT Courseref EMPTY>
<!ATTLIST Courseref Number CDATA #IMPLIED>