2014-02-12 29 views
0

我想創建以下類型的XSDXSD具有最小最大變量值xs:sequence?中的發生次數?

<xs:element name="Command"> 
    <xs:complexType> 
     <xs:attribute name="NumberofArgument" type="xs:integer" use="required"/> 
     <xs:sequence> 
       <xs:element name="Argument" minOccurs=variable> 
        <xs:complexType> 
         <xs:attribute name="argumentName" type="xs:string"/> 
         <xs:attribute name="argumentType" type="argumentType"/> 
        </xs:complexType> 
       </xs:element> 
     </xs:sequence>   
    </xs:complexType> 
</xs:element> 

所以我創造的任何XML,我將首先定義屬性「NumberOfArguments」,然後我會使用驗證參數的實際數量爲給定的命令。

<Command CommandName="String" number="1"> 
    <Argument argumentName="String" argumentType="defined"/> 
</Command> 

所以我的問題是,是否有可能實現這一點,如果不是什麼其他方式做到這一點。

+0

從我知道這是不可能通過簡單驗證架構。你將不得不使用你選擇的語言來處理「事後」。 –

回答

1

撒克遜模式處理器有一個實驗擴展,允許您聲明可以在XSD 1.1斷言中引用的參數。但是標準語言中沒有任何東西允許它。

,可能爲你工作的一種方法是定義的minOccurs爲XML實體引用

minOccurs="&min;" 

,然後在一個外部文件中,您可以事先設置爲驗證定義實體的擴張插曲。

+0

謝謝,但你能提供給我這個處理器的參考鏈接所以我可以閱讀更多關於這個。 –

+0

http://www.saxonica.com/documentation/index.html#!schema-processing –

相關問題