Illegal Values for Declared Attributes
Since each declared attribute has a type (NAME, NUMBER, etc.) associated with it, it is possible to have an attribute value that is not legal according to the given type of the attribute.
Arbortext Editor preserves most of these types of illegal values. Due to the complexity of the 15 or so different attribute types, it is impossible to categorize all possible types of illegal values. With that in mind, here are possible categorizations for each type. For these examples, assume <tag> is a legal tag with attributes of all types defined.
• Undefined ENTITY reference. This applies only to the ENTITY or ENTITIES attribute types when a specified entity does not exist.
Arbortext Editor will preserve the undefined entity attribute value.
...
<tag isent="notdef" isents"notdef1 notdef2">
...
• Illegal number of characters in value or list. This applies to most types. Arbortext Editor preserves these illegal attribute values.
...
<!-- 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">
...
• Syntactically illegal attribute values according to the rules of the given attribute type. This applies to most types. Arbortext Editor preserves these illegal values if they are enclosed inside a literal string. The following list provides some examples:
...
<!-- 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 may not properly handle illegal values when they are not inside a literal string.
... <!-- 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>
|
• Value not defined in a NAME GROUP. Arbortext Editor preserves syntactically legal values that do not belong to the defined GROUP.
<!-- 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">
• Attribute value defined multiple times in the same start tag. This can happen with any attribute type.
The first value is considered the real attribute value. Arbortext Editor preserves any subsequent duplicates, which can be edited using the Modify Attributes dialog box.
<!-- isname value specified multiple times -->
<tag isname="Fred" isname="Bob">
• Attribute value that does not match the #FIXED required value. This can happen with most attribute types. Arbortext Editor preserves these illegal values.
<!-- assume "color" is a CDATA attribute #FIXED to be "red" -->
<tag color="blue">
• An IDREF value referencing an undefined ID value. This applies only to the IDREF and IDREFS types. Arbortext Editor preserves these illegal values.
<!-- assume refid is of type IDREF and "A123" is never defined -->
<tag refid="A123">
• Duplicate ID values on different tags of the same type. This applies only to the ID type. Arbortext Editor preserves these illegal values.
<!-- initial declaration of ID value "B124" -->
<tag id="B124">
...
<!-- duplicate ID value is ILLEGAL -->
<tag id= "B124">