Der Code dieser Seite ist nicht gestartet.

Wird index.html direkt aus einem Ordner geöffnet, blockiert der Browser JavaScript-Module, und wenn Sie eine Datei auswählen, passiert nichts. Stellen Sie den Ordner stattdessen über HTTP bereit:

powershell -ExecutionPolicy Bypass -File serve.ps1

Öffnen Sie dann http://localhost:8080/.

XML-Formatierer — auslegen, flach pressen oder in JSON umwandeln

XML zum Lesen ausgelegt oder zum Ausliefern flach gepresst, und in beide Richtungen zu JSON umgewandelt. Nichts davon wird in den Server eines anderen eingefügt.

Sprache: Deutsch
Quellcode ansehen
Ihre XML- und JSON-Dateien werden in Ihrem Browser verarbeitet. Kein Upload zur Verarbeitung.

Formatieren und Umwandeln sind Rechnen auf einer Zeichenkette, und zwar hier, auf dieser Seite. Der Parser ist von Hand geschrieben und steht in src/shared/parse-xml.js, und mehr gibt es nicht. Eine Netzfunktion hat dieses Werkzeug überhaupt nicht, weder etwas abzurufen noch etwas zu senden. Das wiegt hier schwerer, als das Wort „XML“ vermuten lässt, denn was in diesem Format ankommt, ist meist eine Rechnung, ein Kontoauszug, eine Patientenakte oder eine SOAP-Nachricht mit den Zugangsdaten von jemandem im Kopf.

Live-Prüfung: wird geprüft…

Offline: wird geprüft…

Sie müssen uns nicht glauben. Öffnen Sie die DevTools, sehen Sie im Tab „Netzwerk“ zu und formatieren Sie etwas. Keine einzige Anfrage trägt ein Zeichen dessen, was Sie eingefügt haben. Oder trennen Sie die Internetverbindung und formatieren Sie es trotzdem.

1 Die Aufgabe wählen

Anordnung Flach gepresst ist dasselbe Dokument, nur ohne jedes Leerzeichen, das nur zum Lesen da war.

Name für das äußere Element XML hat oben genau ein Element und JSON nicht, also muss eines erfunden werden.

2 Einfügen

leer

3 Das Ergebnis mitnehmen

Noch nichts.

 

Als Markdown ansehen

So formatieren Sie XML, ohne es hochzuladen

  1. Wählen Sie die Aufgabe. Zwei Reiter, ein Feld: Formatieren legt XML aus oder presst es flach, Umwandeln macht JSON daraus oder JSON wieder zu XML. Das XML, das Sie gerade ausgelegt haben, ist das XML, das Sie umwandeln, ohne es zweimal einzufügen.
  2. Fügen Sie es ein, oder legen Sie die Datei ab. Alles, was sich markieren und kopieren lässt, funktioniert, und eine .xml-, .svg-, .rss- oder .xsd-Datei, die Sie auf das Auswahlfeld ziehen, wird von Ihrem eigenen Browser gelesen und in das Feld gesetzt. Es gibt keinen Upload-Schritt, den man weglassen müsste.
  3. Wählen Sie die Einrückung, oder pressen Sie es flach. Zwei Leerzeichen, vier oder ein Tabulator. Flach gepresst ist dasselbe Dokument ohne jedes Leerzeichen, das nur zum Lesen da war, und das Ergebnis sagt, wie viele Bytes das gespart hat.
  4. Lesen Sie den Fehler dort, wo der Fehler ist. Ein Parser, der hier scheitert, sagt, welches Tag nie geschlossen wurde und in welcher Zeile und Spalte, statt „Fehler in Zeile 1“, was ein Browser über ein Dokument sagt, das er auf einen Schlag gelesen hat. Klicken Sie auf Zur Fehlerstelle, um zu dieser Position in der Eingabe zu wechseln. Beim Tippen bleibt der Fokus an seiner Stelle, bis Sie ihn selbst verschieben.
  5. Nehmen Sie das Ergebnis mit. Kopieren Sie es, oder laden Sie es als Datei herunter, benannt nach dem Format, in dem es herauskam.

Die ausführliche Fassung

XML formatieren und prüfen XML lokal formatieren, minimieren und prüfen. Parsefehler verfolgen und die Abbildung von Attributen, Text und Arrays vor XML zu JSON verstehen.

Fragen

Wird mein XML irgendwohin hochgeladen?

Nein. Der Parser und der Drucker auf dieser Seite sind Funktionen, die in Ihrem eigenen Browser auf Ihrer eigenen Hardware laufen. Eine Netzfunktion hat dieses Werkzeug überhaupt nicht — es ruft nie etwas ab und sendet nie etwas — und in der Content-Security-Policy der Seite steht jede Adresse, die sie kontaktieren darf; keine davon gehört uns. Das wiegt bei XML schwerer, als der Ruf des Formats vermuten lässt: Was darin ankommt, ist meist eine Rechnung, ein Kontoauszug, eine Patientenakte oder eine SOAP-Anfrage mit Zugangsdaten im Kopf.

