In order to
benefit from XML schemas they need to be clear, precise, flexible and
interoperable with the different technologies you are going to use on your
project. Amongst us colleagues we regularly have lively discussions on how to
achieve this. We all have the same ideas on the general guidelines but sometime
we disagree about some details. Mostly it boils down to the choice of
technology we are used of working with. But I am relatively sure I can work
with the schemas created by my peers.
One major
downside of XML schemas is that it is very technical and functional analyst
don’t always understand it very well and why should they? They want to model
the messages in their favorite modelling tool. In the perfect world you can
generate the XSD’s from the model. This way you can enforce the policy you have
defined to which the XSD’s should conform.
So what is
wrong with this? Nothing! I even encourage you to do it. If it is done
correctly and you keep in mind that in the end a developer has to import the
XSD’s in his tool and work with them.
On a recent
project I had to import an XSD from a third party in order to interact with them. In their documentation they were very proud of their UML model and
how clever they were modelling there data. With the generated XSD they were less
concerned. From what the XSD should be: simple, flexible, easy to understand …
nothing was achieved. I spend 2 days trying to import them in my tool (IBM
Integration Toolkit). In the end I gave up as I could no longer justify the
time spent to my client. I wrote my own
(very simple) XSD’s that conform to the messages we need to send and receive
and used those within our tools.
For those
thinking: then don’t use IBM Integration toolkit. I have quite some experience
with IBM tooling and in my career I never before had so much problems importing
XSD’s. I find the XML support of IBM tools excellent. We tried to import the
XSD’s in different tools and they all failed.
So to
conclude I want to give you some advice:
- Pay attention to your XML Schemas
- Define guidelines/rules to which you XML schemas should adhere within your organization
- For a public interface make sure the XML schema does not use too advanced schema features (UN/CEFACT Naming and Design Rules may help you there)
- Model your data and generate the XML Schemas from the (UML) model but let your developers validate the generated XSD’s
XML Schemas should be an aid not a burden ! Keep it Simple !
Author: Jef Jansen
No comments:
Post a Comment