Tag: xsd

当我的所有.XSD存储为资源时,如何解析.XSD的schemaLocation属性?

我正在开发一个项目,我需要根据嵌套的XSD生成XML文件。 例如,ORDER引用了PERSON,PERSON引用了ADDRESS等。 我正在创建一个`XmlReaderSettings’实例来validationXSD,并在生成后validationXML。 我已将XSD作为资源添加到我的程序集中。 然后,我为每个资源创建一个XmlSchema实例,从最低到最高,并将其添加到XmlReaderSettings.Schemas集合。 但是,尝试添加引用另一个架构的架构时失败。 我得到一个XmlSchemaException:“对于元素声明,必须存在name或ref属性。” 我在下面提供了示例XSD和源代码: ADDRESS.xsd – 由PERSON.xsd引用 PERSON.xsd 示例代码 – 加载并validationXSD using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Schema; using SchemaTest.Properties; namespace SchemaTest { class Program { static void Main(string[] args) { // create validation settings instance var xmlReaderSettings = new XmlReaderSettings { ValidationType = ValidationType.Schema, ValidationFlags = XmlSchemaValidationFlags.ProcessInlineSchema […]

xsd.exe生成类作为单独的文件?

我有一个.xsd文件的集合。 使用xsd.exe生成类时,输出文件长约17000行,有数百个数百个部分类。 为了整洁,xsd.exe甚至visual studio(2010)是否可以将这些类拆分成一个单独的文件?

C# – 解析XSD架构 – 获取combobox的所有元素

我有XSD Schema文件,我需要用模式文件中的元素填充我的combobox… 有人知道怎么做吗? 通过xpath? 我有半个工作代码…我收到了一个带元素自动的消息。 String path = openSchema.FileName; XmlTextReader xsd_file = new XmlTextReader(path); XmlSchema schema = new XmlSchema(); schema = XmlSchema.Read(xsd_file, null); MessageBox.Show(schema.Items.Count.ToString()); foreach (XmlSchemaElement element in schema.Items) { elements.Items.Add(element.Name); MessageBox.Show(element.Name); } 非常感谢你!

如何使用c#.net CF 3.5中的XmlDocument向xml添加属性

我需要为元素“aaa”创建一个带有前缀“xx”的属性“abc”。 以下代码添加了前缀,但它还将namespaceUri添加到元素中。 要求输出: 我的代码: XmlNode node = doc.SelectSingleNode(“//mybody”); XmlElement ele = doc.CreateElement(“aaa”); XmlAttribute newAttribute = doc.CreateAttribute(“xx”,”abc”,namespace); newAttribute.Value = “ddd”; ele.Attributes.Append(newAttribute); node.InsertBefore(ele, node.LastChild); 上面的代码生成: 期望的输出是 并且“xx”属性的声明应该在根节点中完成,如: 如何以deisred格式获取输出? 如果xml不是这种所需的格式,那么它就不能再被处理了.. 有人可以帮忙吗? 谢谢,Vicky

xsd.exe使用数组中的多个元素生成c#

我有一组XML模式文件提供给我。 我无法更改XML,因为这些有时会更新。 我正在使用xsd.exe将架构文件转换为生成的c#代码。 我不能使用任何第三方工具。 其中一个XML模式文件的一部分显示如下: 当转换为c#时,我得到如下结果: [System.CodeDom.Compiler.GeneratedCodeAttribute(“xsd”, “4.0.30319.1”)] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(Namespace = “http://abcxyz.com”)] public partial class LocationType { private object[] itemsField; private ItemsChoiceType[] itemsElementNameField; /// [System.Xml.Serialization.XmlElementAttribute(“Address”, typeof(string), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlElementAttribute(“City”, typeof(string), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlElementAttribute(“LocNum”, typeof(string), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlElementAttribute(“Longitude”, typeof(decimal), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlElementAttribute(“State”, typeof(LocationTypeState), Form = System.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlChoiceIdentifierAttribute(“ItemsElementName”)] public object[] Items […]

XML反序列化到XSD生成的类中的麻烦

我有一个相当详细的xml文件。 下面是顶级节点(我已经包含了椭圆,因为较低级别的节点都已经很好地形成并且正确地填充了数据): … … 我使用Visual Studio 2008命令提示符创建了一个xsd文件: xsd sample.xml 这会很好地生成xsd文件。 然后我使用以下命令从xsd自动生成类: xsd sample.xsd /classes 为了将xml文件反序列化为类对象,我在helper类中使用了read函数: public class XmlSerializerHelper { public Type _type; public XmlSerializerHelper() { _type = typeof(T); } public void Save(string path, object obj) { using (TextWriter textWriter = new StreamWriter(path)) { XmlSerializer serializer = new XmlSerializer(_type); serializer.Serialize(textWriter, obj); } } public T Read(string […]

有没有办法从DataContract导出XSD架构

我正在使用DataContractSerializer将我的类序列化/反序列化为XML。 一切正常,但在某些时候,我想为这些XML文件的格式建立一个独立于实际代码的标准模式。 这样,如果在序列化过程中出现问题,我总是可以返回并检查标准模式应该是什么。 或者,如果我确实需要修改模式,则修改是一个明确的决定,而不仅仅是稍后修改我的代码的影响。 此外,其他人可能正在编写其他可能不是基于.NET的软件,需要从这些XML文件中读取。 我希望能够为他们提供某种模式的文档。 DataContract和XSD架构之间是否存在某种关系。 有没有办法将类中的DataContract属性导出为XSD架构?

使用Visual Studio 2010创建XML模式并使用它自动生成可序列化类

我正在尝试使用visual studio 2010创建一个XML模式进行序列化/去保护,但是看起来非常复杂有一个xml文件和另一个xml模式文件,我没有得到它应该如何完成。 我记得在visual studio 2005中,通过创建xml文件并使用xml设计器打开它然后绘制模式,然后从模式中生成可序列化代码,它变得更加简单。 任何有助于使用Visual Studio 2010专业人员进行相同操作的提示/链接。

使用xsd.exe生成c#文件,获取错误和警告

这是我正在运行的命令: xsd.exe -c -l:c# D:\Documents\DEV\SARPilot\Docs\schemas\06-141r2\06-141r2.xsd 这些是我得到的错误: Microsoft (R) Xml Schemas/DataTypes support utility [Microsoft (R) .NET Framework, Version 2.0.50727.3038] Copyright (C) Microsoft Corporation. All rights reserved. Schema validation warning: Undefined complexType ‘http://www.opengis.net/sps/0:ParameterDescriptorType’ is used as a base for comp lex type extension. Line 617, position 2. Schema validation warning: Undefined complexType ‘http://www.opengis.net/ows:GetCapabilitiesType’ is used as a […]

使用带有包含的XSD

这是一个XSD: 这是第二个包含上述XSD的XSD: 我需要将(第二个)XSD读入C#并且: 检查它是否是有效的XSD,并且 validation文件。 下面是一些在架构中读取的C#: XmlSchemaSet schemaSet = new XmlSchemaSet(); foreach (string sd in Schemas) { using (XmlReader r = XmlReader.Create(new FileStream(sd, FileMode.Open))) { schemaSet.Add(XmlSchema.Read(r, null)); } } schemaSet.CompilationSettings = new XmlSchemaCompilationSettings(); schemaSet.Compile(); .Compile()失败,因为“Type’a:TheSimpleType’未声明,或者不是简单类型。” 但是,它适用于: 命名空间将从架构中删除,或 命名空间被添加到include中。 问题是:如何在不编辑架构的情况下让C#接受它? 我怀疑问题是虽然我已经将两个架构放入XmlSchemaSet中,但我仍然需要告诉C#一个被包含在另一个中,即它没有为自己解决问题。 实际上,如果我只告诉XmlSchemaSet关于主XSD(而不是include)(两者都没有(或带有)名称空间)那么“Type”TheSimpleType’未声明,或者不是简单类型。“ 因此,这似乎是一个关于解决的问题包括:如何?!