<!ELEMENT address (name, city, state)><address>元素必须包含一个<name>元素、一个<city>元素和一个<state>元素,并且符合上面的次序。所有的元素都是必需的。逗号表示项的列表。<!ELEMENT name (title?, first-name, last-name)>这意味着
<name>元素包含一个可选的<title>元素,后面必须跟有一个<first-name>和一个<last-name>元素。问号表示这一项是可选的;它可以出现一次或根本不出现。<!ELEMENT addressbook (address+)><addressbook>元素包含一个或多个<address>元素。您可以有任意多的<address>元素,但必须至少有一个。加号表示这一项必须至少出现一次,但可出现任意次。<!ELEMENT private-addresses (address*)><private-addresses>元素包含零个或多个<address>元素。星号表示这一项可以出现任意次,包括零次。<!ELEMENT name (title?, first-name, (middle-initial | middle-name)?, last-name)><name>元素包含一个可选的<title>元素,后面跟有一个<first-name>元素,随后可能跟有一个<middle-initial>或<middle-name>元素,然后跟有一个<last-name>元素。换句话说,<middle-initial>和<middle-name>都是可选的,而且您只能选择二者中的一个。竖线符号表示选择列表;您只能从列表选择一项。还要注意该示例用圆括号对特定元素进行分组,然后在这个组旁放上问号。-
<!ATTLIST city state CDATA #REQUIRED
postal-code CDATA #REQUIRED>
属性列表中的名称city告诉解析器这些属性是为<city>元素定义的。名称state是属性的名称,关键字CDATA和#REQUIRED告诉解析器state属性包含文本并且是必需的(如果它是可选的,用CDATA #IMPLIED即可)。
告诉缺省值可这样:<!ATTLIST city state CDATA (AZ|CA|NV|OR|UT|WA) "CA" #REQUIRED
postal-code CDATA #REQUIRED>(杨认为)
本文详细解释了XML中几种常见元素的定义方式,包括地址信息的结构化存储、姓名的多种组合形式以及地址簿的组织结构等。通过具体的DTD示例介绍了如何使用不同的XML元素来描述复杂的现实世界对象。
24

被折叠的 条评论
为什么被折叠?



