|
| 1 | +<?xml version="1.0" encoding="UTF-8" ?> |
| 2 | +<!-- http://www.openarchives.org/OAI/2.0/oai_dc.xsd --> |
| 3 | +<xsl:stylesheet |
| 4 | + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
| 5 | + xmlns:doc="http://www.lyncode.com/xoai" |
| 6 | + version="1.0"> |
| 7 | + <xsl:output omit-xml-declaration="yes" method="xml" indent="yes" /> |
| 8 | + |
| 9 | + <xsl:template match="/"> |
| 10 | + <d:DIDL xmlns:d="urn:mpeg:mpeg21:2002:02-DIDL-NS" |
| 11 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 12 | + xsi:schemaLocation="urn:mpeg:mpeg21:2002:02-DIDL-NS http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files/did/didl.xsd"> |
| 13 | + <xsl:if test="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='available']/doc:element/doc:field[@name='value']"> |
| 14 | + <d:DIDLInfo> |
| 15 | + <dcterms:created xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://purl.org/dc/terms/ http://dublincore.org/schemas/xmls/qdc/dcterms.xsd"> |
| 16 | + <xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='available']/doc:element/doc:field/text()" /> |
| 17 | + </dcterms:created> |
| 18 | + </d:DIDLInfo> |
| 19 | + </xsl:if> |
| 20 | + <d:Item> |
| 21 | + <xsl:attribute name="id"> |
| 22 | + <xsl:value-of select="concat('hdl_', translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(),'/','_'))" /> |
| 23 | + </xsl:attribute> |
| 24 | + <d:Descriptor> |
| 25 | + <d:Statement mimeType="application/xml; charset=utf-8"> |
| 26 | + <dii:Identifier xmlns:dii="urn:mpeg:mpeg21:2002:01-DII-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg21:2002:01-DII-NS http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-21_schema_files/dii/dii.xsd">urn:hdl:<xsl:value-of select="doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text()" /></dii:Identifier> |
| 27 | + </d:Statement> |
| 28 | + </d:Descriptor> |
| 29 | + <d:Descriptor> |
| 30 | + <d:Statement mimeType="application/xml; charset=utf-8"> |
| 31 | + <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> |
| 32 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='title']/doc:element/doc:field[@name='value']"> |
| 33 | + <dc:title><xsl:value-of select="." /></dc:title> |
| 34 | + </xsl:for-each> |
| 35 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='contributor']/doc:element[@name='author']/doc:element/doc:field[@name='value']"> |
| 36 | + <dc:creator><xsl:value-of select="." /></dc:creator> |
| 37 | + </xsl:for-each> |
| 38 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='contributor']/doc:element[@name!='author']/doc:element/doc:field[@name='value']"> |
| 39 | + <dc:contributor><xsl:value-of select="." /></dc:contributor> |
| 40 | + </xsl:for-each> |
| 41 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='subject']/doc:element/doc:field[@name='value']"> |
| 42 | + <dc:subject><xsl:value-of select="." /></dc:subject> |
| 43 | + </xsl:for-each> |
| 44 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='description']/doc:element/doc:field[@name='value']"> |
| 45 | + <dc:description><xsl:value-of select="." /></dc:description> |
| 46 | + </xsl:for-each> |
| 47 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='description']/doc:element[@name='abstract']/doc:element/doc:field[@name='value']"> |
| 48 | + <dc:description><xsl:value-of select="." /></dc:description> |
| 49 | + </xsl:for-each> |
| 50 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element/doc:element/doc:field[@name='value']"> |
| 51 | + <dc:date><xsl:value-of select="." /></dc:date> |
| 52 | + </xsl:for-each> |
| 53 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='type']/doc:element/doc:field[@name='value']"> |
| 54 | + <dc:type><xsl:value-of select="." /></dc:type> |
| 55 | + </xsl:for-each> |
| 56 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='identifier']/doc:element/doc:element/doc:field[@name='value']"> |
| 57 | + <dc:identifier><xsl:value-of select="." /></dc:identifier> |
| 58 | + </xsl:for-each> |
| 59 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='language']/doc:element/doc:element/doc:field[@name='value']"> |
| 60 | + <dc:language><xsl:value-of select="." /></dc:language> |
| 61 | + </xsl:for-each> |
| 62 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='relation']/doc:element/doc:element/doc:field[@name='value']"> |
| 63 | + <dc:relation><xsl:value-of select="." /></dc:relation> |
| 64 | + </xsl:for-each> |
| 65 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='relation']/doc:element/doc:field[@name='value']"> |
| 66 | + <dc:relation><xsl:value-of select="." /></dc:relation> |
| 67 | + </xsl:for-each> |
| 68 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='rights']/doc:element/doc:element/doc:field[@name='value']"> |
| 69 | + <dc:rights><xsl:value-of select="." /></dc:rights> |
| 70 | + </xsl:for-each> |
| 71 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='rights']/doc:element/doc:field[@name='value']"> |
| 72 | + <dc:rights><xsl:value-of select="." /></dc:rights> |
| 73 | + </xsl:for-each> |
| 74 | + <xsl:for-each select="doc:metadata/doc:element[@name='bitstreams']/doc:element[@name='bitstream']/doc:field[@name='format']"> |
| 75 | + <dc:format><xsl:value-of select="." /></dc:format> |
| 76 | + </xsl:for-each> |
| 77 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='coverage']/doc:element/doc:field[@name='value']"> |
| 78 | + <dc:coverage><xsl:value-of select="." /></dc:coverage> |
| 79 | + </xsl:for-each> |
| 80 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='coverage']/doc:element/doc:element/doc:field[@name='value']"> |
| 81 | + <dc:coverage><xsl:value-of select="." /></dc:coverage> |
| 82 | + </xsl:for-each> |
| 83 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='publisher']/doc:element/doc:field[@name='value']"> |
| 84 | + <dc:publisher><xsl:value-of select="." /></dc:publisher> |
| 85 | + </xsl:for-each> |
| 86 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='publisher']/doc:element/doc:element/doc:field[@name='value']"> |
| 87 | + <dc:publisher><xsl:value-of select="." /></dc:publisher> |
| 88 | + </xsl:for-each> |
| 89 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='source']/doc:element/doc:field[@name='value']"> |
| 90 | + <dc:source><xsl:value-of select="." /></dc:source> |
| 91 | + </xsl:for-each> |
| 92 | + <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='source']/doc:element/doc:element/doc:field[@name='value']"> |
| 93 | + <dc:source><xsl:value-of select="." /></dc:source> |
| 94 | + </xsl:for-each> |
| 95 | + </oai_dc:dc> |
| 96 | + </d:Statement> |
| 97 | + </d:Descriptor> |
| 98 | + <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element[@name='bundle']"> |
| 99 | + <xsl:if test="doc:field[@name='name']/text() = 'ORIGINAL'"> |
| 100 | + <xsl:for-each select="doc:element[@name='bitstreams']/doc:element"> |
| 101 | + <d:Component> |
| 102 | + <xsl:attribute name="id"> |
| 103 | + <xsl:value-of select="translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(),'/','_')"></xsl:value-of>_<xsl:value-of select="doc:field[@name='sid']/text()"></xsl:value-of> |
| 104 | + </xsl:attribute> |
| 105 | + <d:Resource> |
| 106 | + <xsl:attribute name="ref"> |
| 107 | + <xsl:value-of select="doc:field[@name='url']/text()"></xsl:value-of> |
| 108 | + </xsl:attribute> |
| 109 | + <xsl:attribute name="mimeType"> |
| 110 | + <xsl:value-of select="doc:field[@name='format']/text()"></xsl:value-of> |
| 111 | + </xsl:attribute> |
| 112 | + </d:Resource> |
| 113 | + </d:Component> |
| 114 | + </xsl:for-each> |
| 115 | + </xsl:if> |
| 116 | + </xsl:for-each> |
| 117 | + </d:Item> |
| 118 | + </d:DIDL> |
| 119 | + </xsl:template> |
| 120 | +</xsl:stylesheet> |
0 commit comments