Коллекции в XML SChema - PullRequest
       3

Коллекции в XML SChema

4 голосов
/ 10 марта 2011

Изучая XML-схему, я хочу иметь возможность иметь коллекции элементов внутри другого элемента.Кажется достаточно простым, но не совсем уверен, как это сделать.

Это схема:

 <xs:attributeGroup name="ProcedureMappingFragment">
  <xs:attribute name="ParameterName" type="xs:string" />
  <xs:attribute name="TypeName" type="xs:string" />
  <xs:attribute name="PropertyName" type="xs:string" />

<xs:complexType name="ProcedureMappingSection">
  <xs:sequence>
    <xs:element name="ProcMapping" type="ProcedureMapping" /> 
  </xs:sequence>
</xs:complexType>

<xs:complexType name="ProcedureMapping">
  <xs:attributeGroup id="two" ref="ProcedureMappingFragment" />
    <xs:attribute name="ProcedureName" type="xs:string" />
</xs:complexType>

И яя пытаюсь создать что-то вроде этого:

<MappingSection xmlns="http://tempuri.org/ServiceMapping.xsd">
  <ProcMapping ParameterName="ParameterName1" TypeName="TypeName1" PropertyName="PropertyName1" ProcedureName="ProcedureName1" />
  <ProcMapping ParameterName="ParameterName1" TypeName="TypeName1" PropertyName="PropertyName1" ProcedureName="ProcedureName1" />
  <ProcMapping ParameterName="ParameterName1" TypeName="TypeName1" PropertyName="PropertyName1" ProcedureName="ProcedureName1" />
  <ProcMapping ParameterName="ParameterName1" TypeName="TypeName1" PropertyName="PropertyName1" ProcedureName="ProcedureName1" />
</MappingSection>

Однако он говорит мне, что у меня может быть только один ProcMapping внутри MappingSection.В частности, он вызывает 2-й элемент ProcMapping, недопустимый для пространства имен MappingSection.

1 Ответ

8 голосов
/ 10 марта 2011

Вам необходимо установить minOccurs и maxOccurs. Так как они имеют значение по умолчанию 1, разрешен только один элемент.

Итак, я бы определил:

<xs:complexType name="ProcedureMappingSection">
   <xs:sequence>
      <xs:element name="ProcMapping" type="ProcedureMapping" maxOccurs="unbounded" /> 
   </xs:sequence>
</xs:complexType>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...