我构建具有一个DTD fuel_system
元素。
我想限制之间的文本<fuel_system>
标签。 必须只carbureted
或fuel-injected
。 我怎样才能做到这一点?
我不提这样的事情=>属性类型(化油器,燃油喷射),因为我想迫使这条规则<fuel_system>
标签,而不是属性fuel_system
。
我构建具有一个DTD fuel_system
元素。
我想限制之间的文本<fuel_system>
标签。 必须只carbureted
或fuel-injected
。 我怎样才能做到这一点?
我不提这样的事情=>属性类型(化油器,燃油喷射),因为我想迫使这条规则<fuel_system>
标签,而不是属性fuel_system
。
在一个DTD定义的元素时,也没有办法来限制元件内的文本 。 你只能告诉什么其他元素(子元素),它可能包含与它们的顺序,或者你可以告诉元素包含文本,或2的混合物。
这样,基本上就具有用于限制两个选项<fuel-system>
:要么声明它作为属性( <fuel-system type="fuel-injected"/>
或声明子元素<fuel-injected>
和<carburated>
。 这些两个选项之间的选择取决于你试图描述什么,什么会根据类型改变fuel-system
。
(对于元素的声明的语法被定义此处 )
例子 : 第一个选项 ,属性
<!ELEMENT fuel-system EMPTY>
<!ATTLIST fuel-system (fuel-injected|carburated) #REQUIRED>
第二个选项 ,子元素
<!ELEMENT fuel-system (fuel-injected|carburated)>
<!ELEMENT fuel-injected ...>
<!ELEMENT carburated ...>
它必须是一个DTD? 是XML模式的选项?
使用XML Schema可以限制元素文本值的枚举列表 :
<xs:element name="fuel-system">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="fuel-injected"/>
<xs:enumeration value="carbourated"/>
</xs:restriction>
</xs:simpleType>
</xs:element>