2014-02-15 54 views
1

我有一個XML模式如下文件。我生成了一個xsd驗證文件來驗證。現在我想添加驗證,元素Tickettype的內部文本可以爲空。我該怎麼做?如何使用xsd驗證器爲內部文本xml架構?

<?xml version="1.0" encoding="utf-8" ?> 
<AppStatusDetails> 
    <Patronid>G5032788W</Patronid> 
    <PatronidType>1</PatronidType> 
    <Birthdate>19870716</Birthdate> 
    <Tickettype>49</Tickettype> 
</AppStatusDetails> 

,我有如下一個XSD驗證文件來驗證XML架構

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="AppStatusDetails"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Patronid" type="xs:string" /> 
     <xs:element name="PatronidType" type="xs:unsignedByte" /> 
     <xs:element name="Birthdate" type="xs:unsignedInt" /> 
     <xs:element name="Tickettype" type="xs:unsignedByte" /> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

現在什麼attribuet守敵必須添加到XSD,使車票種類的內文爲空

回答

0

您可以添加nillable="true"到XSD:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="AppStatusDetails"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Patronid" type="xs:string" /> 
     <xs:element name="PatronidType" type="xs:unsignedByte" /> 
     <xs:element name="Birthdate" type="xs:unsignedInt" /> 
     <xs:element name="Tickettype" type="xs:unsignedByte" nillable="true"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

,並在文件實例,然後xsi:nil="true"Tickettype

<?xml version="1.0" encoding="utf-8" ?> 
<AppStatusDetails xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Patronid>G5032788W</Patronid> 
    <PatronidType>1</PatronidType> 
    <Birthdate>19870716</Birthdate> 
    <Tickettype xsi:nil="true"></Tickettype> 
</AppStatusDetails>