加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xsd – 对xml模式中的元素都有属性和限制

发布时间:2020-12-16 08:04:13 所属栏目:百科 来源:网络整理
导读:我正在尝试编写一个将验证这个xml的xml模式: date isodate="2007-03-14"14 march 2007/date 属性isodate应该将其类型设置为xs:date,内容最多为50个字符。 我想知道是否可以在一个块中编写xml模式定义,这可能是: xs:element name="date" minOccurs="0" m
我正在尝试编写一个将验证这个xml的xml模式:
<date isodate="2007-03-14">14 march 2007</date>

属性isodate应该将其类型设置为xs:date,内容最多为50个字符。

我想知道是否可以在一个块中编写xml模式定义,这可能是:

<xs:element name="date" minOccurs="0" maxOccurs="1">  
  <xs:complexType>  
    <xs:simpleContent>  
      <xs:restriction base="xs:string">  
        <xs:minLength value="0"/>  
        <xs:maxLength value="50"/>  
      </xs:restriction>  
      <xs:attribute name="isodate" type="xs:date" use="required"/>  
    </xs:simpleContent>  
  </xs:complexType>  
</xs:element>

上面的代码不起作用,我不知道为什么。我找到的解决方法是将限制部分分解成一个单独的类型,并链接如下:

<xs:simpleType name="reviewDate">  
    <xs:restriction base="xs:string">  
        <xs:minLength value="0"/>  
        <xs:maxLength value="50"/>  
    </xs:restriction>  
</xs:simpleType>

<xs:element name="date" minOccurs="0" maxOccurs="1">  
    <xs:complexType>  
        <xs:simpleContent>  
            <xs:extension base="reviewDate">  
                <xs:attribute name="isodate" type="xs:date" use="required"/>  
            </xs:extension>  
        </xs:simpleContent>  
    </xs:complexType>  
</xs:element>

我的问题是如何在一个块中编写定义,以便模式更可读,并且不引用模式其他部分的类型。

您不能将限制和扩展合并到一个XSD块中。您使用“ReviewDate”简单类型的解决方案是我知道的最佳解决方案。

渣子

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读