[英]generating xml based on xsd schema (with .NET)
我想根據我的xsd架構(cap.xsd)生成一個xml文件。 我找到了這篇文章,並按照說明操作: 使用XSD文件生成XML文件
xml文件有一個包含字符的元素,但架構說必須有數字(雙)
無論如何,我沒有看到xsd架構對生成的xml有什么影響? 如果我刪除了架構,則仍會創建xml文件。 並且在此行創建了xml文件:
var data = new Program {Time =“abc”,Source =“443543253243”,};
..而不是我的架構:
怎么了?
我的課:
namespace testapp
{
using System.IO;
using System.Xml.Serialization;
public class Program
{
public string Time;
public string Source;
public static void Main()
{
var data = new Program
{
Time = "abc",
Source = "buffalo",
};
var serializer = new XmlSerializer(typeof(Program));
using (var stream = new StreamWriter("E:\\cap_test.xml"))
{
serializer.Serialize(stream, data);
}
}
}
}
我的架構:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="cap" type="capType"/>
<xsd:complexType name="capType">
<xsd:sequence>
<xsd:element name="tel" type="telType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="telType">
<xsd:sequence>
<xsd:element name="time" type="xsd:double"/>
<xsd:element name="source" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
和我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Program xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Time>abc</Time>
<Source>buffalo</Source>
</Program>
您應該使用從xsd生成的類,而不是使用Program
。 我跑的時候
xsd /classes schema.xsd
它創建一個schema.cs
文件。 當我在我的項目中包含它時,我可以編寫這段代碼:
class Program
{
public static void Main()
{
var data = new capType { tel = new[] {
new telType { source = "buffalo", time = 1 }
} };
var serializer = new XmlSerializer(typeof(capType));
using (var stream = new StreamWriter(@"E:\cap_test.xml"))
{
serializer.Serialize(stream, data);
}
}
}
寫道:
<?xml version="1.0" encoding="utf-8"?>
<cap xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tel>
<time>1</time>
<source>buffalo</source>
</tel>
</cap>
在schema.cs
time
屬性為double
類型的事實意味着您只能輸入有效數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.