Hi Thomas, This is even better than my example because you allow any attributes as well. Personally I think the namespace attributes should be ##any. I can imagine situations where metadata schema designers (rightly or wrongly) would want to nest DC terms. Although this may raise problems associated with interoperability and ambiguous semantic interpretation, I think its better to allow maximum flexibility but to state recommended best practise. jane > Hi Jane, > > We have been doing some work with the DC XML Schema developed for the OAI > protocol (http://www.openarchives.org/OAI/1.1/dc.xsd). We have made some > modifications to this schema to allow for more flexibility, similar to what > you have described below. Our schema is essentially: > > <element name="title" type="dc:propertyEltType"/> > > <complexType name="propertyEltType" mixed="true"> > <sequence minOccurs="0" maxOccurs="unbounded"> > <any namespace="##other" processContents="lax"/> > </sequence> > <anyAttribute namespace="##other" processContents="lax"/> > </complexType> > > The complete schema can be found at: > > http://dli.grainger.uiuc.edu/publications/oai_schema/oai_dc_new.xsd > > One thing we haven't entirely settled on is whether the namespace attribute > of the <any> and <anyAttribute> tags should be ##any or ##other. > Essentially, should we allow DC tags to be nested inside of other DC tags? > > The usual caveats about works in progress apply. > > Tom > > -- > Thomas G. Habing > Research Programmer, Digital Library Projects > University of Illinois at Urbana-Champaign > 155 Grainger Engineering Library Information Center, MC-274 > [log in to unmask], (217) 244-4425 > http://dli.grainger.uiuc.edu > > Jane Hunter wrote: > > > > I'm in the process of developing a metadata schema (aka application > > profile) for an organisation which wants to use, but further restrict, > > some of the DC elements. > > > > The XML Schema in the document 'An XML Encoding of Simple Dublin Core > > Metadata" (http://www.dublincore.org/documents/2001/09/20/dcmes-xml/) > > declares the DC elements using anonymous types: > > > > For example: > > > > <element name='dc:title'> > > <complexType mixed='true'> > > <attribute name='xml:lang' type='string' use='optional'/> > > </complexType> > > </element> > > > > This approach allows implementors to reference DC elements but not to > > redefine or restrict them. Within XML Schema, it is only possible to > > refine or restrict 'types' not elements. So there is no way to create > > new application-specific elements based on DC elements without the > > explicit definition of DCMES 'types'. What is required is something > > like the following: > > > > <complexType name="dc:title" mixed="true"> > > <sequence> > > <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> > > </sequence> > > <attribute ref='xml:lang'/> > > </complexType> > > > > <element name="dc:title" type="dc:title"/> > > > > Then implementors can do things like redefining "title" in their own > > namespace: > > > > <complexType name="title"> > > <complexContent> > > <restriction base="dc:title"> > > <sequence> > > <element name="mainTitle" type="string"/> > > <element name="secondaryTitle" type="string"/> > > </sequence> > > <attribute ref='xml:lang'/> > > <restriction> > > <complexContent> > > <complexType> > > > > Would it be possible to modify the XML Schema at: > > http://dublincore.org/documents/2001/09/20/dcmes-xml/dcmes-xml-xsd.xsd > > > > so that named types corresponding to the DCMES are explicitly defined? > > > > regards, > > jane > > +-----------------------------+-------------------------------------+ > > | Jane Hunter | Senior Research Scientist | > > | DSTC Pty Ltd | Distributed Systems Technology CRC | > > | Level 7, GP South | Tel : +61 7 3365 4310 | > > | University of Queensland | Fax : +61 7 3365 4311 | > > | Queensland 4072, Australia | Email : [log in to unmask] | > > +-----------------------------+-------------------------------------+