如何利用XMLSpy实现从多个XML实例生成架构
最近,与一位工程师的讨论中发现,客户产生最多的问题是模式生成,特别是“如何生成XSD?”。答案当然是用自己喜欢的XML编辑器。
其中,XMLSpy将从DTD,关系数据库结构,JSON模式,当然还有XML实例生成有效的XSD。但很多客户不知道的是XML编辑器还将基于一组相关的XML文件创建XML Schema,这是一个常见的要求。接下来我们来看看它是如何工作的。
生成XSD
假设我继承了一个Web开发项目,接收了一组XML文件作为起点,但没有XML Schema。要为这些文件生成XSD,我首先需要将它们添加到XMLSpy项目中。对于接下来的工作这将非常有用,因为项目将所有相关文件分组到一个易于管理的文件夹组中,我们可以在其中分配XSLT转换,执行批处理操作,例如项目范围的验证等等。
这里我们来说说XMLSpy项目本身,文件夹可以对应于文件系统上的实际目录,或者我可以为每个文件夹定义文件类型扩展名,以便将公共文件保存在一个方便的位置。项目文件夹是虚拟文件夹,不需要与我服务器上文件的任何分层组织相对应。
我还可以为每个文件夹分配不同的XSL转换参数,并将相同的物理文件放在多个项目文件夹中。当我需要将数据保存在一个XML文件中并使用不同的XSL样式表来生成不同的输出时,这非常有用。当然,XMLSpy项目管理与大多数源代码控制系统是集成在一起的。
言归正传,我们说回生成架构。第一步是从“项目”菜单中选择“新建项目”。XMLSpy使用各种文件类型的占位符文件夹创建一个框架项目。根据需要,可以轻松添加自定义文件夹。要将我收到的文件添加到这个新项目,我右键单击XML Files文件夹并选择Add Files ...
然后浏览以选择网站的XML文件。这是使用描述性名称保存项目的好时机,这也将新添加的文件关联保存到项目中。
最后,我需要做的就是右键单击XML Files文件夹并选择Generate DTD / Schema ...查看或更新可配置选项。
这将基于文件夹中包含的所有XML文件生成XSD。单击OK后,系统会提示我们保存自动生成的XML Schema,并在图形XML Schema View中打开。以下是基于XML实例文件生成的全局元素:
XSD编辑器的图形设计范例可以根据需要轻松优化和编辑此模式。就是这样,通过几个简单的步骤,我就得到了一个基于一组实例文件生成的有效模式。