Passing XML data between applications

James Tauber jtauber at jtauber.com
Fri Jul 2 05:27:47 BST 1999


>I'm trying to understand how you would describe this situation with a
>DTD.  Would/can you have two DOCTYPE statements, such as:

>
><?xml version="1.0" encoding="ISO-8859-1"?>
><!DOCTYPE NCSB SYSTEM "NCSB.dtd">
><!DOCTYPE APPL SYSTEM "APPL.dtd">


No, you can't do this, but you can do something similar.

You write your NCSB DTD like this:

<!ELEMENT NCSB-Message (Service-Version-Number, Service-Release-Number,
Accounting-Code-Information,Application-Data)>
<!ELEMENT Service-Version-Number (#PCDATA)>
<!ELEMENT Service-Release-Number (#PCDATA)>
<!ELEMENT Accounting-Code-Information (#PCDATA)>
<!ENTITY % app-data "EMPTY">
<!ELEMENT Application-Data %app-data;>

Note the parameter entity "app-data" which is currently EMPTY.

You can overide the value of app-data by declaring a new value *before* the
above DTD. So your actual document could look like:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE NCSB SYSTEM "NCSB.dtd" [
    <!ENTITY % app-data "(Customer-Number, Last-Name, First-Name, DOB)">
    <!ELEMENT Customer-Number (#PCDATA)>
    <!ELEMENT Last-Name (#PCDATA)>
    <!ELEMENT First-Name (#PCDATA)>
    <!ELEMENT DOB (#PCDATA)>
]>
<NCSB-Message>
<Service-Version-Number>01</Service-Version-Number>
<Service-Release-Number>01</Service-Release-Number>
<Accounting-Code-Information>ABCDEF</Accounting-Code-Information>
<Application-Data>
<Customer-Number>123456789012</Customer-Number>
<Last-Name>Smith</Last-Name>
<First-Name>John</First-Name>
<DOB>12/25/1995</DOB>
</Application-Data>
</NCSB-Message>


You could put the internal subset above in a separate entity. So you then
have a document that begins:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE NCSB SYSTEM "NCSB.dtd" [
    <!ENTITY % app-dtd SYSTEM "APPL.dtd">
    %app-dtd;
]>

Where APPL.dtd reads:

    <!ENTITY % app-data "(Customer-Number, Last-Name, First-Name, DOB)">
    <!ELEMENT Customer-Number (#PCDATA)>
    <!ELEMENT Last-Name (#PCDATA)>
    <!ELEMENT First-Name (#PCDATA)>
    <!ELEMENT DOB (#PCDATA)>

or whatever is appropriate.

>Or how does this work?  I am a very "concrete/practical" learner and
>almost all the examples I see in these XML books are in the
>"abstract/theoritica" realm.  And I can't even find an abstract
>discussion of this particular kind of situation.  Being new to the
>newsgroup and XML, I'd appreciate any pointers if anyone knows of a good
>"practical" guide to XML development and/or if there is a better place
>to ask these type of questions.


I have just started on a document that explains exactly the sorts of things
I've mentioned above and in my previous response to you. It will be online,
probably at either xmlinfo.com or schema.net (I haven't decided yet).

Stay tuned.

James Tauber / jtauber at jtauber.com / www.jtauber.com



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list