IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Erreur : DTD interdite


Sujet :

XML/XSL et SOAP

  1. #1
    Candidat au Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2023
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Erreur : DTD interdite
    Bonjour à tous,

    Je travaille sur un document XML, avec incorporation d'un schéma DTD, mais je rencontre une erreur lorsque je souhaite importer le mappage XML dans EXCEL.
    Après consultation de la FAQ et de discussion se rapportant à un problème similaire, je n'ai, sauf erreur de ma part, pas trouvé de solution adaptée.
    J'ai essayé de me documenter sur différentes sources (je n'ai jamais utilisé ces outils auparavant), en ce sens mes compétences restent limitées et je m'excuse d'avance pour mon manque de vivacité à assimiler vos futures remarques, mais je vais faire au mieux !
    Ci-dessous, le rapport d'erreur qui m'est affiché :

    "Erreur dans XML : Impossible de charger la source XML ou de schéma spécifiée."
    Dans la rubrique "détails..." voici ce qu'il m'est indiqué :
    "Code d'erreur : -1072896636
    URL :<non fournie>
    Raison : DTD interdite.
    Ligne : 2
    Colonne : 11
    Décalage de fichier : 67"

    J'ai donc déjà fait les vérifications suivantes :
    - le mappage est bien chargé et fonctionnel sans le schéma DTD, ce qui m'a amené à concentrer mes tentatives de corrections essentiellement sur l'écriture dtd.
    - j'ai bien vérifié que la racine de mon écriture xml correspondait au nom racine de la dtd.
    - j'ai essayé d'utiliser la dtd de manière interne, comme externe, en prenant soin de bien vérifier que le nom de la dtd (declarationMensuelleV3) corresponde au nom utilisé dans le doctype avec l'extension .dtd (declarationMensuelleV3.dtd)
    - j'ai essayé une solution proposée sur ce forum à savoir remplacer la ligne 2 de <!doctype... par <declarationMensuelle> en veillant bien que le fichier se termine bien par </declarationMensuelle> (nom de la discussion roblème d'ouverture d'un fichier XML)
    - enfin, j'ai utilisé la plateforme "XML Editor" pour corriger tous les problèmes de syntaxe et d'incohérence qu'il y avait sur les documents XML et DTD (d'où les différentes versions des noms de mes documents).

    Afin d'être tout à fait complet, ci-dessous les premieres lignes de mes documents (étant une tâche professionnelle, je masque les données volontairement avec des "xxx"):

    VERSION DTD EXTERNE :
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <!DOCTYPE declarationMensuelle SYSTEM "declarationMensuelleV3.dtd">
    <declarationMensuelle xxx="xxx" xxx="xxx" xxx="xxx" xxx="xxx">

    VERSION DTD INTERNE :
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!DOCTYPE declarationMensuelle [

    J'espère être clair, merci d'avance de votre aide !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    d'après les informations que je vois dans les supports Excel, il semble qu'Excel n'accepte pas l'emploi d'une DTD pour les XMLs utilisés de cette façon. Genre, pas de DTD du tout, point final.

    Et donc, ben, c'est bien de vouloir utiliser un fichier XML avec DTD, mais Excel lui ne le permettra pas, voilà.

    Citation Envoyé par TomyC Voir le message
    - j'ai essayé une solution proposée sur ce forum à savoir remplacer la ligne 2 de <!doctype... par <declarationMensuelle> en veillant bien que le fichier se termine bien par </declarationMensuelle> (nom de la discussion roblème d'ouverture d'un fichier XML)
    Normalement cela aurait dû régler le problème remonté...

    Mais il y en a peut-être d'autres ! C'est sur cette solution qu'il faut élaborer précisément ce que tu as et quelle est l'erreur obtenue.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2023
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci pour ce retour clair et précis !

    Je n'avais pas connaissance de ce blocage, je comprends mieux maintenant ...

    Pour ce qu'il en est de la solution exposée ici, peut-être que je l'ai mal utilisée ? Dans quelle mesure le doctype doit être remplacé (et la dtd donc ?)
    L'ensemble des Elements et attributs doivent suivre le format de l'écriture XML ? Si une quelconque documentation existe à ce sujet je suis preneur!

    Autrement, un autre schéma est proposé à la place du dtd, un schéma XSD. Il apparait nettement plus dense (et donc plus compliqué), mais s'il est utilisable sous excel ça serait une bonne occasion de se pencher dessus ! Qu'en est-il ?

    Si besoin je reste disponible pour tout complément d'information sur ma tâche si cela peut aider à la compréhension.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par TomyC Voir le message
    Pour ce qu'il en est de la solution exposée ici, peut-être que je l'ai mal utilisée ? Dans quelle mesure le doctype doit être remplacé (et la dtd donc ?)
    Le doctype ne doit pas être remplacé, il doit être effacé, point. A la rigueur, quelque chose comme <!DOCTYPE declarationMensuelle> serait peut-être accepté, dans la mesure où ça ne fait rien de particulier et que ça ne définit notamment pas de DTD. Mais bon, c'est aussi inutile dans un XML.

    On peut pas dire si tu l'as mal utilisée, puisque tu montres pas ce que tu as essayé de faire ni le message d'erreur.

    Citation Envoyé par TomyC Voir le message
    L'ensemble des Elements et attributs doivent suivre le format de l'écriture XML ? Si une quelconque documentation existe à ce sujet je suis preneur!
    Pas compris... Quand on fait du XML il faut respecter les règles du XML, oui... Mais l'idée c'est pas de le modifier, c'est d'enlever la DTD, non ?

    Citation Envoyé par TomyC Voir le message
    Autrement, un autre schéma est proposé à la place du dtd, un schéma XSD. Il apparait nettement plus dense (et donc plus compliqué), mais s'il est utilisable sous excel ça serait une bonne occasion de se pencher dessus ! Qu'en est-il ?
    Alors j'ai aucune idée de si Excel réagirait d'une manière ou d'une autre à un .xsd, que ce soit pour l'utiliser ou pour être gêné qu'il soit là comme avec DTD.

    Par contre je me pose une question : pourquoi cette insistance à lier une validation ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2023
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour, de nouveau merci pour ce retour!

    Pour répondre à votre question, la plateforme sur laquelle je souhaite réaliser l'import du fichier XML exige d'avoir un schéma validé par une dtd. ou le schéma xsd.
    En soit, le document XML fonctionne et permet d'importer les données Excel, mais sans validation je ne peux pas importer les données dans la plateforme.
    Dans l'ordre du processus, je reçois une extraction de données sociales (en excel), nous traitons les données pour renseigner une plateforme qui accorde du financement, manuellement à ce jour. Cela concernant 650 salariés maintenant, nous explorons la possibilité d'importer les informations plutôt que de saisir manuellement. L'import est contraint à utiliser un fichier xml respectant un schéma type (dtd ou xsd donc).

    Concernant ma tentative sur la solution, j'ai conservé la dtd mais en remplaçant la ligne "<!DOCTYPE declarationMensuelle [" par "<declarationMensuelle>" et fermant la DTD par "</declarationMensuelle>". A mon sens c'était complètement faux (ci dessous l'ensemble des lignes), avec des erreurs de syntaxe car j'ai gardé les elements et les attributs, sachant qu'à la suite de ces lignes, je conservais l'écriture XML (qui elle reste fonctionnelle dans excel) :

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <declarationMensuelle>
    <!ELEMENT declarationMensuelle (ligneDeclaration+)>
    <!ATTLIST declarationMensuelle siegeSocial CDATA #REQUIRED>
    <!ATTLIST declarationMensuelle CPOM CDATA #REQUIRED>
    <!ATTLIST declarationMensuelle annee CDATA #REQUIRED>
    <!ATTLIST declarationMensuelle mois CDATA #REQUIRED>
    <!ELEMENT ligneDeclaration (numLigne, indicateurNIR, NIR, nom, prenom, dateNaissance, natureContrat, dateEmbauche, siretRattachement, nbHeuresEffectives, nbHeuresCarence, nbJoursMAD?, nbJoursMaladie, coutsSalariauxAdmissibles?, salaireBrut?)>
    <!ELEMENT numLigne (#PCDATA)>
    <!ELEMENT indicateurNIR (#PCDATA)>
    <!ELEMENT NIR (#PCDATA)>
    <!ELEMENT nom (#PCDATA)>
    <!ELEMENT prenom (#PCDATA)>
    <!ELEMENT dateNaissance (#PCDATA)>
    <!ELEMENT natureContrat (#PCDATA)>
    <!ELEMENT dateEmbauche (#PCDATA)>
    <!ELEMENT siretRattachement (#PCDATA)>
    <!ELEMENT nbHeuresEffectives (#PCDATA)>
    <!ELEMENT nbHeuresCarence (#PCDATA)>
    <!ELEMENT nbJoursMAD (#PCDATA)>
    <!ELEMENT nbJoursMaladie (#PCDATA)>
    <!ELEMENT coutsSalariauxAdmissibles (#PCDATA)>
    <!ELEMENT salaireBrut (#PCDATA)>
    </declarationMensuelle>

    Je pense qu'il me reste tout de même une option à explorer avec le schéma XSD. Autrement il semblerait que la solution consisterait à utiliser un autre format qu'excel pour permettre l'utilisation de la DTD.

    Encore merci pour vos remarques elles m'aident à mieux appréhender la tâche !

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Je ne comprends pas.

    Excel c'est Excel. De la validation il n'en exige pas, et s'il y en avait dans un fichier XML importé, elle sera perdue après que le fichier ait été importé dans Excel.

    Si d'autres choses exigent de la validation c'est leur problème. Mais là vous envoyez un fichier à Excel, et pas à ces autres choses.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2023
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Oui je comprends bien l'inutilité de la validation sur Excel en effet.

    Néanmoins, les données que nous avons à importer sur la plateforme doivent respecter un format XML, lui même respectant un schéma de validation.
    Et la source même de nos données sociales est traitée sur Excel, je pensais donc réussir à directement importer un XML depuis ce fichier source. En soit, cette étape est opérationnelle. Mais les données exportées d'excel en XML ne sont pas acceptées sur la plateforme car non respectueuse d'un schéma (ici dtd, je n'ai pas encore essayé le schéma xsd )

    Je reste attentif à tout autre remarque complémentaire, merci d'avance !
    Je penserais à mettre à jour la discussion si j'ai du succès dans mes essais.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/05/2021, 18h59
  2. Erreur (DTD) pour lire .xml avec Dataset.ReadXml
    Par Gus G dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 29/06/2012, 16h41
  3. Réponses: 6
    Dernier message: 10/08/2011, 12h29
  4. Erreur type interdit dans __property
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 11/01/2005, 21h45
  5. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo