【问题标题】:XSD restricting complex type elementXSD 限制复杂类型元素
【发布时间】:2015-07-11 08:06:09
【问题描述】:

我有一个如下所示的 XSD 定义:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="ARTICLES">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="ARTICLE">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="NAME" type="xs:string" />
              <xs:element name="TYPE" type="xs:unsignedByte" />
              <xs:element name="LENGTH" type="xs:unsignedByte" />
              <xs:element name="WIDTH" type="xs:unsignedShort" />
              <xs:element name="HEIGHT" type="xs:unsignedShort" />
              <xs:element maxOccurs="unbounded" name="PRICELIST">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="SALESCONTRACT" type="xs:string" />
                    <xs:element name="PRICE" type="xs:decimal" />
                    <xs:element name="VAT" type="xs:unsignedByte" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

一个 XML 可以包含 ATRICLES 的集合,每个 ARTICLE 可以有 1 个或多个 PRICELIST 条目

现在我想获取一个元素并限制值条目。即仅使用正则表达式或数字或长度。 使用 simpletype,我发现了很多使用模式标签的示例。 这将如何处理复杂类型?

问候,

瑞克

【问题讨论】:

    标签: validation xsd restriction complextype


    【解决方案1】:

    您可以简单地将使用xs:simpleType 找到的所有示例应用到您希望进一步约束的ARTICLE 的任何部分。例如,将NAME 的最大长度限制为 32 个字符:

              <xs:element name="NAME">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="32"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多