- From: Michael Kay <mike@saxonica.com>
- Date: Thu, 20 Dec 2007 00:47:13 -0000
- To: "'Guillaume Lebleu'" <gl@brixlogic.com>, <xmlschema-dev@w3.org>
The WG is currently leaning against the idea of allowing assertions to reference external documents. But the current Saxon-SA 9.0 implementation of assertions allows it. This enables you to define a file error-codes.xml <error-codes> <error> <code>0001<code> <status>fatal</status> <desc>Minor fire detected in hard disk drive</desc> </error> ... and your schema can then say <xs:complexType name="errorType"> <xs:assert test="some $e in document('error-codes.xml')/*/error satisfies deep-equal(., $e)"/> Personally I think this is really useful and would like to see it allowed by the specification. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: xmlschema-dev-request@w3.org > [mailto:xmlschema-dev-request@w3.org] On Behalf Of Guillaume Lebleu > Sent: 20 December 2007 00:32 > To: xmlschema-dev@w3.org > Subject: Enumerated complex types > > > Hello, > > I was wondering if the use case of enumerated complex types > had ever come up in this list. I did a quick search and > couldn't find anything. > > Here is what I mean: > > Let's say I want to define a list of error codes, each having > a possible value, an associated severity level and > description, which I have specified in the form of a table, > and I want to return in an XML message this information in > the form of a <Status> aggregate containing a <StatusCode> > element, <Severity> element and <Desc> element. This is a > realistic use case you can find in industry standards such as > IFX and ACORD. > > One solution would be to use co-constraint rules: if > StatusCode is '100' > then Severity must be 'Error' and Desc must be 'General > Error', but that sounds quite complicated and it wouldn't > help the manual edition of a schema-compliant XML document. > > The alternative solution I'm thinking about would be > something similar to the xs:restriction and xs:enumeration > used in simpleTypes, but with a value that would essentially > be an XML document fragment. > > I see several advantages to this representation: > > * It could be leveraged to accelerate the manual edition of XML > instances of an XML Schema through code completion: I select one > of the enumerations in a drop-down list, just like today XML > editors allow me to select an enumerated value from a > drop-down list. > * It is easier than co-constraint representation for > business people > to understand and edit. > * It might be easier for type checkers to deal with (intuition). > > Let me know what you think and sorry if this has already been > discussed. > > Guillaume >
Received on Thursday, 20 December 2007 00:47:40 UTC