Подтвердить что ты не робот

Разница/сходства между xsd: any и xsd: anyType

Я читаю о XML, XML-Schema, DTD, и я действительно не понимаю разницу между xsd: any и xsd: anyType.

Может кто-нибудь объяснить это мне или указать на хорошую статью? (пожалуйста, не связывайтесь с спецификациями XML-Schema - я читал это, и я больше смущен)

ТИА

4b9b3361

Ответ 1

Этот пост объясняет это красиво. Я цитирую:

xsd: anyType - это тип, например xsd: integer (хотя xsd: anyType особенным в том, что он может действовать как простой или сложный тип, и он размещает по существу, никаких ограничений на дерево, которое оно проверяет - подумайте об этом свободно, так как язык схемы аналог java.lang.Object).

Пример использования будет:

<xsd:element name="e" type="xsd:anyType"/>

Это означает, что элементы, названные <e> может иметь любой контент, любой атрибуты и т.д.

xs: any - это подстановочный знак, который можно использовать как термин в модели контента. Например:

<xsd:complexType name="T">
  <xsd:sequence>
    <xsd:element ref="A"/>
    <xsd:any />
    <xsd:element ref="C"/>
  </xsd:sequence>
</xsd:complexType>

Элементы типа T должны иметь контент <A/><???/><C/>, где <???> может быть любой именованный элемент. Теперь, если вы посмотрите на самом деле приближение к определению xsd: anyType, указанный для справки в Рекомендация, и она использует xsd: any подстановочный знак как средство сказать, что он позволяет использовать любые элементы.

Также ознакомьтесь с XML Schema.

Ответ 2

Сообщение списка рассылки, связанное с ответом dogbane, не было ясно для меня, пока я не создал следующий пример:

В схеме anyType:

<xsd:complexType name="Outer">
    <xsd:element name="e" type="xsd:anyType" />
</xsd:complexType>

Что позволяет этот формат:

<Outer>
    <e> // must be called "e"
        // but anything can go inside
    </e>
</Outer>

И с любой схемой:

<xsd:complexType name="Outer">
    <xsd:any />
</xsd:complexType>

Что позволяет этот формат:

<Outer>
    //anything can go inside
</Outer>

Так что anyType является типом, а любой - элементом