XML Document Schemas
It is clear that the Internet Documents will be XML. Currently there are a number of Business Document XML projects underway. My desire is to use industry standard XML schemas in order to maintain compatibility with existing implementations, and to ensure the widest possible utilization of this project.
XML Schema Projects
There are many projects developing XML schemas for everything under the sun. However, there are some front runners I believe which I have detailed in my Business to Business Resources.

In addition IDTrans has developed its own XML source code. This is aimed at working with XML with a lightweight code base, rather than the heavyweight approach of Document Object Models. To date this approach has worked very well, although it will need continued work. While initially only available for Delphi, the XML code will be ported to Java and C.

The Role of XML within IDTrans
All Internet Documents will be XML documents. Furthermore those documents will conform to standard definitions that will be incorporated into the software for invoices, statements, orders and other business documents.

There will be minimim requirements for various documents. For example, a invoice will need to contain the sender and receipeint data. It will need to include a Invoice Number, and Invoice Date etc. Every invoice will have common features.

This will ensure that you do not need to obtain a schema from your receipient before you can send them a document. If you send an invoice you know the receipient will be able to parse the invoice.

Children Schemas
My plan is to incorporate inheritance into schemas.

For example, I will distribute a standard Invoice, Statement, Order etc. People will be able to 'inherit' from the standard Invoice to add properties of their own, without redefining the whole invoice schema. If you write in Delphi or Java you will already be familar with the concept.

The advantage of this is that you can send a invoice created from a special invoice schema (ie the schema adds properties to the invoice not normally present in the standard), and the receiver will still be able to make sence of the invoice. They have the option of downloading your inherited schema if they want to parse the additional fields, but they don't need to in order to find the basic invoice data.

Furthermore, all the standard documents would inherit from a single top level document - and you would have a naming convension for people to add their own schemas.ie,

  • org.devcentre.Document -> (Base Document for all Internet Documents)
  • org.devcentre.Invoice -> (Base Document for all Internet Invoices)
  • com.sun.Invoice -> (Specialized Sun version of the Invoice)
  • com.ibm.Invoice -> (Specialized IBM version of the Invoice, inherited from Sun) In other words all schemas become public, and can be used to inherit from in order to create more specialized schemas. Inheritance is not supported by other projects that I am aware of. As a result of this the Schemas can become bloated, as the default schema needs to have fields to support all the fields that may be required. I will probably initially start with simple schemas, and have advanced inherited schemas support the eBIS-XML and ebXML stanadrds.
  • Home