OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: Passing XML data between applications

[ Lists Home | Date Index | Thread Index ]
  • From: "James Tauber" <jtauber@jtauber.com>
  • To: "John Martin" <John.Martin@ncmail.net>, <xml-dev@ic.ac.uk>
  • Date: Fri, 2 Jul 1999 11:27:38 +0800

>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@jtauber.com / www.jtauber.com



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/ and on CD-ROM/ISBN 981-02-3594-1
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)






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS