XML roundtripping - attributes with more than one value

Daniel Osborn Daniel.Osborn at tomtom.com
Tue Nov 7 01:05:47 PST 2006


Hi Lynne,

Thanks for spending so much time on this and I'm sorry to bug you again.


I'm afraid I'm still a bit lost though. All my 'other' attributes are
already #IMPLIED. I tried changing the NMTOKENS attribute to #REQUIRED
(from #IMPLIED) but this didn't make any difference.

Any suggestions?

Thanks,
Daniel

Daniel Osborn | Usability Engineer - Technical Writer | TomTom |
daniel.osborn at tomtom.com | +31 (0) 20 8500 934 office


-----Original Message-----
From: Lynne A. Price [mailto:lprice at txstruct.com] 
Sent: Wednesday, November 01, 2006 9:50 PM
To: Daniel Osborn; framers at lists.frameusers.com
Subject: RE: XML roundtripping - attributes with more than one value

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