如何检查XML文件是否使用XML定义(XSD)?例如,如果您解压缩一个签名的odt文件(LibreOffice或OpenOffice文本文档),则META目录中是signaturefile documentsignatures.xml。在这个文件中,属性xmlns为元素<Signature>和<document-signatures>定义了默认名称空间。属性xmlns:xsi既没有对XML实例(XSI)命名空间"http://www.w3.org/2001/XMLSchema-instance"的引用,也没有属性xsi:schemaLocation对XML文件xmldsig-core-schema.xsd的引用。因此,不应在任何方案下验证documentsignatures.xml文件的全部内容。对吗?
以下是对应的XML文档documentsignatures.xml的第一行
<?xml version="1.0" encoding="UTF-8"?>
<document-signatures xmlns="urn:oasis:names:tc:opendocument:xmlns:digitalsignature:1.0">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="ID_006900630020002d0084000e004a008b009b00a6006f004b007c007b002d007f">
<SignedInfo>...问候
卡伦
发布于 2020-02-13 16:53:56
"...How我可以检查XML文件是否使用XML定义(XSD)吗?“
(1)如果属性xsi:schemaLocation在XML文件中没有对XML的内嵌引用,则不能。
(2)尽管无论使用什么API,它仍然可以针对实际XML文件中没有提到的一些XSD模式进行验证。
https://stackoverflow.com/questions/60212613
复制相似问题