0

XML をデータベースにインポートする必要があり、アプリケーションを使用した後、これらのデータに対して何らかの処理が行われ、これらの更新された値を使用して XML を生成する必要があります。

インポートして生成する必要があるxmlのXSDがあります。両方の種類の XML の XSD は同じままです。

ですから、それを行うための最良の方法を提案してください。

Book.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/books" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                        <xs:element name="author">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="name" type="xs:string" />
                                    <xs:element minOccurs="0" name="first-name" type="xs:string" />
                                    <xs:element minOccurs="0" name="last-name" type="xs:string" />
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="price" type="xs:decimal" />
                    </xs:sequence>
                    <xs:attribute name="genre" type="xs:string" use="required" />
                    <xs:attribute name="publicationdate" type="xs:date" use="required" />
                    <xs:attribute name="ISBN" type="xs:string" use="required" />
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Book.xml (インポートされたもの)

<?xml version="1.0" encoding="utf-8"?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.contoso.com/books">
  <book genre="Religious" publicationdate="2013-02-13" ISBN="SampleISBN">
    <title>Live and Let Live</title>
     <author>
      <name>Donald Allen</name>
      <first-name>Allen</first-name>
      <last-name>Donald</last-name>
    </author>
    <price>150</price>
  </book>
</bookstore>

上記の xml データに対して何らかの処理を行った後、特定の書籍の価格が 180 に更新され、これを再度 xml としてエクスポートすると、更新された価格は以下のサンプル XML のようになるはずです。

Book.xml (生成する必要があります)

<?xml version="1.0" encoding="utf-8"?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.contoso.com/books">
  <book genre="Religious" publicationdate="2013-02-13" ISBN="SampleISBN">
    <title>Live and Let Live</title>
     <author>
      <name>Donald Allen</name>
      <first-name>Allen</first-name>
      <last-name>Donald</last-name>
    </author>
    <price>180</price>
  </book>
</bookstore>
4

1 に答える 1

0

主なパスは 2 つあります。

  1. XSD を使用して xsd.exe を使用して C# クラスを作成し、次に XmlSerializer を使用して xml を .NET オブジェクトとの間で "変換" します。ドキュメントを見る

    xsd.exe yourxsd.xsd /classes

  2. または、LINQ to Xml を使用して Xml を読み取り、更新を行い、Xml をストアに書き戻します。(XSD は実際には必要ありません )

価格のみを更新する場合は 2、より多くのフィールドにアクセスする必要がある場合は 1 をお勧めします。組み合わせも可能です。

于 2013-02-14T08:30:32.517 に答える