Closed vbombaerts closed 3 years ago
Hum, tu valides avec XMLSpy ?
Tu peux tenter en changeant le schemaLocation avec http://standards.iso.org/iso/19115/-3/mdb/2.0 https://schemas.isotc211.org/19115/-3/mdb/2.0/mdb.xsd
et https://schemas.isotc211.org/19115/-3/mds/2.0/mds.xsd
?
A corriger ici sans doute https://github.com/SPW-DIG/metawal-core-geonetwork/blob/metawal-4.0.x/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/schema-ident.xml#L79
C'est la version avant 2018. Donc c'est pas bon. Dans les fiches en base, il peut être supprimé. schemaLocation est ajouté selon schema-ident.
Côté ISO j'ai l'impression 1) il y a eu un passage http > https (donc faut que le validateur "follow les redirects") 2) qu'ils ont aussi déplacé les schémas sur schemas.isotc211.org
J'ai validé avec le validateur Metawal.
J'ai changé
xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/2.0 http://standards.iso.org/iso/19115/-3/mds/2.0/mds.xsd"
en
xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/2.0 https://schemas.isotc211.org/19115/-3/mds/2.0/mds.xsd"
et puis en
xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mdb/2.0 https://schemas.isotc211.org/19115/-3/mdb/2.0/mdb.xsd"
mais Metawal remplace mes modifs par la déclaration initiale et du coup l'erreur de validation est toujours là.
J'ai validé avec XML Spy.
J'ai essayé les 3 déclarations essayées avec Metawal et je reçois les mêmes avertissements pour les 3.
(après, j'ai peut-être pas compris ce que j'étais sensé faire. J'avoue que 2 ans d'absence ça efface un peu de compréhension des schemas XML et de pratique de XML Spy...)
Voici le message que je reçois.
D'abord
Les schémas référencés par l'attribut 'xsi:schemaLocation' sous l'élément <mdb:MD_Metadata> sont valides mais contiennent des avertissements.
Ensuite : (j'en ai mis 2 mais tous les namespace y passent)
<include> référence le 'https://schemas.isotc211.org/19115/-3/mds/2.0/mds.xsd' clôturant un cycle, celui-ci ayant commencé à l'attribut 'xsi:schemaLocation'.
Avertissement emplacement : schema / include
Détails
schemaLocation-cycle: <include> référence le 'https://schemas.isotc211.org/19115/-3/mds/2.0/mds.xsd' clôturant un cycle, celui-ci ayant commencé à l'attribut 'xsi:schemaLocation'.
<include> référence le 'https://schemas.isotc211.org/19110/-/fcc/2.1.0/fcc.xsd' clôturant un cycle, celui-ci ayant commencé à l'attribut 'xsi:schemaLocation'.
Avertissement emplacement : schema / include
Détails
schemaLocation-cycle: <include> référence le 'https://schemas.isotc211.org/19110/-/fcc/2.1.0/fcc.xsd' clôturant un cycle, celui-ci ayant commencé à l'attribut 'xsi:schemaLocation'.
Ceci dit, quand je passe le validateur XML Spy sur la déclaration avec la v1 du schema j'ai les mêmes avertissements et la même erreur dans Metawal.
Sur une fiche sans schemaLocation, je n'ai pas d'erreur dans Metawal (et je ne peux pas valider dans XML Spy)
Dans GeoNetwork, le mieux reste de ne pas définir schemaLocation. Dans ce cas, il utilise les XSD en local dans l'appli (c'est plus rapide) et utilise https://github.com/SPW-DIG/metawal-core-geonetwork/blob/metawal-4.0.x/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/schema.xsd pour la validation.
En utilisant http://standards.iso.org/iso/19115/-3/mdb/2.0 https://schemas.isotc211.org/19115/-3/mdb/2.0/mdb.xsd
il utilise la version distante et télécharge tous les schémas. Y'a des erreurs
2021-06-03 07:15:56,421 ERROR [jeeves.xmlresolver] - Request on http://schemas.opengis.net/iso/19139/20070417/gmd/metadataEntity.xsd failed.Connect to schemas.opengis.net:80 [schemas.opengis.net/66.244.86.52] failed: Connection timed out (Connection timed out)
2021-06-03 07:18:13,636 ERROR [jeeves.xmlresolver] - Request on http://schemas.opengis.net/iso/19139/20070417/gss/gss.xsd failed.Connect to schemas.opengis.net:80 [schemas.opengis.net/66.244.86.52] failed: Connection timed out (Connection timed out)
7 min plus tard,
Sans schemaLocation, 1s plus tard
Donc le pb vient plus du XSD là. Je vais essayer de trouver une version sans erreur.
Le mieux par défaut c'est déjà de ne pas avoir de schemaLocation dans l'appli. On a déjà supprimé ça dans le passé cf. https://github.com/SPW-DIG/metawal-core-geonetwork/blob/metawal-4.0.x/web/src/main/webapp/WEB-INF/classes/setup/sql-metawal/migrate/3.8.0/migrate-default.sql#L23-L24
Et lors des exports XML, laissé l'appli ajouter un schemaLocation qui marche.
Avec xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mdb/2.0 https://schemas.isotc211.org/19115/-3/mdb/2.0/mdb.xsd"
ça semble ok. Cf. https://github.com/geonetwork/core-geonetwork/pull/5722
mais Metawal remplace mes modifs par la déclaration initiale et du coup l'erreur de validation est toujours là.
Quand on valide, on doit sauver avant. Ce serait peut être à améliorer?
@davinciagf Appliquer ça en db pour supprimer les schemaLocation
UPDATE Metadata SET data = replace(data,
' xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/1.0 http://standards.iso.org/iso/19115/-3/mds/1.0/mds.xsd"',
'')
WHERE data LIKE '%xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/1.0 http://standards.iso.org/iso/19115/-3/mds/1.0/mds.xsd"%';
Problème de connexion sur la DB, j'attends le retour de mes accès..
Quand on valide, on doit sauver avant. Ce serait peut être à améliorer?
Zut ! Je n'y ai même pas pensé.
Retour des droits pour les requêtes sur la DB test : 67 fiches impactées.
Env valid :
La requête corrective n'a pas été jouée.
Env valid : les schemaLocation sont toujours présents sur certaines fiches.
(c'est assez facile à repérer dans l'interface contribuer : un point vert à la validation = pas de schemaLocation ; un point rouge à la validation = probablement un schemaLocation encore présent)
Et c'est embêtant parce que du coup on ne peut plus utiliser les outils de validation des fiches (elles sont d'office en erreur à cause du schemaLocation), d'où le caractère critique.
Potentiel erreur de ma part- j'ai zappé deux lignes dans les instructions de mise à jour pour la valid de ce lundi mais les règles sont bien présentes dans le script sql et elles seront donc jouées en prod
Encore des schemaLocation trouvés en prod. Mais je pense qu'il y en a moins qu'en valid, donc peut-être un cas que le script n'a pas pris en compte ? Exemple http://metawal.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/2998bccd-dae4-49fb-b6a5-867e6c37680f
@davinciagf tu pourrais faire un état des lieux pour une éventuelle correction manuelle stp ? Moi je n'ai tjrs pas d'accès aux BD. Je relancerai le DTIC sur ce point semaine prochaine.
J'ai obtenu les accès DB en lecture sur la prod.
J'ai fait la requête SELECT id,uuid FROM metawal4.metadata where data LIKE '%schemaLocation%';
et j'obtiens une liste de 82 fiches.
Je vais supprimer les schemaLocation manuellement.
J'ai mis la liste des fiches ici parce que si le lien est dans un navigateur il ouvre directement la fiche en édition, tandis que si j'y accède depuis Excel, j'ai systématiquement une demande d'identification Metawal avant d'accéder à la fiche en édition.
--|-- 1 | Editer 51071 en XML 2 | Editer 604 en XML 3 | Editer 14673 en XML 4 | Editer 139 en XML 5 | Editer 1581 en XML 6 | Editer 50908 en XML 7 | Editer 1200 en XML 8 | Editer 51085 en XML 9 | Editer 51029 en XML 10 | Editer 51032 en XML 11 | Editer 136 en XML 12 | Editer 51025 en XML 13 | Editer 14642 en XML 14 | Editer 51026 en XML 15 | Editer 51033 en XML 16 | Editer 1879 en XML 17 | Editer 51023 en XML 18 | Editer 106 en XML 19 | Editer 644 en XML 20 | Editer 14584 en XML 21 | Editer 51021 en XML 22 | Editer 1211 en XML 23 | Editer 189 en XML 24 | Editer 1192 en XML 25 | Editer 1690 en XML 26 | Editer 51027 en XML 27 | Editer 667 en XML 28 | Editer 1576 en XML 29 | Editer 185 en XML 30 | Editer 1022 en XML 31 | Editer 1008 en XML 32 | Editer 51018 en XML 33 | Editer 51020 en XML 34 | Editer 1906 en XML 35 | Editer 511 en XML 36 | Editer 1880 en XML 37 | Editer 696 en XML 38 | Editer 1118 en XML 39 | Editer 103 en XML 40 | Editer 666 en XML 41 | Editer 1448 en XML 42 | Editer 619 en XML 43 | Editer 1043 en XML 44 | Editer 909 en XML 45 | Editer 1964 en XML 46 | Editer 616 en XML 47 | Editer 108 en XML 48 | Editer 1197 en XML 49 | Editer 1116 en XML 50 | Editer 118 en XML 51 | Editer 1965 en XML 52 | Editer 603 en XML 53 | Editer 14590 en XML 54 | Editer 1582 en XML 55 | Editer 50891 en XML 56 | Editer 512 en XML 57 | Editer 50886 en XML 58 | Editer 50887 en XML 59 | Editer 107 en XML 60 | Editer 1042 en XML 61 | Editer 1612 en XML 62 | Editer 1577 en XML 63 | Editer 1020 en XML 64 | Editer 615 en XML 65 | Editer 1613 en XML 66 | Editer 1946 en XML 67 | Editer 138 en XML 68 | Editer 1037 en XML 69 | Editer 1025 en XML 70 | Editer 137 en XML 71 | Editer 1041 en XML 72 | Editer 104 en XML 73 | Editer 50909 en XML 74 | Editer 50766 en XML 75 | Editer 50702 en XML 76 | Editer 1383 en XML 77 | Editer 1188 en XML 78 | Editer 908 en XML 79 | Editer 14644 en XML 80 | Editer 1841 en XML 81 | Editer 1809 en XML 82 | Editer 1308 en XML
Description Plusieurs déclarations de schéma différentes pour le même type de ressource coexistent dans Metawal. Lequel est le bon ?
Ex1 : http://metawal.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/28651053-16ae-4ea4-98bd-1c9e908c14bf (série)
<mdb:MD_Metadata xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" xmlns:msr="http://standards.iso.org/iso/19115/-3/msr/2.0" xmlns:mrs="http://standards.iso.org/iso/19115/-3/mrs/1.0" xmlns:mmi="http://standards.iso.org/iso/19115/-3/mmi/1.0" xmlns:mrl="http://standards.iso.org/iso/19115/-3/mrl/2.0" xmlns:mdt="http://standards.iso.org/iso/19115/-3/mdt/2.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:mpc="http://standards.iso.org/iso/19115/-3/mpc/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mda="http://standards.iso.org/iso/19115/-3/mda/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mex="http://standards.iso.org/iso/19115/-3/mex/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mri="http://standards.iso.org/iso/19115/-3/mri/1.0" xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:gfc="http://standards.iso.org/iso/19110/gfc/1.1" xmlns:cat="http://standards.iso.org/iso/19115/-3/cat/1.0" xmlns:mds="http://standards.iso.org/iso/19115/-3/mds/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" xmlns:mrc="http://standards.iso.org/iso/19115/-3/mrc/2.0" xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/1.0 http://standards.iso.org/iso/19115/-3/mds/1.0/mds.xsd">
Ex2 : http://metawal.wallonie.be/geonetwork/srv/fre/catalog.search#/metadata/43c57664-9548-4dd0-93fd-696f5bf85537 (série)
<mdb:MD_Metadata xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cat="http://standards.iso.org/iso/19115/-3/cat/1.0" xmlns:gfc="http://standards.iso.org/iso/19110/gfc/1.1" xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mda="http://standards.iso.org/iso/19115/-3/mda/1.0" xmlns:mds="http://standards.iso.org/iso/19115/-3/mds/2.0" xmlns:mdt="http://standards.iso.org/iso/19115/-3/mdt/2.0" xmlns:mex="http://standards.iso.org/iso/19115/-3/mex/1.0" xmlns:mmi="http://standards.iso.org/iso/19115/-3/mmi/1.0" xmlns:mpc="http://standards.iso.org/iso/19115/-3/mpc/1.0" xmlns:mrc="http://standards.iso.org/iso/19115/-3/mrc/2.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:mri="http://standards.iso.org/iso/19115/-3/mri/1.0" xmlns:mrl="http://standards.iso.org/iso/19115/-3/mrl/2.0" xmlns:mrs="http://standards.iso.org/iso/19115/-3/mrs/1.0" xmlns:msr="http://standards.iso.org/iso/19115/-3/msr/2.0" xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://standards.iso.org/iso/19115/-3/mds/2.0 http://standards.iso.org/iso/19115/-3/mds/2.0/mds.xsd">
J'ai par ailleurs une erreur de validation sur le 2 :
Cannot find the declaration of element 'mdb:MD_Metadata'. (Element: mdb:MD_Metadata with parent element: Unknown)