У меня странная ситуация, из-за которой я немного озадачен ....
У меня есть файл данных XML, который я пытаюсь проверить по схеме, которая, кажется, дает разные результаты в зависимости от используемых анализаторов.Не уверен, что я делаю неправильно или как лучше представить ограничения в схеме, чтобы все анализаторы могли правильно проверить XML .... Вот фрагмент проблемной части схемы:
<xsd:element name="DemoValues">
<xsd:annotation>
<xsd:documentation>Demo values for any, or all, of the demo categories defined on the GAP . A
demo value includes a reference to the category it applies to, a value in the appropriate
format and an optional market reference if it is for a specific market. If the market
reference is omitted the demo value applies to the entire area serviced by the outlet. Each
demo category may only have a single demo value within this group of demo values. However if
the demo value is for a market, there may be a demo value per market within this group of
demo values. </xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DemoValue" type="gap:demoValueType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="DemoValueConstraint">
<xsd:annotation>
<xsd:documentation>Constraint allows only up to one demo value for a demo category, and per
market when a market reference exists. </xsd:documentation>
</xsd:annotation>
<xsd:selector xpath="gap:DemoValue"/>
<xsd:field xpath="@demoRef"/>
<xsd:field xpath="@marketRef|@demoRef"/>
</xsd:unique>
Вот неправильный XML:
<DemoValues>
<DemoValue demoRef="DM0" marketRef="MKT1">0.40</DemoValue>
<DemoValue demoRef="DM1">15.00</DemoValue>
</DemoValues>
Выдает эту ошибку:
Элемент '{http://www.AAAA.org/schemas/canadianTVGAP}DemoValue', атрибут' marketRef ': XPath' @marketRef |@demoRef 'поля уникального ограничения идентичности' {http://www.AAAA.org/schemas/canadianTVGAP}DemoValueConstraint' оценивает набор узлов с более чем одним членом.
Упрощенная ошибка: Поле 'marketRef' ожидает самое большее одно значение.
Цель xml - разрешить все эти комбинации:
1)
<DemoValues>
<DemoValue demoRef="DM0" marketRef="MKT1">0.40</DemoValue>
<DemoValue demoRef="DM1">15.00</DemoValue>
</DemoValues>
2)
<DemoValues>
<DemoValue demoRef="DM0" marketRef="MKT1">0.40</DemoValue>
<DemoValue demoRef="DM0" marketRef="MKT2">0.41</DemoValue>
<DemoValue demoRef="DM0" marketRef="MKT3">0.42</DemoValue>
<DemoValue demoRef="DM0" marketRef="MKT4">0.43</DemoValue>
<DemoValue demoRef="DM1">15.00</DemoValue>
</DemoValues>
3)
<DemoValues>
<DemoValue demoRef="DM0" marketRef="MKT1">0.40</DemoValue>
<DemoValue demoRef="DM1" marketRef="MKT1">0.41</DemoValue>
<DemoValue demoRef="DM2" marketRef="MKT1">0.42</DemoValue>
<DemoValue demoRef="DM3">15.00</DemoValue>
</DemoValues>
Спасибо за любую помощь !!