>>>>> Bjoern Hoehrmann <[EMAIL PROTECTED]>:

> * Steinar Bang wrote:
>> I've tried creating RNC schemas from the DITA DTDs using trang, but they
>> fail in nxml.  There's a complaint of duplicate definition, like eg. this:

> http://lists.w3.org/Archives/Public/www-archive/2005Feb/0029.html has
> a xmllint-based script that should expand all entities; that should
> make it a lot simpler for trang to do the conversion (at the expense
> of some structure).

I first tried the approach suggested by Florent Georges, ie. generate
the RNC for each DTD into separate directories.

Then I tried the script suggested by Björn Höhrmann (a bourne shell
version of the script is at the end of the message), used it to generate
DTDs with expanded entities, that then were run through trang to create
single-file RNC schemas.

The resulting schemas from both approaches gave me the same problem:

The schemas loaded without error messages (which was an improvement :-) ).

But instead of <task> or <concept> (the only two document types I
tested) as the top directory, both DTDs had <no-topic-nesting> with no
children as the only legal element.

So... I'm open for more suggestions...:-)


- Steinar


Here's a bourne shell version of Björn Höhrmann's script:

#!/bin/sh
#
# Expand entities in DTD files
#
DTDFILE=$1
perl -e 'print qq{<!DOCTYPE x [<!ENTITY \x25 x SYSTEM "$ARGV[0]">\x25x;]><x/>}' 
$DTDFILE > $DTDFILE.tmp
xmllint --noent $DTDFILE.tmp | perl -ne 'local$/;$_=<>;s/^<!DOCTYPE x 
\[//;s/]>\s*<x\/>$//;s/<!--.*?-->//sg;s/<!ENTITY.*?>//sg; s/\n+/\n/g; print'
rm $DTDFILE.tmp

Reply via email to