Domanda

I have a problem when validating a file against a DTD. XML files says only:

<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"[]>

and that bit cannot be changed.

I have the DTD files (there's actually 98 DTD files in 16 subfolders), but I don't know how to reference them, or even better, include (embed?) them in the application, i.e. create a standalone validator for that.

I am using the .net XmlReader class and it works fine, however I get the An error has occurred while opening external DTD

Thanks! Bartosz

È stato utile?

Soluzione

The DITA DTDs as provided by OASIS include an XML catalog used to resolve the public IDs. If you are using the DTDs as packaged with the DITA Open Toolkit the catalog is the file catalog-dita.xml in the root of the OT distribution. If it is some other package then you'll have to look around for the catalog.

I'm not familiar with .net XML processing but there must be some way to use catalogs when parsing XML, comparable to the Apache resolver.jar classes.

Cheers,

Eliot

Altri suggerimenti

One option is to implement a custom entity resolver that reads the catalog file. Mircrosoft offers little support for dita and DTD's since they appear to lean towards schemas.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top