天道酬勤,学无止境

Tool that can combine many XSD files into one?

I need to create XML serializer classes for approximately 65 XSD files, for which I am using Microsoft's XSD.EXE to generate the C# code...

However, I keep running into Window CMD's character limit in the resulting output file (in which XSD.EXE combines the name of every XSD included): "The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters."

To make a long story short, it seems that the only way I can get all these to validate and generate together is if I can merge all the XSDs (de-referencing the includes/imports, which XSD.EXE doesn't resolve the schemaLocation anyway) into one big one.

Please tell me that there exists a tool to do this...

评论

What you can do is to create another new file called file.xsd containing all the schema names in it and then the trick is to name the last schema file with .\ as prefix.

File.xsd

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'>
    <generateClasses language='CS' namespace='MyNamespace'>
        <schema>First.xsd</schema>
        <schema>Second.xsd</schema>
        <!-- more schema files here -->
        <schema>.\Third.xsd</schema>
    </generateClasses>
</xsd>

Now run the command “xsd.exe /p:file.xsd /classes” and you get the class file generated :)

For future references, another tool designed for XML Schema refactoring is QTAssistant - I am associated with it.

To clarify your question and hopefully help others... One thing that cannot be achieved as requested by you is that one cannot de-reference imports: an XSD file is associated with one XML Schema which doesn't allow more than one target namespace per xsd:schema element.

An xsd:include can be "inlined"; since files must have the same target namespace or match the "chameleon" namespace design approach, it is possible to merge the content of a file into the other.

An xsd:import cannot be "inlined"... unless you refactor target namespaces as well. However, this would not produce an equivalent schema set.

If you have a fully defined XML Schema set authored across 65 XSD files, with say 10 namespaces, the "canonical" set of re-factored XML Schema files has to have at least 10 files in it.

I did locate a tool (basically an XSLT) for doing this kind of thing: Paul Kiel's XML Schema Flattener, but I haven't got my hands on it yet.

Other sources say that tools like Oxygen XML Editor and XMLSpy can do it too, but I can't figure out how.

-> http://www.oxygenxml.com/xml_schema_editor.html#xml_schema_flatten

In my case, I solved the problem via another circuitous route: shortening the name of each input XSD so that XSD.EXE's combined output name--which you can't choose--is below the 260 character limit.

Just add .\ prefix with the name of last .xsd(schema) file and enclose it in commas e.g ".\last.xsd". The output class will be generated with the last schema file name.

I just started using Altova XML Spy ( 1 day )

