OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Use of ID attribute types.

[ Lists Home | Date Index | Thread Index ]

"Rodriguez, Sergio" <srodriguez@canella.com.gt> writes:

> 1) As far as I know the ID attributes have a scope of uniqueness within a
> document instance, that is, these are unique in the whole document.  Is
> there a mechanism, probably an extension of XML, where I can define the
> scope of ID attributes whitin a document fragment using a scheme language?

W3C XML Schema [1] provides the key/unique/keyref mechanism, which
includes scoping of the sort you require.

> (I know that this I can't achieve it using a DTD, right?)  e.g. the
> following example would be valid...
> 
> <root>
>   <element-one   id-attribute="ALUX" />  <!-- use the same ID -->
>   <element-two   id-attribute="TIKAL" />
>   <element-three id-attribute="ALUX" />  <!-- use the same ID -->
> </root>

That's presumably an over-simplified exampl -- what you can certainly
do is

<root>
   <context>
    ...
    <element-one key-attribute="ALUX" />  <!-- use the same ID -->
    ...
   </context>
   <context>
    ...
    <element-two   key-attribute="TIKAL" />
    ...
   </context>
   <context>
    ...
    <element-three key-attribute="ALUX" />  <!-- use the same ID -->
    ...
   </context>
 </root>

> 2) The use of XML namespace in ID attributes:  if I define two namespaces
> within a document, and those namespace include some attributes where their
> names are the same and they are ID attributes too... then I could have the
> same ID values which would be semantically different, right? and thus, they
> would be different ID values (I hope I have expressed it right). Example:
> 
> <root xmlns:a="some-URI" xmlns:b="another-URI">
>   <element-one   a:id-attribute="ALUX" />
>   <element-two   a:id-attribute="TIKAL" />
>   <element-three b:id-attribute="ALUX" /> <!-- this would be a different ID
> value, because it belongs to another namespace.  Is this correct? -->
> </root>

No.  IDs are not in namespaces.  All IDs, whatever their attribute
name, must be unique.

Note W3C XML Schema doesn't change ID/IDREF -- it provides a new
alternative which is more flexible and more powerful.

ht

[1] http://www.w3.org/XML/Schema
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                      Half-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/
 [mail really from me _always_ has this .sig -- mail without it is forged spam]




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS