سؤال

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

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top