我使用Liquid XML编辑了很多XML文件,我可以通过添加schemaLocation属性将模式与文档相关联,但这是不切实际的,因为我有很多文件而且我不能保留属性,因为上游处理器不喜欢它!
他们是否可以将架构与一组文件相关联?
答案 0 :(得分:0)
有几种方法可以将XSD架构与XML文档相关联。
架构位置属性
如果XML文档包含架构位置属性(xsi:noNamespaceSchemaLocation或xsi:schemaLocation属性),则指向的架构将被加载并用于验证和智能感知。
<强>命名空间强>
XML文件中声明的名称空间用于从模式库中查找模式。如果XML文件中的命名空间与模式库中的条目匹配,则会加载该条目的所有模式。您还可以将自己的条目添加到架构库(更多相关内容)。
手动关联架构
您可以手动将架构与XML文件关联。使用&#34; Xml文档到架构映射&#34;用于选择模式库中现有条目的表单,或者&#34;添加模式文件&#34;选择单个XSD文件以与XML文档关联。然后记住这些设置,然后打开XML文件。如果您的XML文件不包含目标命名空间,则此功能特别有用,因为无法进行自动匹配。
手动将架构与XML文件关联
您可以使用&#34; Xml Document to Schema Mappings&#34;来控制与XML文件关联的模式。形式。
该表单显示已添加到架构库的所有架构。在列表的顶部是您在XML文档中找到的模式(即通过xsi:noNamespaceSchemaLocation或xsi:schemaLocation属性)。
已选中 - 明确包含架构。无论命名空间是否出现在XML文档中,都使用该模式。将模式与不包含任何名称空间信息的XML文档相关联时,这非常有用。
未选中 - 明确排除架构。无论其名称空间是否与XML文档匹配,架构都将不。当您拥有相同模式的多个版本,并且它们都具有相同的名称空间,或者模式如此之大,智能感知将XML编辑器的速度降低到不可接受的程度时,这非常有用。
不确定 - 自动架构选择。如果架构条目中的命名空间与XML文件中的命名空间匹配,则将使用此条目。 这是所有条目的默认状态。
添加自己的架构库条目
如果您有一组不在标准库中的模式,您可以添加自己的条目。
注意您可以添加几个可能不一定相互关联的模式文件,例如FIXML包含在文档中包含XHTML的注释,您也可以添加XHTML模式。如果您这样做,最好从列出的触发器命名空间中取消选择XHTML命名空间(因此在打开XHTML文档时不会使用此标准,只有在打开FIXML文档时才会使用此标准。)
最后答案
如果您的XML文档都在给定的命名空间中,那么最好的办法是创建一个Schema Library Entry。这将自动与包含该命名空间的任何XML文档相关联,因此您将自动获得验证和智能感知。