<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.oracolo.it/i-ching"
targetNamespace="http://www.oracolo.it/i-ching"
elementFormDefault="qualified"
> <!-- poichè vi è un namespace di default in i-ching, vuol dire che i child di i-ching sono tutti
qualificati, quindi devo qualificarli con elementFormDefault -->
<xsd:element name="i-ching">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="predizione" minOccurs="2" maxOccurs="64"/>
<!-- minOccurs sarebbe 64 -->
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="predizione">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="esagramma" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="significato" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="esagramma">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="trigramma" minOccurs="2" maxOccurs="2"/>
</xsd:sequence>
<xsd:attribute name="nome" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="trigramma">
<xsd:complexType>
<!-- metto i bound nella sequence perchè dentro vi è una choice, allora ripeto la sequence -->
<xsd:sequence minOccurs="3" maxOccurs="3">
<xsd:choice>
<xsd:element ref="yin"/>
<xsd:element ref="yang"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="yin"/>
<xsd:element name="yang"/>
<xsd:element name="significato">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element ref="enfasi" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="enfasi">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element ref="enfasi" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>