需要帮助了解DTD架构

时间:2009-11-09 23:48:32

标签: xml dtd

我对XML很陌生,有人能告诉我这段代码究竟应该做什么吗?

<?xml version="1.0" encoding="ISO-8859"?> 
<!DOCTYPE person [ 
    <!ELEMENT first_name(#PCDATA)>
    <!ELEMENT last_name(#PCDATA)>
    <!ELEMENT PROFESSION(#PCDATA)>
    <!ELEMENT name(first_name, last_name)>
    <!ELEMENT person (name, profession)>]> 
<person>
    <name>
        <last_name>Jack</last_name>
        <last_name>Jill</last_name> 
    </name>
</person>

3 个答案:

答案 0 :(得分:8)

这是一个XML文件,它本身不会做任何事情。相反,它似乎定义了一个具有两个姓氏的“人”(但该文件无效,因为DTD表示名字和姓氏)。

答案 1 :(得分:4)

这是一个嵌入式DTD,它规定哪些元素以哪种顺序被允许,例如: “name”元素必须包含first_name,后跟last_name。

这是一种非传统的方法,但应该是有效的。通常,DTD是外部文件,而不是嵌入在源文档中。

答案 2 :(得分:1)

xml文档首先通过prolog(<?xml)表明它是一个xml文档。定义了一个可选的DOCTYPE,这基本上只是文档中所有可能元素和属性的列表,最后实际文档本身定义为person是根节点,name是第一个孩子,有两个子节点last_name

我认为name下的第一个节点应该是first_name,而不是last_name