最小の長さのxs:string型の属性を持つ方法を探しています。
私はそれを行う方法を見つけましたhereしかし、解決策は新しいタイプを導入することを含む。
私はXMLマッピング/バインディングを使用しているので、光沢のある新しいクラス(その存在と追加のメソッド呼び出しを混乱させます)が全く役に立たなくなります。
カスタムタイプのないXSDの属性を制限する
カスタムタイプの導入を避ける方法はありますか?
最小の長さのxs:string型の属性を持つ方法を探しています。
私はそれを行う方法を見つけましたhereしかし、解決策は新しいタイプを導入することを含む。
私はXMLマッピング/バインディングを使用しているので、光沢のある新しいクラス(その存在と追加のメソッド呼び出しを混乱させます)が全く役に立たなくなります。
カスタムタイプのないXSDの属性を制限する
カスタムタイプの導入を避ける方法はありますか?
あなたは新しい(名前の)型を宣言する必要はありません - ちょうどあなたの属性定義内の制限を置く:
<xs:element name="foo">
<xs:complexType>
<xs:attribute name="bar">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
ありがとう、Filburt。このようにして、私は新しいタイプを導入する必要はありません。残念ながら、JAXBクラス(JavaのXMLバインディング)を生成する場合、制限はコメントにのみ残され、コード自体には強制されないため、無効なオブジェクトのアンマーシャリングは引き続き機能します。しかし、違反は検証中に認識されるため、生成後にコード自体を修正することなく制限を適用する方法があります(これは、各ビルド時にコードが生成されるため苦痛です)。 – kostja
Filburt、私は私の長いAFKのための本当にすみません。それは理由があった。あなたの投稿が無視されたときの気持ちを知っていますので、ご迷惑をおかけください。 – kostja