在XML中使用带有枚举值的#Required关键字

时间:2014-03-12 16:50:48

标签: xml dtd

我可以在XML中使用带有枚举值列表的#Required关键字吗?

喜欢,

<!ATTLIST item type CDATA (offer|request) "offer" #REQUIRED>

谢谢..

3 个答案:

答案 0 :(得分:2)

没有这样的组合,如:

<!ATTLIST item type (offer|request) #REQUIRED>

但我不确定CDATA定义是否有选择,并且默认值和所需的组合也不行。试试http://www.validome.org/grammar/validate/

此致

JK。

答案 1 :(得分:2)

没有。

根据XML Specification Attribute List Declarations,您可以将属性声明为

<!ATTLIST' element-name attribute-definitions* >

其中attribute-definitions的格式为

attribute-name attribute-type default-declaration

属性类型可以是

  • CDATA
  • ID
  • IDREF
  • IDREFS
  • ENTITY
  • ENTITIES
  • NMTOKEN
  • NMTOKENS
  • 括号内的不同NMTOKENS的枚举由|分隔 例如:( token1 | token2 | token3 )

没有其他选择。

此外,default-declaration允许一个值:

  • #REQUIRED
  • #IMPLIED
  • #FIXED "fixed value"
  • "default value"

也没有其他选择。因此,如果您拥有CDATA,则无法拥有(offer|request),如果您拥有#REQUIRED,则无法提供#REQUIRED "offer""offer" #REQUIRED。根据您的需要,一些有效的选项是:

<!ATTLIST item type (offer|request) "request">
<!ATTLIST item type (offer|request) #REQUIRED>
<!ATTLIST item type CDATA "offer">
<!ATTLIST item type CDATA #REQUIRED>

答案 2 :(得分:-1)

我发现了:) 这是不可能的 :) 我们不能将#required关键字与XML中的枚举值列表一起使用,如

<!ATTLIST item type CDATA (offer|request) "offer" #REQUIRED>

我用验证器检查了它,并且#REQUIRED ...

给出了错误