To flatten .xsd schema into one document... that will still validate, and supply references to click in eclipse...

  1. open up the .xsd that you are talking about...
  2. Menu Item called ( Schema Design ) has an item called ( Flatten Schema ).
  3. Click it. ( it will ask you where to save the new file... I just create an output folder or something.

It seems to work just fine.

受限制的 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>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 非规范化 XSD(Denormalize XSD)
    问题 我需要对 XML 模式进行非规范化,以便为创建符合该模式的文档的人员生成文档。 用户不了解 XSD 并且很可能永远不会学习。 我所见过的工具能够为其他 XSD 开发人员生成文档,但我的用户对架构如何构建的细节不感兴趣,他们只想知道为了创建有效文档他们可以做什么以及必须做什么。 因此,我正在寻找一种方法来解析 XML 模式中的所有包含和引用,并生成一个非规范化版本,我可以使用它来(反过来)生成用户文档。 我已经开始使用 XSLT 来完成其中的一些工作,但经过验证的工具会有所帮助。 我也尝试过 XSD4J,但它显然删除了我需要生成有用的东西的所有注释。 更新: 我想要的是解析所有引用并使所有定义内联。 例如,以下架构: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="AAAA" type="myComplexType"/> <xs:complexType name="myComplexType"> <xs:all> <xs:element name="BBBB"> <xs:complexType> <xs:attribute name="cccc" type="mySimpleType"/> </xs
  • 您可以合并来自WCF服务的WSDL和XSD数据吗?(Can you combine the WSDL and XSD data from a WCF service?)
    问题 是否可以创建一个文件来从WCF生成的WSDL文件(以及从该服务生成的任何其他XSD文件)生成客户端 我可以使用svcutil.exe生成一个有效的客户端,同时传递wsdl文件和每个xsd文件,但是我有一个客户正在使用PHP工具生成此文件,我想看看我是否可以仅通过使它们变得容易一个文件而不是许多文件。 回答1 是的,您可以-有了一些巧妙的WCF扩展。 查看以下现成的解决方案: 使用此自定义ServiceHost for WCF展平WSDL 改善WCF互操作性:展平WSDL 按需展平WCF WSDL 用于WCF的WSDL中的内联XSD 希望能有所帮助! 马克 回答2 这是可能的。 的WSDL类型元件可以包含多个模式元素(每个具有它自己的名字空间),这意味着,从导入的WSDL / XSD类型元件可以放在根文档的类型元件表示相同的命名空间的模式元素数量。 其他WSDL元素( message , portType , binding和service )使用根定义元素名称空间,因此,当将不同名称空间中的这些导入元素放入同一文档时,它们不能保留在不同名称空间中。 但是请注意,只有类型名称空间用于SOAP消息的构造,因此更改这些其他元素的名称空间(如果需要)将不会影响所生成的SOAP消息。
  • Can you combine the WSDL and XSD data from a WCF service?
    Is it possible to create a single file to generate a client from a WCF generated WSDL file (and any additional XSD files that are also generated from this service) I can generate a valid client using svcutil.exe passing both the wsdl file and each xsd file, but I have a customer who is using a PHP tool to generate this and I wanted to see if I could make it easy for them by having only one file instead of many.
  • 从已知的 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 {
  • 有什么工具可以从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
  • 如何以编程方式可视化XML模式? [关闭](How to visualize an XML schema programatically? [closed])
    问题 关门了。 这个问题需要更加集中。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使其仅通过编辑此帖子即可将重点放在一个问题上。 1年前关闭。 改善这个问题 我制作了一个XML Schema(基本上是所有代码),并且想知道代码是否可以生成类似以下内容的方式: 如果可以,我该怎么办? 回答1 开源命令行Java应用程序xsdvi通过XML模式定义创建SVG格式的交互式图。 可以通过现代的Web浏览器显示生成的SVG文件,在该浏览器中,用户可以通过单击鼠标来展开和折叠树。 这是生成的图的示例 http://xsdvi.sourceforge.net/ipo.svg 可以从以下位置下载该软件 http://sourceforge.net/projects/xsdvi/ 它可以按以下方式运行(假定已安装Java且路径中存在java.exe ):- 进入dist/lib文件夹。 运行以下命令java -jar xsdvi.jar <input1.xsd> [<input2.xsd> [<input3.xsd> ...]] [style] 回答2 XSD Diagram是免费的(GNU开放许可证),不需要构建,并提供了一个交互式图。 您只需打开文件,然后在(最初为空白)图上添加所需的类型。 很直截了当。 回答3 在我看来, Oracle JDeveloper
  • 使用共享类型创建 Web 服务和客户端(Creating web service and client with shared types)
    问题 我创建了两个 wsdl 文件,它们具有从 xsd 架构文件导入的共享类型。 之后,我使用 wsdl.exe 工具生成的带有参数 /serverInterface 的接口创建了 Web 服务。 第一个 web 服务,有 web 方法“RegisterData”,将一些复杂的对象放入队列中,由系统“A”处理。 由于此方法返回布尔值(告诉我们该对象已成功注册)。 第二个 web 服务,有 web 方法“UpdateData”基于这个相同的对象更新系统“B”中的一些数据,在系统“A”的进程中被更改。 因此,在系统“A”中,我必须为第二个 Web 服务创建客户端,在这里我将使用这个修改后的复杂对象 us 参数调用方法“UpdateData”。 但是当我在 Visual Studio 中创建这个客户端时(通过添加 web 引用或添加服务引用),我必须为客户端创建一些命名空间。 然后,当我尝试调用“UpdateData”时,对于从第一个 Web 服务“RegisterData”方法接收到的同一对象,参数具有不同的命名空间。 我想创建第一个 Web 服务和第二个 Web 服务客户端,我可以在它们之间使用相同类型的对象。 非常感谢您的帮助。 回答1 我认为 ASMX 网络服务不可能做到这一点。 但是,WCF 确实支持这一点。 WCF 链接: WCF开发者中心 Windows
  • XML 中的 xmlns 等属性的意义
    原文:https://blog.csdn.net/lengxiao1993/article/details/77914155 Maven 是一个 java 开发人员很难绕过的构建工具, 因为有众多的开源项目都使用 Maven 作为其构建工具。 而阅读 maven 中的 pom 文件, 是了解一个项目依赖关系和构建方式的重要环节。 但是 pom 文件的头部会让初学者感到困惑, 这里对其进行一个清晰易懂的解释(梳理自网络资料) 先修知识 理解 xml 中的标签含义, 及标签之间树状的嵌套结构了解 pom ( project object model)文件 POM 文件头示例 1 2 3 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 初学者看到如上的内容应当有如下困惑点: xmlns:xsi , xmlns, xsi:schmeLocation 这些看上去相近的属性是什么含义, 为什么他们的值是不一样的 URL 这些 URL
  • 如何从XSD文件创建数据库表?(How can I create database tables from XSD files?)
    问题 我有一组XSD,可从中生成数据访问类,存储过程等。 我所没有的是一种从这些数据库生成数据库表的方法-是否有工具可以为我生成DDL语句? 这与从数据集表创建数据库表不同,因为我没有数据集表,但是有XSD。 回答1 商业产品:Altova的XML Spy。 请注意,对此没有通用的解决方案。 XSD可以轻松描述未映射到关系数据库的内容。 尽管您可以尝试“自动”执行此操作,但您在设计XSD时必须考虑到关系数据库,否则效果不佳。 如果XSD具有无法正确映射的功能,则必须(1)设计某种映射,然后(2)编写自己的应用程序以将XSD转换为DDL。 去过也做过。 租用工作-没有可用的开放源代码。 回答2 有一个名为XSD2DB的命令行工具,可以从xsd文件生成数据库,可从sourceforge获得。 回答3 我使用XSLT来做到这一点。 编写XSD,然后通过输出SQL命令的手写XSLT传递数据模型。 编写XSLT比您可能编写的自定义程序/ script更快,可重用。 至少这就是我在工作中的方式,因此,我有时间闲逛了:) 回答4 使用XSD文件创建SQL数据库模式的最佳方法是一个名为Altova XMLSpy的程序,它非常简单: 创建一个新项目在DTD / Schemas文件夹上,右键单击并选择添加文件选择XSD文件打开通过双击添加的XSD文件转到工具栏
  • 将 XML 反序列化为 XSD 生成的类的问题(Trouble with XML Deserialization into XSD generated classes)
    问题 我有一个相当详细的 xml 文件。 下面是顶级节点(我已经包含了椭圆,因为低级节点都格式良好并正确填充了数据): <?xml version="1.0" encoding="UTF-8"?> <config> <Models>...</Models> <Data>...</Data> </config> 我使用 Visual Studio 2008 命令提示符创建了一个 xsd 文件: xsd sample.xml 这很好地生成了 xsd 文件。 然后我使用以下命令从 xsd 自动生成类: xsd sample.xsd /classes 为了将 xml 文件反序列化为类对象,我使用了 helper 类中的 read 函数: public class XmlSerializerHelper<T> { 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
  • XML:文件头部xmlns详解
    目录 先修知识 POM 文件头示例 从 xmlns 的作用讲起 xmlns 出现在没有前缀的元素中的含义 xmlns:xsi 与 xsi:schemaLocation 本文转载自:https://blog.csdn.net/lengxiao1993/article/details/77914155 Maven 是一个 java 开发人员很难绕过的构建工具, 因为有众多的开源项目都使用 Maven 作为其构建工具。 而阅读 maven 中的 pom 文件, 是了解一个项目依赖关系和构建方式的重要环节。 但是 pom 文件的头部会让初学者感到困惑, 这里对其进行一个清晰易懂的解释(梳理自网络资料)。 先修知识 理解 xml 中的标签含义, 及标签之间树状的嵌套结构了解 pom ( project object model)文件 POM 文件头示例 <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 初学者看到如上的内容应当有如下困惑点:
  • “ http://www.w3.org/2001/XMLSchema-instance”的XSD文件在哪里?(Where is the XSD file for “http://www.w3.org/2001/XMLSchema-instance”?)
    问题 命名空间“ http://www.w3.org/2001/XMLSchema-instance”的XSD架构定义文件在哪里? 回答1 听起来有些奇怪,但是http://www.w3.org/2001/XMLSchema-instance命名空间的XML模式确实存在,并且可以通过命名空间URI所指示的URL完全找到: http://www.w3。 org / 2001 / XMLSchema-instance 作为证明,只需在HTML浏览器(例如FireFox)中打开该链接(URL)。 您可能会看到一些HTML文本,例如:“ XML Schema实例名称空间...”。 然后,将该“ HTML”另存为计算机上的文件(例如,“文件” |“另存为”)。 当您查看此文件时,您会发现它根本不是HTML。 而是,它是该名称空间的完整XML模式! 同样,您可以将http://www.w3.org/2001/XMLSchema-instance命名空间导入到您自己的模式中,如下所示: <xs:import namespace="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="http://www.w3.org/2001/XMLSchema-instance"/> 另请参见以下问题:使用xjc解析xsd时出错
  • 阿里一面如何自定义XML schema 扩展
    引言 自从SpringBoot时代的到来,去除了Spring的各种繁琐的XML配置,让我们可以腾出双手以便于更加专注的搬砖。记得那时候刚学Spring的时候,每天被Spring的各种XMl配置文件折磨的不行,每引入一个新的框架,最担心的就是jar冲突、哪个配置文件又配的不对、配置文件没有起作用。所以每次搭建好一个项目就把配置文件用小笔记记录下来,方便下次在整合项目的时候直接copy复制就好。下面我们就以Spring整合dubbo的事例看下 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  • 尝试将 WSDL 导入 Visual Studio 2013 时出现循环引用错误(Circular reference error while trying to import WSDL into Visual Studio 2013)
    问题 在 Microsoft Visual Studio 2013 中导入描述 SIRI Web 服务的 WSDL 文件时,出现错误: 警告 5 自定义工具警告:无法导入操作 GetProductionTimetable 中名为 FaultName 的故障。 不受支持的 WSDL,故障消息部分必须引用一个元素。 此故障消息未引用元素。 如果您对 WSDL 文档具有编辑权限,则可以通过使用“元素”属性引用架构元素来解决问题。 C:\path\to\TransportationDemo\TransportationDemo\Service References\ServiceReference\Reference.svcmap 1 当使用由以色列交通部创建的 WSDL 的修改版本时,它删除了很多方法,我得到另一个错误(以及其他错误): 警告 5 自定义工具警告:无法导入 wsdl:portType 详细信息:运行 WSDL 导入扩展时引发异常:System.ServiceModel.Description.XmlSerializerMessageContractImporter 错误:来自 targetNamespace='http://www.siri.org.uk/siri' 的组“ServiceDeliveryBodyGroup”的定义无效:循环组引用。 错误源的 XPath:/
  • 将xml元素绑定到MVC4中的模型(binding xml elements to model in MVC4)
    问题 我已经搜索过,但找不到任何类似的内容,因为这可能是非常基本的。 我基本上是试图从xml文件中读取电影列表,然后将其传递回Model中以用于各种类型的消费。 但是我收到“ System.NullReferenceException:对象引用未设置为对象的实例。” 我的(sudo)C#代码看起来像这样 var xmlDoc = new XmlDocument(); xmlDoc.Load("c:\\movies.xml"); var movieModel = new MovieSummary(); var MovieXML = xmlDoc.GetElementsByTagName("movie"); int i; for (i = 0; i < MovieXML.Count; i++) { movieModel.Movies[i].name = MovieXML[i]["name"].toString(); } 我的模特看起来像这样 namespace movies.Models { public class MovieSummary { public List<Movie> Movies { get; set; } } public class Movie { public string movie { get; set; } } } xml文件看起来像 <movies
  • .NET 2.0 SDK程序-每个工具做什么?(The .NET 2.0 SDK Programs - What does each tool do?)
    问题 我的问题很简单。 他们在做什么? 下面的可接受答案是框架中附带的.NET SDK工具的列表。 回答1 该答案涵盖了简短的描述,并提供了所有.NET SDK工具的链接。 如果您有其他任何信息,或者知道缺少任何工具,请随时进行编辑。 al.exe-程序集链接器从一个或多个模块或资源文件中生成带有程序集清单的文件。 模块是没有汇编清单的Microsoft中间语言(MSIL)文件。 如果您具有一个或多个模块(不带清单的元数据),则可以使用此模块创建一个清单,且清单在单独的文件中。 apatch.exe-使用Delta压缩API,并且专门使用PE文件的知识来改善压缩技术。 它是Windows安装程序技术的一部分。 优点:比发布新的DLL小; 仅当受众具有原始DLL时,此修补程序才有用。 因此,您可以自由发布补丁程序,而不必担心盗版。 aspnet_merge.exe-使用ASP.NET Merge工具可以组合和管理由ASP.NET编译工具(Aspnet编译器)创建的程序集。 ASP.NET合并工具可用于通过使用ASP.NET 2.0版或更高版本创建的程序集。 这样就可以进行以下操作:为整个网站创建一个程序集; 为每个网站文件夹创建一个程序集,并在程序集名称中添加一个前缀; 仅为网站用户界面(UI)元素(例如页面和控件)创建单个程序集。 AxImp.exe
  • Dynamic XML Schema Validates Subsection of Document
    I have a situation similar to "XSD with elements from other namespace", where I have 2 peices of XML. One peice of XML acts as a wrapper to the other. In a simple example - we have a single MESSAGES wrapper, containing at least one MESSAGE elements. Each MESSAGE element contains a PAYLOAD which is validated against an XSD. Each PAYLOAD in a given MESSAGES parent will validate against the same XSD. However, different MESSAGES can contain PAYLOADs that validate against a whole host of XSDs. I literally have hundreds of XSDs to validate different types of PAYLOAD. I want to have my own XSD that
  • 如何将XSD转换为人类可读的文档? [关闭](How to convert xsd to human readable documentation? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我们有一些基于XML的接口,这些接口在XSD架构中已有很好的记录。 这些接口现在将公开可用,我们希望为其创建参考文档。 有没有可以自动将XSD文件转换为可读性更高的格式的工具? 回答1 xs3p可能会做您想要的事情(另请参见其SourceForce页面)。 回答2 将其插入XSD的顶部 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="xs3p.xsl"?> 然后,您可以使用网络浏览器直接查看XSD文件。 Web浏览器使用指定的XSLT转换为HTML。 你并不需要一个XSL处理器,但像xs3p样式表不会产生使用这种方法的链接。 我使用Firefox网络浏览器,IE8似乎对此毫无用处。 我已经尝试过这些xsl样式表:https://sourceforge.net/projects/xs3p/files/xs3p-1.1.3.zip/download http://crism.maden.org/consulting/pub/xsl/xsd2html.xsl 我想我更喜欢xs3p。 回答3
  • 如何仅从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 Schema(XSD)验证工具? [关闭](XML Schema (XSD) validation tool? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 5年前关闭。 改善这个问题 目前,在办公室,我们正在编写一个应用程序,该应用程序将根据给定的模式生成XML文件。 我们在.XSD文件中有架构。 是否可以使用工具或库来进行自动化测试,以检查生成的XML是否与模式匹配? 尽管我们不会捆绑模式检查器,所以我们希望使用适合于商业用途的免费工具,因此它仅需要开发人员在开发过程中使用。 如果有什么不同,我们的开发语言是C ++,尽管我认为它不应该,因为我们可以生成xml文件,然后通过在测试中调用单独的程序进行验证。 回答1 经过研究,我认为最好的答案是Xerces,因为它实现了所有XSD,并且是跨平台的并且被广泛使用。 我在github上创建了一个小型Java项目,以使用默认的JRE解析器(通常为Xerces)从命令行进行验证。 可以在Windows / Mac / Linux上使用。 如果您愿意的话,还有Xerces的C ++版本。 StdInParse实用程序可用于从命令行调用它。 另外,下面的注释者指向此更完整的包装器实用程序。 您还可以使用xmllint,它是libxml的一部分。 您可能已经安装了它。 用法示例: xmllint --noout --schema XSD_FILE XML