XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] XSD elementFormDefault="unqualified" destroys the benefitsof namespace modularity

Hi Roger,

The first instance imply 4 schemas (you need a different schema for each 
namespace). The second instance cannot be obtained by setting the 
elementsFromDefault to unqualified in all these 4 schemas so I believe 
all the outcome further is irrelevant having a false presumption. The 
second instance can be the result of a single schema that has 
elementFormDefault (or the form attribute on each local element) set to 
unqualified but that is a totally different thing than having 4 schemas.

Best Regards,
George
-- 
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

Costello, Roger L. wrote:
> Hi Folks,
> 
> Recall that with XML Schemas you can specify that all elements in conforming instance documents must be namespace-qualified using:
> 
>     elementFormDefault="qualified"
> 
> Or, you can specify that only top-level, global elements must be namespace-qualified using:
> 
>     elementFormDefault="unqualified"
> 
> These can yield remarkably different instance documents. 
> 
> 
> INSTANCE #1
> 
> Here is an example of an instance where the schema specifies "qualified":
> 
> <?xml version="1.0"?>
> <c:camera xmlns:c="http://www.camera.org";
>           xmlns:nikon="http://www.nikon.com";
>           xmlns:olympus="http://www.olympus.com";
>           xmlns:pentax="http://www.pentax.com";>
>     <c:body>
>         <nikon:description>Ergonomically designed casing for easy 
>                            handling</nikon:description>
>     </c:body>
>     <c:lens>
>         <olympus:zoom>300mm</olympus:zoom>
>         <olympus:f-stop>1.2</olympus:f-stop>
>     </c:lens>
>     <c:manual_adapter>
>         <pentax:speed>1/10,000 sec to 100 sec</pentax:speed>
>     </c:manual_adapter>
> </c:camera>
> 
> 
> INSTANCE #2
> 
> Using the same schema, but specifying "unqualified," here is the instance:
> 
> <?xml version="1.0"?>
> <c:camera xmlns:c="http://www.camera.org";>
>     <body>
>         <description>Ergonomically designed 
>              casing for easy handling
>         </description>  
>     </body>
>     <lens>
>         <zoom>300mm</zoom>
>         <f-stop>1.2</f-stop>
>     </lens>
>     <manual_adapter>
>         <speed>1/10,000 sec to 100 sec</speed>
>     </manual_adapter>
> </c:camera>
> 
> 
> BENEFITS OF NAMESPACES
> 
> Namespaces modularize instance documents. They enable applications to perform module-specific processing.
> 
> 
> MODULES IN INSTANCE #1
> 
> In instance #1 the namespaces modularize the document. The document can be readily partitioned into these five modules:
> 
> -------------------------------------------
> <c:camera xmlns:c="http://www.camera.org";>
>     <c:body>
>     </c:body>
>     <c:lens>
>     </c:lens>
>     <c:manual_adapter>
>     </c:manual_adapter>
> </c:camera>
> -------------------------------------------
> <nikon:description xmlns:nikon="http://www.nikon.com";>
>     Ergonomically designed casing for easy handling
> </nikon:description>
> -------------------------------------------
> <olympus:zoom xmlns:olympus="http://www.olympus.com";>
>     300mm
> </olympus:zoom>
> -------------------------------------------
> <olympus:f-stop xmlns:olympus="http://www.olympus.com";>
>     1.2
> </olympus:f-stop>
> -------------------------------------------
> <pentax:speed xmlns:pentax="http://www.pentax.com";>
>     1/10,000 sec to 100 sec
> </pentax:speed>
> -------------------------------------------
> 
> 
> MODULES IN INSTANCE #2
> 
> In instance #2 there is one namespace module and three no-namespace modules:
> 
> -------------------------------------------
> <c:camera xmlns:c="http://www.camera.org";>
> </c:camera>
> -------------------------------------------
> <body>
>     <description>Ergonomically designed 
>          casing for easy handling
>     </description>  
> </body>
> -------------------------------------------
> <lens>
>     <zoom>300mm</zoom>
>     <f-stop>1.2</f-stop>
> </lens>
> -------------------------------------------
> <manual_adapter>
>     <speed>1/10,000 sec to 100 sec</speed>
> </manual_adapter>
> -------------------------------------------
> 
> 
> PROBLEMS WITH INSTANCE #2
> 
> The no-namespace modules are comprised of multiple XML vocabularies. For example, in the lens module the <lens> element comes from the camera schema, whereas the <zoom> and <f-stop> elements come from the olympus schema.
> 
> An application written for the olympus schema would not be able to process the lens module for these two reasons:
> 
> a. The elements are not associated with the olympus namespace. Consider how the olympus application would behave upon encountering the lens module: "Is that <zoom> element really the element I know about, or is it somebody else's zoom element?
> 
> b. The olympus application knows nothing about the <lens> element.
> 
> 
> RECOMMENDATION
> 
> Don't use elementFormDefault="unqualified" in your XML Schemas. It destroys the modularity benefits provided by namespaces.
> 
> 
> Do you agree with this recommendation?
> 
> /Roger
> 
> 
>  
> _______________________________________________________________________
> 
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
> 
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
> 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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

Copyright 1993-2007 XML.org. This site is hosted by OASIS