2016-10-20 7 views
0

プロパティxmlファイルの特定のキーに値としてキーと値のペアのリストを保存します。Java XMLプロパティのリスト

は、たとえば次の点を考慮

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> 
<properties> 
    <entry key="led.color"> 
     <color key="r">0</color> 
     <color key="g">100</color> 
     <color key="b">0</color> 
    </entry> 
</properties> 

私の最初のアプローチは、Stringとしてled.colorの値を取得し、地図に変換することでした。しかし、次の例外を除いて検索が失敗しました。

原因:org.xml.sax.SAXParseException; lineNumber:22; columnNumber:20;要素タイプ "color"を宣言する必要があります。

これは色がDTDで宣言されていないために検証が失敗するためです。

このようなタスクを処理する方法や、この特定の値の検証を回避する方法はありますか?

これは参照するDTDです:

<!-- 
    Copyright 2006 Sun Microsystems, Inc. All rights reserved. 
--> 
<!-- DTD for properties --> 
<!ELEMENT properties (comment?, entry*) > 
<!ATTLIST properties version CDATA #FIXED "1.0"> 
<!ELEMENT comment (#PCDATA) > 
<!ELEMENT entry (#PCDATA) > 
<!ATTLIST entry key CDATA #REQUIRED> 
+0

を置くために、あなたのカスタムを構築することができますDTDまたはXSD –

+0

これについての参考資料はありますか? –

+0

Hmm。 Google? "DTDを書く方法"? – GhostCat

答えて

0

あなたの新しいxmlファイル:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE properties SYSTEM "properties.dtd"> 
<properties> 
    <entry key="led.color"> 
    <color key="r">0</color> 
    <color key="g">100</color> 
    <color key="b">0</color> 
    </entry> 
</properties> 

properties.dtdファイルと同じディレクトリに

<?xml encoding="UTF-8"?> 

<!ELEMENT properties (entry)> 
<!ATTLIST properties xmlns CDATA #FIXED ''> 

<!ELEMENT entry (color)+> 
<!ATTLIST entry xmlns CDATA #FIXED '' key NMTOKEN #REQUIRED> 

<!ELEMENT color (#PCDATA)> 
<!ATTLIST color xmlns CDATA #FIXED '' key NMTOKEN #REQUIRED> 
関連する問題