Chapter 11: Built-in simple types¶
Example 11-1 Extensible mixed content¶
<!-- SKIPTEST: XML Reference -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="TextType" mixed="true">
<xs:sequence>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="xml:lang" />
</xs:complexType>
</xs:schema>
Warning
XML Reference
Example 11-3 Illegal duplication of ID attributes (version 1.0)¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="CustType">
<xs:attribute name="id" type="xs:ID" />
<xs:attribute name="custID" type="xs:ID" />
</xs:complexType>
</xs:schema>
Warning
Illegal definition
Example 11-4 Illegal attribute declarations (version 1.0)¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attribute name="id" type="xs:ID" fixed="A123" />
<xs:attribute name="custID" type="xs:ID" default="C00000" />
</xs:schema>
Warning
Illegal definition
Example 11-5 Using IDREF¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="quote">
<xs:complexType>
<!-- content model -->
<xs:attribute name="ref" type="xs:IDREF" />
</xs:complexType>
</xs:element>
<xs:element name="footnote">
<xs:complexType>
<!-- content model -->
<xs:attribute name="id" type="xs:ID" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Footnote:
"""
:ivar id:
"""
class Meta:
name = "footnote"
id: Optional[str] = field(
default=None,
metadata=dict(
name="id",
type="Attribute",
required=True
)
)
@dataclass
class Quote:
"""
:ivar ref:
"""
class Meta:
name = "quote"
ref: Optional[str] = field(
default=None,
metadata=dict(
name="ref",
type="Attribute"
)
)
Example 11-6 Using IDREFS¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="quote">
<xs:complexType>
<!-- content model -->
<xs:attribute name="refs" type="xs:IDREFS" />
</xs:complexType>
</xs:element>
<xs:element name="footnote">
<xs:complexType>
<!-- content model -->
<xs:attribute name="id" type="xs:ID" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Footnote:
"""
:ivar id:
"""
class Meta:
name = "footnote"
id: Optional[str] = field(
default=None,
metadata=dict(
name="id",
type="Attribute",
required=True
)
)
@dataclass
class Quote:
"""
:ivar refs:
"""
class Meta:
name = "quote"
refs: Optional[str] = field(
default=None,
metadata=dict(
name="refs",
type="Attribute"
)
)
Example 11-7 Using an unparsed entity¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="picture">
<xs:complexType>
<xs:attribute name="location" type="xs:ENTITY" />
</xs:complexType>
</xs:element>
</xs:schema>
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Picture:
"""
:ivar location:
"""
class Meta:
name = "picture"
location: Optional[int] = field(
default=None,
metadata=dict(
name="location",
type="Attribute"
)
)
Example 11-8 Using ENTITIES¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="pictures">
<xs:complexType>
<xs:attribute name="location" type="xs:ENTITIES" />
</xs:complexType>
</xs:element>
</xs:schema>
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Pictures:
"""
:ivar location:
"""
class Meta:
name = "pictures"
location: Optional[int] = field(
default=None,
metadata=dict(
name="location",
type="Attribute"
)
)
Samples Source
Definitive XML Schema by Priscilla Walmsley (c) 2012 Prentice Hall PTR