3

データコントラクトのシリアライズされたクラスのスキーマを作成/推測したいと思っています。"http://schemas.microsoft.com/2003/10/Serialization/"名前空間のxsdファイルはありますか?

属性[DataContract(IsReference = true)]を使用すると、シリアライザは同じオブジェクトインスタンスを参照するために属性z:Id="i2"z:Ref="i2"を注入しています。
両方の属性はhttp://schemas.microsoft.com/2003/10/Serialization/名前空間です。

質問

  • 私は私のスキーマにインポートできシリアライザで使用される名前空間のXSDスキーマファイルはありますか?
  • 今のところ私はこれらの属性をxs:ID/xs:IDREFのペアとして定義しています。あれは正しいですか?

ありがとうございます。

答えて

5

xsdスキーマは、hereと記載されています。データ契約のシリアライズスキーマのセクションを参照してください。しかし、あなたの属性を探すなら、そこには属性はありません - ドキュメントのバグ!

完全なスキーマを取得するには、thisthisを参照してください.WSDLタイプの中には、正しいスキーマがあります。属性に関するあなたの仮定については、はい、あなたは正しいです。

私は念のために、ここでそれをインライン化しています:

<?xml version="1.0"?> 
<xs:schema xmlns:tns2="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="anyType" nillable="true" type="xs:anyType"/> 
    <xs:element name="anyURI" nillable="true" type="xs:anyURI"/> 
    <xs:element name="base64Binary" nillable="true" type="xs:base64Binary"/> 
    <xs:element name="boolean" nillable="true" type="xs:boolean"/> 
    <xs:element name="byte" nillable="true" type="xs:byte"/> 
    <xs:element name="dateTime" nillable="true" type="xs:dateTime"/> 
    <xs:element name="decimal" nillable="true" type="xs:decimal"/> 
    <xs:element name="double" nillable="true" type="xs:double"/> 
    <xs:element name="float" nillable="true" type="xs:float"/> 
    <xs:element name="int" nillable="true" type="xs:int"/> 
    <xs:element name="long" nillable="true" type="xs:long"/> 
    <xs:element name="QName" nillable="true" type="xs:QName"/> 
    <xs:element name="short" nillable="true" type="xs:short"/> 
    <xs:element name="string" nillable="true" type="xs:string"/> 
    <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte"/> 
    <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt"/> 
    <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong"/> 
    <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort"/> 
    <xs:element name="char" nillable="true" type="tns2:char"/> 
    <xs:simpleType name="char"> 
     <xs:restriction base="xs:int"/> 
    </xs:simpleType> 
    <xs:element name="duration" nillable="true" type="tns2:duration"/> 
    <xs:simpleType name="duration"> 
     <xs:restriction base="xs:duration"> 
      <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?"/> 
      <xs:minInclusive value="-P10675199DT2H48M5.4775808S"/> 
      <xs:maxInclusive value="P10675199DT2H48M5.4775807S"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:element name="guid" nillable="true" type="tns2:guid"/> 
    <xs:simpleType name="guid"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:attribute name="FactoryType" type="xs:QName"/> 
    <xs:attribute name="Id" type="xs:ID"/> 
    <xs:attribute name="Ref" type="xs:IDREF"/> 
</xs:schema> 
+0

は本当にたくさん助け – Cid

関連する問題