2013-07-10 116 views
2

我試圖在xml中找到2d矩陣的最佳表示形式(使用xsd模式)。我看到很多代表像thisthis。不過,我不能選擇最好的選擇。請建議我。也許有任何推薦或標準?2d矩陣的xml表示

回答

2

我認爲它強烈地依賴於你需要它的確切目的(例如簡單地選擇xslt中的單元格或列,表示跨度單元格或行的可能性等)。

最常見的(IMO)解決方案描述在您的第一個鏈接(它類似於HTML表格)。以我的觀點來看,用單元格的實際行數定義一些屬性非常有用 - 只是爲了使選擇或引用更簡單,並且能夠跳過某些單元格或行。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 

    <xs:complexType name="cell_type"> 
     <xs:simpleContent> 
      <xs:extension base="xs:string"> 
       <xs:attribute name="cellNo" type="xs:int" use="required" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 

    <xs:complexType name="row_type"> 
     <xs:sequence> 
      <xs:element name="Cell" type="cell_type" maxOccurs="unbounded" /> 
     </xs:sequence> 
     <xs:attribute name="rowNo" type="xs:int" use="required" /> 
    </xs:complexType> 

    <xs:element name="Matrix"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="Row" type="row_type" maxOccurs="unbounded"> 
        <xs:unique name="cellNoKey"> 
         <xs:selector xpath="Cell" /> 
         <xs:field xpath="@cellNo" /> 
        </xs:unique> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     <xs:unique name="rowNoKey"> 
      <xs:selector xpath="Row" /> 
      <xs:field xpath="@rowNo" /> 
     </xs:unique> 
    </xs:element> 
</xs:schema>