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] Looking for an example of a name colliision

[ Lists Home | Date Index | Thread Index ]

"Chiusano Joseph" <chiusano_joseph@bah.com> wrote:

| <Quote>
| could you then provide us an instance illustration?
| </Quote>
| 
| Sure - here it is. This is an agency's schema (agency 1) that includes
| the vocabulary of agency 2.

Name collision at the *schema definition* level!?  This kind of thing was
solved by ArchForms years ago.  You might even say that this was exactly
why ArchForms were invented!  See, eg,   

  http://www.isogen.com/papers/archintro.htm

| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
| 	    xmlns:a1="http://www.agency1.gov"; 
| 	    xmlns:a2="http://www.agency2.gov"; 
|             targetNamespace="http://www.agency1.gov";
|             elementFormDefault="qualified">
| 
| ...[import of agency 2's schema goes here]...
| 
|    <xsd:element name="Address">
|           <xsd:complexType>
|               <xsd:sequence>
|                   <xsd:element ref="a1:Street"/>
|                   <xsd:element ref="a1:City"/> 
|                   <xsd:element ref="a1:StateCode"/> 	 
|                   <xsd:element ref="a1:ZipCode"/> 
|                   <xsd:element ref="a1:Country"/>  
|             </xsd:sequence>
|         </xsd:complexType>
|     </xsd:element>

Or, for people who can sleep at night without a steady diet of pointy
brackets:

 <!ELEMENT  Address (Street, City, StateCode, ZipCode, Country) >
 
|    <xsd:element name="ElementInformation">
|           <xsd:complexType>
|               <xsd:sequence>
|                   <xsd:element ref="a2:Name"/>
|                   <xsd:element ref="a2:StateCode"/> 	 
| 			...[more stuff here]...
|             </xsd:sequence>
|         </xsd:complexType>
|     </xsd:element>


  <?IS10744:arch name="http://www.agency2.gov";
                 form-att="a2" ?>

  <!ELEMENT ElementInformation (Foo, Bar) >
  <!ATTLIST Foo  a2   NAME  #FIXED  "Name" >
  <!ATTLIST Bar  a2   NAME  #FIXED  "StateCode" >

For a demonstration of how this particular usecase was a non-problem even
before the colonification bogosity was invented:

 http://www.nyct.net/~aray/sgml/demo/dept/

But that's using old-fashioned tools.  As I understand this example, the
point seems to be: in any document using the a1 vocabulary, how can
"StateCode" in the sense of the a2 vocabulary be used?  Well, just use it!
Simply annotate the use with an attribute saying "Oh by the way, this is
in the a2 sense".  

Perhaps you mean that your *tools* have been coded to robotically examine
GIs only?

Well, that's a problem with the tools, not the formalism, no?





 

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

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