2013-01-29 3 views
1

Я новичок, когда дело доходит до xml-схем. Во всяком случае, здесь идет мой вопрос:Как предотвратить пустой элемент в XML через XSD

У меня есть следующий элемент

<property name="propA">some-value</property> 

, и я хотел бы мой XSD для предотвращения пустых элементов, таких, как это:

<property name="propB" /> 
<property name="propC"></property> 

Как я могу добиться этого с мой текущий XSD, как показано ниже:

<xs:complexType name="property"> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
      <xs:attribute name="name" type="xs:string" use="required" /> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 
+0

Когда вы говорите «предотвратить пустые элементы» вы имеете в виду предотвратить пустые элементы из визуализируемых, или вы имеете в виду, что элемент должен иметь значение? Если вы имеете в виду второе, опция «требуется» может работать. – SouthShoreAK

ответ

1

Для этого вы можете создать свой собственный простой тип. Например:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="property" type="property"/> 
    <xs:complexType name="property"> 
     <xs:simpleContent> 
      <xs:extension base="nonEmptyString"> 
       <xs:attribute name="name" type="xs:string" use="required" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
    <xs:simpleType name="nonEmptyString"> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
+0

В зависимости от того, являются ли элементы типа '' (с пробельным содержимым) приемлемыми или нет, вы также можете указать ''. –

Смежные вопросы