ZVON > Tutorials > XML Schema and Relax NG Tutorial |
Intro / Search / ZVON |
Index | >> Example 2 / 10 << | Prev | Next | |
The root element named "root" can have arbitrary number of any attributes from namespace other than the target namespace or null namespace. In this case, the "namespace" attribute will be set to value "##other". It will allow all attributes which are from namespace other than null namespace.
Valid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> Valid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" y:a="1" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://bar" /> Invalid document <root xsi:noNamespaceSchemaLocation="correct_0.xsd" x="2" baz:x="2" xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:baz="http://baz" /> |
Correct XML Schema (correct_0.xsd) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="root"> <xsd:complexType> <xsd:anyAttribute namespace="##other" processContents="skip"/> </xsd:complexType> </xsd:element> </xsd:schema> |
The element "anyName" says that the attribute can have any name from any namespace. We will exclude all attributes from empty namespace using the "except" and "nsName" elements.
Valid document <root xmlns=""/> Valid document <root x:a="1" xmlns="" xmlns:x="http://foo" /> Invalid document <root a="2" baz:x="2" xmlns="" xmlns:baz="http://baz" /> |
Correct Relax NG schema (correctRelax_0.rng) |