[OAI-implementers] ListMetadataFormats problem

Mick Bass bass@MIT.EDU
Wed, 31 Jan 2001 11:48:19 -0500


--=====================_149350594==_.ALT
Content-Type: text/plain; charset="us-ascii"; format=flowed

Mick Bass here, from HP (employer) and MIT (partner & development site), 
leading DSpace joint development effort <http://www.dspace.org>.

I'm rather uninitiated in the ways of XML-Schema (but aren't we 
all...).  So take these comments only as potentially helpful...

import would seemingly allow validation of DC elements as a part of a 
schema in another namespace.

It sounds like in addition to this you want to extend DC to include new 
elements, though, so I'd also recommend a read of the tutorial section on 
"Derving complex types by extension":

<http://www.w3.org/TR/xmlschema-0/#DerivExt>:

>4.2 Deriving Types by Extension
>To create our address constructs, we start by creating a complex type 
>called Address in the usual way (see address.xsd). The Address type 
>contains the basic elements of an address: a name, a street and a city. 
>(Such a definition will not work for all countries, but it will serve the 
>purposes of our example.) From this starting point we derive two new 
>complex types that contain all the elements of the original type plus 
>additional elements that are specific to addresses in the US and the UK. 
>The technique we use here to derive new (complex) address types by 
>extending an existing type is the same technique we used in in Section 
>2.5.1, except that our base type here is a complex type whereas our base 
>type in the previous section was a simple type.
>We define the two new complex types, USAddress and UKAddress, using the 
>complexType element. In addition, we indicate that the content models of 
>the new types are complex, i.e. contain elements, by using the 
>complexContent element, and we indicate that we are extending the base 
>type Address by the value of the base attribute on the extension element.
>When a complex type is derived by extension, its effective content model 
>is the content model of the base type plus the content model specified in 
>the type derivation. Furthermore, the two content models are treated as 
>two children of a sequential group. In the case of UKAddress, the content 
>model of UKAddress is the content model of Address plus the declarations 
>for a postcode element and an exportCode attribute.

The dublincore schema at http://www.openarchives.org/OAI/dc.xsd defines:

<element name="dc" type="dc:dublincoreType"/>

  <complexType name="dublincoreType">
   <choice minOccurs="0" maxOccurs="unbounded">
    <element name="title" minOccurs="0" maxOccurs="unbounded" type="string"/>
    <element name="creator"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="subject"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="description"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="contributor"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="publisher"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="date"  minOccurs="0" maxOccurs="unbounded" type="string"/>
    <element name="type"  minOccurs="0" maxOccurs="unbounded" type="string"/>
    <element name="format"  minOccurs="0" maxOccurs="unbounded" type="string"/>
    <element name="identifier"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="source"  minOccurs="0" maxOccurs="unbounded" type="string"/>
    <element name="language"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="relation"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="coverage"  minOccurs="0" maxOccurs="unbounded" 
type="string"/>
    <element name="rights"  minOccurs="0" maxOccurs="unbounded" type="string"/>
   </choice>
  </complexType>

You may want something like:

<element name="edc" type="edc:extendedDublincoreType"/>

<complexType name="extendedDublincoreType">
   <complexContent>
     <extension base="dc:dublincoreType">
       <sequence>
         <element name="shoesize" minOccurs="0" maxOccurs="unbounded" 
type="string"/>
         <element name="numfeet" minOccurs="0" maxOccurs="unbounded" 
type="positiveInteger"/>
       </sequence>
     </extension>
   </complexContent>
</complexType>

I'm thinking this would be defined in your namespace (here, "edc"), but the 
dc namespace would need to be imported so that the validation processor 
would be aware of the definition of dublincoreType, so that your extension 
could be validated.

If this were to work, you ought to be able to declare instance metadata of 
type ExtendedDublinCoreType (in namespace "edc"), and have it be 
successfully validated in schemas expecting straight up DublinCore.  The 
details of actually getting this to work, I leave to you, but this seems to 
be their  intent from a read through the XML-Schema documentation :)

The impact on harvesters of instance metadata exported using types derived 
by extension is not yet clear to me...

- Mick

