2009-12-10 2 views
2

Что это значит создать что-то вроде следующего?XML-схема: что означает ограничение только с базовым атрибутом?

<xsd:simpleType name="myField"> 
    <xsd:restriction base="xsd:boolean"/> 
</xsd:simpleType> 

Извещения нет фактических элементов в пределах ограничения (без мин или макс длины, не перечислений и т.д.). Я чувствую, что это в основном устанавливает тип myField на xsd:boolean.

Тем не менее, у меня есть оба следующих в моей WSDL:

(на примере сверху)

и

<xsd:element name="myOtherField" type="xsd:boolean"/> 

При использовании JAXRPC или Apache Axis (преобразовать в Java скелет объекта), первый преобразуется в логический (объект), где, когда последний пример преобразуется в логическое (примитивное). Это говорит мне, что первый пример, размещенный как-то, означает, что элемент является необязательным, но я не понимаю, как это сделать.

Я согласен, что второй пример должен стать примитивным, но почему первый пример - логический?

Обновлено: Сделано имя второго узла общего

+0

Silver Phoenix предоставил дополнительную информацию о том, почему элемент xsd: расширяется до примитива. Единственный вопрос, на который нужно ответить, - это документация, в которой указано, что указанные типы «simpleType» или «ограничение» неявно являются необязательными. Я узнал, что у них нет атрибутов minoccurs или maxoccurs, поэтому мне просто нужно найти место для документации, которое сайты по умолчанию являются необязательными. – Russ

ответ

1

Единственная причина, я вижу, что в том, что элементы имеют минимум по умолчанию 1, так что имеет смысл, что это логическое.

С другой стороны, простые типы обычно используются в атрибутах, и они типично необязательны. Поэтому, вероятно, это вопрос того, где он используется.

+0

Голосование за предоставление дополнительных сведений о том, почему xsd: элемент будет расширяться до примитива. Это действительно потому, что значение по умолчанию для minoccurs в элементе xsd: 1. Остается только ответить на вопрос, является ли какая-либо документация, в которой указано, что тип simpleType или тип ограничения неявно необязательно. Я узнал, что у них нет атрибутов minoccurs или maxoccurs, поэтому мне просто нужно найти место для документации, которое сайты по умолчанию являются необязательными. – Russ

+0

SimpleType не имеет функции «мощности». Это выполняется с типом списка или грани внутри ограничений. Я имел в виду что-то вроде: Атрибуты по умолчанию необязательны. Я просто поместил его, чтобы понять суть. Если тип появляется в атрибутах, имеет смысл, что он является логическим, но если он появляется в элементах, то я предполагаю, что это упрощение программы, поскольку simpleTypes чаще используются в атрибутах. Попробуйте изменить атрибут так, чтобы он использовал = "required", чтобы увидеть, влияет ли это на тип. –

+0

Хороший вызов, то, что на самом деле происходит, - это элемент xsd: объявляет тип «myField». Я был под впечатлением того, что simpleType представлял сам узел. В элементе xsd: есть minoccurs = "0". Угадайте, что решает эту проблему. Спасибо за помощь Silver Phoenix. Прошу прощения за несколько вводящий в заблуждение вопрос. – Russ