XML roundtripping - attributes with more than one value
Lynne A. Price
lprice at txstruct.com
Wed Nov 1 12:49:53 PST 2006
Daniel,
You seem to have stumbled on a rather bizarre FM bug. Consider the
following XML document:
<!DOCTYPE test [
<!ELEMENT test (bug)>
<!ATTLIST test test NMTOKENS #REQUIRED>
<!ELEMENT bug EMPTY>
<!ATTLIST bug
test NMTOKENS #REQUIRED
other NMTOKENS "xxx"
>
]>
<test test="cat dog">
<bug test="rose daisy"/>
</test>
It is reasonable to expect the test attribute of the test element to be
treated the same way as the test attribute of the bug element. However, the
attribute on test is interpreted as two strings while that on bug as only one.
Furthermore, the significant difference seems to be the definition of the
other attribute. If the definition of that attribute is removed, bug's test
attribute is processed correctly. The order of the two attribute
definitions in the declaration does not matter. If the default value of
other is changed to #IMPLIED or #REQUIRED, then test imports correctly.
I've tested on Windows in FM 7.2p158 and 7.1b023.
--Lynne
At 06:33 AM 10/26/2006, Daniel Osborn wrote:
>Does this mean that I should change the attribute type in the DTD to
>NMTOKENS? (At the moment it's CDATA.) I tried this but nothing changed.
>Have I done the wrong thing?
Daniel,
Yes, you want the attribute type in the DTD to be NMTOKENS. And,I have
no idea if you've done the wrong thing!
--Lynne
Lynne A. Price
Text Structure Consulting, Inc.
Specializing in structured FrameMaker consulting, application development,
and training
lprice at txstruct.com http://www.txstruct.com
voice/fax: (510) 583-1505 cell phone: (510) 421-2284
More information about the framers
mailing list