At 07:15 AM 1/31/01 -0500, you wrote:
>Jeff, I think you've got the wrong approach here.  Having spent the last
>hour or so staring at the xml schema primer at
>http://www.w3.org/TR/xmlschema-0 I found the explanation on importing
>types at http://www.w3.org/TR/xmlschema-0/#import. Using this mechanism
>you can pull in types (elements) from another namespace.  E.g., you
>could define a schema carlmeta.xsd with a target namespace
>http://foo.org/carlmeta with an import of
>http://purl.org/dc/elements/1.1. I quote the primer:
>
>When schema components are imported from multiple namespaces, each
>namespace must be identified with a separate import element. The import
>elements themselves must appear as the first children of the schema
>element. Furthermore, each namespace must be associated with a prefix,
>using a standard namespace declaration, and that prefix is used to
>qualify references to any schema components belonging to that namespace.
>Finally, import elements optionally contain a schemaLocation attribute
>to help locate resources associated with the namespaces.
>
>Don't have time now to experiment with this but coming up with an
>example shouldn't be too hard.
>
>Carl
>
> > -----Original Message-----
> > From: Young,Jeff [mailto:jyoung@oclc.org]
> > Sent: Tuesday, January 30, 2001 4:58 PM
> > To: 'lagoze@cs.cornell.edu'
> > Subject: FW: [OAI-implementers] ListMetadataFormats problem
> >
> >
> > Hi Carl,
> >
> > I don't think things are as simple as I'd hoped. I want to
> > check with you
> > first, though, before I stir up more confusion in the
> > listserv. Apparently,
> > the xsi:schemaLocation element expects namespaces to be
> > paired with schema
> > locations. If this is true, then a single schema won't work for the
> > application I described below. Is there any reason that
> > schemas can't be
> > repeatable as well as namespaces in relation to metadata formats?
> >
> > Jeff
> >
> > > -----Original Message-----
> > > From: Young,Jeff [mailto:jyoung@oclc.org]
> > > Sent: Tuesday, January 30, 2001 4:01 PM
> > > To: 'OAI-implementers'
> > > Subject: [OAI-implementers] ListMetadataFormats problem
> > >
> > >
> > > I'm working on an OAI repository for a group that wants to
> > > define it's own
> > > metadata format. The trick is, this format will be a
> > > combination of Dublin
> > > Core elements and some new elements yet to be defined. The
> > > examples in the
> > > OAI specs, however, all assume that the metadata will consist
> > > of elements
> > > from a single namespace. I believe, for the most part, that
> > > the OAI spec
> > > doesn't preclude the use of multiple namespaces. For example,
> > > I imagine that
> > > the following XML fragment is likely to be acceptable:
> > >
> > > <combined xmlns:dc="http://purl.org/dc/elements/1.1/"
> > >     xmlns:myelems="http://www.myelems.com/"
> > >     xmlns:xsi="..."
> > >     xsi:schemaLocation="http://purl.org/dc/elements/1.1/
> > >             http://www.myelems.com/
> > >             http://www.myelems.com/combined.xsd">
> > >   <dc:title>This is the title</dc:title>
> > >   <myelems:shoesize>12</myelems:shoesize>
> > > </combined>
> > >
> > > (As far as I can tell, specifying multiple namespaces in the
> > > xsi:schemaLocation attribute is perfectly valid.)
> > >
> > > Assuming no one sees any problems with this, I do think I see
> > > a problem with
> > > ListMetadataFormats.xsd. Now that multiple namespaces are
> > > involved, I expect
> > > that ListMetadataFormats will need to accommodate them with multiple
> > > metadataNamespace elements. The XML schema for
> > > ListMetadataFormats, however,
> > > sets the maxOccurs for metadataNamespace to one. I suspect
> > > this is easily
> > > changed to unbounded.
> > >
> > > Hopefully, the problem is no more involved than this, but
> > > someone may want
> > > to check my assumptions.
> > >
> > > Thanks,
> > > Jeff
> > >
> > > ---
> > > Jeffrey A. Young
> > > Senior Consulting Systems Analyst
> > > Office of Research, Mail Code 710
> > > OCLC Online Computer Library Center, Inc.
> > > 6565 Frantz Road
> > > Dublin, OH   43017-3395
> > > www.oclc.org
> > >
> > > Voice:      614-764-4342
> > > Fax:                614-764-2344
> > > Email:      jyoung@oclc.org
> > >
> > >
> > >
> > > _______________________________________________
> > > OAI-implementers mailing list
> > > OAI-implementers@oaisrv.nsdl.cornell.edu
> > > http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers
> > >
> >
>_______________________________________________
>OAI-implementers mailing list
>OAI-implementers@oaisrv.nsdl.cornell.edu
>http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers

