質問

(これは切開例であり、XSDが提案複雑なモデルをサポートしていませんでした)私達は性質上、制約を記述するためのメタデータとしてXMLを使用するために探しているあまり詳細に入るがなければ、の検討されている2つのオプションがあります次のXML strucuturesより良い理にかなっている?

オプション1)

<?xml version="1.0" encoding="us-ascii"?>
<Properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <Property type="string">
      <name>quanitity</name>
      <contraints>
         <contraint type="isRequired">
            <value>true</value>
         </contraint>
         <contraint type="regex">
            <value>^[0-9]$</value>
         </contraint>
         <contraint type="regex">
            <value>^[a-zA-Z]$</value>
         </contraint>
      </contraints>
   </Property>
</Properties>

オプション2)

<?xml version="1.0" encoding="us-ascii"?>
<Properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <Property type="string">
      <name>quantity</name>
      <IsRequired>true</IsRequired>
      <Regex>^[0-9]$</Regex>
      <Regex>^[a-zA-Z]$</Regex>
   </Property>
</Properties>
役に立ちましたか?

解決

XMLジョブが(やることになっているすべてのものをXML後で)データを記述するのより良い仕事をして、そして読みすることがより簡単に、より少ない冗長であるとして

私はおそらくオプション#2のために行くだろう。オプション#1は私の好みのために<name><value>タグを有することに少し近います。

他のヒント

柔軟性を高めるために、私は#1となるだろう。これは、あなたが制約とカスタムルールの多くの異なる種類を追加することができます。

これは、あなたが/プロセスXMLを解析する方法に依存し、あなたがそれを検証できるようにする場合。

ビューの検証の観点からは、一方で、タグの内容は、特定のタイプ(例えば、正規表現を)持っているだろうとオプション2は、より良い選択である(あなたは、コンパイル時にXSDを経由して自動検証を検討している場合) <value>タグは正しい内容をチェックすることができませんでした。

あなたがSAXパーサを使用している場合は、タグに基づいて状態を切り替えることができても、私はおそらく、構文解析および処理に関するオプション2となるだろう。

個人的に、私は最初のものでいいと思う、私は中にエラーチェックを解析し、実行するコードを記述する方が簡単だろうと思う。それに加えて、意味的に私の脳に、より理にかなっています。

それは言った、私はどちらかは結構です、あなたはそれは個人の選択 "だ見つけることだと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top