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

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • Date: Wed, 22 Sep 2010 10:58:17 -0400

David Lee wrote:

> Consider this supposedly equal document.
>
> ...
>
> It will fail your DTD validation.

Ouch!

Quite right David.

I believe this shows that using DTDs as a mechanism to detect unused namespaces won't work.  (I think this is the "false positives" that Rich was referring to)

/Roger

-----Original Message-----
From: David [mailto:dlee@c...] 
Sent: Wednesday, September 22, 2010 10:40 AM
To: xml-dev@l...
Subject: Re:  My report on experiments with unused namespaces

  This validation is of marginal use.
Consider this supposedly equal document.

<x:Root xmlns:x="http://www.used.org">

         <x:child>true</x:child>

</x:Root>


It will fail your DTD validation.




David A. Lee
dlee@c...
http://www.xmlsh.org


On 9/22/2010 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?
>
> /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@l...
> subscribe: xml-dev-subscribe@l...
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>

_______________________________________________________________________

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@l...
subscribe: xml-dev-subscribe@l...
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]


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