Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在XML模式中指定不使用';你不在乎元素的名称吗?_Xml_Xsd - Fatal编程技术网

如何在XML模式中指定不使用';你不在乎元素的名称吗?

如何在XML模式中指定不使用';你不在乎元素的名称吗?,xml,xsd,Xml,Xsd,我正在尝试解析XML文件,我想提供一个模式来进行验证。但是,由于我不关心某些标记名,我想允许用户为某些标记指定任何内容 XML示例: <root> <record> <data1>foo</data1><data2>bar</data2> </record> <record> <data2>foo2</data2><

我正在尝试解析XML文件,我想提供一个模式来进行验证。但是,由于我不关心某些标记名,我想允许用户为某些标记指定任何内容

XML示例:

<root>
    <record>
        <data1>foo</data1><data2>bar</data2>
    </record>
    <record>
        <data2>foo2</data2><data1>bar2</data1>
    </record>
</root>

福巴
foo2bar2
在本例中,标记名“data1”和“data2”对程序很重要(主要是因为它们可以按如上所示的任何顺序出现),但标记名“record”和“root”则不重要


允许用户使用任何(非空)字符串为“record”和“root”指定XML,这仍然可以根据我的模式进行验证,这将是一件好事。

这违背了创建模式和定义契约的目的。它需要用户联系开发人员(您)以了解如何使用您的服务。您不希望陷入这样一种情况,即了解如何使用服务的准则是“联系Jack”。

我认为XML模式不可能做到这一点。一旦引入通配符元素,就失去了指定其包含内容的所有控制。关键是要定义一个结构。可以有可选的记录计数和可选字段,但应定义字段和记录结构。