XML-Parser beschwert sich nicht, aber XMLEditor beschwert sich über leere Attribute

StackOverflow https://stackoverflow.com/questions/1404218

  •  05-07-2019
  •  | 
  •  

Frage

Ich habe ein Programm, die XSL-FO (org.apache.fop.apps.Driver) verwendet einen PDF-Ausdruck aus einer XML-Datei zu erzeugen.

Ich arbeite an dem Stylesheets (xsl) & Ich versuche, das Debuggen zu erleichtern. Ich habe die XML & die XSL-Datei, jetzt habe ich mein Editor nur wollen zeigen mir die erzeugte PDF als ich auf der XSL-Datei arbeite.

Ich habe versucht, mehrere Redakteure und sie gaben Fehler, die das Programm scheint nicht mit einem Problem zu haben.

es scheint, dass das Problem ist, dass der Editor zu sehen erwartet:

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value="" />

, während die tatsächliche XML generiert das Programm ist

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Wie Sie die leere attr_value sehen deutlich fehlt die = „“ - gibt es eine Möglichkeit für mich der Redakteur weniger streng zu machen? So kann es die PDF genau wie das Programm generiert Ich habe das?

War es hilfreich?

Lösung

<ATTRVALUE attribute_id="92" attrname="Date Required" attr_value />

Diese Zeile ist ungültig, wie bereits erwähnt. Das Programm, das es ist okay, denkt wahrscheinlich nutzt das eigene benutzerdefinierte XML-Parser ist, die diese ungültige Attribute einfach ignorieren. Es macht mich haben Zweifel über die Programmierung Qualitäten der Menschen, die das Programm erstellt. Es scheint nur zu mir, dass sie nur statt über einen XML-DOM-Mechanismus, um diese XML als Text zu schreiben. das sollte noch, okay, aber leider ihr Code hat einen Fehler.

Die meisten -wenn nicht All- XML-Editoren, Parser und Transformatoren wird die XML-Validierung, bevor es verarbeitet wird. Also leider gibt es keine gute Lösung, um dieses Problem zu beheben innerhalb der XSLT-Datei. Mit einem RegEx, könnten Sie die ungültigen Attribute zu entfernen oder sie gültig machen, indem = „“, um sie anhängen, aber es gibt keine Möglichkeit, dies vor dem XSLT zu tun, wird die XML-Validierung.

Um dies zu lösen, muss das Programm geändert werden gültige XML zu generieren. Denn gerade jetzt, könnte dies ein sehr ernsten Fehler in Betracht gezogen werden. (Es sei denn, das Programm nur verwendet diese gefälschte XML für interne Zwecke.)

Andere Tipps

Die XML mit dem attr_value und keine = ist ungültig W3C XML-Spezifikation und so sollten alle XML-Tools beschweren. Welches Tool verwenden Sie?

Ok, ich verwendet habe nur die Regular Expression Suchen & Ersetzen alle Attributnamen, wenn sie „nicht mit = end“ dann hinzufügen, dass jetzt scheint alles in Ordnung ... lahm zu sein, aber es ist ok für meine muss zur Zeit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top