=========================
Mick Bass,   Sloan MOT 2000
R&D Project Manager
Hewlett-Packard Company
Cambridge, MA

617.253.6617 office
617.899.3938 mobile
617.452.3000 fax
617.627.9694 residence

bass@alum.mit.edu
mick_bass@hp.com
=========================

--=====================_149350594==_.ALT
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
Mick Bass here, from HP (employer) and MIT (partner &amp; development
site), leading DSpace joint development effort
&lt;<a href=3D"http://www.dspace.org/"=
 eudora=3D"autourl">http://www.dspace.</a><a href=3D"http://www.dspace.org/"=
 eudora=3D"autourl">org</a>&gt;.<br>
<br>
I'm rather uninitiated in the ways of XML-Schema (but aren't we
all...).&nbsp; So take these comments only as potentially=20
helpful...<br>
<br>
import would seemingly allow validation of DC elements as a part of a
schema in another namespace. <br>
<br>
It sounds like in addition to this you want to extend DC to include new
elements, though, so I'd also recommend a read of the tutorial section on
&quot;Derving complex types by extension&quot;:<br>
<br>
&lt;<a href=3D"http://www.w3.org/TR/xmlschema-0/#DerivExt"=
 eudora=3D"autourl">http://www.w3.org/TR/xmlschema-0/#DerivExt</a>&gt;:<br>
<br>
<blockquote type=3Dcite cite><font size=3D5><b>4.2 Deriving Types by
Extension <br>
</b></font>To create our address constructs, we start by creating a
complex type called
<font face=3D"Courier New, Courier" size=3D4>Address</font><font=
 face=3D"Courier New, Courier">
