我在 OS X 上使用 xmllint 来尝试针对 XSD 验证 XML 文件。
示例 XML 是:
<?xml version="1.0" encoding="UTF-8"?>
<volume_entries>
<volume_entry>
<period>2011-08-01</period>
<volume units="lb">15.23</volume>
<uuid>64091d84-2687-11dd-a4e9-daf105bfb8c2</uuid>
<serial_ident>31515-1251512</serial_ident>
<supplier>Supplier A</supplier>
<category type="wild_farmed">Wild farmed A</category>
<category type="procurement">Procurement option A</category>
<category type="latin_name">latin_name A</category>
<category type="wild_farmed">WILD CAUGHT</category>
</volume_entry>
</volume_entries>
Run Code Online (Sandbox Code Playgroud)
示例 XSD 是:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="volume_entries">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="volume_entry"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="volume_entry">
<xs:complexType>
<xs:sequence>
<xs:element ref="period"/>
<xs:element ref="volume"/>
<xs:element ref="uuid"/>
<xs:element ref="serial_ident"/>
<xs:element ref="supplier"/>
<xs:element ref="category"/>
<xs:element ref="category"/>
<xs:element ref="category"/> …Run Code Online (Sandbox Code Playgroud)