Un de nos programmes lit un fichier XML. Le fichier XML a standalone = 'no' en-tête.Comment contrôler la lecture de la DTD avec .NET?
Le DOCTYPE utilisé pour ressembler à:
<!DOCTYPE foo SYSTEM "silly.dtd">
où silly.dtd ne siège pas là à côté du fichier.
Pour diverses raisons, j'ai changé cela
<!DOCTYPE foo PUBLIC "-//Some Public Id" "urn:outerspace:silly.dtd">
Je me attendais rien à changer, car la DTD ne pouvait pas être ouverte comme « ./silly.dtd » avant, et il ne peut pas être ouverte à 'urn: outerspace: silly.dtd' maintenant. La seule différence était qu'un résolveur de catalogue n'aurait pas à s'inquiéter de l'absolutisation de l'ID du système. Imaginez ma surprise pour obtenir une exception de l'exécution .NET, essayant apparemment d'ouvrir la DTD à l'adresse urn:.
Une personne aimable peut-elle me diriger vers une recette pour dire à .NET d'abandonner tranquillement dans ce cas? Je sais comment faire cela en Java, mais en .NET je suis un peu perdu.
Ce n'est pas ce qui m'est arrivé. Lorsque j'ai défini le résolveur sur null dans les options du lecteur, il est parti et a créé un résolveur par défaut. – bmargulies