Open kerschfilip opened 4 years ago
Dobrý den, z mého pohledu jde o otázku, kterou nejde příliš jednoduše rozhodnout, ale za sebe se kloním ke stanovisku, že je to není nutná funkce. U obou standardů lze validovat obecný způsob zápisu, což ale bude jen formální a poskytne pouze základní ujištění. nebo se lze zaměřit na obsah, ale v takovém případě bude potřeba vytvořit velké množství validačních schémat podle typů obsahu a producentů (nebude to nekonečné množství, ale i tak by jich bylo hodně). Nicméně tahle debata by mohla vést spíše k obecnému požadavku, aby bylo možné do systému přidat libovolné XSD a podle něho validovat vybrané AIP. Tím by v případě potřeby bylo možné naplnit i požadavek na validaci MODS etc.
Děkuji za reakci. Souhlasím, že se nejedná o nejpodstatnější funkci, chtěl jsem především upozornit na tuto nesrovnalost oproti původním funkčním požadavkům zadávací dokumentace. Je pravda, že validace obecného způsobu zápisu by poskytla jen základní ujištění, že popisná metadata nejsou v nepořádku, ale nevím, zda by přece jen nestálo za to zařadit validaci obecného zápisu například DC, vzhledem k tomu, že se v ARCLib potom využívá k vyhledávání AIP.
Možnost přidat do systému libovolné XSD by mohla být elegantním způsobem, jak možnost validace pro uživatele jednoduše vyřešit (a splnit i funkční požadavek). V současnosti je možné validovat XML soubory v SIP při ingestu skrze Validační Profil (pravidlo <validationSchemaCheck>
), ale bohužel se mi nepovedlo takto pomocí profilu zkontrolovat hlavní mets proti XSD DC - ingest selže při chybě:
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 279; cvc-elt.1: Cannot find the declaration of element 'mets:mets'.
Myslím, že toto téma bychom mohli směřovat k uzavření. Mám za to, že jsme ho probrali ústně na posledních 2 setkáních, ale do zápisu neproniklo, tak mne porsím opravte. Shoda byla v tom,že systémová validace MODS by nebyla jednoduše proveditelná. A není asi ani zcela nutná. U DC platí něco podobného, snad jen, že by ji bylo možné implementovat o něco snadněji. Nejsem si ale jist, zda jsme dospěli i k závěru ohledně možnosti implementace libovolného XSD pro validace. Prosím o reakci, zda je to přijatelné nebo ne. V příadě negativní odpovědi bychom měli otázku zítra otevřít a rozhodnout v plénu. V každém případě jsou myslím varianty jasné a lze rozhodnout.
Bude provedena oprava zmíněné chyby: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 279; cvc-elt.1: Cannot find the declaration of element 'mets:mets'.
Zmíněná chyba byla opravena, viz http://inqooltest-arclib.libj.cas.cz/ingest-workflows/ARCLIB_000002519
Bohužel se mi nepodařilo opravu ověřit, v mém pokusu konči ingest stále chybou:
couldn't execute activity <serviceTask id="validator" ...>: ARCLib incident: Ingest workflow internal runtime exception: validationSchemaCheck rule - XML schema validation failed. Details: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 203; cvc-elt.1.a: Cannot find the declaration of element 'mets:mets'.. More details (whole XML) can be found in application log.
Prosím o radu, @yantom , zda není chyba na mé straně. Použil jsem validační profil FK_kontrola_archivniho_balicku_v3
Děkuji, problém tedy bude asi v tom že dřívě přiřazený Validační profil se změnil v čase. Zakládám na toto veřejně issue které máme interně již nějakou chvilku vedené: https://github.com/LIBCAS/ARCLib/issues/117 Stávající profil jsem zkopíroval a budeme se dále věnovat popsané chybě.
Problém je v tom že validationSchemaCheck funguje jinak než očekáváte - nelze do něj vložit XSD pro validaci vnitřní části dokumentu, mapovaný soubor je validovaný vúči schématu jako celek. Ve vašem případě by tedy bylo nutné vložit mets schéma a z něho odkazovat / do něj vložit DC schéma, např. takto: metsWithDcLink.txt
Děkuji za vysvětlení. Vyzkoušel jsem tedy vložit balíček se záměrně špatným elementem v DC a pro validaci použil schéma, ze kterého je odkazováno na DC schéma pomocí xsd:import
. Metadata v DC ale nejsou ARCLibem validována a to asi ani před/při jejich extrakci, ani v rámci sestavení AIP XML - do AIP se tak v mém pokusu dostal element <dc:d3scription>
, což asi není úplně ideální
Chápu/dělám něco špatně? Nebo je to chyba? Díky :)
V odkazovaném balíku se element d3scription
nachází v souboru data/NDK/aba007-0007yd/mets_aba007-0007yd.xml
ale uvedený validační profil odkazuje na soubor data/mets.xml
.
Omlouvám se, vůbec jsem si toho nevšiml. Znovu jsem to vyzkoušel, tentokrát s odkazem na správný soubor a potvrzuji, že validace tak, jak je zmíněna zde funguje. Funkční požadavek označím za vyřešený
Děkuji. Příklad s validationSchemaCheck jsem vepsal do wiki validačních profilů. https://github.com/LIBCAS/ARCLib/wiki/Usage@Validation-profiles
Dobrý den Při procházení funkčních požadavků k ARCLib jsem narazil na bod „extrakce popisných metadat a jejich validace“. ARCLib korektně extrahuje popisné informace z XML podle specifikace v SIP profilu, ale vzniklé ARCLib AIP XML validuje jen podle schémat METS, ARCLIB_XSD a PREMIS. Tato vlastnost je uvedena také na wiki a funguje bez problému. Znamená to ale, že AIP XML není validováno proti schématům pro popisná metadata běžně používaná v SIP – Dublin Core a MODS. Z funkčních požadavků v zadávací dokumentaci jsem pochopil, že validace popisných metadat by měla při ingestu proběhnout a nevím tedy, zda by nebylo vhodné mezi XML schémata pro validaci zařadit i DC a MODS. Případně prosím ostatní, aby se vyjádřili, zda o tuto funkcionalitu stojí. Děkuji.