【问题标题】:Make an xsd element mandatory强制 xsd 元素
【发布时间】:2014-09-18 07:46:22
【问题描述】:

我有一个 xml 文件,我正在尝试针对一个 xsd 文件进行验证。工作正常。我想修改 xsd 以强制元素值。如果元素 FirstName 为空白 (<FirstName></FirstName>) 验证 xml 文件,我希望它失败,我该怎么做?

xml 文件

<?xml version="1.0" encoding="utf-8" ?>
<Patient>
   <FirstName>Patient First</FirstName>
   <LastName>Patient Last</LastName>
</Patient>

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="Patient">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="FirstName" type="xs:string" />
        <xs:element name="LastName" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

【问题讨论】:

  • 也许这个question 讨论了不允许空字符串的架构限制将如何提供帮助。
  • @Chandru Nagrani 你解决了这个问题吗?如果是,你是怎么做到的?

标签: xml xsd


【解决方案1】:

强制

属性 minOccurs 可选。指定任何元素可以在父元素中出现的最小次数。该值可以是任何数字 >= 0。默认值为 1。 (默认为必填)

<!-- mandatory true-->
<xs:element name="lastName" type="xs:string" />
<!-- mandatory false-->
<xs:element name="lastName" type="xs:string" minOccurs="0" />

非空

<xs:element name="lastName" type="xs:string" >
  <xs:simpleType>
     <xs:restriction base="xs:string">
       <xs:minLength value="1"/>
     </xs:restriction>
  </xs:simpleType>
</xs:element>

【讨论】:

    猜你喜欢
    • 2020-01-07
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多