[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] My report on experiments with unused namespaces
- From: "Costello, Roger L." <costello@mitre.org>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Wed, 22 Sep 2010 10:21:13 -0400
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
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]