On Wed, 27 Jan 2010, Graeme Geldenhuys wrote:

Hi,

The small project I am working on requires reading a XML file and using
that data for various things, including building a GUI interface.

Most of my projects are database driven and uses the tiOPF framework to do
my load/saving work (plus a lot of other things).

As the title says, all my applications are normally object driven. This new
project I am working on should not be any different. One big difference
though is that it is not database driven and I don't want to bind it to
tiOPF framework.

So at the moment I reading the xml file and building my own object model
based on the various elements and attributes in the XML file.

Example:

-----
<?xml version="1.0" standalone="yes"?>
<install desc="my description" version="0.9">
 text for install element
 <eula>xxxx</eula>
 <eula lang="af">xxxxx</eula>
</install>
----

...would translate to classes as follows: elements become classes and
attributes become properties...

TSetupFile
TInstall
TEULAList
  TEULA

Interfaces section of TInstall might look like this....

 TInstall = class(TObject)
 public
   property Text: string...      // 'text for install element'
   property Desc: string...      // 'my description'
   property Version: string      // '0.9'
   property EulaList: TEULAList .....
 end;


This makes sense to me, and this is the design I am used to following with
tiOPF based projects. But like I said, I am not using tiOPF this time and I
am working with a XML file, which I haven't worked with before.


Am I taking the right OOP approach here, or should I rather be working with
the dom unit and TXMLDocument, TXMLElement etc classes directly. At the
moment I do not require writing to the XML file, only reading. At a much
later date, I'll be writing to the XML file though.

I feel my approach of using my own specialized classes is a better fit
compared to the generic TXMLElement classes. But I just want to confirm my
thoughts and also ask...

  How do other developers use XML files?

Yes. I use DOM to read the file, and then translate the found TDOMElement nodes to
the actual business classes.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to