Thanks for taking the time to explain. So if I accept the constraint on mustUnderstand as a given, then there is no way to do what I want to do, correct? Namely, to supply any fixed or default value for this attribute?
In the general case, this would seem to be a downside of excluding the canonical representation through the use of a pattern facet. -Steve On Wed, Sep 08, 2004 at 10:40:04PM -0400, Michael Glavassevich wrote: > Hello Steve, > > Your schema appears to be invalid. The canonical lexical representation > [1] of the value of a value constraint (default of fixed) must be valid > with respect to the type definition for the attribute (in this case > 'mustUnderstand') [2]. The literal '1' maps to true in boolean's value > space. The literal 'true' is the canonical lexical representation for the > value true [3] but the pattern facet in the type definition excludes > 'true' from the lexical space. > > I hope that makes some sense. > > [1] > http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes#dt-canonical-representation > [2] http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#a-props-correct > [3] > http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#boolean > > Steven Ihde <[EMAIL PROTECTED]> wrote on 09/08/2004 08:22:33 PM: > > > > > > > I was trying to declare an element with a mandatory > > soap:mustUnderstand="1" attribute, like so: > > > > <attribute ref="soap:mustUnderstand" use="required" fixed="1"/> > > > > I get the following error when parsing the schema from Xerces 2.6.2: > > > > Value 'true' is not facet-valid with respect to pattern '0|1' > > > > But my .xsd doesn't say "true" anywhere -- it says "1". > > > > This was in the context of a schema that referenced SOAP, but I boiled > > it down to the following trivial example: > > > > <schema xmlns="http://www.w3.org/2001/XMLSchema" > > xmlns:tns="http://example.com" > > targetNamespace="http://example.com"> > > > > <attribute name="mustUnderstand" > > > <simpleType> > > <restriction base='boolean'> > > <pattern value='0|1' /> > > </restriction> > > </simpleType> > > </attribute> > > > > <element name="Test"> > > <complexType> > > <attribute ref="tns:mustUnderstand" use="required" fixed="1"/> > > </complexType> > > </element> > > > > </schema> > > > > Then we get the following error from the XMLGrammarBuilder sample: > > > > $ java xni.XMLGrammarBuilder -f -a test-default.xsd > > [Error] test-default.xsd:16:69: cvc-pattern-valid: Value 'true' is not > > facet-valid with respect to pattern '0|1' for type 'null'. > > [Error] test-default.xsd:16:69: a-props-correct.2: Invalid value > > constraint value '1' in attribute 'mustUnderstand'. > > > > > > If I change each "1" to "true", and each "0" to "false", this works > > fine and has the desired effect. > > > > This seems to be a bug in Xerces. I didn't see anything like it in > > Jira. Has anyone run into this before? > > > > Thanks, > > > > Steve > > -- Steven C. Ihde <[EMAIL PROTECTED]> PGP Key ID: 0x7793756D PGP Fingerprint: DC 55 8B CA 50 8B DD 75 67 45 96 4D FF 42 8A 6C --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]