如果元素有元素內容或混合內容,其內容模型會以群組節點來表示。您可以將子元素或另一個群組加入群組節點中,
也可以指定一組元素用於與 DTD 相關聯之 XML 檔中的頻率與方式。
以下是針對「資源」視景撰寫的指示,
但是它們也適用於許多其他視景。
如果要編輯群組節點,請遵循下列步驟:
- 在 DTD 編輯器中開啟您的 DTD。
- 在「概要」視圖,展開您想要使用的元素的樹狀結構。
- 按一下您想要使用的群組節點。
- 在「設計」視圖中,從模型群組清單中選取序列或選項。 這會指定該組元素在 XML 檔中是依序排序,還是可當成選項使用。
- 從出現次數清單中選取適當的選項,
來指出該組元素可在與這個 DTD 相關聯的 XML 檔中出現的頻率。
- 如果要將另一個現有元素新增至群組中作為子項,請用滑鼠右鍵按一下群組節點,再按一下將元素新增至內容模型中並指定它的名稱。
- 您也可以用滑鼠右鍵按一下群組節點,再按一下將群組新增至內容模型中來將群組新增至現有的群組節點中。
附註:群組節點的出現次數選項只會指定整組元素可在 XML 檔中出現的頻率。
對於包含在群組中的子元素,您也可以指定其出現頻率(也就是說,子元素的出現頻率與包含該子元素之群組的出現頻率是完全可以分開設定)。
要訣:如果要變更列在群組節點下的元素次序,請直接按一下您要移動的元素,並將它拖到您想放置的位置。
建立包含小寵物清單的群組節點
下列步驟顯示如何建立包含小寵物清單的群組節點,並說明您所選取的選項如何影響群組節點(及其包含的元素)在以 DTD 檔為基礎的所有 XML 檔中的使用方式:
- 建立一個名為 Pets.dtd 的新 DTD,並在 DTD 編輯器中開啟它。
- 在「概要」視圖中,用滑鼠右鍵按一下您的 DTD 檔,並建立新元素 SmallPets。同時也請建立另外三個元素 - Cats、Dogs 和Fish
- 展開 SmallPets,然後選取 EMPTY 內容模型。
從內容類型清單中選取混合內容。
這表示 SmallPets 元素可同時包含其他元素和字元資料。
- 這時,您的內容模型會由一個群組節點
來表示。系統會自動在下方建立一個 #PCDATA 元素(用於字元資料)和新的子元素。請選取 newChild,並在名稱清單中選取 Dogs。
- 用滑鼠右鍵按一下群組節點,然後按一下將元素新增至內容模型中。請選取新的子節點,
然後在名稱清單中選取 Cats。
- 重複上一步驟,然後在名稱清單中選取 Fish。
- 現在,您已經建立了您的小寵物清單,接下來您必須決定是否要讓使用者能夠在以這個 Pets.dtd 檔為基礎的 XML 檔中選取所有的寵物,或是只能選取其中一種寵物。比方說,您根據這個 DTD 建立了一個新的 XML 檔,稱為 Pets.xml,
然後在其中建立一個 SmallPets 元素。
如果您在 DTD 檔中選取了序列做為模型群組,您可以將所有的小寵物(Cats、Dogs 和 Fish)放入 Pets.xml 檔的 SmallPets 元素中。但是,如果您選取了選項作為連接器類型,您就只能在 Pets.xml 檔的 SmallPets 元素中列出一種小動物。您可以有 Cats 或 Dogs 或 Fish,但是一次只能有一種。
- 現在,您必須決定這組元素(小寵物清單)可在與這個 DTD 相關聯的 XML 檔中出現的頻率。
您可以指定它必須只出現一次(只有一次)、必須出現一或多次(一或多次)、完全不必出現(選用),或是可以完全不使用或使用次數不限(零或多次)。
附註:您也可以指定每一個子元素多久可以出現一次。子元素的出現頻率與包含該子元素之群組的出現頻率完全可以分開設定。因此,舉例來說,您可以指定 SmallPets 群組可以出現的頻率為只有一次,但是 Cats 元素可以出現許多次(如果要這樣做,請選取 Cats 元素,並按一下一或多次)。
- 您在群組中指定子元素的次序,將影響它們在 XML 檔中母元素之任何實例中的使用方式。比方說,
如果您在 DTD 檔中指定了如下內容:<!ELEMENT SmallPets
(Dogs+ , Cats+ , Fish)+>,這時 Pets.xml 檔中的任何 SmallPets 實例都必須含有一或多個 Dogs 實例,後面接著一或多個 Cats 實例,之後只出現一次 Fish。Fish 永遠不能出現在 Dogs 後面,而 Cats 也絕對不能出現在 Dogs 前面。
- 您也可以將群組新增至現有的群組節點中。請選取這個節點,用滑鼠右鍵按一下它,再按一下將群組新增至內容模型中。如果您決定要按照品種將這些動物排列成個別的群組,您就可能需要新增群組節點。