Tag: xsd

可以在运行时使用代码对xsdvalidationxml吗?

我有运行时读入的xml文件,是否可以在运行时针对xsd文件validationxml? 使用c#

开始使用.NET进行XSDvalidation

这是我第一次使用XSDvalidationXML。 要validation的XML文件: SampleVariant LegendaryMode AmazingMode XSD,位于“Schemas / config.xsd”中,相对于要validation的XML文件: 现在,我只想准确地validation当前出现的XML文件。 一旦我更好地理解了这一点,我将进一步扩展。 对于像XML文件一样简单的东西,我真的需要这么多行吗? C#中的validation码: public void SetURI(string uri) { XElement toValidate = XElement.Load(Path.Combine(PATH_TO_DATA_DIR, uri) + “.xml”); // begin confusion // exception here string schemaURI = toValidate.Attributes(“xmlns”).First().ToString() + toValidate.Attributes(“xsi:noNamespaceSchemaLocation”).First().ToString(); XmlSchemaSet schemas = new XmlSchemaSet(); schemas.Add(null, schemaURI); XDocument toValidateDoc = new XDocument(toValidate); toValidateDoc.Validate(schemas, null); // end confusion root = […]

validationXDocument时捕获架构信息

这类似于这个问题C#在validationxml时获取模式信息 但是,我正在使用XDocument进行LINQ目的。 我正在读取/解析一组CSV文件并转换为XML,然后根据XSD架构validationXML。 我想捕获与元素值相关的特定错误,生成更加用户友好的消息,并将它们返回给用户,以便可以更正输入数据。 我想在输出数据中包含的项目之一是一些架构信息(例如数字类型的可接受值的范围)。 在我目前的方法(我愿意改变)中,除了架构信息之外,我能够捕获我需要的一切。 我已经尝试访问Validation事件处理程序的ValidationEventArgs参数中的SourceSchemaObject ,但它始终为null。 我也尝试过XElement的GetSchemaInfo ,看起来也是null。 我正在使用RegEx来识别我想要捕获的特定validation错误,并通过validation事件处理程序的sender参数从XElement中获取数据。 我曾想过将模式转换为XDocument并通过LINQ获取我需要的东西,但在我看来应该有更好的选择 这是我目前的validation方法: private List this.validationWarnings; private XDocument xDoc; private XmlSchemaSet schemas = new XmlSchemaSet(); public List Validate() { this.validationWarnings = new List(); // the schema is read elsewhere and added to the schema set this.xDoc.Validate(this.schemas, new ValidationEventHandler(ValidationCallBack), true); return validationWarnings } 这是我的回调方法: private void […]

validationxml节点,而不是整个文档

我正在使用一些xml’片段’,它们在xml中形成元素。 我有架构,但我无法validation这些文件,因为它们不是完整的xml文档。 这些片段用必要的父元素包装,以便在其他工具中使用时形成有效的xml,因此我没有太多选择将它们变为有效的xml或更改模式。 是否可以validation元素,而不是整个文档? 如果没有,可以提出哪些变通方法? 我正在使用.NET 2.0框架在C#中工作。

XmlSerialization和xsi:SchemaLocation(xsd.exe)

我使用xsd.exe生成一个C#类来读/写GPX文件。 如何获得生成的XML文件以包含xsi:schemaLocation属性,例如。 我想要以下但xsi:schemaLocation总是丢失

如何选择使用默认命名空间的节点?

XML文件的结构或多或少如下: 我的目标是选择所有“c”元素,但以下xpath表达式将不起作用:“// a / b / c”。 即: XmlDocument doc= new XmlDocument(); doc.Load(filepath); XmlNodeList l = doc.SelectNodes(“//a/b/c”); // 0 nodes 我测试的唯一xpath表达式是/ *(1个节点)和// *(所有节点)。 此问题与XML命名空间有关吗? 如果是这样,设置XMLDocument对象的正确方法是什么? XmlDocument doc= new XmlDocument(); doc.Load(filepath); XmlNamespaceManager m = new XmlNamespaceManager(doc.NameTable); m.AddNamespace(/* what goes here? */); XmlNodeList l = doc.SelectNodes(“//a/b/c”, m);

将XSD转换为SQL关系表

是否有可用的东西可以帮助我将XSD转换为SQL关系表? XSD相当大(无论如何在我的世界里),如果有什么东西推动我前进而不是从头开始,我可以节省时间和无聊的打字。 如果你想看看XSD就在这里 。 它是交换MSDS的标准化/本地化格式。

使用C#中的命名空间创建特定的XML文档

我们获得了一个示例文档,并且需要能够为供应商准确地再现文档的结构。 但是,我对C#如何处理命名空间感到有点迷茫。 以下是该文档的示例: data data 我通常会这样做是加载一个空白文档,然后开始填充它: XmlDocument doc = new XmlDocument(); doc.LoadXml(“”); // Add nodes here with insert, etc… 一旦我开始编写文档,如何将命名空间和模式放入Doc1元素中? 如果我通过将它们包含在LoadXml()中来启动Doc1元素中的命名空间和模式,那么所有子元素都具有命名空间 – 这就是禁忌。 该文件被拒绝。 换句话说,我必须如图所示完全生产它。 (而且我宁愿不只是在C#中编写文本到文件,并希望它是有效的XML)。

解析复杂的WSDL参数信息

我试图解析WSDL,就像这里给出的例子一样。 作者在评论中指出,该示例无法深入研究复杂的数据类型。 事实上,当我运行这个例子时,它似乎甚至不能处理简单的数据类型。 我在System.Web.Services.Description.ServiceDescription类中搜索过,该类在示例中使用,但在运行时无法找到任何实际参数或返回类型信息。 我知道我可能需要对xsd文件进行一些手动解析? 谷歌和stackoverflow似乎缺乏如何以编程方式深入研究复杂类型的完整示例,所以…我该怎么做?

使用StringReader与XmlNodeReader反序列化对象属性

为什么XmlSerializer在使用XmlNodeReader反序列化空类型元素而不是像使用StringReader (或XmlTextReader )时那样的空字符串时,用XmlNode数组填充我的对象属性? 以下代码示例中的第二个断言失败: var doc = new XmlDocument(); doc.Load(new StringReader(@” “)); var ser = new XmlSerializer(typeof (Test)); var reader1 = new StringReader(doc.InnerXml); var obj1 = (Test) ser.Deserialize(reader1); Debug.Assert(obj1.Value is string); var reader2 = new XmlNodeReader(doc.FirstChild); var obj2 = (Test) ser.Deserialize(reader2); Debug.Assert(obj2.Value is string); public class Test { public object Value { get; set; } […]