如何验证XML架构使用=“必需”?

时间:2018-01-31 09:44:19

标签: xml

<?xml version="1.0" encoding="utf-8"?>
<ConfigurationFile xmlns:xs="http://www.w3.org/2001/XMLSchema"         xmlns:x="urn:prop">
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org   /2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="BASE">
<xs:complexType>
  <xs:sequence>
    <xs:element name="PORT" type="xs:string" minOccurs="0" />
    <xs:element name="LOG" type="xs:string" minOccurs="0" />
    <xs:element name="MODULES" minOccurs="0" maxOccurs="unbounded">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="MODULE" minOccurs="1" maxOccurs="unbounded">
            <xs:complexType>
              <xs:attribute name="Name" type="xs:string" />
              <xs:attribute name="Library" type="xs:string" />
              <xs:attribute name="Launch_mode" type="xs:string" />
              <xs:attribute name="value_min" type="xs:integer" use="required" />
              <xs:attribute name="value_max" type="xs:integer" use="required" />
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
 </xs:complexType>
</xs:element>
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
 <xs:complexType>
  <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="BASE" />
  </xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
 <x:BASE>
    <PORT>10000</PORT>
    <LOG>./wa_log.csv</LOG>
    <MODULES>
            <!-- To Load on demand put Launch_mode= "ondemand" and for On start put it as Launch_mode="startup" -->
            <MODULE Name="printer" Library="lib.so" Launch_mode="startup">
               <DEVICES>
                  <DEVICE Name="1" Product_ID="0x0639" Vendor_ID="0x13ea"  value_max="mit"/>
               </DEVICES>
            </MODULE>
    </MODULES>
</x:BASE>
</ConfigurationFile>

我根据需要声明了属性名称“value_min”,其类型为整数。我从Modules中删除了value_min,并将字符串分配给value_max以验证它是否抛出错误。我在浏览器中加载此XML文件,但它不会引发任何错误。那么我该如何验证呢?

1 个答案:

答案 0 :(得分:0)

我不知道任何根据架构验证XML文件的浏览器。验证是您需要明确调用的,它不会因为存在模式而发生。

我无法建议您在整个处理渠道中进行验证的地方,只有您可以对此进行评估。通常,当XML文件首次到达生产系统时,以及每当它发生变化时,它都会做得最好,除非您完全信任进行更改的过程。