- From: Dave Pawson <dave.pawson@gmail.com>
- Date: Mon, 1 Apr 2013 08:52:15 +0100
- To: XMLSchema-dev <xmlschema-dev@w3.org>
Thanks Michael. I am using a 1.0 schema, but if you see the later post, I think this is one that MK noted as a bug in his validator as used in oXygen. regards On 1 April 2013 00:25, C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com> wrote: > > On Mar 20, 2013, at 8:06 AM, Dave Pawson wrote: > >> Note I'm the real newbie here Mike. >> >> On 20 March 2013 13:53, Michael Kay <mike@saxonica.com> wrote: >>> 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? >> >> I'm trying to understand this schema, then reduce it. >> >> Defn: >> >> <xs:complexType name="SimpleLiteral" mixed="true"> >> ... >> </xs:complexType> >> >> >> >> Is that any help? > > Yes, it is. If I understand correctly, you would like to define > a restricted form of the XML vocabulary defined at > http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd > in which elements are not allowed the use of xml:lang, and > you would like to do so without just copying all the schema > documents and modifying them. > > If you have access to an XSD 1.1 processor, your best bet > is probably to use xsd:override to change the declaration of > dc:SimpleLiteral. Otherwise, you will need to use xsd:redefine. > Both of these constructs are intended (sometimes among > other things) for the use case of local restrictions to a > public schema. > > Your redefinition of the dc: namespace can look like this: > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://purl.org/dc/elements/1.1/" > xmlns:dc="http://purl.org/dc/elements/1.1/" > elementFormDefault="qualified"> > > <xs:import namespace="http://www.w3.org/XML/1998/namespace"/> > > <xs:redefine schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd"> > <xs:complexType name="SimpleLiteral"> > > <xs:annotation> > <xs:documentation xml:lang="en"> > This is a restriction of the default type for all of the DC elements. > It permits text content only with no xml:lang attribute. (That is > its difference from the standard schema at > http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd > > Text is allowed because mixed="true", but sub-elements > are disallowed because minOccurs="0" and maxOccurs="0" > are on the xs:any tag. > > This complexType allows for restriction or extension permitting > child elements. > </xs:documentation> > </xs:annotation> > > <xs:complexContent mixed="true"> > <xs:restriction base="dc:SimpleLiteral"> > <xs:sequence/> > <xs:attribute ref="xml:lang" use="prohibited"/> > </xs:restriction> > </xs:complexContent> > </xs:complexType> > </xs:redefine> > </xs:schema> > > I hope this helps. > > Michael Sperberg-McQueen > > > -- > **************************************************************** > * C. M. Sperberg-McQueen, Black Mesa Technologies LLC > * http://www.blackmesatech.com > * http://cmsmcq.com/mib > * http://balisage.net > **************************************************************** > > > > -- Dave Pawson XSLT XSL-FO FAQ. Docbook FAQ. http://www.dpawson.co.uk
Received on Monday, 1 April 2013 07:52:48 UTC