- From: Calvin Smith <calvins@SIMS.Berkeley.EDU>
- Date: Wed, 24 Jul 2002 14:28:34 -0700 (PDT)
- To: xmlschema-dev@w3.org
I am trying to restrict a type that consists solely of an <xsd:any>
(inside <xsd:sequence>) element, without success. Xerces2-J says that the
particle of the type is not a valid restriction of the particle of the
base, because there is not a complete functional mapping between the
particles.
Base type:
<xsd:complexType name="PayloadType">
<xsd:sequence maxOccurs="unbounded">
<xsd:any maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
Derived type:
<xsd:complexType name="LabelType">
<xsd:complexContent>
<xsd:restriction base="PayloadType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="LabelGraphic" type="cct:GraphicType"
minOccurs="0" maxOccurs="unbounded"/>
<!-- other elements omitted -->
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
<xsd:complexType>
From the spec: [Definition:] A complete functional mapping is
order-preserving if each particle r in the domain R maps to a particle b
in the range B which follows (not necessarily immediately) the particle in
the range B mapped to by the predecessor of r, if any, where "predecessor"
and "follows" are defined with respect to the order of the lists which
constitute R and B. [http://www.w3.org/TR/xmlschema-1/#rcase-Recurse]
My restriction does not qualify as a complete functional mapping, then,
since the second-to-last particle inside the restricted type's sequence
cannot be mapped to a predecessor of the base particle that is mapped to
by the last restricted particle.
Am I missing something obvious? What I would like is to do type
substitution (without substitution groups) and have the base type such
that any kind of a restriction is a valid restriction. I would like to
substitute types that don't necessarily have anything in common except
that they restrict the generic PayloadType (which is abstract) in some
way. Is there a better way to do this than what I am trying to do?
Thanks,
calvin
Received on Wednesday, 24 July 2002 17:28:42 UTC