2011-04-19 10 views

cevap

12

Sanırım bunu sizin için hazırladım. MSDN

Numune kullanımından XmlSampleGenerator kullanın:

XmlTextWriter textWriter = new XmlTextWriter("po.xml", null); 
textWriter.Formatting = Formatting.Indented; 
XmlQualifiedName qname = new XmlQualifiedName("PurchaseOrder",  
          "http://tempuri.org"); 
XmlSampleGenerator generator = new XmlSampleGenerator("po.xsd", qname); 
genr.WriteXml(textWriter); 
+0

Üzgünüz üretmelidir, ancak başka fikirleriniz var mı? XMLSampleGenerator kullanamıyorum. – kipregel

+0

Baktın mı? XmlSamplegenerator! = Xsd.exe, yeni başlayanlar için. MSDN kelimesinin bir köprü olduğunu unutmayın ... [XmlSamplegenerator için kaynak kodu] (http://msdn.microsoft.com/en-us/library/aa302296.aspx) – sehe

+0

Bu örnek için teşekkür ederim, sadece ben gerekli. Xsd veya xml diske saklamak istemiyorum. –

3

sorun çözmüştür.

private void CreateXML(XmlNode xsdNode, XmlElement element, ref XmlDocument xml) 
    { 
     if (xsdNode.HasChildNodes) 
     { 
      var childs = xsdNode.ChildNodes; 
      foreach (XmlNode node in childs) 
      { 
       XmlElement newElement = null; 
       if (node.Name == "xs:element") 
       { 
        newElement = xml.CreateElement(node.Attributes["name"].Value); 
        CreateXML(node, newElement, ref xml); 
        if (element == null) 
         xml.AppendChild(newElement); 
        else 
         element.AppendChild(newElement); 
       } 
       if (node.Name == "xs:attribute") 
       { 
        element.SetAttribute(node.Attributes["name"].Value, ""); 
       } 
       if ((node.Name == "xs:complexType") || (node.Name == "xs:sequence") || (node.Name == "xs:schema")) 
        CreateXML(node, element, ref xml); 
      } 
     } 
    } 

nasıl yapılır, xml sadece kukla veri ne olmalıdır

XmlDocument xsd = new XmlDocument(); 
xsd.Load(xsdFileName); 
XmlNode xsdNode = xsd.DocumentElement; 
XmlElement element = null; 
XmlDocument xml = new XmlDocument(); 
CreateXML(xsdNode, element, ref xml);