== Why is this an issue?

``++xs:any++`` and ``++xs:anyAttribute++`` are wildcards; they allow the XML document author to use any element or attribute. By specifying ``++nameSpace++``s for them, you can restrict what's used to elements in the specified name spaces. By default, what's used for ``++xs:any++`` and ``++xs:anyAttribute++`` will be validated in a strict manner (``++processContents="strict"++``). That is, validation will fail if the element used isn't recognized. That makes sense if you've provided a namespace, but not if you haven't. Conversely, ``++processContents="lax"++`` allows unrecognized elements to pass validation even if they're not recognized. That makes sense if no namespace has been specified, but not if one has been specified.


This rule raises an issue when ``++strict++`` processing is used (either explicitly or implicitly) when no namespace is provided, and conversely when ``++lax++`` processing is used with a namespace.


=== Noncompliant code example

[source,xml]
----
ToDo
----


=== Compliant solution

[source,xml]
----
ToDo
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

* Set the processing of this [attribute|element] to "lax" or add a "nameSpace".
* Set the processing of this [attribute|element] to "strict" or drop the "nameSpace".


=== Highlighting

``++processContents="xxx"++`` if attribute is present, otherwise ``++namespace++`` attribute


'''
== Comments And Links
(visible only on this page)

=== on 18 Jan 2017, 13:17:21 Ann Campbell wrote:
see what you think [~yves.duboispelerin]

=== on 18 Jan 2017, 13:57:23 Yves Dubois-Pèlerin wrote:
\[~ann.campbell.2] Seems OK!

endif::env-github,rspecator-view[]
