验证期间带有注释标签的XSD错误

时间:2018-06-28 17:18:21

标签: xml xsd xsd-validation

我正在尝试在模式中包含注释,并且似乎在验证过程中引起了问题。我收到以下错误:

  

“验证[通过格式异常构建模式]:s4s-elt-must-match.1:“金额”的>内容必须匹配(注释?,(simpleType | complexType)?,>(唯一|键| keyref) )*))。发现问题始于:注解。“

据我所知,我的架构和XML都是正确的。我已经验证了两者的格式是否正确,并且在Visual Studio和联机模式检查器中,两者都格式正确且有效。

我正在使用基于Java的小型软件。

如果我删除了该标签,则它会正确验证,因此似乎与之相关。我不完全确定是我的XML还是我使用的软件引起了该问题,但我宁愿保留出于文档目的。

我在下面包括了XML和XSD。这些是简短的示例,代表实际的XML和XSD,它们是专有的并包含PHI。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Root xmlns:ns2="http://tempuri.org/XMLSchema.xsd">
    <ns2:Fruit>Apple</ns2:Fruit>
    <ns2:Amount>3</ns2:Amount>
</ns2:Root>

XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="Root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Fruit" type="Fruit_Type"/>
        <xs:element name="Amount" type="xs:int">
          <xs:annotation>
            <xs:documentation>
              Amount of Fruit
            </xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="Fruit_Type">
    <xs:annotation>
      <xs:documentation>Testing
      </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value = "Apple"/>
      <xs:enumeration value = "Banana"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

0 个答案:

没有答案