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] |
> > +-----------------------------+-------------------------------------+
|