Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 根据XSD中任何其他元素的值,我们可以将一个元素设置为可选的还是必需的_Xml_Xsd - Fatal编程技术网

Xml 根据XSD中任何其他元素的值,我们可以将一个元素设置为可选的还是必需的

Xml 根据XSD中任何其他元素的值,我们可以将一个元素设置为可选的还是必需的,xml,xsd,Xml,Xsd,在XSD中,我有一个元素x,它取值(a,b) 还有一个元素是y 是否有任何方法可以使用XSD,这样当x的值为b时,我可以将y设为必填项,而当x的值为a时,我可以将y设为可选项。请查看,第节 它说: 通常,当minOccurs的值为1或更多时,需要显示元素。元素出现的最大次数由其声明中maxOccurs属性的值决定。该值可以是正整数,如41,也可以是无界项,表示不存在最大出现次数。minOccurs和maxOccurs属性的默认值均为1 因为不能从XML模式中的其他模式内容推断属性值,所以您想要实

在XSD中,我有一个元素x,它取值(a,b)

还有一个元素是y

是否有任何方法可以使用XSD,这样当x的值为b时,我可以将y设为必填项,而当x的值为a时,我可以将y设为可选项。请查看,第节

它说:

通常,当minOccurs的值为1或更多时,需要显示元素。元素出现的最大次数由其声明中maxOccurs属性的值决定。该值可以是正整数,如41,也可以是无界项,表示不存在最大出现次数。minOccurs和maxOccurs属性的默认值均为1

因为不能从XML模式中的其他模式内容推断属性值,所以您想要实现的是不可能的(使用XML模式)


(我不知道是否可以这样做,但您可以调查它是否支持此类内容相关定义。)

这可以通过RelaxNG(查找共现约束)来完成。我相信现在可以使用XMLSchema1.1作为well@Nic吉布森:这很有趣!我正在研究XSD1.1的新特性。因为它仍然是一个候选推荐,所以我们可能不得不等到XSD1.1得到公共库的支持。编辑:我在WP中读到“Xerces和Saxon都发布了大约90%完成的实现。”听起来很有希望。