in the usual way (see </font><font face=3D"Courier New, Courier" size=3D4=
 color=3D"#0000FF"><u>address.xsd</u></font><font face=3D"Courier New,=
 Courier">). The </font><font face=3D"Courier New, Courier"=
 size=3D4>Address</font><font face=3D"Courier New, Courier"> type contains=
 the basic elements of an address: a name, a street and a city. (Such a=
 definition will not work for all countries, but it will serve the purposes=
 of our example.) From this starting point we derive two new complex types=
 that contain all the elements of the original type plus additional elements=
 that are specific to addresses in the US and the UK. The technique we use=
 here to derive new (complex) address types by extending an existing type is=
 the same technique we used in in </font><font color=3D"#0000FF"><u>Section=
 2.5.1</u></font><font face=3D"Courier New, Courier">, except that our base=
 type here is a complex type whereas our base type in the previous section=
 was a simple type. <br>
</font>We define the two new complex types, <font face=3D"Courier New,=
 Courier" size=3D4>USAddress</font><font face=3D"Courier New, Courier"> and=
 </font><font face=3D"Courier New, Courier" size=3D4>UKAddress</font><font=
 face=3D"Courier New, Courier">, using the </font><font face=3D"Courier New,=
 Courier" size=3D4 color=3D"#0000FF"><u>complexType</u></font><font=
 face=3D"Courier New, Courier"> element. In addition, we indicate that the=
 content models of the new types are complex, i.e. contain elements, by=
 using the </font><font face=3D"Courier New, Courier" size=3D4=
 color=3D"#0000FF"><u>complexContent</u></font><font face=3D"Courier New,=
 Courier"> element, and we indicate that we are extending the base type=
 </font><font face=3D"Courier New, Courier" size=3D4>Address</font><font=
 face=3D"Courier New, Courier"> by the value of the </font><font=
 face=3D"Courier New, Courier" size=3D4=
 color=3D"#0000FF"><u>base</u></font><font face=3D"Courier New, Courier">=
 attribute on the </font><font face=3D"Courier New, Courier" size=3D4=
 color=3D"#0000FF"><u>extension</u></font><font face=3D"Courier New,=
 Courier"> element. <br>
</font>When a complex type is derived by extension, its effective content=
 model is the content model of the base type plus the content model=
 specified in the type derivation. Furthermore, the two content models are=
 treated as two children of a sequential group. In the case of <font=
 face=3D"Courier New, Courier" size=3D4>UKAddress</font><font face=3D"Courie=
r New, Courier">, the content model of </font><font face=3D"Courier New,=
 Courier" size=3D4>UKAddress</font><font face=3D"Courier New, Courier"> is=
 the content model of </font><font face=3D"Courier New, Courier"=
 size=3D4>Address</font><font face=3D"Courier New, Courier"> plus the=
 declarations for a </font><font face=3D"Courier New, Courier"=
 size=3D4>postcode</font><font face=3D"Courier New, Courier"> element and an=
 </font><font face=3D"Courier New, Courier" size=3D4>exportCode</font><font=
 face=3D"Courier New, Courier"> attribute. </font></blockquote><br>
The dublincore schema at <a href=3D"http://www.openarchives.org/OAI/dc.xsd"=
 eudora=3D"autourl">http://www.openarchives.org/OAI/dc.xsd</a> defines:<br>
<br>
<font face=3D"Fixedsys" size=3D1>&lt;element name=3D&quot;dc&quot;=
 type=3D&quot;dc:dublincoreType&quot;/&gt;<br>
<br>
&nbsp;&lt;complexType name=3D&quot;dublincoreType&quot;&gt;<br>
&nbsp; &lt;choice minOccurs=3D&quot;0&quot;=
 maxOccurs=3D&quot;unbounded&quot;&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;title&quot; minOccurs=3D&quot;0&quot;=
 maxOccurs=3D&quot;unbounded&quot; type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;creator&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;subject&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;description&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;contributor&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;publisher&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;date&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;type&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;format&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;identifier&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;source&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;language&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;relation&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;coverage&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp;&nbsp; &lt;element name=3D&quot;rights&quot;&nbsp;=
 minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/&gt;<br>
&nbsp; &lt;/choice&gt;<br>
&nbsp;&lt;/complexType&gt;<br>
<br>
</font>You may want something like:<br>
<br>
<font face=3D"Fixedsys" size=3D1>&lt;element name=3D&quot;edc&quot;=
 type=3D&quot;edc:extendedDublincoreType&quot;/&gt;<br>
<br>
</font><font face=3D"Fixedsys">&lt;complexType=
 name=3D&quot;extendedDublincoreType&quot;&gt; <br>
&nbsp; &lt;complexContent&gt; <br>
&nbsp;&nbsp;&nbsp; &lt;extension base=3D&quot;dc:dublincoreType&quot;&gt;=
 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;sequence&gt; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;element=
 name=3D&quot;shoesize&quot; </font><font face=3D"Fixedsys"=
 size=3D1>minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 type=3D&quot;string&quot;/</font><font face=3D"Fixedsys">&gt; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;element=
 name=3D&quot;numfeet&quot; </font><font face=3D"Fixedsys"=
 size=3D1>minOccurs=3D&quot;0&quot; maxOccurs=3D&quot;unbounded&quot;=
 </font><font face=3D"Fixedsys">type=3D&quot;positiveInteger&quot;/&gt; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/sequence&gt; <br>
&nbsp;&nbsp;&nbsp; &lt;/extension&gt; <br>
&nbsp; &lt;/complexContent&gt; <br>
&lt;/complexType&gt; <br>
<br>
</font>I'm thinking this would be defined in your namespace (here,=
 &quot;edc&quot;), but the dc namespace would need to be imported so that=
 the validation processor would be aware of the definition of=
 dublincoreType, so that your extension could be validated.<br>
<br>
If this were to work, you ought to be able to declare instance metadata of=
 type ExtendedDublinCoreType (in namespace &quot;edc&quot;), and have it be=
 successfully validated in schemas expecting straight up DublinCore.&nbsp;=
 The details of actually getting this to work, I leave to you, but this=
 seems to be their&nbsp; intent from a read through the XML-Schema=
 documentation :)<br>
<br>
The impact on harvesters of instance metadata exported using types derived=
 by extension is not yet clear to me...<br>
<br>
- Mick<br>
<br>
At 07:15 AM 1/31/01 -0500, you wrote:<br>
<blockquote type=3Dcite cite>Jeff, I think you've got the wrong approach=
 here.&nbsp; Having spent the last<br>
