2009-11-09 170 views
-1

我對XML很陌生,有人能告訴我這段代碼應該做什麼嗎?需要幫助理解DTD模式

<?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> 
+0

請編輯您的標題,以便您對這裏要求的內容更簡潔一點... – ChristopheD 2009-11-09 23:57:00

回答

4

這是一個嵌入式DTD,它決定哪些元素以哪種順序被允許,例如, 「name」元素必須包含first_name,後跟last_name。

這是一個非常規的方法,但應該是有效的。通常,DTD是外部文件,而不是嵌入源文檔中。

+0

嗨,再次感謝,它是我的一次。請更改代碼的運行方式,而不是錯誤。謝謝 – Selom 2009-11-12 23:07:00

+0

您不「運行」XML文檔。你還沒有告訴我們你的問題是什麼。 – skaffman 2009-11-13 08:37:32

+0

感謝您的回覆。我們可以說上面的代碼格式良好,爲什麼?感謝回覆。 – Selom 2009-11-17 01:03:19

8

這是一個XML文件,它本身並沒有做任何事情。相反,它似乎定義了一個具有兩個姓氏的「person」(但由於DTD指示了姓和名,因此該文件是無效的)。

1

xml文檔首先通過序言(<?xml)表明它是一個xml文檔。定義了一個可選的DOCTYPE,這基本上只是文檔中所有可能的元素和屬性的列表,最後實際文檔本身被定義爲person是根節點,name是第一個孩子,有兩個子節點,分別是last_name節點。

我認爲name下的第一個節點應該是first_name而不是last_name