[OAI-implementers] OAI validation problem
Young,Jeff
jyoung@oclc.org
Thu, 22 May 2003 11:52:37 -0400
Here's another example of where I'm having trouble processing OAI responses
with XSLT. Below is a deleted record:
<record>
<header status="deleted">
<identifier>oai:arXiv.org:hep-th/9901007</identifier>
<datestamp>1999-12-21</datestamp>
</header>
</record>
This response indicates the deletion of a record in a particular
metadataFormat, not the deletion of the item. The problem is that there is
nothing in the response to indicate which metadataFormat is being deleted
except by looking at /OAI-PMH/request/@metadataPrefix. Unfortunately, this
isn't deterministic because different repositories may use different labels
to refer to the same schemaLocation, so again I'm forced to look up the
metadataPrefix using a separate ListMetadataFormats response. It would be
nice if the xsi:schemaLocation was immediately present.
Perhaps something like this would be ideal.
<record>
<header status="deleted">
<identifier>oai:arXiv.org:hep-th/9901007</identifier>
<datestamp>1999-12-21</datestamp>
</header>
<metadata xsi:schemaLocation="..." />
</record>
It's a shame, but it's probably too late to fix this problem.
Jeff
> -----Original Message-----
> From: Young,Jeff [mailto:jyoung@oclc.org]
> Sent: Thursday, May 22, 2003 9:16 AM
> To: 'Hussein Suleman'; OAI-implementers (E-mail)
> Subject: RE: [OAI-implementers] OAI validation problem
>
>
> I've always made a point of being willfully ignorant about
> XML Schemas, but
> it's time I gave it a try. The trick seems to be to define an
> abstract type
> to use in place of <any namespace="##other".../> This
> abstract type would
> then require the xsi:schemaLocation.
>
> So, in place of this:
>
> <complexType name="metadataType">
> <sequence>
> <any namespace="##other" processContents="strict"/>
> </sequence>
> </complexType>
>
> do something like:
>
> <xsd:complexType name="abstractContent" abstract="true">
> <xsd:sequence min-Occurs="1" maxOccurs="1">
> <any namespace="##other" processContents="strict" />
> </xsd:sequence>
> </xsd:complexType>
>
> <complexType name="metadataType">
> <xsd:complexContent>
> <xsd:extension base="abstractContent">
> <xsd:attribute name="xsi:schemaLocation"
> type="xsd:string" use="required" />
> </xsd:extension>
> </xsd:complexContent>
> </complexType>
>
>
> If that isn't right, then maybe it's something like this:
>
> <xsd:element name="Content" abstract="true" type="abstractContent" />
>
> <xsd:complexType name="abstractContent">
> <sequence>
> <any namespace="##other" processContents="strict" />
> </sequence>
> <xsd:attribute name="xsi:schemaLocation" type="xsd:string"
> use="required" />
> </xsd:complexType>
>
> <complexType name="metadataType">
> <xsd:sequence>
> <xsd:element ref="Content" minOccurs="1" maxOccurs="1" />
> </xsd:sequence>
> </complexType>
>
> No promises, though..
>
> Jeff
>
>
> > -----Original Message-----
> > From: Hussein Suleman [mailto:hussein@cs.uct.ac.za]
> > Sent: Wednesday, May 21, 2003 5:55 PM
> > To: OAI-implementers (E-mail)
> > Subject: Re: [OAI-implementers] OAI validation problem
> >
> >
> > hi Jeff
> >
> > some random thoughts ...
> > - could the schema be modified to reflect a required
> > xsi:schemaLocation
> > attribute? that might be the easiest fix.
> > - alternatively, does DOM3 propagate schema information like DOM2
> > propagates namespaces? if so, then there might be a method to
> > directly
> > retrieve the schema for a given node/element.
> >
> > ttfn,
> > ----hussein
> >
> >
> > Young,Jeff wrote:
> > > I think I found a hole in the OAI validation mechanisms. I
> > believe the
> > > contents of the <metadata> element should be required to have an
> > > xsi:schemaLocation attribute to make it easier to identify
> > the schema for
> > > the data. Without it, harvesters are forced to use the
> > > /oai2:OAI-PMH/oai2:request/@metadataPrefix value and look
> > it up in the
> > > ListMetadataFormats response, which is more trouble than having it
> > > immediately available as an attribute.
> > >
> > > The examples in the OAI protocol document do show it as an
> > attribute, but
> > > apparently the Repository Explorer and the Registration
> > validation available
> > > on the OAI site don't check for it.
> > >
> > > Jeff
> > >
> > > ---
> > > Jeffrey A. Young
> > > Consulting Software Engineer
> > > 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
> > > Voice: 800-848-5878, ext. 4342
> > > Fax: 614-718-7477
> > > Email: jyoung@oclc.org
> > >
> > >
> > > _______________________________________________
> > > OAI-implementers mailing list
> > > List information, archives, preferences and to unsubscribe:
> > > http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers
> > >
> >
> >
> > --
> >
> =====================================================================
> > hussein suleman ~ hussein@cs.uct.ac.za ~
http://www.husseinsspace.com
> =====================================================================
>
>
> _______________________________________________
> OAI-implementers mailing list
> List information, archives, preferences and to unsubscribe:
> http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers
>
_______________________________________________
OAI-implementers mailing list
List information, archives, preferences and to unsubscribe:
http://oaisrv.nsdl.cornell.edu/mailman/listinfo/oai-implementers