- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 20 Mar 2013 13:53:56 +0000
- To: xmlschema-dev@w3.org
A complex-type-with-simple-content is generally defined by extension:
think of it as first defining the simple content of the element, then
extending it to allow attributes.
You can define a c-t-with-s-c as a restriction of another c-t-with-s-c,
but that doesn't seem to be what you are doing here; the suggestion from
the error message is that dc:SimpleLiteral is a simple type, not a
c-t-with-s-c.
Difficult to correct this without knowing what you are trying to
achieve. Why are you saying xml:lang is prohibited? Does your new type
allow any attributes, and if so, which? What is the definition of
dc:SimpleLiteral?
Michael Kay
Saxonica
On 20/03/2013 13:03, Dave Pawson wrote:
> <xs:restriction base="dc:SimpleLiteral">
> <xs:simpleType> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> <xs:restriction base="dcmitype:DCMIType"/>
> </xs:simpleType>
> <xs:attribute ref="xml:lang" use="prohibited"/>
> </xs:restriction>
> </xs:simpleContent>
> </xs:complexType>
>
>
>
> The report is A complex type with simple content {defined at line 196
> of file:/t...} cannot be derived by restriction from a simple
> type
>
> I've read that ten times and it makes little sense.
>
Well, to understand it you have to know
(a) what is a complex type with simple content? It's what you are trying
to define when you use <xs:simpleContent>; that is, the type of an
element such as <a currency="USD">22.50</a> where the content is
"simple" (here, a number) and there are one or more attributes allowed.
(b) what does it mean to derive by restriction? It means to define one
type as having a value space that is a subset of the value space of some
base type
(c) what is a simple type? It's something defined using xs:simpleType,
in this case dc:SimpleLiteral.
Does that help your understanding?
Michael Kay
>
>
>
Received on Wednesday, 20 March 2013 13:54:27 UTC