簡體   English   中英

xml-重復元素-這有效嗎?

[英]xml - repeating elements - is this valid?

根據在線驗證規則,該XML似乎是有效的,但是我懷疑每個步驟都應該包裝在標簽中以使其唯一。 這違反什么規則?

<tasks>                                               
       <step>fix fan</step>
       <NoInc>RT260454</NoInc>             

       <step>fix power supply</step>
       <NoInc>RT260456</NoInc>                 
</tasks> 

這樣表達更好嗎?

<tasks>                                               
   <task>
       <step>fix fan</step>
       <NoInc>RT260454</NoInc>             
   </task>
   <task>        
       <step>fix power supply</step>
       <NoInc>RT260456</NoInc>                 
   </task>
</tasks> 

將其映射到數組時,我會冒着將第一步覆蓋第二步的風險嗎?

這是有效的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之間需要一對一的映射,則將它們包裝在另一個標簽中是有意義的。

XML有效且格式正確。 但是,如果元素的順序很重要,則應仔細考慮文檔的設計。 同樣有效的文檔將首先顯示固定電源,然后顯示固定風扇 甚至首先是兩個<NoInc>元素,然后是兩個<Step>元素。

此外,如果<NoInc>元素以某種方式依賴於<Step>元素,則應在設計中顯示此關系,方法是將NoInc文本設置為<Step>元素的屬性,或者為每對創建一個父元素<Step><NoInc>元素的集合。

例如:

  <Task>
      <SubTask>
          <step>fix fan</step>
          <NoInc>RT260454</NoInc>
      </SubTask>
      <SubTask>
          <step>fix power supply</step>
          <NoInc>RT260456</NoInc>
      </SubTask>
  </Task>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM