xml-重复元素-这有效吗?
根据在线验证服务,此XML似乎是有效的,但我怀疑每个步骤都应该包装在一个标记中,以使其唯一。这违反了什么规定xml-重复元素-这有效吗?,xml,Xml,根据在线验证服务,此XML似乎是有效的,但我怀疑每个步骤都应该包装在一个标记中,以使其唯一。这违反了什么规定 <tasks> <step>fix fan</step> <NoInc>RT260454</NoInc> <step>fix power supply&l
<tasks>
<step>fix fan</step>
<NoInc>RT260454</NoInc>
<step>fix power supply</step>
<NoInc>RT260456</NoInc>
</tasks>
固定风扇
RT260454
固定电源
RT260456
这样表达是否更好
<tasks>
<task>
<step>fix fan</step>
<NoInc>RT260454</NoInc>
</task>
<task>
<step>fix power supply</step>
<NoInc>RT260456</NoInc>
</task>
</tasks>
固定风扇
RT260454
固定电源
RT260456
当将此映射到数组时,我是否会冒用第二步覆盖第一步的风险?这是有效的xml,下面是支持该xml的XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tasks" type="tasksType"/>
<xs:complexType name="tasksType">
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element type="xs:string" name="step"/>
<xs:element type="xs:string" name="NoInc"/>
</xs:choice>
</xs:complexType>
</xs:schema>
如果step和noinc之间需要1对1的映射,那么将它们包装在另一个标记中是有意义的。XML有效且格式良好。但是,如果元素的顺序很重要,则应该仔细考虑文档的设计。同样有效的文件将显示固定电源第一个和固定风扇第二个。或者甚至先是两个
元素,然后是两个
元素
此外,如果
元素以某种方式依赖于
元素,则应在设计中通过将NoInc文本作为
元素的属性或为每对
和
元素创建父元素来显示这种关系
例如:
<Task>
<SubTask>
<step>fix fan</step>
<NoInc>RT260454</NoInc>
</SubTask>
<SubTask>
<step>fix power supply</step>
<NoInc>RT260456</NoInc>
</SubTask>
</Task>
固定风扇
RT260454
固定电源
RT260456
它没有违反任何规则。它完全有效。@Robert:它没有违反任何规则,因为该文档没有任何规则。因此它不可能是有效的(无需验证)。这只是格式良好的XML。-1:答案是错误的。它不是有效的XML,只是格式良好。请参考这些链接。它是有效的,因为它验证了一个架构(如上所述)。该架构不是问题的一部分。问题中给出的XML没有模式。因此它是无效的,只是形式正确。查看您在评论中的SO链接。并为此建立了许多学校。这不是你的错,但是如果你把链接粘贴到这个网站上,可能看起来很侮辱人。谢谢你的澄清。我明白你的观点,同意问题中没有提供任何模式。这意味着有一个模式,因为海报声称使用了在线验证服务,如果它是真正的验证,就需要一个模式。我在回答中提供了一个例子,我想说,由于没有给出进一步的参考,OP实际上询问了有效性,但不理解有效XML的实际含义。Abe很可能在询问将日期编码为XML以供以后重用(例如)的最佳实践是什么。然而,由于这是基于观点的,显然是离题的。当你发明模式时,你的答案被OP接受,这似乎支持了我概述的场景。