2012-02-15 10 views
2

謝罪もしこれが愚かな質問であれば、私は今までxmlで何もしていません。xsd type = "anySimpleType"属性の場合

いくつかのxmlをタイプobjectのプロパティを持つクラスにデシリアライズできます。このプロパティはint,​​またはstringです。 XMLでは、このプロパティを属性として定義したいと思います。私はこのような何かを見て、私のXSDを期待していた:「:anySimpleTypeのXSD」

<xsd:complexType name="MyClass"> 
    <xsd:attribute name="MyProperty" type="xsd:anySimpleType" /> 
</xsd:complexType> 

しかし、Visual Studioのインテリセンスがオプションを、リストされません。これはインテリセンスの問題ですか、私は何か本質的に間違っていますか?

+0

http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/index.jsp?topic=/com.ibm.websphere.wps.620.doc/doc/cbo_usinganysimpl.html –

答えて

4

xs:anySimpleType型の属性を持つことは合法ですが、代わりにxs:stringを使用します。これは、そのような属性がどのように振る舞うべきかについて、多くの質問が残されているからです。列挙型や正規表現を使用して制限することはできません。アイデンティティ制約などでそれを使用すると、何が起こるかはほとんど定義されていません。検証はxs:stringの場合とまったく同じですが、かなり奇妙で、実装間で変わる可能性があります。

後でstring、int、URIなどのサブタイプを定義する場合は、xs:anySimpleTypeは意味があると主張できます。しかし、それが私が好意的に考えることができる唯一のケースです。

3

xsd:anySimpleType(およびxsd:anyType)は、特別ないわゆるur-typeの定義です(前者は単純なur型です)。それにもかかわらず、XSDのデータ型に関しては、いつもthis diagramを指摘しています。

ちょうどこの特別なことですが、これらのタイプがIntellisenseに表示されない理由の一部と考えています。私は別の理由は、がデフォルトで割り当てられているということです。つまり、型を設定しないと、属性に関係なくanySimpleTypeになります。

しかし、この説明は他のエディタ(Eclipseもその中の1つです)では動作しません。そこでは、Intellisenseでこれらのすべての型を取得しました。質問はありません。

+0

これは有効です。 xsd? – ajbeaven

+0

はい、完全に有効です。 –

関連する問題