Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未使用相应的XSD默认属性更新C#XmlDocument_C#_Xml_Xsd_Default - Fatal编程技术网

未使用相应的XSD默认属性更新C#XmlDocument

未使用相应的XSD默认属性更新C#XmlDocument,c#,xml,xsd,default,C#,Xml,Xsd,Default,下面是一个来自xsd和xml的示例 XML 问题是:我在xsd中有两个默认属性,但是当我运行这段代码时,他没有在XmlDocument中插入这些属性,结果就是我传递给系统的相同xml 默认属性不起作用,我不明白它们为什么不起作用,我相信存在其他形式来解决这个问题,我确实找到了,但没有起作用 obs:ValidationCallBack是一个返回错误函数,我认为它与问题无关您的模式的目标名称空间是rules.xsd,因此您的xml文件需要包含它,以便根据模式进行验证。另外,我假设test2是一个

下面是一个来自xsd和xml的示例

XML

问题是:我在xsd中有两个默认属性,但是当我运行这段代码时,他没有在XmlDocument中插入这些属性,结果就是我传递给系统的相同xml

默认属性不起作用,我不明白它们为什么不起作用,我相信存在其他形式来解决这个问题,我确实找到了,但没有起作用


obs:ValidationCallBack是一个返回错误函数,我认为它与问题无关

您的模式的目标名称空间是rules.xsd,因此您的xml文件需要包含它,以便根据模式进行验证。另外,我假设test2是一个打字错误(因为它不符合模式),您指的是test2:

<config test2="" xmlns="rules.xsd" />

在这种情况下,只有test1会添加默认值,因为test2已经设置为空字符串

<?xml version="1.0" encoding="utf-8"?>   
<xs:schema  targetNamespace="rules.xsd" xmlns="rules.xsd" elementFormDefault="qualified"  xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop">
  <xs:element name="config">
    <xs:complexType>
      <xs:attribute name="test1" type="xs:boolean" default="false" />
      <xs:attribute name="test2" type="xs:string" default="mary123" />
    </xs:complexType>
  </xs:element>
</xs:schema>
XmlDocument doc = new XmlDocument();
XmlTextReader schemaReader = new XmlTextReader(System.IO.Path.GetFullPath("Mi_XSD_here.xsd"));
XmlSchema schema = XmlSchema.Read(schemaReader, ValidationCallBack);
doc.Schemas.Add(schema);
doc.Load("Mi_XML_here.xml");
doc.Validate(ValidationCallBack);
<config test2="" xmlns="rules.xsd" />