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可以有时被卷入作者,但它有助于保持安全:-)

渣子

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