—хемы могут конструироватьс¤
посредством определени¤ наборов именованных типов, таких как PurchaseOrderType,
и затем объ¤влени¤
элементов, таких как purchaseOrder, которые ссылаютс¤ на типы, использу¤ выражение type=конструкци¤. ƒанный стиль построени¤ схемы ¤вл¤етс¤ правильным,
но он может быть громоздким, особенно если ¬ы определ¤ете много типов, на которые
ссылаютс¤ только один раз и которые содержат очень мало ограничений. ƒл¤ таких условий
тип может быть более кратко определен как анонимный тип, который сохран¤ет все
необходимое, чтобы обеспечить именование и точность ссылок.
ќпределение типа Items в po.xsd содержит
два объ¤влени¤ элементов, которые используют анонимные типы (item и quantity). ¬ общем случае ¬ы можете
идентифицировать анонимные типы тем, что в объ¤влении элемента (или атрибута) отсутствует† type=, и присутствует определение (простого или сложного) типа,
которое не имеет имени:
<xsd:complexType name=ФItemsФ>
<xsd:sequence>
<xsd:element name=ФitemФ minOccurs=Ф0Ф maxOccurs=ФunboundedФ>
<xsd:complexType>
<xsd:sequence>
<xsd:element name=ФproductNameФ type=Фxsd:stringФ/>
<xsd:element name=ФquantityФ>
<xsd:simpleType>
<xsd:restriction base=Фxsd:positiveIntegerФ>
<xsd:maxExclusive value=Ф100Ф/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name=ФUSPriceФ type=Фxsd:decimalФ/>
<xsd:element ref=ФcommentФ minOccurs=Ф0Ф/>
<xsd:element name=ФshipDateФ type=Фxsd:dateФ minOccurs=Ф0Ф/>
</xsd:sequence>
<xsd:attribute name=ФpartNumФ type=ФSKUФ use=ФrequiredФ/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
Ёлемент item
представлен как сложный анонимный тип, состо¤щий
из элементов
productName, quantity, USPrice, comment, shipDate
и атрибута с именем partNum. Ёлемент quantity представлен как простой анонимный тип, полученный из integer, чье значение располагаетс¤ между 1 и 99.