现在的位置: 首页 > 综合 > 正文

使用XSD建立XML小记

2013年12月17日 ⁄ 综合 ⁄ 共 2481字 ⁄ 字号 评论关闭

首先使用SDK中的XSD.exe生成C#或者VB.net的Class,例如

 

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd""2.0.50727.42")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute(
"code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType 
= true, Namespace = "http://www.vivotek.com/Surveillance/ST7501")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace 
= "http://www.vivotek.com/Surveillance/ST7501", IsNullable = false)]
    
public partial class ClientHello
    
{

        
private string versionField;

        
private string msgField;

        
private string myNameField;

        
private string myRefNameField;

        
/// <remarks/>
        public string Version
        
{
            
get
            
{
                
return this.versionField;
            }

            
set
            
{
                
this.versionField = value;
            }

        }


        
/// <remarks/>
        public string Msg
        
{
            
get
            
{
                
return this.msgField;
            }

            
set
            
{
                
this.msgField = value;
            }

        }


        
/// <remarks/>
        public string MyName
        
{
            
get
            
{
                
return this.myNameField;
            }

            
set
            
{
                
this.myNameField = value;
            }

        }


        
/// <remarks/>
        public string MyRefName
        
{
            
get
            
{
                
return this.myRefNameField;
            }

            
set
            
{
                
this.myRefNameField = value;
            }

        }

    }

 

然后就可以使用这个Class生成xml

 

ClientHello mESTClientHello = new ClientHello();

mESTClientHello.Msg 
= "dddd";
mESTClientHello.MyName 
= "ffaffaf";
mESTClientHello.MyRefName 
= "fsfewfrewfwe";
mESTClientHello.Version 
= "1.0";

System.Xml.Serialization.XmlSerializer serializer 
= new System.Xml.Serialization.XmlSerializer(typeof(KTMonitor.Entity.ST7501.ClientHello));
//System.IO.TextWriter writer = new System.IO.StreamWriter("po2.xml");      //写文件
//writer.Close();

System.IO.Stream stream 
= new System.IO.MemoryStream();

serializer.Serialize(stream, mESTClientHello);

string mResult = "";


//将二进制流写入数组
byte [] array = new byte[stream.Length];
stream.Position 
= 0;
stream.Read(array, 
0, (int)stream.Length);
//关闭流
stream.Close();

mResult 
= System.Text.Encoding.Default.GetString(array);        //获取XML字串

抱歉!评论已关闭.