将 XML 转换为 XSD:从多个 XML 实例生成模式

我最近和一位我们的技术支持工程师交流,他告诉我客户经常会提出的一些常见问题。其中一个问题经常出现,那就是“如何从 XML 文件生成 XSD 模式文件?” 答案当然是使用你喜欢的 XML 编辑器。XMLSpy 可以从 DTD(文档类型定义)、关系数据库结构、JSON 模式以及 XML 实例等多种来源生成有效的 XSD 模式文件。

然而,许多顾客可能会惊讶地发现,这个 XML 编辑器还会根据用户提供的文档,自动生成一个 XML 模式(Schema) 群体 与相关XML文件进行关联,这是很常见的需求。接下来,我们来看看它是如何实现的。

生成一个XSD文件

假设我继承了一个Web开发项目,项目起点是一组XML文件,但缺少XML Schema(XML模式)。为了为这些文件生成XSD,我首先需要将它们添加到XMLSpy项目中。这在之后会很有用,因为该项目将所有相关文件组织在一个易于管理的文件夹组中,我可以在其中搜索特定文件,应用XSLT转换,执行批量操作,例如整个项目的验证和查找文件内容,等等。

值得花一点时间来介绍一下 XMLSpy 项目本身。这些文件夹可能对应于文件系统中实际的目录,或者我可以为每个文件夹定义文件类型扩展名,这样可以将常见的文件集中在一个方便的位置。这些项目文件夹是虚拟文件夹,不需要与服务器上文件的任何层级结构相对应。

我还可以为每个文件夹分配不同的XSL转换参数,并且同一个物理文件可以包含在多个项目文件夹中。这在需要将数据保存在一个XML文件中,并使用不同的XSL样式表生成不同输出结果时特别有用。此外,XMLSpy的项目管理功能与大多数版本控制系统集成。

好的,我们回到生成XSD的步骤。第一步是从“项目”菜单中选择“新建项目”。XMLSpy会创建一个包含各种文件类型的占位符文件夹的基本项目。根据需要,可以轻松添加自定义文件夹。为了将我收到的文件添加到这个新项目中,我右键单击“XML文件”文件夹,然后选择“添加文件...”

...然后浏览并选择用于网站的XML文件。现在是给项目保存一个具有描述性的名称的好时机,同时这也会将新添加的文件关联保存到项目中。

现在,我只需要右键点击“XML 文件”文件夹,选择“生成 DTD/Schema…”,然后查看或更新可配置的选项即可。

这将会根据文件夹中包含的所有 XML 文件生成一个 XSD 文件。点击“确定”后,系统会提示您保存自动生成的 XML 模式文件,并将其打开在...(此处省略具体打开的软件或界面) 图形化 XML 模式视图. 以下是根据 XML 实例文件生成的全局元素:

点击任何元素旁边的树形图标,即可查看该元素的详细内容模型。

XSD 编辑器 的图形化设计理念,使得用户可以轻松地调整和编辑该模式,以满足实际需求。

就这样,通过几个简单的步骤,我就可以根据一组实例文件生成一个有效的模式。

哪些 XMLSpy 的功能可以帮助您更轻松地完成日常工作?或者,您希望看到哪些可以节省时间的特性被添加?我们非常乐意听取您的反馈。请在下方留言!