[
Lists Home |
Date Index |
Thread Index
]
- From: "Neil Bradley" <neil@bradley.co.uk>
- To: xml-dev@ic.ac.uk
- Date: Wed, 17 Dec 1997 21:25:03 +0000
> I am a amateur in xml and hope anyone can help me.
>
> I try to transform a SGML-DTD into XML (I use MSXML-parser).
> My questions are:
>
> 1) Neither SGML-inclusions nor -exclusions are allowed in XML!? How can I
> express this in XML?
>
> my sgml-dtd:
>
> <!ELEMENT LE - - ((a , b , c+) , d , e) +(f , g , h) >
> <!ELEMENT m - - (o | (#PCDATA))+ >
> <!ELEMENT c - - (l , (m | n)+) >
> ...
> <!ELEMENT e - - (i , (j , k)+) -(h)>
First, let's simplify your SGML DTD, which has too many brackets in
it:
<!ELEMENT LE - - (a , b , c+ , d , e) +(f , g , h) >
<!ELEMENT m - - (o | #PCDATA)+ >
<!ELEMENT c - - (l , (m | n)+) >
...
<!ELEMENT e - - (i , (j , k)+) -(h)>
Putting the PCDATA in the right place for XML, and removing the
minimization tokens, we get:
<!ELEMENT LE (a , b , c+ , d , e) +(f , g , h) >
<!ELEMENT m ( #PCDATA|o)+ >
<!ELEMENT c (l , (m | n)+) >
...
<!ELEMENT e (i , (j , k)+) -(h)>
So you want f, g and h to be accessible in a, b, c, d and e, but also
in l, m and n, but only f and g in i, j and k. Of course, you may not
want any of these directly in LE, c and/or e, though inclusions
automatically allow this. Only you can decide. Assuming that you do want them...
<!ELEMENT LE ((f|g|h)*, a ,(f|g|h)*, b ,(f|g|h)*, (c|f|g|h)+
,(f|g|h)*, d ,(f|g|h)*, e(f|g|h)*)>
<!ELEMENT m ( #PCDATA|o|f|g|h)+ >
<!ELEMENT c ((f|g|h)*,l , (f|g|h)*, (m |n|f|g|h)+) >
...
<!ELEMENT e ((f|g)*,i , (f|g)*, (j, (f|g)* , k (f|g)*)+)>
In one sense you are lucky in this example, because you do not have
the same element having different content depending on its context.
Suppose the following:
<!ELEMENT chapter - - (para*, section*) >
<!ELEMENT para - - (#PCDATA)>
<!ELEMENT section (para+) +(xref)>
Here, the para element may have an xref, but only if it apepars
inside a section element. To do this in XML requires the definition
of a new element, perhaps called sect_para
<!ELEMENT para - - (#PCDATA|xref)*>
Neil.
-----------------------------------------------
Neil Bradley - Author of The Concise SGML Companion.
neil@bradley.co.uk
www.bradley.co.uk
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)
|