Daniel Veillard | 50355f0 | 2004-06-08 17:52:16 +0000 | [diff] [blame] | 1 | <?xml version="1.0" encoding="ISO-8859-1" ?> |
| 2 | <!-- |
| 3 | Schema Component Constraint: Derivation Valid (Extension) |
| 4 | |
| 5 | 1.3 If it has an {attribute wildcard}, the complex type definition must |
| 6 | also have one, and the base type definition's {attribute wildcard}'s |
| 7 | {namespace constraint} must be a subset of the complex type definition's |
| 8 | {attribute wildcard}'s {namespace constraint}, as defined by Wildcard Subset (ยง3.10.6). |
| 9 | --> |
| 10 | <schema xmlns="http://www.w3.org/2001/XMLSchema" |
| 11 | targetNamespace="http://FOO" |
| 12 | xmlns:foo="http://FOO" |
| 13 | elementFormDefault="qualified"> |
| 14 | |
| 15 | <element name="foo"> |
| 16 | <complexType> |
| 17 | <sequence> |
| 18 | <element name="bar.A" type="foo:type.A" /> |
| 19 | <element name="bar.B" type="foo:type.B" /> |
| 20 | </sequence> |
| 21 | </complexType> |
| 22 | </element> |
| 23 | |
| 24 | <complexType name="type.A"> |
| 25 | <complexContent> |
| 26 | <!-- This is OK, since the complete wildcard |
| 27 | is the wildcard of the base type. --> |
| 28 | <extension base="foo:base.type.A" /> |
| 29 | </complexContent> |
| 30 | </complexType> |
| 31 | |
| 32 | <complexType name="base.type.A"> |
| 33 | <anyAttribute namespace="##any" processContents="skip" /> |
| 34 | </complexType> |
| 35 | |
| 36 | <complexType name="type.B"> |
| 37 | <complexContent> |
| 38 | <extension base="foo:base.type.B"> |
| 39 | <!-- This is OK, since the complete wildcard is a union |
| 40 | of "##any" and "http://FOO" = "##any". Thus the complete |
| 41 | wildcard is equal to that one in the base class. --> |
| 42 | <anyAttribute namespace="http://FOO" processContents="skip" /> |
| 43 | </extension> |
| 44 | </complexContent> |
| 45 | </complexType> |
| 46 | |
| 47 | <complexType name="base.type.B"> |
| 48 | <anyAttribute namespace="##any" processContents="skip" /> |
| 49 | </complexType> |
| 50 | |
| 51 | </schema> |