Next in thread → Next in month →

Re: [dita] Is the ID attribute of type ID or NMTOKEN ?

From
Michael Priestley <>
Date
2006-12-05T15:52:54+00:00
ID
Thread
Re: [dita] Is the ID attribute of type ID or NMTOKEN ?
id on topic (and its specializations)
is type ID, id anywhere else is NMTOKEN.

Brief rationale:

- we insist that topics have unique
IDs so we always know which topic we are referring to, and we can combine
multiple topics into a single document with low risk of collision

- if we made elements within a topic
require unique IDs, then we would have a much larger risk of collision
when moving a topic from one document to another: instead of just tracking
topics, we'd need to track everything, which is a lot harder (maybe trivial
for a CMS, but much more awkward in a file system/version control system)

- so elements within a topic are referenced
by topicID/elemID, so we know we have a unique topicID, and we trust that
the elemID will be unique within the topic, even if it isn't unique within
the (potentially multi-topic) document.

The full explanation and rationale is
in the architectural spec - look in the latest draft under the new processing
chapter, first entry (something like "Identity and Referencing").

Michael Priestley

IBM DITA Architect and Classification Schema PDT Lead



http://dita.xml.org/blog/25

Don Day <>

12/05/2006 10:34 AM

To



cc



Subject

Re: [dita] Is the ID attribute of type
ID or NMTOKEN ?

I will check on this, Chris. I suspect the problem
is caused by the tool

that regenerates navigation for the Language Reference topics directly
from

the DTDs. In cases where attributes of the same name but different types

exist, my tool checks for each known case in order to refer to the correct

conref definition. It appears that I have not properly checked for the
name

"id" that has different types "ID" and "NMTOKEN".

Can you tell me what element had this particular issue? Wherever there
is

one, there are probably several, since it is a systemic issue.  I'd
like to

trace back from a known starting point.

Regards,

--

Don Day

Chair, OASIS DITA Technical Committee

IBM Lead DITA Architect

Email: 

11501 Burnet Rd. MS9033E015, Austin TX 78758

Phone: +1 512-838-8550

T/L: 678-8550

"Where is the wisdom we have lost in knowledge?

 Where is the knowledge we have lost in information?"

   --T.S. Eliot

                    
                     
                     
          

                 
                     
                  

                    
                     
                     
          

             12/01/2006 09:41    
                     
                To 

             AM        
               
          

                    
                     
                     
       cc 

                    
                     
                     
          

                    
                     
                     
  Subject 

                    
                  [dita] Is
the ID attribute of type  

                    
                  ID or NMTOKEN
?                    

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

While working with Arbortext Editor I copied an element containing an ID.

In the copied element the ID appeared unchanged and the result of the

validation was "no completness error found".

That was unexpected so I checked the langref.

The langref tells that the ID attribute is of type ID, so it should be

invalid when I have the same ID twice.

Then I checked the id-atts in the commonElements.mod and found:

id       NMTOKEN      #IMPLIED

So I guess the description in the langref telling

id       ID           #IMPLIED

is wrong, but why.

I would expect id as being of type ID?

What is right?

Best regards

Chris
Next in thread → Next in month →