# Attribute “xmlns:pcm” not allowed here.

> Canonical HTML version: https://rocketvalidator.com/html-validation/attribute-xmlns-pcm-not-allowed-here
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `xmlns:pcm` attribute is an XML namespace declaration, and HTML doesn't allow prefixed namespace declarations on any element.

In XML, `xmlns:pcm="urn:PageContentManager"` binds the prefix `pcm` to that namespace, so names like `pcm:item` can appear inside the element. The HTML parser doesn't process namespace declarations. It keeps `xmlns:pcm` as a plain attribute with a colon in its name. The only namespace attribute an HTML element may have is `xmlns`, with the exact value `http://www.w3.org/1999/xhtml`. The validator reports `xmlns:pcm` wherever it appears, `<html>` included.

The attribute shows up in pages built with XSLT, such as SharePoint web parts. When an XSLT stylesheet writes out a literal element, it copies the namespace declarations in scope onto that element, except for the XSLT namespace itself and any prefix listed in `exclude-result-prefixes`. If you can edit the stylesheet, add `pcm` to that list:

```xml
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:pcm="urn:PageContentManager"
  exclude-result-prefixes="pcm">
```

Browsers do nothing with the attribute, so removing it doesn't change how the page looks or works.

## Invalid example

```html
<div class="news-list" xmlns:pcm="urn:PageContentManager">
  <ul>
    <li><a href="/news/opening-hours">Opening hours change</a></li>
  </ul>
</div>
```

## Valid example

```html
<div class="news-list">
  <ul>
    <li><a href="/news/opening-hours">Opening hours change</a></li>
  </ul>
</div>
```
