天道酬勤,学无止境

Programmatically use XSD.exe tool feature (generate schema from class) through .NET Framework classes?

I want to generate an XML Schema based upon a class, just as you can do with the Xsd.exe tool.

E.g. xsd.exe /type: typename /outputdir:c:\ assmeblyname.

Is there a way to do this by using classes in the .NET Framework instead of using the standalone tool?

I'm sure I've seen information about task references or similar - i.e. something programmatic - that can be used in place of some of these standalone utilities, or that some standalone utilities get their features through the FCL or a Microsoft API.

标签

评论

Found this which looks like it should do the trick...

public static string GetSchema<T>()
    {
        XmlAttributeOverrides xao = new XmlAttributeOverrides();
        AttachXmlAttributes(xao, typeof(T));

        XmlReflectionImporter importer = new XmlReflectionImporter(xao);
        XmlSchemas schemas = new XmlSchemas();
        XmlSchemaExporter exporter = new XmlSchemaExporter(schemas);
        XmlTypeMapping map = importer.ImportTypeMapping(typeof(T));
        exporter.ExportTypeMapping(map);

        using (MemoryStream ms = new MemoryStream())
        {
            schemas[0].Write(ms);
            ms.Position = 0;
            return new StreamReader(ms).ReadToEnd();
        }
    }

do this:

