XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] RE: Portable Constraints

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]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS