2012-02-11 5 views
74

Vì vậy, tôi đã lược đồ XML này:Làm cách nào để tạo một phần tử trong lược đồ XML tùy chọn?

<?xml version="1.0"?> <xs:schema version="1.0" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      elementFormDefault="qualified"> 
    <xs:element name="request"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="amenity"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="description" type="xs:string" /> 
         </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> </xs:schema> 

Làm thế nào để làm cho các yếu tố mô tả tùy chọn? Vì vậy, cả XML với phần tử mô tả và không có sẽ xác nhận hợp lệ với XSD.

Trả lời

141

Hãy thử điều này

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" /> 

nếu bạn muốn 0 hoặc 1 "mô tả" các yếu tố, Hoặc

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> 

nếu bạn muốn từ 0 đến số vô hạn của "mô tả" các yếu tố.

+5

Bạn đánh bại tôi vào câu trả lời, nhưng đây là một liên kết hữu ích: http://www.w3.org/TR/xmlschema-0/# OccurrenceConstraints – kdgregory

+3

'maxOccurs' mặc định là' 1', vì vậy ví dụ trên cùng của bạn không cần chỉ định nó. –

+1

Thật vậy, thử nghiệm nó, và bạn chỉ cần chỉ định minOccurs = "0" để làm cho nó tùy chọn nếu bạn muốn cho phép một phần tử tối đa. –

12

Đặt minOccurs thuộc tính để 0 trong lược đồ như vậy:

<?xml version="1.0"?> 
    <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="request"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="amenity"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="description" type="xs:string" minOccurs="0" /> 
         </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> </xs:schema>