On Wed, Nov 26, 2003 at 02:24:55PM +0100, Keim, Markus wrote:
> Hello Daniel, hello all,
>
> well, i know that's a long-winded topic, but i hope my actual
> question is rather basic.
> I've read the 'namespaces' part of the libxml2 online docs
> and skimmed through the mailing archives, i'd guess two points
> could be put out:
>
> - DTD validation for documents that uses prefixes and
> different namespaces is problematic
yes but it's not specific to libxml(2), it's due to the fact that
namespaces were added to XML after the main spec was released ,
and as a result XML-1.0 and DTD validation are ignorant of namespaces.
> - DTD validation for documents with a default namespace,
> declared on the root element should be possible using
> libxml2
DTD validation of documents with namespaces are possible.
You must define the prefixes in the DTD exactly as you will find them
in the instance, that's all.
> I've done my first attempts at walking in that direction
> by validating a simple document using xmllint (v2.6.1)
> (well, to be honest i've tried it first with my application,
> but i've checked it with xmllint):
>
> ============================================================
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE foo [
> <!ELEMENT foo ANY>
> ]>
> <foo xmlns="http://foo.acme.com/" />
> ============================================================
>
> Using "--valid", i get an validation error:
>
> ~>xmllint --valid --noout foo.xml
> foo.xml:5: element foo: validity error : No declaration for
> attribute xmlns of element foo
> <foo xmlns="http://foo.acme.com/" />
> ^
that's normal,
> Using "--postvalid", the document validates.
that's an error, but I can't reproduce it with the currnet code
paphio:~/XML -> xmllint --valid --noout tst.xml
tst.xml:5: element foo: validity error : No declaration for attribute xmlns of
element foo
<foo xmlns="http://foo.acme.com/" />
^
paphio:~/XML -> xmllint --postvalid --noout tst.xml
tst.xml:5: element foo: validity error : No declaration for attribute xmlns of
element foo
Document tst.xml does not validate
paphio:~/XML -> cat tst.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY>
]>
<foo xmlns="http://foo.acme.com/" />
paphio:~/XML ->
> Or is it actually necessary to declare "xmlns" as attribute
> for the root element?
that's necessary.
Daniel
--
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
veillard@xxxxxxxxxx | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
|