2016-06-22 3 views
1

Я пишу XSD. Если у меня есть такой элемент, я хотел бы установить значение Value по умолчанию целому числу. Похоже, если у меня есть один диапазон чисел для элемента, я могу это сделать, но если у меня есть несколько диапазонов, как показано ниже, я не могу добавить значение по умолчанию к Value. Есть ли способ добавить значение по умолчанию к элементу, который определяет несколько диапазонов? Я думаю, что это недопустимо для типа xs:union, но я уверен, что делать, чтобы получить как значение по умолчанию, так и набор диапазонов.Как иметь несколько диапазонов для элемента, а также значение по умолчанию в XSD?

<xs:element name="Value" default="20"> 
    <xs:annotation> 
     <xs:documentation xml:lang="en"> 
      Some Random Annotation 
     </xs:documentation> 
    </xs:annotation> 
    <xs:simpleType> 
     <xs:union> 
      <xs:simpleType> 
       <xs:restriction base='xs:integer'> 
        <xs:minInclusive value="20"/> 
        <xs:maxInclusive value="30"/> 
       </xs:restriction> 
      </xs:simpleType> 
      <xs:simpleType> 
       <xs:restriction base='xs:integer'> 
        <xs:minInclusive value="40"/> 
        <xs:maxInclusive value="54"/> 
       </xs:restriction> 
      </xs:simpleType> 
     </xs:union> 
    </xs:simpleType> 
</xs:element> 

ответ

1

У вас может быть значение по умолчанию для объединения, если оно соответствует типу, определенному объединением. В этом случае значение по умолчанию 20 соответствует ограничениям первого простого типа и, следовательно, отлично. Если значение по умолчанию было 200 вместо этого, это было бы запрещено.

1

Значения по умолчанию являются частью декларации элемента, а не являются частью определения типа; до тех пор, пока значение, которое вы укажете в качестве значения по умолчанию, находится в пространстве значений типа, оно приемлемо. (То есть, если вы получаете сообщения об ошибках, это не является причиной.)