1

XML では、次のように、Q の可変数の属性とそれに続く数値を使用できます。

<recognitionPattern Q0="12.5" Q1="12.5" Q2="12.5" Q3="12.5" Q4="12.5" Q5="12.5" Q6="12.5" Q7="12.5"/>

私の現在のソリューションは次のようになります。

<xs:complexType name="PerQuarterDoubleHack"> <!-- YUCK! /> -->
<xs:attribute name="Q0"                 type="xs:double"       />
<xs:attribute name="Q1"                 type="xs:double"       />
<xs:attribute name="Q2"                 type="xs:double"       />
<xs:attribute name="Q3"                 type="xs:double"       />
<xs:attribute name="Q4"                 type="xs:double"       />
<xs:attribute name="Q5"                 type="xs:double"       />
<xs:attribute name="Q6"                 type="xs:double"       />
<xs:attribute name="Q7"                 type="xs:double"       />
</xs:complexType>

多くの正規表現が値に適用されているのを見てきましたが、属性名はありませんでした。XML を変更する以外に選択肢はありますか?

4

2 に答える 2

1

XML スキーマでは、属性に検証を適用することはできず、そののみに適用できます。最善の策は、可能であれば、XML を次の行に沿ったものに変更することです。

<recognitionPattern>
    <quarter id="0">12.55</quarter> <!-- equivalent to Q0 -->
    <quarter id="1">12.55</quarter> <!-- equivalent to Q1 -->
    <quarter id="2">12.55</quarter> <!-- equivalent to Q2 -->
    <quarter id="3">12.55</quarter> <!-- equivalent to Q3 -->
</recognitionPattern>
于 2012-07-11T13:54:36.750 に答える
0

これは非常に貧弱な XML 設計です。一般に、XML 処理ツールは、アプリケーションがすべての要素と属性の名前を静的に認識していると想定しており、そうでない場合、アプリケーションの作成は困難になります。機会があれば、デザインを変更してください。

于 2012-07-11T16:33:41.383 に答える