xml – XSD:将属性添加到强类型的“简单”元素

有一些明智的方式来使用强类型的简单类型和属性的元素?

好的,我有一个XSD模式,它有一个百万(呃,百)元素可能是这样的:

<xsd:element name="DocumentDescription" type="xsd:string" />
<xsd:element name="DocumentDateTime" type="xsd:dateTime" />
<xsd:element name="DocumentSize" type="xsd:int" />

这是花花公子但是,我真的希望所有这些元素也有一些常见的属性,比如说,“格式”和“isVisible”.即具有如下所示的模式:

<DocumentDescription isVisible="true">doc description</DocumentDescription>
<DocumentDateTime format="dd/mm/yyyy" isVisible="true">1/1/2008</DocumentDescription>
<DocumentSize format="0.00 KB" isVisible="false">5403</DocumentSize>

我可以手动执行,可怕的是,当我生成它时,将所有这样的属性添加到XSD,这样的东西:

<xsd:element name="DocumentDescription" />
  <xsd:complexType>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="format" type="xsd:string" />
        <xsd:attribute name="isVisible" type="xsd:boolean" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
<xsd:element name="DocumentDateTime" />
   ... etc

…但是在一个理想的世界中,我宁愿把它定义为一个复杂的类型:

<xsd:complexType name="customType">
  <xsd:complexContent>
    <xsd:extension base="???">
      <xsd:attribute name="format" type="xsd:string" />
      <xsd:attribute name="isVisible" type="xsd:boolean" />

这意味着我可以做:

<xsd:element name="DocumentDescription" type="customType" baseType="xsd:string" />
<xsd:element name="DocumentDateTime" type="customType" baseType="xsd:dateTime" />
<xsd:element name="DocumentSize" type="customType" baseType="xsd:int" />

我的“理想世界”代码的问题是:

a)我没有有效的< xsd:extension base - “???”&gt ;,因为我真的不在乎我在扩展什么;我想扩展所有类型.似乎像“xsd:anyType”是适当的,但是那个元素是不是弱类型的容器呢? b)我不能再指定< xsd:element>上的简单类型,因为现在该类型是我定义的复杂的“customType”.因此,我放在那里的虚构的“baseType”属性

那么我可以用非笨重的方法为简单类型添加属性吗?或者我需要定义十几个完全相同的complexTypes,除了它们扩展的简单类型?

强类型的元素不仅可以更加明了地描述数据,而且在Excel中使用它们进行XML映射(这是这些东西的全部目的)时,强类型意味着Excel会根据类型正确设置单元格格式.

我可能看着这一切都错了!任何建议赞赏.

[quote]could do it manually,and horribly,by
adding all such attributes to the XSD
when I generate it,something like
this:[/quote]

我恐怕这是你唯一的“适当”,XSD模式兼容的方式来做到这一点.

XSD可以有时被卷入作者,但它有助于保持安全:-)

渣子

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念