hour or so staring at the xml schema primer at<br>
<a href=3D"http://www.w3.org/TR/xmlschema-0"=
 eudora=3D"autourl">http://www.w3.org/TR/xmlschema-0</a> I found the=
 explanation on importing<br>
types at <a href=3D"http://www.w3.org/TR/xmlschema-0/#import"=
 eudora=3D"autourl">http://www.w3.org/TR/xmlschema-0/#import</a>. Using this=
 mechanism<br>
you can pull in types (elements) from another namespace.&nbsp; E.g., you<br>
could define a schema carlmeta.xsd with a target namespace<br>
<a href=3D"http://foo.org/carlmeta"=
 eudora=3D"autourl">http://foo.org/carlmeta</a> with an import of<br>
<a href=3D"http://purl.org/dc/elements/1.1"=
 eudora=3D"autourl">http://purl.org/dc/elements/1.1</a>. I quote the=
 primer:<br>
<br>
When schema components are imported from multiple namespaces, each<br>
namespace must be identified with a separate import element. The import<br>
elements themselves must appear as the first children of the schema<br>
element. Furthermore, each namespace must be associated with a prefix,<br>
using a standard namespace declaration, and that prefix is used to<br>
qualify references to any schema components belonging to that namespace.<br>
Finally, import elements optionally contain a schemaLocation attribute<br>
to help locate resources associated with the namespaces. <br>
<br>
Don't have time now to experiment with this but coming up with an<br>
example shouldn't be too hard.<br>
<br>
Carl<br>
<br>
&gt; -----Original Message-----<br>
&gt; From: Young,Jeff [<a href=3D"mailto:jyoung@oclc.org"=
 eudora=3D"autourl">mailto:jyoung@oclc.org</a>]<br>
&gt; Sent: Tuesday, January 30, 2001 4:58 PM<br>
&gt; To: 'lagoze@cs.cornell.edu'<br>
&gt; Subject: FW: [OAI-implementers] ListMetadataFormats problem<br>
&gt; <br>
&gt; <br>
&gt; Hi Carl,<br>
&gt; <br>
&gt; I don't think things are as simple as I'd hoped. I want to <br>
&gt; check with you<br>
&gt; first, though, before I stir up more confusion in the <br>
&gt; listserv. Apparently,<br>
&gt; the xsi:schemaLocation element expects namespaces to be <br>
&gt; paired with schema<br>
&gt; locations. If this is true, then a single schema won't work for the<br>
&gt; application I described below. Is there any reason that <br>
&gt; schemas can't be<br>
&gt; repeatable as well as namespaces in relation to metadata formats?<br>
&gt; <br>
&gt; Jeff<br>
&gt; <br>
&gt; &gt; -----Original Message-----<br>
&gt; &gt; From: Young,Jeff [<a href=3D"mailto:jyoung@oclc.org"=
 eudora=3D"autourl">mailto:jyoung@oclc.org</a>] <br>
&gt; &gt; Sent: Tuesday, January 30, 2001 4:01 PM<br>
&gt; &gt; To: 'OAI-implementers'<br>
&gt; &gt; Subject: [OAI-implementers] ListMetadataFormats problem<br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; I'm working on an OAI repository for a group that wants to <br>
&gt; &gt; define it's own<br>
&gt; &gt; metadata format. The trick is, this format will be a <br>
&gt; &gt; combination of Dublin<br>
&gt; &gt; Core elements and some new elements yet to be defined. The <br>
&gt; &gt; examples in the<br>
&gt; &gt; OAI specs, however, all assume that the metadata will consist <br>
&gt; &gt; of elements<br>
&gt; &gt; from a single namespace. I believe, for the most part, that <br>
&gt; &gt; the OAI spec<br>
&gt; &gt; doesn't preclude the use of multiple namespaces. For example, <br>
&gt; &gt; I imagine that<br>
&gt; &gt; the following XML fragment is likely to be acceptable:<br>
&gt; &gt; <br>
&gt; &gt; &lt;combined=
 xmlns:dc=3D&quot;http://purl.org/dc/elements/1.1/&quot;<br>
&gt; &gt; <x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>xmlns:myelems=3D&quot;<a=
 href=3D"http://www.myelems.com/"=
 eudora=3D"autourl">http://www.myelems.com/</a>&quot;<br>
