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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: Convertor wanted: C struct to XML schema

[ Lists Home | Date Index | Thread Index ]
  • From: "Trevor Croll" <litebook@powerup.com.au>
  • To: "Tan Yiping" <tanyp@mail.conuco.cn.net>
  • Date: Wed, 28 Jul 1999 10:53:48 +1000

I am doing an application that seems similar to yours,
I am still studying and learning and this is my current conclusion.

XML data is parsed by a SAX parser with a DOM interface used to build a DOM
tree.
There is no need for a C struct for an XML document, use a DOM tree
by walking this tree the field details can be pulled into your app as you
need them.
Data in the DOM tree can be changed and nodes added as required.
The DOM tree can then be scanned and turned into XML data for transmission

References - http://www.python.org/ have a XML addition which is very
instructive though different for your requirements
http://www.alphaworks.ibm.com/  offer source code and a C++ Builder example
XML4C

I have worked through this and now looking very closely at all the DOM
literature and COBRA literature to properly aquaint myself with this.

http://www.jclark.com/xml/xp/index.html has an SP parser and a Jade parser
which I will be looking closely at

I must admit there is very little guidance and overview documents detailing
how all the parts and bits of XML are intended to fit together with each
other.




----- Original Message -----
From: Tan Yiping <tanyp@mail.conuco.cn.net>
To: <xml-dev@ic.ac.uk>
Sent: Tuesday, July 27, 1999 3:11 PM
Subject: RE: Convertor wanted: C struct to XML schema


> Thanks a lot to Steve, Mike, and John. Your information is very helpful.
>
> However, none of tools you mentioned sovle exactly my problem. My last
> message was too short, it seems. OK. Let me post a long one this time.
> Hope you are still interested in this topic.
>
> What I want to do basically is to exchange data in XML format between
> two
> applications over the network. Because XML docs are self-descriptive, it
> should be intelligent enough to tolerate some independent interface
> upgrading/extension in each of the communication partners. Quite a new
> XML application, isn't it?
>
> My current approach is to first define the data to be exchanged in XML
> Schema. Then I can parse the XML Schema in (because it's a well-formed
> XML doc) and generate XML doc against this schema in DOM objects,
> filling
> with the data from the a C struct. The point is, when the XML Schema is
> parsed in, I have the XML doc structure and variable names in memory.
>
> Let's say I have in memory an instance of data "tNewspaper" of type
> T_Newspaper, defined as following:
>
> typedef int T_BundleParam[6];
>
> typedef struct {
> float fUSD; file://Price in United States
> float fDM; file://Price in Germany
> }T_Price;
>
> typedef struct {
> char szName[8]; file://Newspaper name
> long nSubscription; file://Number of Subscription
> T_BundleParam tBundleParam; file://6 Bundling parameters
> T_Price tPrice; file://Price
> }T_Newspaper;
>
> The XML counterpart of the above definition can be, in IE5-compatible
> XML Schema language:
>
> <?xml version="1.0"?>
> <Schema xmlns="urn:schemas-microsoft-com:xml-data"
> xmlns:dt="urn:schemas-microsoft-com:datatypes">
> <ElementType name="BundleParam" dt:type="int"/>
> <ElementType name="USD" dt:type="real"/>
> <ElementType name="DM" dt:type="real"/>
> <ElementType name="Name" dt:type="string"/>
> <ElementType name="Subscription" dt:type="int"/>
> <ElementType name="Price" content="eltOnly">
> <element type="USD"/>
> <element type="DM"/>
> </ElementType>
> <ElementType name="Newspaper" content="eltOnly">
> <element type="Name"/>
> <element type="Subscription"/>
> <element type="BundleParam" minOccurs="1"
> maxOccurs="*"/>
> <element type="Price"/>
> </ElementType>
> </Schema>
>
> (It will be perfect if I can define BundleParam as minOccurs="6"
> maxOccurs="6". However, the MSXML parser in IE5 doesn't support so.)
>
> Now I have made the above XML Schema manually. But I have hundreds
> of such kind of C structs to be converted. It would be very helpful if
> there is
> a tool to do the conversion, even if the tool can only translate 80% of
> the
> syntax correctly!
>
> Is such a tool exist?
>
> Yiping
> (Chinese has their given names at last position. There isn't an
> international
> standard on name format yet, sorry.)
>
>
> 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)
>
>


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