2016-03-31 34 views

回答

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> 
+0

我希望我不要誤會什麼,但對[javadoc的( https://docs.oracle.com/javase/8/docs/api/java/util/prefs/Preferences.html)的偏好類有部分指向http://java.sun.com/dtd/preferences .dtd。這仍然足夠。訪問給定的鏈接將下載給定的DTD。 –

+0

也許是我誤解了你的問題。我認爲要驗證首選項XML,您不希望使用* DTD *(哪*是*可用),而是* XSD *(它是*不可*)。 – kjhughes

+0

我將編輯這個問題,因爲它似乎並不清楚我需要什麼:(所以我需要一種方式,給定的首選項文件具有所需的格式。所以我需要確保:給定的屬性只有給定的格式我們只說一個給定的價值,屬性剛剛給出了名字等等 –