2016-03-07 66 views
0

我试图创建两个元件,和一个单一的元素的序列之间的选择之间,因为这样的:XSD选择序列或单个元件

<xs:element name="LoadStationsRequest"> 
<xs:choice> 

    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="path" type="xs:string" /> 
      <xs:element name="fileName" type="xs:string" /> 
     </xs:sequence> 
    </xs:complexType> 

    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="row" type="xs:string" /> 
     </xs:sequence> 
    </xs:complexType> 

</xs:choice> 
</xs:element> 

的问题是,选择标签接受任何的它的三个元素,“路径”,“文件名”和“行”。

我想要的是路径和文件名,或只有行。

这是可行的吗?任何线索如何解决这个问题?

电流输出:

 <v1:LoadStationsRequest> 
    <!--You have a CHOICE of the next 2 items at this level--> 
    <v1:path>?</v1:path> 
    <v1:fileName>?</v1:fileName> 
    <v1:row>?</v1:row> 
    </v1:LoadStationsRequest> 
+0

我想通过自己的补充,我试图嵌套“行”元素的序列,从而使选择标签会包含两个序列。但它没有什么区别。 –

+0

是的,它是可行的。您的complexType看起来不错,您可以向我们展示更多的架构以及针对此架构进行验证的示例XML。谢谢。 – potame

+0

我目前没有用于验证的XML。我更新了原来的帖子,关于我目前的位置,我希望它有帮助。 –

回答

2

工作对我来说:

<xs:element name="LoadStationsRequest"> 
    <xs:complexType> 
     <xs:choice> 
      <xs:sequence> 
       <xs:element name="path" type="xs:string" /> 
       <xs:element name="fileName" type="xs:string" /> 
      </xs:sequence>   
      <xs:sequence> 
       <xs:element name="row" type="xs:string" /> 
      </xs:sequence> 
     </xs:choice> 
    </xs:complexType> 
</xs:element> 
+0

我仍然得到相同的输出。我正在使用soapUI并从WDSL加载一个“请求模板”,我想。我不认为当前输出(在我的原始文章中)提供了足够的指令,例如路径和文件名,或者只有一行。 (我对此很新,但这是我的任务,如果我没有意义,非常抱歉) –