[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] RE: Portable Constraints
- From: "Costello, Roger L." <costello@mitre.org>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Sun, 3 Apr 2011 18:23:09 -0400
Thanks Stephen, cost/currency looks like an good example of a component that should be portable.
Instead of PrimaryPrice and SecondaryPrice, how about a cost element that contains values in various currencies:
<cost>
<USD>40.00</USD>
<EUR>28.10</EUR>
</cost>
The cost element then has assert elements to check that the values are consistent:
Assert: if (USD and EUR) then
number(EUR) eq (floor(USD * (0.702644 * 100)) div 100)
else true()
Assert: if (USD and GBP) then
number(GBP) eq (floor(USD * (0.620670 * 100)) div 100)
else true()
(Perhaps someone can think of a better way to express the XPath expressions?)
Here is an XML Schema that declares the cost element and its assertions:
<xs:element name="cost">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="USD" type="xs:decimal" />
<xs:element name="EUR" type="xs:decimal" />
<xs:element name="GBP" type="xs:decimal" />
</xs:choice>
<xs:assert test="if (USD and EUR) then
number(EUR) eq (floor(USD * (0.702644 * 100)) div 100)
else true()" />
<xs:assert test="if (USD and GBP) then
number(GBP) eq (floor(USD * (0.620670 * 100)) div 100)
else true()" />
</xs:complexType>
</xs:element>
What do others think? Do you think this cost element is a good candidate for being a portable component?
/Roger
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]