&gt; &gt;=
 <x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>xmlns:xsi=3D&quot;...&quot;<br>
&gt; &gt; <x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>xsi:schemaLocation=3D&quot;=
<a=
 href=3D"http://purl.org/dc/elements/1.1/%3E%20%3E%20http://www.myelems.com/=
%3E%20%3E%20http://www.myelems.com/combined.xsd"=
 eudora=3D"autourl">http://purl.org/dc/elements/1.1/<br>
&gt; &gt;=
 <x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;</x-tab>http://www.myelems.com/<br>
&gt; &gt;=
 <x-tab>&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;</x-tab>http://www.myelems.com/combined.xsd</a>&quot;&gt;=
<br>
&gt; &gt;&nbsp;&nbsp; &lt;dc:title&gt;This is the title&lt;/dc:title&gt;<br>
&gt; &gt;&nbsp;&nbsp;=
 &lt;myelems:shoesize&gt;12&lt;/myelems:shoesize&gt;<br>
&gt; &gt; &lt;/combined&gt;<br>
&gt; &gt; <br>
&gt; &gt; (As far as I can tell, specifying multiple namespaces in the<br>
&gt; &gt; xsi:schemaLocation attribute is perfectly valid.)<br>
&gt; &gt; <br>
&gt; &gt; Assuming no one sees any problems with this, I do think I see <br>
&gt; &gt; a problem with<br>
&gt; &gt; ListMetadataFormats.xsd. Now that multiple namespaces are <br>
&gt; &gt; involved, I expect<br>
&gt; &gt; that ListMetadataFormats will need to accommodate them with=
 multiple<br>
&gt; &gt; metadataNamespace elements. The XML schema for <br>
&gt; &gt; ListMetadataFormats, however,<br>
&gt; &gt; sets the maxOccurs for metadataNamespace to one. I suspect <br>
&gt; &gt; this is easily<br>
&gt; &gt; changed to unbounded.<br>
&gt; &gt; <br>
&gt; &gt; Hopefully, the problem is no more involved than this, but <br>
&gt; &gt; someone may want<br>
&gt; &gt; to check my assumptions.<br>
&gt; &gt; <br>
&gt; &gt; Thanks,<br>
&gt; &gt; Jeff<br>
&gt; &gt; <br>
&gt; &gt; ---<br>
&gt; &gt; Jeffrey A. Young<br>
&gt; &gt; Senior Consulting Systems Analyst<br>
&gt; &gt; Office of Research, Mail Code 710<br>
&gt; &gt; OCLC Online Computer Library Center, Inc.<br>
&gt; &gt; 6565 Frantz Road<br>
&gt; &gt; Dublin, OH&nbsp;&nbsp; 43017-3395<br>
&gt; &gt; <a href=3D"http://www.oclc.org/"=
 eudora=3D"autourl">www.oclc.org</a><br>
&gt; &gt; <br>
&gt; &gt;=
 Voice:<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>614-764-4342<br>
&gt; &gt;=
 Fax:<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><x-tab>&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>614-764-2344<br>
&gt; &gt;=
 Email:<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>jyoung@oclc.org<br=
>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; <br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; OAI-implementers mailing list<br>
&gt; &gt; OAI-implementers@oaisrv.nsdl.cornell.edu<br>
&gt; &gt; <a=
 href=3D"http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers"=
 eudora=3D"autourl">http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-impl=
ementers</a><br>
&gt; &gt; <br>
&gt; <br>
_______________________________________________<br>
OAI-implementers mailing list<br>
OAI-implementers@oaisrv.nsdl.cornell.edu<br>
<a href=3D"http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers"=
 eudora=3D"autourl">http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-impl=
ementers</a> </blockquote><br>
<div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D</div>
<div>Mick Bass,&nbsp;&nbsp; Sloan MOT 2000</div>
<div>R&amp;D Project Manager</div>
<div>Hewlett-Packard Company</div>
<div>Cambridge, MA</div>
<br>
<div>617.253.6617 office</div>
<div>617.899.3938 mobile</div>
<div>617.452.3000 fax</div>
<div>617.627.9694 residence</div>
<br>
<div>bass@alum.mit.edu</div>
<div>mick_bass@hp.com</div>
<div>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D</div>
</html>

--=====================_149350594==_.ALT--