2013-11-15 72 views
0

試圖解決這個問題,任何幫助將不勝感激。XSD - 最大的孩子?

我已經制定了一個XML文件,如下所示:

<?xml version="1.0" ?> 
<test> 
<Name>Folder exists check</Name> 
<type> 
    <DoesFolderExist> 
     Synchronisation Errors 
    </DoesFolderExist> 
</type> 
</test> 

對於<type>部分,我想我的XSD是隻能有一個孩子,但實際的類型可能會有所不同,也可以不必須是「DoesFolderExist」 - 它可以是「FolderCount」,或其他。基本上,它只能有一個孩子,但該孩子可能是我的用戶可以選擇的任何預定義類型之一。我可以在這裏得到一個簡單的例子,說明如何將它放在我的xsd中?

這是我現在擁有的,我不肯定在哪裏何去何從:

 string XSDMarkup = 
     @"xsd:schema xmlns:xsd='http://www.ws.org/2001/XMLSchema'> 
      <xsd:element name='tests'> 
       <xsd:sequence> 
        <xsd:element name='test' minOccurs='1'/> 
        <xsd:element name='type' minOccurs='1' maxOccurs='1'> 
         <xsd:sequence> 
          <xsd:element 
     "; 

我知道上面的XSD不完整,將無法正常工作,但我顯然還沒有結束。

再次感謝

回答

0

你想要一個選擇,而不是一個序列,爲type元素的類型。

儘管您的模式文檔還有其他問題:特別是,元素的類型必須使用type屬性或作爲元素聲明的子元素出現的類型定義給出。所以,你的tests(例如)申報應採取的形式

<xsd:element name='tests'> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="test"> ... </xsd:element> 
     <xsd:element name="type"> ... </xsd:element> 
    </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

這可能是值得你花半個小時具有良好的XSD教程。