- From: Jesse McCarthy <mccarthy36@earthlink.net>
- Date: Thu, 20 Dec 2001 17:53:14 -0500
- To: jeni@jenitennison.com, xmlschema-dev@w3.org
Hi Jeni
>By the way, this schema isn't valid because you can't specify a fixed
>or default value on an attribute whose type is or is derived from
>xs:ID (from Schema Component Constraint: Attribute Declaration
>Properties Correct, clause 3). I kept it like that simply because that
>was how you had it in your example.
Thanks, I was not aware of that (and XSV didn't mention it). I could achieve
the desired effect using an enumeration with a single value or a pattern
consisting of the literal string, right?
>If you want to both *extend* a type (adding to the content model) and
>*restrict* a type (limiting attribute values), then you need to do it
>in two steps - one a restriction and one an extension. You can do it
>either way round, but since restrictions require you to specify the
>full content model, it's easiest to do it first (on the shorter
>content model):
Why do I have to do it in two steps / can I do it at all?
If I were just going to address the first question, I would say why can't I
do this:
[
<xsd:complexType name="BaseType">
<xsd:sequence>
<xsd:element ref="JMM:someElementABC" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID" />
</xsd:complexType>
<xsd:complexType name="DerivedType">
<xsd:complexContent>
<xsd:extension base="JMM:BaseType">
<xsd:sequence>
<xsd:element ref="JMM:someElementXYZ" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
<xsd:attribute name="id">
<xsd:simpleType>
<xsd:restriction base="xsd:ID">
<xsd:pattern value="Derived" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
]
But doesn't clause 4 -- "4 Two distinct attribute declarations in the
{attribute uses} must not have identical {name}s and {target namespace}s." --
of 3.4.6 Constraints on Complex Type Definition Schema Components preclude
doing that (even on the second of the two steps you suggest)?
--> Jesse
Received on Thursday, 20 December 2001 20:25:46 UTC