大家好我正在创建一个动态生成XML
文件的应用程序。在此,我想将schemalocation
和XSI
添加到XML
Root
我该怎么做。我想添加以下内容
xmlns="http://www.irs.gov/efile"
xsi:SchemaLocation="http://www.irs.goc/efile ReturnData941.xsd"
和
xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
这是我动态生成的示例XML
代码
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode returnData = doc.CreateElement("ReturnData");
XmlAttribute documnetCount = doc.CreateAttribute("documentCount"); // after this i would like to add that schema
returnData.Attributes.Append(documnetCount);
所以我应该按照以下方式获取XML
<?xml version="1.0" encoding="UTF-8"?>
<ReturnData documentCount="" xsi:SchemaLocation="http://www.irs.goc/efile ReturnData941.xsd" xmlns="http://www.irs.gov/efile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance" />
答案 0 :(得分:3)
我认为你只需要添加一个像
这样的属性 XmlAttribute attr = doc.CreateAttribute("xsi", "schemaLocation", " ");
attr.Value = "http://www.irs.goc/efile ReturnData941.xsd";
returnData.Attributes.Append(attr);
答案 1 :(得分:0)
我想知道这是否是接近事物的最佳方式?许多验证API允许您独立指定架构位置和实例文档位置,这可能比在实例中存储架构位置更有效。
一般来说,我对xsi:schemaLocation持怀疑态度。如果您正在验证实例,那通常是因为您不信任它,如果您不信任它,为什么要信任它的xsi:schemaLocation?