[
Lists Home |
Date Index |
Thread Index
]
- From: Mark Wutka <mark@wutka.com>
- To: xml-dev@lists.xml.org
- Date: Thu, 24 Aug 2000 18:07:01 -0400 (EDT)
Okay, I know I'm gonna burn in hell for this, but here goes.. >:-)
Use an external DTD and make the URL for the DTD run a Java Server Page,
like this:
<%
String[] e = request.getParameterValues("elem");
for (int i=0; i < e.length; i++)
{
%>
<%="<!ELEMENT "+e[i]+" ("+e[i]+"Name, "+e[i]+"Type)>"%>
<%="<!ELEMENT "+e[i]+"Name (#PCDATA)>"%>
<%="<!ATTLIST "+e[i]+"Name nametype (latin|common) \"common\">"%>
<%="<!ELEMENT "+e[i]+"Type (#PCDATA)>"%>
<%
}
%>
The output of the JSP is a DTD in the form you just described. You need to
have a local DTD? No problem! Just do this in your DTD:
<!ENTITY fun SYSTEM "http://localhost:8080/dtdfun.jsp?elem=Mammal&elem=Bird&elem=Fish">
%fun;
Sorry, it's been a long day and I'm obviously quite punchy. Hopefully
someone has practical solution.
Mark
On Fri, 25 Aug 2000, Justin Lipton wrote:
> Hi,
>
> I was wondering if anyone has come across this problem.
> We are currently using a DTD that has the following structure.
> Ignore the actual names used here as they are purely for illustrative
> purposes but assume that there is no choice but to use such a structure:
>
> <!ELEMENT Mammal (MammalName, MammalType)>
> <!ELEMENT MammalName (#PCDATA)>
> <!ATTLIST MammalName (latin|common) "common">
> <!ELEMENT MammalType (#PCDATA)>
>
> <!ELEMENT Fish (FishName, FishType)>
> <!ATTLIST FishName (latin|common) "common">
> <!ELEMENT FishType (#PCDATA)>
>
> <!ELEMENT Bird (BirdName, BirdType)>
> <!ATTLIST BirdName (latin|common) "common">
> <!ELEMENT BirdType (#PCDATA)>
>
> Image dozens of elements like this!
>
> Is there a way (either with a Schema or a DTD) to generalise this type of
> structure such that:
> <!ELEMENT * (*Name, *Type)>
> <!ATTLIST *Name (latin|common) "common">
> <!ELEMENT *Type (#PCDATA)>
>
> Cheers,
> Justin.
>
>
|