我有一个应用程序,用户可以上传XSD来描述某些类型的用户数据。应用程序需要解析此XSD以正确初始化数据库元数据的各个位(例如,将xs:枚举转换为将填充下拉列表的允许值列表)。同一个用户输入的XSD也用于验证其他系统发送给应用程序的XML文档。
是否可以编写一个主XSD,我可以使用它来验证这样的用户提供的XSD,这样我就可以限制用户如何描述他们的数据,从而使XSD解析的工作更容易?例如,假设我希望能够允许用户上传任何XSD,除非它包含xs:union标记。如何编写可用于验证用户上传的XSD以强制执行此规则的XSD?
答案 0 :(得分:4)
您可以在此处找到它:http://www.w3.org/2001/XMLSchema.xsd
只是提示,架构以xsd:schema标签开头。如果正确,则包含一个属性:
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
按照网址找到并显示信息页面,其中包含指向dtd和xsd的链接。
答案 1 :(得分:1)
如果您忽略用户提供的文件是XSD文件并将其视为XML,我认为您会更容易发现此问题。毕竟,XSD文件只是XML,因此您可以像对待任何其他文件一样对它们实施架构规则。
我首先看一下XMLSchema's schema。使用它,您可以编写自己的模式,为源文档添加额外的需求,例如强制所有文档都有一个联合。