Löst es externe Entitäten auf?

Nein, und es gibt auch nichts abzuschalten. Das Auflösen externer Entitäten ist der Weg, auf dem ein XML-Parser dazu gebracht wird, Dateien von dem Gerät zu lesen, auf dem er läuft — der Angriff, der üblicherweise XXE geschrieben wird — und src/shared/parse-xml.js ist ein von Hand geschriebener Leser ohne jede Entitätsauflösung. Ihr Text wird auch niemals dem DOMParser des Browsers übergeben. Ein DOCTYPE wird durchgereicht, ohne jemals ausgeführt zu werden.

Was geht beim Umwandeln von XML in JSON verloren?

Die Reihenfolge gemischter Inhalte, die Kommentare und der Unterschied zwischen einem Attribut und einem Kindelement — wobei der letzte eher abgemildert als getilgt wird, denn ein Attribut wird zu einem Member, dessen Name mit @ anfängt. Der eigene Text eines Elements wird zu #text, wenn er neben etwas anderem stehen muss, und wiederholte Kinder werden zu einem Array. Jeder Wert bleibt eine Zeichenkette: XML kennt keine Typen, und zu entscheiden, dass 8080 eine Zahl war, hieße, eine Information zu erfinden.

Was geht beim Umwandeln von JSON in XML verloren?

Der Unterschied zwischen einem leeren Objekt, einem leeren Array und einer leeren Zeichenkette, die alle drei zu einem leeren Element werden, und der Typ jedes Werts, denn XML kennt keine Typen. Ein Array wird zu einem wiederholten Element, was die einzige Form ist, die sich zurücklesen lässt, und bei einem Schlüssel, den ein Elementname nicht tragen kann, werden die sperrigen Zeichen ersetzt, statt ein Dokument auszugeben, das kein Parser lesen wird.

Kann es ein SVG, einen RSS-Feed oder eine POM-Datei formatieren?

Ja. Alle drei sind XML, und dies liest XML und nicht irgendeinen bestimmten Dialekt davon. Ein so ausgelegtes SVG lässt sich leichter von Hand bearbeiten; ein RSS- oder Atom-Feed wird üblicherweise flach gepresst ausgeliefert und ist unlesbar, bis ihn etwas wieder auseinander legt. An der Bedeutung des Dokuments ändert die Anordnung nichts.

Ändert das neue Einrücken die Bedeutung des XML?

Bei einem Dokument, dessen Elemente andere Elemente enthalten, nicht. Wo es eine Rolle spielen kann, ist Text: Leerraum innerhalb eines Elements, das Wörter enthält, ist Teil dieses Textes, und deshalb bleibt ein Element, das nichts als Text enthält, auf einer Zeile, statt auseinandergelegt zu werden. CDATA-Abschnitte werden genau so durchgereicht, wie sie waren.

Warum nicht einfach den XML-Parser des Browsers nehmen?

Wegen dem, was er sagt, wenn das Dokument kaputt ist. Der DOMParser gibt ein Fehlerdokument zurück, dessen Wortlaut in jedem Browser anders ist und oft auf „Fehler in Zeile 1“ hinausläuft. Ein von Hand geschriebener Leser kann sagen, welches Tag nie geschlossen wurde und wo es geöffnet wurde, und genau das wollten Sie wissen. Keine externen Entitäten aufzulösen, ist der zweite Grund.

Wie groß darf die Datei sein?

Hier ist keine Grenze eingebaut, denn es gibt keinen Server, der dafür bezahlt. Die praktische Obergrenze ist Ihr eigenes Gerät: Ein paar Megabyte XML sind unproblematisch, und bei einem sehr langen Dokument wartet die Seite auf eine Pause beim Tippen, bevor sie neu formatiert, statt Ihnen die Tastatur streitig zu machen.

Ist es kostenlos, und brauche ich ein Konto?

Es ist kostenlos, und es gibt kein Konto, keine Anmeldung, keine Testphase und keine Grenze dafür, wie viel Sie einfügen. Bezahlt wird die Seite über Werbung, und den Anzeigen wird nichts über Ihren Text übergeben.

Funktioniert es offline?

Ja. Laden Sie die Seite einmal, trennen Sie dann die Internetverbindung, und sie arbeitet weiter. Das ist zugleich der einfachste Beweis dafür, dass nichts hochgeladen wird: Ein Werkzeug, das Ihr XML zum Formatieren wegschickt, bliebe in dem Moment stehen, in dem Sie die Verbindung trennen.