- PR -

.NETで簡単XMLのVB2005への対応..

投稿者投稿内容
ディンギー
会議室デビュー日: 2006/02/13
投稿数: 7
投稿日時: 2006-02-15 13:17
ジャンヌネットさん、お返事ありがとうございます。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim addressBook1 As 住所録 = New 住所録
addressBook1.個人.Add個人Row("A0001", "二平二郎", "足立区1-2-3")
addressBook1.個人.Add個人Row("A0002", "三陸三郎", "板橋区4-5-6")
addressBook1.個人.Add個人Row("A0003", "四日市四郎", "江戸川区7-8-9")
で、最初の住所録のところが未定義で赤線がついていたのが、AddressBook.vbを読み込んで赤線が消えました。が。addressBook1.個人.Add個人Row(....に未定義の赤線がついてAdd個人はSystemArrayのメンバではないとのエラーがでます。その他、WriteXmlはWindowsAppcation1.住所録のメンバではありませんというエラーがでます。AddressBook.xsdの中身を見ましたがお手本と変わりありません。もちろん、Imports System.Xmlは冒頭で宣言しています。自分なりに調べていますが今のところ手がかりがありません。addressBook.vbをみると冒頭は
Partial Public Class 住所録
Private 個人Field() As 住所録個人

'''<remarks/>
<System.Xml.Serialization.XmlElementAttribute("個人")> _
Public Property 個人() As 住所録個人()
..となっていますが、クラスがちゃんと作られていないのでしょうか?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-02-16 13:53
諸農です。

試してみました。
VB/CS共にXSDからDataSetを作成してみました。

引用:

んで赤線が消えました。が。addressBook1.個人.Add個人Row(....に未定義の赤線がついてAdd個人はSystemArrayのメンバではないとのエラーがでます。その他、WriteXmlはWindowsAppcation1.住所録のメンバではありませんというエラーがでます。



このようなエラーは出ませんでした。

作成した*.VB/*.CSのファイルをプロジェクトに追加し、コードを書かずに先にビルドを一度行うと、ファイル内で定義されているデータセットコントロールが再利用可能なコントロールとしてツールボックスに登録されます。このコントロールをフォームに貼り付けてみても良いかも知れません。

引用:

ありません。addressBook.vbをみると冒頭は
Partial Public Class 住所録
Private 個人Field() As 住所録個人

'''<remarks/>
<System.Xml.Serialization.XmlElementAttribute("個人")> _
Public Property 個人() As 住所録個人()
..となっていますが、クラスがちゃんと作られていないのでしょうか?



XSDユーティリティで /c を指定しましたね。
datasetを指定してください。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ディンギー
会議室デビュー日: 2006/02/13
投稿数: 7
投稿日時: 2006-02-16 16:53
諸農さん、お返事ありがとうございます。

addressbook.vbをつくった後にビルドしてツールバーからデータセットをフォームに持っていこうとしましたが、型指定されたデータセットに何の名前もでないので失敗したみたいです。でも、2005でもOKとわかりましたのでやり方を見直して試してみます。ありがとうございました。
ディンギー
会議室デビュー日: 2006/02/13
投稿数: 7
投稿日時: 2006-02-16 20:13
諸農さんのおっしゃった
”XSDユーティリティで /c を指定しましたね。datasetを指定してください。”の意味がxsd.exeの解説を読んでて今、ようやく理解できました。そしたらちゃんと動きました。じゃんぬねっとさん、 諸農さん、本当にご指導ありがとうございました。

なお、XMLスキーマのテンプレートはEXPRESSにはないのですが、いったん、〜.vbをつくって追加するとEXPRESSでも動きました。

スキルアップ/キャリアアップ(JOB@IT)