也许您可以帮助我解决这个问题。我注意到xml中有一个名为“ order”的属性,其值为1和2。我的问题是,应在DTD文件上放置什么属性和值?我试图将值1和2都加2!ATTLIST,但是我的程序(氧气)只允许我输入1。对此我做了一些研究,但找不到任何有用的信息。如果有人可以帮助我,我将不胜感激。
XML文件:
<steps>
<step order="1">
Mix all ingredients except oil. Shape mixture into 4 patties, each about 3 1/2 inches in diameter. Cover and refrigerate about 1 1/2 hours or until firm.</step>
<step order="2">
Heat oil (1 inch) in deep fryer or 10-inch skillet to 375. Fry patties in oil 4 to 5 minutes, turning once, until golden brown on both sides. Drain on paper towels.</step>
</steps>
DTD文件:
<!ELEMENT step (#PCDATA)>
<!ATTLIST step order CDATA "1">
答案 0 :(得分:0)
您可以指定属性的可能值列表,如XML规范在3.3.1 Attribute Types章中所述:
[54] AttType :: = StringType | TokenizedType | EnumeratedType
[57] EnumeratedType :: = NotationType |枚举
[59]枚举:: ='('S?Nmtoken(S?'|'S?Nmtoken)* S?')'
根据您的情况,您可以按照以下方式编写DTD:
<!ELEMENT steps (step+)>
<!ELEMENT step (#PCDATA)>
<!ATTLIST step order (1|2) #IMPLIED >
这样,该属性的唯一可能值为“ 1”或“ 2”。根据是否需要该属性,您可以在#IMPLIED
和#REQUIRED
之间进行选择。