AW: [xml] xmllint - what does the error message "work/xslt/export _ifc.xml:2 : error: Content error in the external subset" mean?



Hello and many thanks for your answer; with non-empty, eve dummy system id
everithing is working.

However it makes my life not easier, and now I have even more questions as
formerly. All of these questions belongs to common practice of usage of xml
and dtd, and maybe I have to ask them in other list, but I hope I could get
an answer here.

So, I'm starting from the very beginning.

We have a dtd for some xml files. These xml-files will be used by several
working groups. Dtd could not be obtained from inter- or intranet. We have
no garanty that dtd-file could be found on the same place at every
workstation (we're using at least 3 different OS, unix and windows-flavour).
Because of that I have no idea what should I write as sytem identifier in
DOCTYPE declaration.

Our idea was what at every working place we set up a XML-catalog, with
correctly defined resolution rules for PUBLIC identifier, something like
this:
------------------------%<-----------------------------
<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog
V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<group prefer="public" xml:base="file:///home/dt82fe/etc/xml/">
 <public  
     publicId="-//EDC//filelist 1.0//EN"
     uri="edc/filelist/1.0/dtd/export_ifc.dtd"/>
</group>
</catalog>
------------------------%<-----------------------------
and use such a catalog to obtain dtd for document validation.

But this scenario does not work, because xmllint does not allow an empty
systemID in doctype declaration.(actually I see no difference between empty,
i.e. "" and any other dummy value like " " or
"http://www.dummy.org/whatever.dtd";).


Basically an empty string for the URI reference, means you want to use
the XML document as the DTD, 

is it defined in any standard/specification?

and xmllint raises an error because 
<!DOCTYPE construct is a well formedness error if found in a DTD.

In a nutshell: never use "" for the system identifier !


the same question: is it defined in any standard, that empty system id is
incorrect a priori?

Actually, all I want to achieve with empty system id is to say that for this
schema there is NO system identifier at all, only public. And I could not
skip system Id at all, because it's not allowed by xml specification.

What do readers of this list think about this? That is the best/optimal
strategy in my case? Any suggestions/links/RTFMs are welcome.


Tia,
Tim



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]