我正在构建一个有fuel_system元素的DTD .
我想限制<fuel_system>标签之间的文字.它必须只是carbureted或fuel-injected.我怎样才能做到这一点?
我没有提到类似这样的东西=>属性类型(化油器,燃油喷射),因为我想在<fuel_system>标签中强制使用此规则,而不是属性fuel_system.
Adr*_*son 11
在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>
Run Code Online (Sandbox Code Playgroud)
第二种选择,子元素
<!ELEMENT fuel-system (fuel-injected|carburated)>
<!ELEMENT fuel-injected ...>
<!ELEMENT carburated ...>
Run Code Online (Sandbox Code Playgroud)
它必须是DTD吗?XML Schema是一个选项吗?
使用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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6179 次 |
| 最近记录: |