0

xsd.exe で XML エンティティ クラスを生成するために使用した xsd ファイルがあります。私が遭遇している問題は、数値フィールドに追加されたスペースです。スキーマの特定のセクションは次のようになります。

<xs:simpleType name="MyNumber">
    <xs:restriction base="xs:token">
      <xs:pattern value="\d{1,9}"/>
    </xs:restriction>
</xs:simpleType>

この数値には、1、123、123456、または 123456789 のような値が含まれている必要があります。基本的には、0 から 999999999 までの任意の数値です。問題は、値がデータベースに char(9) として格納されるため、最後にスペースが追加されることです。値が 9 文字未満の場合。

xsd.exe に制限が含まれるようにスキーマ ファイルを変更する方法があるかどうか疑問に思っています。ツールはかなり限られているように見えるので、そうではないと思います。現在のトークンとパターンの代わりに、minValue、maxValue を int として試します。うまくいけば、うまくいきます。誰かがすぐに知った場合に備えて、これを公開したかっただけです。ありがとう。

更新:制限に追加しようとしたことを忘れていまし <xs:whiteSpace value="collapse"/>たが、それも機能しませんでした。

4

2 に答える 2

0

xsd.exe はこれをまったくサポートしていないようです。int を使用できますが、minValue と maxValue も強制されません。制約を強制するコードを追加することになりました。

于 2013-07-12T18:11:56.670 に答える