0

以下のコードを使用して、適切なxmlのxml文字列を作成する方法。

string myInputXmlString = @"<ApplicationData>
                                        <something>else</something>
                                    </ApplicationData>";
        var doc = new XmlDocument();
        doc.LoadXml(myInputXmlString);

        XmlAttribute newAttr = doc.CreateAttribute(
            "xsi", 
            "noNamespaceSchemaLocation", 
            "http://www.w3.org/2001/XMLSchema-instance");
        doc.DocumentElement.Attributes.Append(newAttr);

        var ms = new MemoryStream();
        XmlWriterSettings ws = new XmlWriterSettings
        {
            OmitXmlDeclaration = false,
            ConformanceLevel = ConformanceLevel.Document,
            Encoding = UTF8Encoding.UTF8
        };
        var tx = XmlWriter.Create(ms, ws);
        doc.Save(tx);
        tx.Flush();

        var xmlString = UTF8Encoding.UTF8.GetString(ms.ToArray());
        Console.WriteLine(xmlString);

これにxsd情報を追加して、xmlが次のようになるようにするにはどうすればよいですか(「FullModeDataset.xsd」が含まれていますか?

 <ApplicationData
  xsi:noNamespaceSchemaLocation="FullModeDataset.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />

これの代わりに、現在のコードが出力しています

 <ApplicationData
  xsi:noNamespaceSchemaLocation=""
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
4

1 に答える 1

1

これは偶然に機能しますか?

doc.DocumentElement.SetAttribute("noNamespaceSchemaLocation", 
        "http://www.w3.org/2001/XMLSchema-instance",
        "FullModeDataset.xsd");
于 2013-01-02T22:19:46.210 に答える