是否有办法针对preferences验证XSD个对象?由于preferences文件在我看来用作XML文件的基础,因此应该可以这样做。任何有关该主题的建议都将受到高度赞赏。
答案 0 :(得分:0)
似乎不是Java preferences.dtd的官方XSD版本,但它很容易创建一个:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="preferences">
<xs:complexType>
<xs:sequence>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="map"/>
<xs:element name="node" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="system"/>
<xs:enumeration value="user"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="EXTERNAL_XML_VERSION" default="0.0"/>
</xs:complexType>
</xs:element>
<xs:element name="map">
<xs:complexType>
<xs:sequence>
<xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="key" use="required"/>
<xs:attribute name="value" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="node">
<xs:complexType>
<xs:sequence>
<xs:element ref="map"/>
<xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>