[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Simon St.Laurent" <simonstl@s...>
  • To: "Costello, Roger L." <costello@m...>
  • Date: Wed, 22 Sep 2010 10:50:01 -0400

I don't have strong opinions on the value of doing this, but the case I 
noted earlier of a backchannel emerged at least in part when the 
developers celebrated their freedom from DTDs.

That freedom came for other reasons - complex document structures and 
customer expectations of XML Schema - but somebody noticed the other 
possibilities.  Using DTDs to put this genie back in the bottle may 
create other problems.

And alas, I don't remember who told me this story, but I'm pretty sure 
it was after a New York XML Special Interest Group meeting.

Thanks,
Simon

On 9/22/10 10:21 AM, Costello, Roger L. wrote:
> David Carlisle suggested validating an XML document against a DTD as a mechanism for detecting unused namespaces. I tried it. It works well.
>
> I created this DTD:
>
> <!ELEMENT Root (child)>
> <!ATTLIST Root
>            xmlns CDATA #FIXED 'http://www.used.org'>
>
> <!ELEMENT child (#PCDATA)>
> <!ATTLIST child
>            xmlns CDATA #FIXED 'http://www.used.org'>
>
>
> This XML document contains no unused namespaces:
>
> -----------------------------------
> <Root xmlns="http://www.used.org">
>
>          <child>true</child>
>
> </Root>
> -----------------------------------
>
> It validates fine.
>
>
> Then I added an unused namespace:
>
> -----------------------------------
> <Root xmlns="http://www.used.org"
>        xmlns:foo="blah">
>
>          <child>true</child>
>
> </Root>
> -----------------------------------
>
> Validation fails. Good! Validation detected the unused namespace.
>
>
> Conversely, this XML Schema does not detect the unused namespace:
>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>          targetNamespace="http://www.used.org"
>          elementFormDefault="qualified">
>
>      <element name="Root">
>          <complexType>
>              <sequence>
>                  <element name="child" type="boolean" />
>              </sequence>
>          </complexType>
>      </element>
>
> </schema>
>
> Validation succeeds with or without the unused namespace.
>
>
> Conclusion: it appears that one mechanism for detecting unused namespaces in an XML document is to validate it against a DTD. Can anyone think of a case where a DTD would not detect an unused namespace?


-- 
Simon St.Laurent
http://simonstl.com/


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


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member