[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] Separate data from rules ... is the XML Schema 1.1<assert> element a step backwards?
- From: "Costello, Roger L." <costello@mitre.org>
- To: "'xml-dev@lists.xml.org'" <xml-dev@lists.xml.org>
- Date: Wed, 17 Jun 2009 09:28:54 -0400
Hi Michael,
> > First an example of a business rule:
> >
> > A Level 1 manager has a maximum signature
> > authority of $10K.
> >
> > An auto loan applicant, living in Ohio, is
> > underage if he/she is under 18 years of age.
> >
> > If a customer has no outstanding invoices,
> > then the customer is of preferred status.
> >
> I agree those are business rules and are best kept out of a schema.
I am concerned that schema designers will not recognize that this is bad practice:
<element name="Level_1_Manager_Signoffs">
<complexType>
<sequence>
<element name="purchase-request" maxOccurs="unbounded">
<complexType>
<sequence>
<element name="item" type="string" />
<element name="cost" type="decimal" />
</sequence>
</complexType>
</element>
</sequence>
<assert test="purchase-request/cost lt 10000"/>
</complexType>
</element>
How will a schema designer distinguish between "structural rules" versus "business rules?" (And put the former into XML Schema but not the latter)
What is a "structural rule?"
In XML Schema 1.0 the answer was clear: anything that required computation, if-then-else logic, inference, and co-constraints could not be placed in XML Schema, and was therefore placed in Schematron) All rules were expressed and managed by Schematron.
The XML Schema 1.1 <assert> element adds confusion to the task of building schemas:
Is this a structural rule or a business rule?
Should I express this using <assert> within
XML Schema, or manage it separately in a
rules document?
What do you think?
/Roger
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]