edeposit.amqp.aleph_link_export
stable
  • link_export submodule
  • request_database submodule
  • shelvedb submodule
  • settings submodule
  • Request structures
  • Response structures
edeposit.amqp.aleph_link_export
  • Docs »
  • Aleph link export poznámky
  • Edit on GitHub

Aleph link export poznámky¶

Žádost k exportu¶

Z hlediska Alephu funguje vše tak, že se přes SCP připojí na edeposit-aplikace, kde si vyzvedne soubor edep2aleph.xml. Ten je vytvořený podle následujícího XSD:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://edeposit-aplikace.nkp.cz/link_export_notification" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://edeposit-aplikace.nkp.cz/link_export_notification">

  <complexType name="Record">
    <sequence>
      <element name="uuid" type="string" minOccurs="1" maxOccurs="1" />
      <element name="doc_number" type="string" minOccurs="1" maxOccurs="1" />
      <element name="document_url" minOccurs="1" maxOccurs="unbounded">
        <complexType>
          <simpleContent>
            <extension base="anyURI">
              <attribute type="string" name="format" use="optional"/>
            </extension>
          </simpleContent>
        </complexType>
      </element>
      <element name="urn_nbn" type="string" minOccurs="0" maxOccurs="1" />
      <element name="kramerius_url" type="anyURI" minOccurs="0" maxOccurs="1" />
    </sequence>
    <attribute type="string" name="session_id" />
  </complexType>

  <complexType name="RecordsType">
    <sequence>
      <element name="record" type="tns:Record" minOccurs="0" maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <element name="records">
    <complexType>
      <complexContent>
        <extension base="tns:RecordsType" />
      </complexContent>
    </complexType>
  </element>
</schema>

Ukázka¶

<?xml version="1.0" encoding="UTF-8"?>
<records xsi:schemaLocation="http://edeposit-aplikace.nkp.cz/link_export_notification.xsd" xmlns="http://edeposit-aplikace.nkp.cz/link_export_notification" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <record session_id="asd133">
        <uuid>a0f177b4-d083-4175-8f5b-c2748367a4f6</uuid>
        <doc_number>000054231</doc_number>
        <document_url format="mobi">http://edeposit-storage/UUID/a0f177b4-d083-4175-8f5b-c2748367a4f6</document_url>
    </record>
    <record session_id="asd2222">
        <uuid>dd831a9d-a0d8-4537-b518-52b85e5c03a3</uuid>
        <doc_number>000014375</doc_number>
        <document_url format="epub">http://edeposit-storage/UUID/dd831a9d-a0d8-4537-b518-52b85e5c03a3</document_url>
        <urn_nbn>urn:nbn:cz:edep-000014375</urn_nbn>
    </record>
</records>

Odpověď¶

Script na straně Alephu XML zpracuje a výsledky zapíše do souboru aleph2edep.xml, který poté nahraje zpět na SCP. Odpověď se skládá z jednotlivých <result> záznamů, které obsahují stejný parametr session_id, jako záznam, na který je to odpověď a položku <status>, nabírající hodnot buďto OK, nebo ERROR.

Soubor je vytvořen podle schématu definovaného následujícím XSD:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://edeposit-aplikace.nkp.cz/link_export_result" elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://edeposit-aplikace.nkp.cz/link_export_result">
  <simpleType name="Status">
    <restriction base="string">
      <enumeration value="OK"></enumeration>
      <enumeration value="ERROR"></enumeration>
    </restriction>
  </simpleType>

  <complexType name="Result">
    <sequence>
      <element name="status" type="tns:Status" minOccurs="1" maxOccurs="1" />
      <element name="reason" type="string" minOccurs="0" maxOccurs="1" />
    </sequence>
    <attribute type="string" name="session_id" />
  </complexType>

  <complexType name="ResultsType">
    <sequence>
      <element name="result" type="tns:Result" minOccurs="0" maxOccurs="unbounded" />
    </sequence>
  </complexType>

  <element name="results">
    <complexType>
      <complexContent>
        <extension base="tns:ResultsType" />
      </complexContent>
    </complexType>
  </element>
</schema>

Ukázka¶

<?xml version="1.0" encoding="UTF-8"?>
<results xsi:schemaLocation="http://edeposit-aplikace.nkp.cz/link_export_result.xsd" xmlns="http://edeposit-aplikace.nkp.cz/link_export_result" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <result session_id="asd133">
        <status>OK</status>
    </result>
    <result session_id="asd2222">
        <status>ERROR</status>
        <reason>Some reason.</reason>
    </result>
</results>

Pozor, zde se nepoužívá record, ale result.

Poznámky¶

Programové vybavení modulu aleph_link_export automaticky odstraní všechny záznamy <record> ze souboru edep2aleph.xml, které již mají odpověď v aleph2edep.xml.

Workflow na straně Alephu by tedy mělo vypadat následovně:


  • Jednou za čas jsem spuštěn (čas je nutné domluvit).
  • Stáhnu edep2aleph.xml
    • Procházím všechny <record> záznamy v něm, něco s nimi dělám.
    • Výsledky zapisuji do druhého souboru aleph2edep.xml jako <result> tagy.
      • Do <result> kopíruji session_id.
  • Nově vzniklý aleph2edep.xml nahraji zpět na SCP.

Díky tomu, že všechny <record> tagy jsou po přijetí odpovědi E-depositem z vstupního XML automaticky odstraněny, není nutné používat vícero souborů. Výstupní XMl může být pokaždé přepsáno.

XSD¶

XSD specifikace je zde a takto je také vkládána jako xsi:schemaLocation:

  • http://edeposit-aplikace.nkp.cz/link_export_result.xsd
  • http://edeposit-aplikace.nkp.cz/link_export_notification.xsd

© Copyright 2015 E-deposit team. Revision 5b6068a9.

Built with Sphinx using a theme provided by Read the Docs.