Chapter 01: Schemas: An introduction¶
Example 1-2 Product schema in XSD schema language¶
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="product" type="ProductType" />
<xs:complexType name="ProductType">
<xs:sequence>
<xs:element name="number" type="xs:integer" />
<xs:element name="size" type="SizeType" />
</xs:sequence>
<xs:attribute name="effDate" type="xs:date" />
</xs:complexType>
<xs:simpleType name="SizeType">
<xs:restriction base="xs:integer">
<xs:minInclusive value="2" />
<xs:maxInclusive value="18" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class ProductType:
"""
:ivar number:
:ivar size:
:ivar eff_date:
"""
number: Optional[int] = field(
default=None,
metadata=dict(
name="number",
type="Element",
namespace="",
required=True
)
)
size: Optional[int] = field(
default=None,
metadata=dict(
name="size",
type="Element",
namespace="",
required=True,
min_inclusive=2.0,
max_inclusive=18.0
)
)
eff_date: Optional[str] = field(
default=None,
metadata=dict(
name="effDate",
type="Attribute"
)
)
@dataclass
class Product(ProductType):
class Meta:
name = "product"
Samples Source
Definitive XML Schema by Priscilla Walmsley (c) 2012 Prentice Hall PTR