3

多数の記事の詳細を含む xml ファイルがあります。

ここまでで、XML と XSD を作成しました。XSD は次のとおりです。

  <xs:simpleType name="ArticleKey">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Key1" />
      <xs:enumeration value="Key2" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="Articles">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="Article">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Key" type="ArticleKey" />
              <xs:element name="Title" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

クラス オブジェクトも手動で作成しました。

public class Article
{
    public ArticleKey Key { get; set; }

    public string Title { get; set; }
}

これを行うには、次のように列挙型 'ArticleKey' を個別に作成する必要もありました。

public enum ArticleKey
{
    Key1,
    Key2
}

ただし、これは明らかに、XSD 内およびスタンドアロンの列挙型として重複した列挙型の値を維持することにつながります。

2 つをリンクしてメンテナンスの問題を回避する方法はありますか、それとも簡単ですか?

4

1 に答える 1

1

それらを個別に維持している場合は、それで十分だと思います。

ただし、別の方法として、C# クラスからすべての xsd を生成して、重複する作業をすべて削除することはできますか。

xsd.exe を使用してこれを行うことができます (VS インストールから)。This SO questionはそれをより完全にカバーしています。

于 2013-10-17T10:54:21.593 に答える