2009-11-19 52 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> 
     <first_name>Jack</first_name> 
     <last_name>Jill</last_name> 
    </name> 
    <profession>website</profession> 
</person> 

謝謝回答

回答

3

像這樣的東西應該做

<?xml version=」1.0」 encoding=」ISO-8859」?> 
<!DOCTYPE person [ 
    <!ELEMENT first_name (#PCDATA) > 
    <!ELEMENT last_name (#PCDATA) > 
    <!ELEMENT name (first_name, last_name) > 
    <!ELEMENT person (name, professions) > 
    <!ELEMENT profession (#PCDATA) > 
    <!ELEMENT professions (profession+) > 
]> 
<person> 
    <name> 
     <first_name>Jack</first_name> 
     <last_name>Jill</last_name> 
    </name> 
    <professions> 
     <profession>website</profession> 
     <profession>some other profession</profession> 
    </professions> 
</person> 
+0

你還在抓住「名稱」和「人」的因素,他所問的問題? – Chris 2009-11-19 21:00:27

+0

我認爲問題在於文檔頂部的嵌入式DTD類型規範,它只允許每個人元素有一個專業元素。 – 2009-11-19 21:02:17

+0

我沒有更新DTD - 但這個更新應該是好的 – 2009-11-19 21:04:33

1

的DTD在該文件的頂部指定一個名稱,每個人的要素一個職業。

將其更改爲使用+(如果你想一個或多個職業)或*(如果你想0或以上的職業):

<!ELEMENT person (name, profession+) 

<!ELEMENT person (name, profession*) 

注意的DTD相當不受時尚影響,通常被XSD規範取代,這些規範更加靈活並且用XML自己編寫。

+0

謝謝,它的工作原理。我如何修改代碼,以便可以在xml代碼中添加一個或零個地址?那個給我看的是關於一個或許多的。謝謝回覆 – Selom 2009-11-19 21:34:15

1

更改DTD來

<?xml version=」1.0」 encoding=」ISO-8859」?> 
<!DOCTYPE person [ 
<!ELEMENT first_name (#PCDATA)> 
<!ELEMENT last_name (#PCDATA)> 
<!ELEMENT profession (#PCDATA)> 
<!ELEMENT professions (profession*)> 
<!ELEMENT name (first_name, last_name)> 
<!ELEMENT person (name, professions)>]> 
<person> 
<name> 
<first_name>Jack</first_name> 
<last_name>Jill</last_name> 
</name> 
<professions> 
    <profession>prof 1</profession> 
    <profession>prof 2</profession> 
</professions> 
</person> 
+0

謝謝,它的工作原理。我如何修改代碼,以便可以在xml代碼中添加一個或零個地址?那個給我看的是關於一個或許多的。感謝您的回覆 – Selom 2009-11-19 21:35:54

+0

您的意思是專業嗎?只需將'*'更改爲'?'。 – tranmq 2009-11-19 22:01:34

+0

非常感謝您的回答。 – Selom 2009-11-19 22:03:28

相關問題