已声明属性的非法值
由于每个声明的属性都具有一个与其关联的类型(名称、编号等),因此根据属性的给定类型,可能存在不合法的属性值。
Arbortext Editor 将保留多数这些类型的非法值。由于大约存在 15 种不同的属性类型,因此不可能为所有可能类型的非法值进行分类。了解这一点后,下面提供每种类型的可能分类。对于这些示例,假定 <tag> 是合法标记,并具有所有已定义类型的属性。
• 未定义的实体引用。这仅适用于指定实体不存在时的实体或实体属性类型。
Arbortext Editor 将保留未定义的实体属性值。
...
<tag isent="notdef" isents"notdef1 notdef2">
...
• 值或列表中字符的不合法编号这适用于大多数类型。Arbortext Editor 保留这些非法属性值。
...
<!-- NAME value of more than 8 characters -->
<tag isname="thisnameisreallytoolongtobelegal">
...
<!-- NAMES list containing more entries than the declared limit -->
<tag isnames="a b c d e f g ... x y z aa ab ac .. az">
...
• 根据给定属性类型规则语法上不合法的属性值。这适用于大多数类型。如果这些非法值位于文字字符串内部,Arbortext Editor 将保留这些非法值。以下列表提供了一些示例:
...
<!-- NAME value that starts with a digit -->
<tag isname="8badval">
...
<! NAME value that looks like a list (would be suitable for a NAMES attribute) -->
<tag isname="one two three four">
...
<!-- NUMBER value which contains non-numeric characters -->
<tag isnum="7a4">...<tag isnum="abc">
|
如果非法值不在文字字符串内部,Arbortext Editor 将不能正确处理非法值。
... <!-- NAME non-literal value that starts with a digit --> <tag isname=8badval> ... <!-- NAME non-literal value that contains the illegal character '$' --> <tag isname=bad$val>
|
• 未在“名称组”中定义的值。Arbortext Editor 保留不属于已定义组的语法上合法的值。
<!-- in the DTD -->
<!ATTLIST tag material (straw|sticks|brick) straw>
<!-- in the instance -->
<!-- material value NOT in the allowed list of values -->
<tag material="adobe">
• 同一起始标记中多次定义的属性值。任何属性类型都可能存在此情况。
第一个值会作为真实属性值。Arbortext Editor 保留所有后续副本,这些副本可使用修改属性对话框进行编辑。
<!-- isname value specified multiple times -->
<tag isname="Fred" isname="Bob">
• 与 #FIXED 要求的值不匹配的属性值。多数属性类型都可能存在此情况。Arbortext Editor 保留这些非法值。
<!-- assume "color" is a CDATA attribute #FIXED to be "red" -->
<tag color="blue">
• 引用未定义 ID 值的 IDREF 值。这仅适用于 IDREF 和 IDREFS 类型。Arbortext Editor 保留这些非法值。
<!-- assume refid is of type IDREF and "A123" is never defined -->
<tag refid="A123">
• 与同一类型的不同标记上重复的 ID 值这仅适用于 ID 类型。Arbortext Editor 保留这些非法值。
<!-- initial declaration of ID value "B124" -->
<tag id="B124">
...
<!-- duplicate ID value is ILLEGAL -->
<tag id= "B124">