使用“限制日期”XSD编译错误

问题描述 投票:0回答:1

我实际上卡在xsd属性日期的作业,我想设置minInclusive和maxInclusive限制。这是我的代码(我的问题出现在:<--------):

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema%22%3E
   <xsd:element name="cdtheque">
     <xsd:complexType> <xsd:sequence minOccurs="0">
        <xsd:element name="cd">
          <xsd:complexType>
            <xsd:all>
               <xsd:element name="titre" type="xsd:string"/>
               <xsd:element name="style" type="xsd:string"/>
               <xsd:element name="artiste" type="xsd:string"/>
             </xsd:all>
           </xsd:complexType>
         </xsd:element>
       </xsd:sequence>
        <xsd:attribute type="xsd:date" name="date">   <--------
          <xsd:simpleType>
          <xsd:restriction base="xsd:date">  
            <xsd:minInclusive value="1990-01-01"/>
            <xsd:maxInclusive value="2030-01-01"/>
          </xsd:restriction>
        </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute type="xsd:string" name="proprietaire"/>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>

而我失败了:

xmllint --noout --schema ex3schema.xsd ex3.xml
ex3schema.xsd:15: element restriction: Schemas parser error : 
Element '{http://www.w3.org/2001/XMLSchema%7Dattribute': 
The content is not valid. Expected is (annotation?, simpleType?).
WXS schema ex3schema.xsd failed to compile

我是初学者,但是几天后我在许多互联网网站上查看,我一次又一次地检查了W3S上的语法。我仍然没有看到我的代码有什么问题,也许你们其中一个人可以找到它?

谢谢你的帮助。

xml date xsd attributes restriction
1个回答
1
投票

你的xsd:attribute元素有type属性和xsd:simpleType孩子。你不能两者兼得。

不是一个非常好的错误消息。当您收到错误的错误消息时,可能值得尝试使用不同的架构处理器。

Xerces说:

属性'date'具有'type'属性和匿名'simpleType'子元素。其中只有一个属性允许。

撒克逊说:

test.xsd第14行第56列的xsd:attribute出错:<simpleType>元素不能显示为带有<xsd:attribute>属性的@type的子元素

我认为,对于这些消息中的任何一个,你都不会在这里提出这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.