public string GetFullSchema() {

        string @namespace = "yourNamespace";

        var q = from t in Assembly.GetExecutingAssembly().GetTypes()
        where t.IsClass && t.Namespace ==  @namespace
        select t;

        XmlReflectionImporter importer = new XmlReflectionImporter(@namespace);

        XmlSchemas schemas = new XmlSchemas();
        XmlSchemaExporter exporter = new XmlSchemaExporter(schemas);


        foreach (var x in q)
        {
                var map = importer.ImportTypeMapping(x);
                exporter.ExportTypeMapping(map);
        }

        using (MemoryStream ms = new MemoryStream())
        {
           schemas[0].Write(ms);
           ms.Position = 0;
           return new StreamReader(ms).ReadToEnd();
        }

}

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Programmatically use XSD.exe tool feature (generate class from XSD Schema) through .NET Framework classes?
    I want to generate a class from an XML XSD Schema, just as you can do with the Xsd.exe tool. E.g. XSD.exe /namespace:Generated.Xsd_1 /classes /outputdir:..\Classes Is there a way to do this by using classes in the .NET Framework instead of using the standalone tool?
  • 通过 .NET Framework 类以编程方式使用 XSD.exe 工具功能(从 XSD 架构生成类)?(Programmatically use XSD.exe tool feature (generate class from XSD Schema) through .NET Framework classes?)
    问题 我想从 XML XSD Schema 生成一个类,就像使用 Xsd.exe 工具一样。 例如XSD.exe /namespace:Generated.Xsd_1 /classes /outputdir:..\Classes 有没有办法通过使用 .NET Framework 中的类而不是使用独立工具来做到这一点? 回答1 无耻地从这里借来的: using System; using System.IO; using System.Collections.Generic; using System.Reflection; using System.Text; using System.Xml; using System.Xml.Serialization; using System.Xml.Schema; using System.CodeDom; using System.CodeDom.Compiler; using Microsoft.CSharp; using NUnit.Framework; namespace XmlSchemaImporterTest { [TestFixture] public class XsdToClassTests { // Test for XmlSchemaImporter [Test] public void
  • 如何在C#中以编程方式创建XSD文件?(How to create XSD file programmatically in C#?)
    问题 我有一个 xml 文件(我使用 XmlDocument 在 c# 中创建的),现在我必须在 C# 中以编程方式创建对应于它的 xsd 文件......我该怎么做? 我可以使用相同的类来创建xml文件吗? 还是有其他我应该使用的类(与xsd相关)? 回答1 如果您只想从 XML 文件生成 XSD 文件,则可以使用 Microsoft 的 XSD.EXE,它包含在 Visual Studio 中。 要使用它,请打开 Visual Studio 命令提示符。 然后输入xsd file.xml以生成该 XML 文件的模式。 您还可以使用该工具为 XML 输入生成类,只需传入/classes参数即可。 回答2 虽然 XML Schema 文件是一个 XML 文件,但它的某些事情可能会使“手动”完成它变得很麻烦; 有人可能会说为什么使用 DOM API 编写 XML 而不是使用由 XSD.exe 或 XSD2Code.exe 生成的 C# 类? 或推一下它...有点类似于有人说C#语句最终变成IL汇编; 为什么不写IL呢? 另一种选择是由 Schema Object Model API 提供的; 在 .NET 中,它是 System.Xml.Schema 命名空间。 看看在 MSDN 上找到的代码示例。 它会给你另一种方法的想法。 它提供了一个程序员友好的API来生成XSD
  • 有什么工具可以从XML实例文档生成XSD架构吗? [关闭](Any tools to generate an XSD schema from an XML instance document? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我正在寻找一种工具,该工具将使用XML实例文档并输出相应的XSD架构。 我当然认识到,与手动创建模式相比,生成的XSD模式将受到限制(它可能不会处理可选或重复的元素或数据约束),但至少可以作为一个快速的起点。 回答1 Microsoft XSD推理工具是一个很好的免费解决方案。 许多XML编辑工具(例如XmlSpy(由@Garth Gilmour提及)或OxygenXML Editor)也具有该功能。 不过,它们相当昂贵。 BizTalk Server也具有XSD推断工具。 编辑:我刚刚发现了.net XmlSchemaInference类,因此,如果您使用的是.net,则应考虑 回答2 您可以使用开放源代码和跨平台选项:Apache的XMLBeans中的inst2xsd。 我觉得它非常有用和容易。 只需下载,解压缩并播放(需要Java)。 回答3 董里是这里最好的选择。 开源和跨平台(尽管需要Java) 从董里网站: Trang在XML的不同模式语言之间转换。 它支持以下语言 RELAX NG(XML语法) RELAX NG紧凑语法 XML 1.0 DTD W3C
  • XSDObjectGen.exe和XSD.exe(XSDObjectGen.exe vs XSD.exe)
    问题 谁能告诉我XSDObjectGen.exe和XSD.exe有什么区别? 有什么方法可以使XSDObjectGen.exe在点网2.0中工作? 回答1 另外,还有Xsd2Code。 一些功能: 生成局部类。 支持通用和自定义集合(List,ObservableCollection,MyCustomCollection)。 当不需要特殊的获取或设置时,支持自动属性。 可以生成WCF属性(DataContract / DataMember)。 支持可修剪类型。 屏蔽IDE中的私有字段(使用EditorBrowsableState.Never属性)。 在构造函数中生成对象分配。 实现INotifyPropertyChanged以启用wpf或Silverlight的数据绑定。 通过Visual Studio外接程序提高生产力。 从xsd批注生成摘要文档。 在引发属性更改事件之前,请检查新值和旧值int setter是否相同。 在cs或vb标头中生成备份选项。 将Xml文档保存并加载到Silverlight应用程序的隔离文件存储中(3.0中的新增功能)。 生成CS,VB或CPP代码。 序列化/反序列化对象。 保存到文件并从文件加载。 包括Xsd2CodeCustomTool。 回答2 区别在于: XML架构定义工具( xsd.exe )是Visual Studio SDK的一部分
  • 如何以编程方式从类型生成xml模式?(How do I programmatically generate an xml schema from a type?)
    问题 我正在尝试以编程方式从任何.net类型生成xs:schema。 我知道我可以使用反射并通过遍历公共属性来生成反射,但是有内置的方法吗? 例子: [Serializable] public class Person { [XmlElement(IsNullable = false)] public string FirstName { get; set; } [XmlElement(IsNullable = false)] public string LastName { get; set; } [XmlElement(IsNullable = true)] public string PhoneNo { get; set; } } 所需的输出: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Person" type="Person" /> <xs:complexType name="Person"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" form="unqualified" name="FirstName" type="xs:string" /> <xs:element minOccurs="0"
  • 以编程方式从 XSD 创建 XML 文件(Programmatically Create XML File From XSD)
    问题 我有一个 XSD 文件,我想在运行时基于 XSD 创建一个 XML 文件。 (我的问题与这个问题基本相同,除了在 .NET 世界中,而不是在 Java 中。) 我已经运行xsd.exe /c /l:vb MyTest.xsd ,但这会生成一个无法实例化和使用的类,因为它具有从未实例化的嵌套类。 生成的类似乎仅用于 XML 反序列化,但我没有要反序列化的 XML 文件。 运行xsd.exe /d /l:vb MyTest.xsd生成一个数据集,但看起来使用它比手动写出XmlDocument需要更多的编码。 基于特定模式创建 XML 文件的最佳方法是什么? 回答1 我使用了一个 XML 工具 (oXygen),它将此作为其功能的一部分。 我敢肯定还有其他的,这就是我们在这里使用的。 回答2 阅读这篇文章:http://msdn.microsoft.com/en-us/library/aa302296.aspx 它包括一个安装程序和使用 XmlSampleGenerator API 的示例。 回答3 原来我只是迟钝。 虽然 xsd 生成的类包含未初始化的嵌套类,但它们通过公共属性公开,因此没有什么能阻止我自己实例化它们。 类似于以下内容: ElementA.ElementB = New ElementB() ElementA.ElementB.Name = "Jason"
  • XSD代码生成器的比较(Comparison of XSD Code Generators [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我正在研究从xsd模式文件生成代码。 我的要求: 必须在需要的地方使用通用集合生成C#2.0代码(或更高版本)。 必须从xsd注释生成注释必须生成完全可序列化的代码。 从具有相同include的多个xsd生成时,应该能够生成可恢复的基本类型。 (另请参阅我的其他问题:如何从具有公共包含的xsd生成多个类?以及如何从wsdl中的xs:documentation标记生成注释? 我发现以下选项: 使用xsd.exe(SDK和Visual Studio随附) Daniel Cazzulino的XSDCodeGen Xsd2Code CodeXS XsdObjectGen由Microsoft XSDClassGen(似乎缺少作用) 我有想念吗? 因为(1),(2)和(5)不会生成2.0代码,并且我在序列化(3)中的代码时遇到问题。 生成代码时使用什么? 回答1 I believe XSD2Code is the best tool currently available (in 2011). I recently went through the same process at work of analysing the
  • 我们可以在xsd.exe工具生成的类中控制类型名称吗(Can we control type name in xsd.exe tool generated class)
    问题 xsd.exe工具为给定的xsd文件生成类。 它遵循一种用于命名类型的模式。 例如, <Students> <Student Name="A" RollNo="1" Address="Some Address"> <Department Id="20" Name="CSE"/> </Student> </Students> xsd.exe /c Students.xsd Students.cs文件生成。 如果我们看到元素的类型 Element Type Name Students Students Student StudentsStudent Department StudentsStudentDepartment 如果元素是子元素,它将通过在父元素名称前添加前缀来生成类型。 我们可以控制这个名字吗? 我需要与元素名称相同的类型名称。 学生=>学生,系=>系 提前致谢 回答1 通常,使用xsd.exe时无法自定义生成的类的名称-与其他地方可用的机制不同,例如,通过自定义JAXB绑定文件的JAXB用户。 但是,对于xsd.exe,生成的类名称取决于创作样式。 当创作风格符合“俄罗斯娃娃”时,即会生成您所描述的内容,如下所示: <?xml version="1.0" encoding="utf-8"?> <!--XML Schema generated by
  • Visual Studio 2010:IDE 中类的 XML XSD 架构(Visual Studio 2010 : XML XSD Schema to Classes within the IDE)
    问题 每当我需要从 XML XSD 架构创建类文件时,我都会在 VS 中使用 .NET xsd.exe 工具和预构建事件,以确保我的类和架构在构建时彼此同步。 这当然工作正常,但是...... 我注意到,如果 XSD 和派生类在同一个项目中,VS 会理解这种关系,并在解决方案资源管理器中直观地将 CS 显示为 XSD 文件的子级。 所以我想知道 Visual Studio 2010 中是否有任何功能可以在 IDE 中为我创建类而不是依赖于预构建脚本? 例如,我会将 XSD 添加到项目中,在某处设置一些选项,然后 VS 接管并为我创建我的类。 VS 2010 是否支持这样的东西? 或者我应该停止思考并继续使用 xsd.exe 和预构建。 编辑我还注意到,在 XSD 文件的属性下,我可以选择设置Custom Tool ,阅读描述这似乎与我的目标很接近,但我不确定此属性的正确用法。 编辑另外,如果有一个解决方案,我需要这个基于VS2010标准的特性/功能。 我宁愿不使用第 3 方插件等 回答1 Visual Studio 2010 本身不包含任何此类供一般使用的功能。 Visual Studio 在 ADO.NET 中类型化数据集的上下文中对这种 XSD 到代码的转换提供了一些有限的支持 - 但这些不是通用解决方案,它们正是针对那种使用场景。 但请查看XSD2Code 插件
  • 如何仅从XML生成JAXB类(How to generate JAXB classes from just XML)
    问题 我需要从不提供架构的xml生成类。 我知道这几乎没有用,但是事实是我们有xml,它是结构化的,我们应该能够从xml创建模型。 在过去,我是手工完成的,但是我正在使用的当前xml文档非常大,我的时间可能最好花在构建满足我需要的内容上。 但是,我猜它已经完成了,但是我找不到。 有指针吗? 回答1 假设几乎所有内容都为字符串类型,则有许多可用的工具(可以通过Google进行快速的Google搜索来找到您)可以从XML生成XSD。 您应该能够使用该XSD运行JAXB来获取类。 这是一个在线工具,可让您执行此操作。 这是一个屏幕截图: 回答2 从xml文件中,您可以创建XML架构定义(XSD)文件。 拥有XSD后,您将能够生成代码,并需要将其用于Java,C#,C ++或以上所有代码。 如果您拥有Visual Studio,则可以使用xsd.exe生成XSD文件。 参考: www.xmlforasp.net/CodeBank/System_Xml_Schema/BuildSchema/BuildXMLSchema.aspx msdn.microsoft.com/zh-CN/library/x6c1kb0s(v=vs.71).aspx 命令语法:xsd file.xml [/ outputdir:directory] 因此, “ C:\ Program Files \ Microsoft
  • 在代码中从XML创建XSD(Create XSD from XML in Code)
    问题 我正在使用MSDN这段代码从XML创建XSD XmlReader reader = XmlReader.Create("contosoBooks.xml"); XmlSchemaSet schemaSet = new XmlSchemaSet(); XmlSchemaInference schema = new XmlSchemaInference(); schemaSet = schema.InferSchema(reader); foreach (XmlSchema s in schemaSet.Schemas()) { textbox.text = s.ToString(); } 我想基于我的xml文件输出.xsd。 当我生成.xsd文件时,我在其中获得的唯一内容是: System.Xml.Schema.XmlSchema 当我使用Visual Studio选项生成XSD来创建架构时,它会正确显示。 但是,我需要创建XSD的150多个xml文档,因此需要编程选项。 有人可以帮忙吗? 回答1 这就是您所缺少的...而不是简单地执行s.ToString() ,而是这样做: XmlWriter writer; int count = 0; foreach (XmlSchema s in schemaSet.Schemas()) { writer = XmlWriter
  • 从已知的 XSD 生成 .Net 对象(Generate .Net objects from known XSD)
    问题 我有一些 XSD-s 来定义我的对象层次结构。 例如 math.xsd, base.xsd 而 math.xsd 依赖于 base.xsd。 我需要从那些 xsd-s 生成类。 我已经阅读了这两个工具:CodeXS 工具和 XSD.exe。 xsd.exe 的问题是我没有成功地从两个相互依赖的 xsd-s 生成类。 有没有人知道在这种情况下使用 xsd.exe 的正确参数? 此外,我正在寻找: - 更多工具 - 这些工具之间的比较 - 使用 .net 3.5 的 xsd 对象 谢谢。 回答1 您没有理由不能使用xsd.exe使用的相同方法,但随后针对生成的 CodeDOM 模型运行您自己的代码以在将 .cs 文件写入磁盘之前进行所需的修改。 一般的想法是将 XSD 文件加载到XmlSchema对象中,然后使用内部XmlCodeExporter和XmlSchemaImporter类来填充 CodeDOM 命名空间。 完成此操作后,您可以自由地对 CodeDOM AST 进行任何需要进行的调整,然后将其写入磁盘。 例如。 XmlSchema schema = null; // Load XSD file here var schemas = new XmlSchemas(); schemas.Add(schema); var ns = new CodeNamespace {
  • XSD.exe 和“循环组引用”(XSD.exe and "Circular Group references")
    问题 我正在尝试构建一些类,以便我可以反序列化由第三方应用程序创建的 XML 文件。 幸运的是,第 3 方应用程序的开发人员在他们的代码中包含了一个模式文件,以便可以理解 XML 文件。 当我从 Visual Studio 使用 XSD.exe 工具时,进程失败报告以下错误 “来自 targetNamespace='' 的组 'SegGroupOrSegmentGrouping' 的定义无效:循环组引用。” 任何有关如何根据此错误生成类文件的帮助将不胜感激。 可以在此处找到架构文件的副本:架构文件 回答1 尝试使用svcutil ; 它可以处理循环引用。 在以下示例中, eExact-Schema.xsd是xsd.exe无法处理的 XSD。 例子: C:\SRC\Exact>svcutil eExact-Schema.xsd /language:C# /dataContractOnly /importxmltypes /out:exact.cs 这总是一个很好的起点; 您现在可以使用这个类并根据您的风格/需要进行更改,添加评论等,这将为您节省大量时间/搜索而不是从头开始。 回答2 我最近遇到了同样的问题, 我从第三方公司获得了一个架构,他们从 Web 服务返回一个 xml 结构。 然后我想反序列化响应并将信息存储到带有 NHibernate 的数据库中。 没问题,我以为我会只使用
  • Programmatically Create XML File From XSD
    I have an XSD file and I want to create an XML file at runtime based on the XSD. (My question is basically the same as this one, except in the .NET world, rather than for Java.) I have run xsd.exe /c /l:vb MyTest.xsd, but that generates a class that cannot be instantiated and used, as it has nested classes that are never instantiated. It appears that the generated class is only used for XML deserialization, but I don't have an XML file to deserialize from. Running xsd.exe /d /l:vb MyTest.xsd generates a dataset, but it looks like using that would be more coding than just writing out an
  • 如何从一个类创建一个XSD模式?(How to create a XSD schema from a class?)
    问题 我在使用XSD文件时遇到了麻烦。 我正在尝试从一个类创建一个XSD文件: public enum Levels { Easy, Medium, Hard } public sealed class Configuration { public string Name { get;set; } public Levels Level { get; set; } public ConfigurationSpec { get;set;} } public abstract class ConfigurationSpec { } public class ConfigurationSpec1 { // ... } public class ConfigurationSpec2 { // ... } 请注意,我在Configuration中有一个抽象类。 有了该功能,是否可以创建XSD?如果可以,如何创建XSD? 想法是将类Configuration传递给XSD。 回答1 您可以使用XSD.exe (可从Visual Studio安装中获得。) public sealed class Configuration { public string Name { get; set; } public Levels Level { get; set; } public
  • 将XML反序列化为C#中的对象(Deserializing XML to Objects in C#)
    问题 所以我有看起来像这样的xml: <todo-list> <id type="integer">#{id}</id> <name>#{name}</name> <description>#{description}</description> <project-id type="integer">#{project_id}</project-id> <milestone-id type="integer">#{milestone_id}</milestone-id> <position type="integer">#{position}</position> <!-- if user can see private lists --> <private type="boolean">#{private}</private> <!-- if the account supports time tracking --> <tracked type="boolean">#{tracked}</tracked> <!-- if todo-items are included in the response --> <todo-items type="array"> <todo-item> ... </todo-item> <todo-item> ... </todo-item>
  • 从 XSD 生成类(Generate classes from XSD)
    问题 您正在 SOA 世界中进行 Web 服务的契约优先开发。 编辑 XSD 文件后,从 XSD 文件自动(重新)生成 .net 类的最佳方法是什么? 回答1 xsd.exe 将为您生成新类。 根据 Visual Studio 的设置方式,将 xsd.exe 添加到“属性/构建事件/构建后事件”将在您每次进行重建时强制重新生成。 回答2 如果使用 .net 1.1 或 2.0,xsd.exe。 如果使用 3.0 或 3.5,svcutil.exe。 如果您不介意使用不受支持的代码,LINQ-to-XSD (http://blogs.msdn.com/xmlteam/archive/2008/02/21/linq-to-xsd-alpha-0-2。 aspx)很酷。 使用任何工具,请注意某些架构不能很好地自动转换为 .NET 类。 如果您发现是这种情况,请手动对类进行编码,并实现 IXmlSerializable。 回答3 我们正在使用 Thinktecture 的 WSCF - Web Services Contract First 工具进行 Web 服务开发,首先创建 XSD 模式,然后使用该工具生成服务接口。 我们在过去 2 年里一直使用这个工具,我强烈推荐它。 这些人还启动了 WSCF.blue 项目,该项目是他们原始工具的继承者,并允许契约优先开发(首先阅读 XSD)。
  • 使用 Visual Studio 2010 创建 XML 架构并自动生成可序列化的类(Creating XML schema and auto-generate the serializable class out of it using Visual Studio 2010)
    问题 我正在尝试使用 Visual Studio 2010 创建一个要序列化/反序列化的 XML 模式,但它看起来非常复杂,有一个 xml 文件和另一个 xml 模式文件,我不知道应该如何完成。 我记得在 Visual Studio 2005 中,只需创建 xml 文件并使用 xml 设计器打开它,然后绘制模式,然后从模式中生成可序列化的代码,就简单多了。 任何有助于使用 Visual Studio 2010 专业版执行相同操作的提示/链接。 回答1 让我试着回答这个问题: 打开你的 VS 项目。 在您的项目中打开 XML。 在 VS 上,转到菜单选项卡并单击创建架构保存架构文件并添加到您的项目中。 然后您可以为序列化/反序列化过程创建自己的类或使用 xsd.exe 我用的是最后一个。 就我而言,我可以在 \Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe 中找到该工具。 然后你可以打开 CMD 或 Visual Studio 命令窗口并编写如下内容:xsd.exe [THE XSD 文件] /c /l:c# /o:[DIRECTORY WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE
  • 在企业应用程序中使用 C# XSD 类型化数据集的最佳实践(Best Practice Using C# XSD typed-datasets In Enterprise Applications)
    问题 我试图了解使用从我当前使用的数据库方案生成的 XSD 表的最佳实践是什么。 1) 您认为 XSD 信息应该作为模型的一部分吗? 2)这是否意味着数据访问层返回数据集和其他生成的对象? 3)它是否通过所有系统层一直到UI? 4) 如果 XSD 是数据访问层的一部分,我应该将结果转换为模型中的对象吗? 什么是最好的转换方法? 谢谢,罗尼 回答1 您通过在问题中使 XSD 特定于数据集来限制 XSD 的用途和应用。 XSD 是可扩展 Scehma 定义的首字母缩写词。 XSD 标准由 W3C 定义,目的是标准化您可能在应用程序中使用的 XML 文件。 例如,您在应用程序中大量使用 XML 文件,您可能会与不同类型的远程源交换这些文件。 这些来源可能会向您发送各种格式的 XML 文件。 在您的应用程序中,您需要确保以正确的格式接收 XML 文件,以便您可以进一步对 XML 文件执行业务操作。 因此,您需要对这些 XML 文件实施标准化。 您最终需要根据可接受的标准验证 XML 文件。 您需要将 XML 的模式与标准进行比较。 这些标准以 XSD 形式编写。 您将根据 XSD 文件中定义的架构标准验证 XML 文件的架构。 这是 XSD 文件的实际用途。 现在回答你的问题.. 1.)您认为 XSD 信息应该作为模型的一部分吗? 正如我刚才所说的,XSD 文件存储的是架构而不是数据。