teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

不要情報の削除

2018/12/21 06:45

投稿

hironobu_
hironobu_

スコア6

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ```xsd
7
7
  <?xml version="1.0" encoding="utf-8"?>
8
- <xs:schema id="JMC_XMLSchema_201812111740_B"
8
+ <xs:schema id="XMLSchema_201812111740_B"
9
9
  elementFormDefault="qualified"
10
10
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
11
11
  xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

1

記事の訂正

2018/12/21 06:45

投稿

hironobu_
hironobu_

スコア6

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,48 @@
2
2
  Visual Studio 2017でC#を使い、XSD(XML Schema)をDataSetに読み込み、データを格納した上で、XMLデータとして出力するプログラムを作成しています。しかし、このXSD内で階層が3階層以上になると、作成されるXMLの階層がXSDの通りにならないという問題が発生しています。
3
3
 
4
4
  ###XSDを文字列で読み込み、DataSetにセットした上で、Tablesの各テーブルにデータを入れていく処理
5
+
6
+ ```xsd
7
+ <?xml version="1.0" encoding="utf-8"?>
8
+ <xs:schema id="JMC_XMLSchema_201812111740_B"
9
+ elementFormDefault="qualified"
10
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
11
+ xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
12
+ <xs:element name="施設" msdata:IsDataSet="true">
13
+ <xs:complexType>
14
+ <xs:sequence>
15
+ <xs:element name="施設情報" minOccurs="0" maxOccurs="1">
16
+ <xs:complexType>
17
+ <xs:sequence>
18
+ <xs:element name="基本情報" minOccurs="0" maxOccurs="1">
19
+ <xs:complexType>
20
+ <xs:sequence>
21
+ <xs:element name="科目" minOccurs="0" maxOccurs="1">
22
+ <xs:complexType>
23
+ <xs:sequence>
24
+ <xs:element name="その他" minOccurs="0" maxOccurs="1">
25
+ <xs:complexType>
26
+ <xs:sequence>
27
+ <xs:element name="その他" type="xs:string" />
28
+ </xs:sequence>
29
+ </xs:complexType>
30
+ </xs:element>
31
+ </xs:sequence>
32
+ </xs:complexType>
33
+ </xs:element>
34
+ </xs:sequence>
35
+ </xs:complexType>
36
+ </xs:element>
37
+ </xs:sequence>
38
+ </xs:complexType>
39
+ </xs:element>
40
+ </xs:sequence>
41
+ </xs:complexType>
42
+ </xs:element>
43
+ </xs:schema>
44
+
45
+ ```
46
+
5
47
  ```cs
6
48
  // XSDを読み込む
7
49
  var xml = new DataSet("XmlSchema");
@@ -22,4 +64,31 @@
22
64
  }
23
65
  var xmlData = xml.GetXml();
24
66
  ```
25
- 上記記述を行った場合、一番最後い
67
+ 上記記述を行った場合、xmlDataに格納される値として
68
+ ```xml
69
+ <施設>
70
+ <施設情報 />
71
+ <基本情報 />
72
+ <科目>
73
+ <その他>
74
+ <その他>test</その他>
75
+ </その他>
76
+ </科目>
77
+ </施設>
78
+ ```
79
+ が格納されます。この形ではなく
80
+ ```xml
81
+ <?xml version="1.0" encoding="utf-8"?>
82
+ <施設>
83
+ <施設情報>
84
+ <基本情報>
85
+ <科目>
86
+ <その他>
87
+ <その他>test</その他>
88
+ </その他>
89
+ </科目>
90
+ <基本情報>
91
+ </施設情報>
92
+ </施設>
93
+ ```
94
+ というような形式をイメージしているのですが、お知恵を拝借できませんでしょうか?