Complex validation of business rules possible with XML Schema? Any other validation "languages"?

M

Mike

Note: My XML experience to date has (unfortunately) been limited to reading
and thinking, rather than implementation.

Anyway, I am in the process of trying to figure out the most efficient way
to validate and transform some very large (potentially over 100MB) XML
documents. This is related to another question I will post next, but for
now, I want to focus on one particular topic.

The data in question has particular business rules that must be validated,
and I'm not sure if XML Schema can handle this or not. For example, a
certain attribute of a child element might only be valid depending on a
corresponding (but different) attribute in a parent or sibling element.

1. Can XML Schema handle complex validation rules such as this?
2. Can processing instructions be used (with supporting code) to handle
validation rules that are too complex for XML Schema?
3. Are there any other general-purpose XML "languages" for describing
complex validation rules for XML documents?

In general, how efficient is validation with XML Schema - does it require
the entire document to be loaded into memory at once?

Thanks for any help,

Mike
 
P

Patrick TJ McPhee

% The data in question has particular business rules that must be validated,
% and I'm not sure if XML Schema can handle this or not. For example, a
% certain attribute of a child element might only be valid depending on a
% corresponding (but different) attribute in a parent or sibling element.

% 1. Can XML Schema handle complex validation rules such as this?

Not directly.

% 2. Can processing instructions be used (with supporting code) to handle
% validation rules that are too complex for XML Schema?

The `XML Schema' way of doing this is to define annotations which can be
handled by your processor.

% 3. Are there any other general-purpose XML "languages" for describing
% complex validation rules for XML documents?

Look at RELAX NG. It can do grouping with attributes (i.e., if this attribute
is present, that one must be, or if that one is present, this must not be).
I don't know enough to say whether it can do structural validation based
on attribute values (ie, this element must be present if that attribute
is set to `bob'), but it might.

% In general, how efficient is validation with XML Schema - does it require
% the entire document to be loaded into memory at once?

It seems common to apply XML Schemas to DOM trees, and that typically
involves reading the entire document. I've typically used non-XML
validation mechanisms when dealing with large amounts of data.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,123
Latest member
Layne6498
Top