Skip to main content
HTML Validation

Attribute “xmlns:dt” not allowed here.

About This HTML Issue

The xmlns:dt attribute — short for “XML Namespace: datatypes” — was historically used in Microsoft-specific XML vocabularies (notably urn:schemas-microsoft-com:datatypes) to declare data type information on elements. It was common in older ASP and IE-era markup. However, HTML5 is not an XML language, and it does not support arbitrary XML namespace declarations on elements.

In HTML5, the only xmlns attribute permitted is xmlns="http://www.w3.org/1999/xhtml" on the <html> element itself, and even that exists solely for compatibility with XHTML serialization. Namespace-prefixed attributes like xmlns:dt, xmlns:o, or xmlns:v are invalid. The HTML parser simply does not recognize them, and the W3C validator will flag them with the error “Attribute ‘xmlns:dt’ not allowed here.”

Why This Is a Problem

  • Standards compliance: Using non-standard attributes means your document does not conform to the HTML specification, which can lead to unpredictable behavior across browsers.
  • Legacy lock-in: The xmlns:dt attribute is tied to Microsoft’s proprietary data type schema. Modern browsers do not interpret or use this namespace, so it serves no functional purpose in an HTML5 document.
  • Validation noise: Invalid attributes generate validator errors that can obscure real issues in your markup, making it harder to catch genuine bugs.
  • Accessibility and tooling: Screen readers, search engine crawlers, and other automated tools expect valid HTML. Non-standard attributes can confuse parsers or be silently discarded.

How to Fix It

  1. Remove the attribute. If xmlns:dt was carried over from legacy code or a CMS template and nothing in your application depends on it, simply delete it.
  2. Replace with data-* attributes. If you need to attach custom metadata to an element — for example, to indicate a data type for use by JavaScript — use an HTML5 data-* attribute instead.
  3. Use XHTML if XML namespaces are required. If you genuinely need XML namespace support (rare in modern web development), serve your document as application/xhtml+xml with a proper XHTML doctype and XML declaration. Be aware this changes parsing rules significantly.

Examples

Incorrect: Using xmlns:dt in HTML5

This will trigger the validation error:

<ul xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <li dt:dt="string">Item one</li>
  <li dt:dt="number">42</li>
</ul>

Both xmlns:dt on the <ul> and the dt:dt attributes on the <li> elements are invalid in HTML5.

Correct: Attribute removed

If the namespace declaration is unnecessary (which it almost always is in modern HTML), remove it along with any prefixed attributes:

<ul>
  <li>Item one</li>
  <li>42</li>
</ul>

Correct: Using data-* attributes for custom metadata

If your JavaScript or application logic needs to know the data type of each item, use valid data-* attributes:

<ul>
  <li data-type="string">Item one</li>
  <li data-type="number">42</li>
</ul>

You can then access these values in JavaScript with element.dataset.type.

Correct: Migrating a legacy div wrapper

A common legacy pattern places xmlns:dt on a container div:

<!-- Invalid -->

<div xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <span dt:dt="dateTime">2024-01-15</span>
</div>

The fixed version removes the namespace and uses standard attributes:

<div>
  <time datetime="2024-01-15">January 15, 2024</time>
</div>

In this case, the semantic <time> element with its datetime attribute is the proper HTML5 way to represent date and time values — no custom namespace needed.

Quick Checklist

  • Search your codebase for xmlns:dt and any dt: prefixed attributes.
  • Check CMS templates, server-generated markup, and copy-pasted legacy code — these are the most common sources.
  • Remove the attributes or replace them with data-* equivalents.
  • Re-validate your document to confirm the error is resolved.

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Help us improve our guides

Was this guide helpful?

Ready to validate your sites?
Start your trial today.