XML-formatterer og validator

Lim inn XML, formater med riktig innrykk eller valider syntaksen. Håndterer attributter og navnerom. Ingen opplasting.

  1. Lim XML-en din i tekstområdet til venstre.
  2. Klikk Formater for å gå tur-retur gjennom fast-xml-parser og produsere innrykket XML.
  3. Klikk Valider for å sjekke well-formedness uten å endre inndata.
  4. Feil peker på den feilende posisjonen i dokumentet.
Hva gjør det?

Parser XML med fast-xml-parser og sender den ut igjen med konsistent innrykk. Attributtrekkefølgen innenfor hvert element bevares; element-nesting bevares nøyaktig. Blandet innhold (tekst + barn-elementer) og navnerom (prefix:tag) holdes intakte. Utdata er well-formed XML — men well-formed er ikke det samme som gyldig (gyldighet krever et skjema eller DTD, som dette verktøyet ikke sjekker).

Eksempel

Rotete XML-inndata:

<root version="1"><name>Ada</name><tags>math</tags><tags>logic</tags></root>

Formatert utdata:

<root version="1">
  <name>Ada</name>
  <tags>math</tags>
  <tags>logic</tags>
</root>

Vanlige XML-feil og hvordan rette dem

XML-well-formedness-regler er strengere enn HTML. Mønstrene under dekker de fleste parser-feilene.

  • Ulukket tag. `<a><b></a>` er ugyldig — `<b>` må lukkes (`<b/>` eller `</b>` et sted). XML tillater ikke valgfrie lukke-tags som HTML.
  • Stor/liten bokstav matcher ikke. XML skiller mellom store og små bokstaver — `<Foo></foo>` er to forskjellige tag-navn. Match nøyaktig.
  • Uesckapede spesialtegn. En bokstavelig `<`, `>`, `&` eller anførselstegn inne i tekst eller en attributtverdi må escapes: `&lt;`, `&gt;`, `&amp;`, `&quot;`. Pakk data med disse tegnene inn i CDATA: `<![CDATA[...]]>`.
  • Flere røtter. XML krever nøyaktig ett rot-element. `<a/><b/>` på toppnivå er ugyldig — pakk inn: `<root><a/><b/></root>`.
  • Ugyldig elementnavn. Elementnavn kan ikke starte med et siffer, inneholde mellomrom eller bruke reserverte tegn (`< > & " \'`). Navn som starter med `xml` (hvilken som helst skrivemåte) er reservert av spesifikasjonen.
  • Mismatchede anførselstegn rundt attributter. `<a name="value\'>` blander doble og enkle anførselstegn. Velg én stil konsekvent per attributt. Begge er gyldig XML.
Ofte stilte spørsmål

Endrer formatering dataene mine?

Bare mellomrommet mellom elementer. Element-rekkefølge, attributtrekkefølge, attributtverdier, tekstinnhold og CDATA-innramming bevares. Selv-lukkende form (`<x/>`) og eksplisitt form (`<x></x>`) kan normaliseres.

Bevares XML-kommentarer?

fast-xml-parser fjerner kommentarer som standard. Trenger du formatering som bevarer kommentarer, bruk et annet verktøy (XSLT identitetstransform for eksempel, eller `xmllint --format`).

Validerer dette mot et skjema?

Nei. Dette sjekker bare well-formedness — at dokumentet parses som syntaktisk gyldig XML. Skjemavalidering (XSD, DTD, RelaxNG) er et separat trinn som krever skjemaet som ekstra inndata.

Hvordan håndteres navnerom?

Navnerom-prefikser holdes som del av elementnavnet (`x:foo`). Standard navnerom-deklarasjoner og prefiks-bindinger bevares som attributter. Navnerom-bevisst behandling (URI-oppløsning) utføres ikke.

Lastes XML-en min opp?

Nei. Alt kjører i nettleseren din — inndata blir parset og re-serialisert av JavaScript på denne siden og sendes aldri til noen server.

Kan jeg tilpasse innrykket?

For øyeblikket fast på 2 mellomrom per nivå. For å tilpasse, kjør fast-xml-parser på kommandolinjen — samme bibliotek — og pass `{ indentBy: " " }` eller en annen streng.