Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XML - Déclaration de schema différentes #603

Closed
vbombaerts opened this issue Jun 1, 2021 · 17 comments
Closed

XML - Déclaration de schema différentes #603

vbombaerts opened this issue Jun 1, 2021 · 17 comments

Comments

@vbombaerts
Copy link

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)

@vbombaerts vbombaerts added this to the 4.0.4 milestone Jun 1, 2021
@fxprunayre
Copy link

fxprunayre commented Jun 2, 2021

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

"http://standards.iso.org/iso/19115/-3/mds/1.0

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

@vbombaerts
Copy link
Author

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à.

@vbombaerts
Copy link
Author

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)

@fxprunayre
Copy link

fxprunayre commented Jun 3, 2021

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,

image

Sans schemaLocation, 1s plus tard

image

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.

@fxprunayre
Copy link

fxprunayre commented Jun 3, 2021

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. geonetwork#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?

@fxprunayre
Copy link

fxprunayre commented Jun 3, 2021

@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"%';

@davinciagf
Copy link

Problème de connexion sur la DB, j'attends le retour de mes accès..

@vbombaerts
Copy link
Author

Quand on valide, on doit sauver avant. Ce serait peut être à améliorer?

Zut ! Je n'y ai même pas pensé.

@davinciagf
Copy link

Retour des droits pour les requêtes sur la DB test : 67 fiches impactées.

@davinciagf davinciagf assigned vbombaerts and unassigned davinciagf and fxprunayre Jun 7, 2021
@vbombaerts
Copy link
Author

vbombaerts commented Jun 9, 2021

Env valid :

La requête corrective n'a pas été jouée.

@vbombaerts
Copy link
Author

vbombaerts commented Jun 14, 2021

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)

image

@vbombaerts
Copy link
Author

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.

@davinciagf
Copy link

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

@vbombaerts
Copy link
Author

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.

@vbombaerts
Copy link
Author

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.

@vbombaerts
Copy link
Author

vbombaerts commented Jul 1, 2021

Liste des fiches

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.

# Lien
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

@vbombaerts
Copy link
Author

OK. toutes les fiches ont été corrigées.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants