2017-12-28 17 views
0

xsdファイルに対して検証が必要なXMLドキュメントを作成します。したがって、xmlのルート要素のxsdファイルへの参照が必要です。これまでのところ私はこのC#のコードを使用します。xsi:noNamespaceSchemaLocationをシリアライザに追加する方法

var ser = new XmlSerializer(typeof(myspecialtype)); 
XmlSerializerNamespaces MainNamespace = new XmlSerializerNamespaces(); 
MainNamespace.Add("xlink", "http://www.w3.org/1999/xlink"); 
MainNamespace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
using (XmlWriter w = XmlWriter.Create(@"C:\myxmlfile.xml")) 
{ 
    w.WriteProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"utils/somexsl.xsl\""); 
    ser.Serialize(w, LeBigObject, HauptNs); 
} 

は、結果のXMLは次のように始まる:

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="utils/somexsl.xsl"?> 
<caddy-xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlVersion="03.07.00"> 

が、私は、この必要があります:私はここに "createAttributeを" に出くわした

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="utils/somexsl.xsl"?> 
<caddy-xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlVersion="03.07.00" xsi:noNamespaceSchemaLocation="utils/theveryimportant.xsd"> 

を:Add Namespace to an xml root node c#私はシリアライザと一緒に置くことはできません。ありがとうございました!

+0

「xsi:noNamespaceSchemaLocation」と「xsi:schemaLocation」の両方を追加する方法を示す[XMLシリアル化名前空間](https://stackoverflow.com/a/27533862/3744182)を参照してください。 – dbc

答えて

関連する問題