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