我正在尝试在 xml 中找到 2d 矩阵的最佳表示(使用 xsd 模式)。我看到很多这样或这样的表示。尽管如此,我无法选择最佳选择。请给我提意见。也许有任何建议或标准?
问问题
3824 次
1 回答
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>
于 2013-07-10T10:28:46.207 回答