Skip to main content

Search 437 pages — tools, formats, elements, namespaces, directory, comparisons, XPath, datatypes, glossary, parse errors, schema errors, use cases, guides, blog and product.

XSD datatype

xs:normalizedString

A string with tabs, newlines and carriage returns replaced by spaces — but not trimmed and not collapsed, so 'a b' stays four spaces wide.

xs:normalizedString sets whiteSpace to 'replace': every tab, line feed and carriage return becomes a single space. Nothing is trimmed, and runs of spaces are left alone.

It is the halfway house almost nobody wants. If the goal is a clean identifier, xs:token collapses runs and trims as well; if the goal is preserved text, xs:string leaves it alone. normalizedString sits between and rarely matches an intent.

Lexical space
Any string; tab, LF and CR are replaced with spaces during validation.
Derives from
xs:string
Category
String types
Facets
length, minLength, maxLength, pattern, enumeration, whiteSpace

What validates

Every literal below is put through the schema validator on each test run, against the schema at the foot of this page.

  • Ada Lovelace
  • padded
  • tab here

What does not

Nothing — this type accepts any legal XML character content. That is worth knowing: it constrains nothing on its own, so any real restriction has to come from a facet.

What catches people out

  • It replaces but does not collapse: 'a b' stays four spaces wide.
  • It does not trim. Leading and trailing spaces survive.
  • Because whitespace processing happens before facet checking, a length facet counts the *normalized* value.

Get started

Bring order to the XML your team can't afford to ignore.

Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.