我知道如何编写XML和XSD文件,但这是我第一次在开发中实际使用它们。属性schemaLocation(例如<note xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
)有什么意义,因为它不能用于加载XML文件应该遵守的XSD文件?
这是我的情况。项目要求是具有输入XML配置文件,并为其提供XSD文件。程序运行时,它首先根据XSD架构验证XML。我的问题是,该程序如何知道XSD文件?它是通过命令行参数传递的,通过解析schemaLocation
的字符串获得,还是可以硬编码到程序中,因为输入文件的模式永远不会改变(或者至少它的名称不会改变) ?
验证程序的xml配置文件的“常用做法”是什么?
答案 0 :(得分:1)
属性
的重点是什么schemaLocation
xsd:schema/@schemaLocation
属性提供了有关用于此XML文档的XSD位置的提示。
因为它不能用于加载XML文件应该遵守的XSD文件吗?
是的,它确实可用于查找和加载XML应该遵守的XSD文件。
我的问题是,程序如何知道XSD文件?
最常见的方法是将schemaLocation
用于命名空间XML,将noNamespaceSchemaLocation
用于没有命名空间的XML。默认情况下,符合XML的解析器通常会使用这些属性来定位XSD。
是否通过解析获得的命令行参数传递 schemaLocation的字符串,或者可以将其硬编码到程序中 输入文件的模式永远不会改变(或至少它的名称 不会改变)?
所有这些选项都是可能的,但如上所述,schemaLocation
和noNamespaceSchemaLocation
是最常见的。