Page 1 of 1

DTD to XML

Posted: Wed Mar 04, 2015 9:34 pm
by lsebe2
Hi! I have the following DTD file :

Code: Select all


<!ELEMENT book (bookinfo,chapter*)>
<!ELEMENT chapter (title,section*)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT bookinfo (title,author,copyright)>
<!ELEMENT author (firstname,surname)>
<!ELEMENT copyright (year,holder)>
<!ENTITY % divers "para|programlisting|itemizedlist|orderedlist">
<!ELEMENT section (title,(%divers;)+)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT programlisting (#PCDATA)>
<!ELEMENT holder (#PCDATA)>
<!ELEMENT surname (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT itemizedlist (listitem+)>
<!ELEMENT orderedlist (listitem+)>
<!ELEMENT listitem (%divers;)+>
I'm trying to generate a xml file from this exact DTD but not every elements and child elements appear in the generated xml file. Here's my procedure, File, New, XML, Customize, Root Element : book and I've checked both Add optional content and Add first Choice particle.

Here's the xml output :

Code: Select all


<book>
<bookinfo>
<title></title>
<author>
<firstname></firstname>
<surname></surname>
</author>
<copyright>
<year></year>
<holder></holder>
</copyright>
</bookinfo>
<chapter>
<title></title>
<section>
<title></title>
<para></para>
</section>
</chapter>
</book>
Do you have an idea why not all my elements and child elements are included in the final xml output?

Thanks a lot for your help!

Re: DTD to XML

Posted: Mon Mar 23, 2015 5:10 pm
by adrian
Hi,

Note that creating a new XML (File > New) doesn't generate a complete XML instance, just a skeleton XML. So, where you have:

Code: Select all

<!ELEMENT section (title,(%divers;)+)>
<!ENTITY % divers "para|programlisting|itemizedlist|orderedlist">
The new document will have just the first element, 'para' and the others will be skipped.

Oxygen only provides an instance generator for XML Schema (not for DTD) in Tools > Generate Sample XML Files. You could convert the DTD to XML Schema (Document > Schema > Generate/Convert Schema)) and use the generator on the converted schema.

Regards,
Adrian