[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] xmllint and namespaces
- From: Daniel Veillard <veillard redhat com>
- To: Stefan Kost <kost imn htwk-leipzig de>
- Cc: xml gnome org
- Subject: Re: [xml] xmllint and namespaces
- Date: Fri, 11 Oct 2002 08:20:40 -0400
On Fri, Oct 11, 2002 at 02:00:57PM +0200, Stefan Kost wrote:
> Hi hi,
>
> I am sure this has been aksed bevor but wasn't succesful in the mail-archive.
> I've just tried to use
>
> xmllint --noout --valid test.xml
>
> on test.xml :
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE giml SYSTEM "/opt/gitk/share/gitk/giml.dtd">
> <giml:giml xmlns:giml="http://gitk.sourceforge.net/">
> <giml:context/>
> </giml:giml>
>
> a fragment of the dtd :
>
> <!ELEMENT giml (context+)>
> <!ELEMENT context (#PCDATA)>
>
> and get the following output:
>
> test.xml:6: validity error: Element giml content doesn't follow the DTD
> Expecting (context)+, got (giml:context )
> </giml:giml>
>
> this looks to me as libxml2 would like me to put the name space into the dtd,
> which I don't belive is the right thing to do.
Well it is ...
Validation happens before namespace recognition.
You must use the QName in the DTD as seens in the instance:
<!DOCTYPE giml:giml SYSTEM "/opt/gitk/share/gitk/giml.dtd">
<giml:giml xmlns:giml="http://gitk.sourceforge.net/">
<giml:context/>
</giml:giml>
and
<!ELEMENT giml:glim (glim:context+)>
<!ELEMENT giml:context (#PCDATA)>
and don't forgot to add xmlns:giml as part of
<!ATTLIST giml:glim
Or use the default namespace
<giml xmlns="http://gitk.sourceforge.net/">
<context/>
</giml>
and keep your DTD as-is
And please make sure you use the latests versions of libxml2
Daniel
--
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]