LIBCAS / ARCLib

ARCLib – komplexní řešení pro dlouhodobou archivaci digitálních (knihovních) sbírek
GNU General Public License v3.0
4 stars 1 forks source link

Chyba: is not valid value for 'date' #101

Closed jbil7 closed 3 years ago

jbil7 commented 4 years ago

Při ingestu NDK balíčku jsem narazil na tuto chybu:

org.xml.sax.SAXParseException; lineNumber: 234; columnNumber: 36; cvc-datatype-valid.1.2.1: '' is not a valid value for 'date'.

Jedná se o ARCLIB_000001338. Data v balíčku jsem kontroloval a nepřišel jsem zatím na nic, co by rozporovalo očekávanému formátu. Jedná-li se o chybu na vstupu, požádal bych, zda by nebylo možné chybovou hlášku upravit tak, aby odkazovala na konkrétní místo v datech.

ZdenekVasek commented 4 years ago

Nepodařilo se mi daný balíček najít. Je skutečně v systému? Nenašel jsem ani v Arch. storage ani v ingestu.

jbil7 commented 4 years ago

Ingest jsem provedl ještě jednou zde: https://arclib-test.lib.cas.cz/ingest-workflows/ARCLIB_000001369 Na transfer area je to complete_NDK-000001011919_1591704249821 (2).zip

ZdenekVasek commented 4 years ago

Jasně, díky.

yantom commented 3 years ago

Upravili jsme chybovou hlášku aby bylo zřejmější v které fázi došlo k chybě. Současná hláška: "cz.cas.lib.arclib.exception.validation.SchemaValidationError: Validation of resulting AIP XML - XML schema validation failed. Details: org.xml.sax.SAXParseException; lineNumber: 230; columnNumber: 36; cvc-datatype-valid.1.2.1: '' is not a valid value for 'date'.. More details (whole XML) can be found in application log."

V aplikačním logu je poté vypsané celé XML na němž validace selhala. V tomto případě je chybný řádek , z logu lze vyčíst celý fragment výsledného AIP XML:

<METS:amdSec>  
    <METS:techMD ID="ARCLIB_004"> 
      <METS:mdWrap MDTYPE="OTHER"> 
        <METS:xmlData> 
          <ARCLib:ImageCaptureInformation xmlns:ARCLib="http://arclib.lib.cas.cz/ARCLIB_XSD">  
            <ARCLib:ImageCaptureMetadata> 
              <ARCLib:dateCreated>2020-06-09</ARCLib:dateCreated>  
              <ARCLib:imageProducer>The National Library of the Czech Republic, A3962</ARCLib:imageProducer>  
              <ARCLib:scannerModelSerialNo>2018.05.16</ARCLib:scannerModelSerialNo>  
              <ARCLib:eventCount>64</ARCLib:eventCount> 
            </ARCLib:ImageCaptureMetadata>  
            <ARCLib:ImageCaptureMetadata> 
              <ARCLib:dateCreated/>  
              <ARCLib:imageProducer/>  
              <ARCLib:scannerModelSerialNo/>  
              <ARCLib:eventCount>64</ARCLib:eventCount> 
            </ARCLib:ImageCaptureMetadata> 
          </ARCLib:ImageCaptureInformation> 
        </METS:xmlData> 
      </METS:mdWrap> 
    </METS:techMD> 
</METS:amdSec>  

ARCLib XSD očekává v poli pro datum hodnotu, které zde není. Nevalidní fragment vznikl při extrakci pomocí SIP profilu, problém je v zdrojových datech - obsahují element mix:ImageCaptureMetadata 2x, jednou plnohodnotný a podruhé s nějakou poznámkou. Toto v SIP profilu není postihnuto. Např. v souboru complete_NDK-000001011919_1591704249821\amdsec\amd_mets_dd202200-5d32-11ea-9076-005056827e52_0035.xml:

<mix:ImageCaptureMetadata> 
  <mix:orientation>normal*</mix:orientation> 
</mix:ImageCaptureMetadata>
...
<mix:ImageCaptureMetadata> 
  <mix:GeneralCaptureInformation> 
    <mix:dateTimeCreated>2020-06-09T09:41:49</mix:dateTimeCreated>  
    <mix:imageProducer>The National Library of the Czech Republic, A3962</mix:imageProducer>  
    <mix:captureDevice>digital still camera</mix:captureDevice> 
  </mix:GeneralCaptureInformation>  
  <mix:ScannerCapture> 
    <mix:scannerManufacturer>4DigitalBooks</mix:scannerManufacturer>  
    <mix:ScannerModel> 
      <mix:scannerModelName>4DigitalBooks ScanVPage-Jumbo</mix:scannerModelName>  
      <mix:scannerModelNumber>4DigitalBooks ScanVPage-Jumbo</mix:scannerModelNumber>  
      <mix:scannerModelSerialNo>2018.05.16</mix:scannerModelSerialNo> 
    </mix:ScannerModel>  
    <mix:MaximumOpticalResolution> 
      <mix:xOpticalResolution>300</mix:xOpticalResolution>  
      <mix:yOpticalResolution>300</mix:yOpticalResolution>  
      <mix:opticalResolutionUnit>in.</mix:opticalResolutionUnit> 
    </mix:MaximumOpticalResolution>  
    <mix:scannerSensor>TwoChipColorArea</mix:scannerSensor>  
    <mix:ScanningSystemSoftware> 
      <mix:scanningSoftwareName>Copinet</mix:scanningSoftwareName>  
      <mix:scanningSoftwareVersionNo>2.2.6709.16154</mix:scanningSoftwareVersionNo> 
    </mix:ScanningSystemSoftware> 
  </mix:ScannerCapture>  
  <mix:orientation>normal*</mix:orientation> 
</mix:ImageCaptureMetadata> 
jbil7 commented 3 years ago

Moc děkuji za odpověď! Do logů jsem dlouho neměl přístup a i když jej teď už mám, nenapadlo mě jej zkontrolovat.

Opravil jsem SIP profil a chybu jsem snad vyřešil upřesněním XPath výrazu select="$amdSecs/METS:mets/METS:amdSec/METS:techMD[@ID='MIX_001']/METS:mdWrap/METS:xmlData/mix:mix/mix:ImageCaptureMetadata" v ARCLIB_004 tak, aby se hodnoty přejímaly pouze z MIX_001.

Všechna přebíraná metadata z ImageCaptureMetadata by se podle Definic metadatových formátů NK pro NDK balíčky měla nacházet v MIX_001.