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

编程之家收集整理的这篇文章主要介绍了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可以有时被卷入作者,但它有助于保持安全:-)

渣子

总结

以上是编程之家为你收集整理的xml – XSD:将属性添加到强类型的“简单”元素全部内容,希望文章能够帮你解决xml – XSD:将属性添加到强类型的“简单”元素所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:
编程之家官方1群
编程之家官方2群
编程之家官方3群
编程之家官方4群

相关文章

猜你在找的XML相关文章

引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌握其一角。不过个人一直认为基本的技术和思想是放之四海而皆准的,许多技术未必需要我们从头到尾再研究一遍,我们要做的就是站在巨人的肩膀上,利用其成果来为人们的需求服务。 随着移动互联网时代的大潮,越来越多
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1、不认识到犯错,然后得到永久的教训。 2、认识JAXB 3、代码实战   1、不认识到犯错,然后得到永久的教训。   也不是所谓的教训吧,真正的教训来自于对错误的剖析理解很深刻。然后有种“吃一堑,长一智”的感觉才叫教训。近日
http://blog.jobbole.com/79252/ 引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌握其一角。不过个人一直认为基本的技术和思想是放之四海而皆准的,许多技术未必需要我们从头到尾再研究一遍,我们要做的就是站在巨人的肩膀上,利用
(点击上方公众号,可快速关注) 公众号:smart_android 作者:耿广龙|loonggg 点击“阅读原文”,可查看更多内容和干货 昨天我们学习了自定义带图片和文字的ImageTextButton,非常简单,我承诺给大家要讲一下用自定义属性的方式学习真正的实现自定义控件,在布局文件中使用属性的方式就需要用到attr.xml这个文件,以前很多同学问我这个是干什么的,现在学了这篇内容,你就差不多
引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌握其一角。不过个人一直认为基本的技术和思想是放之四海而皆准的,许多技术未必需要我们从头到尾再研究一遍,我们要做的就是站在巨人的肩膀上,利用其成果来为人们的需求服务。 随着移动互联网时代的大潮,越来越多
 (点击上方公众号,可快速关注) 来源: Long Luo 的博客 链接:http://longluo.github.io/blog/20141031/master-XML-JSON-and-how-to-aprse-them-in-10-minutes/ 引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体到小小的一个手机,里面蕴含的技术也是浩
接上文 2.4 如何解析JSON? Android JSON所有相关类,都在org.json包下。 包括JSONObject、JSONArray、JSONStringer、JSONTokener、JSONWriter、JSONException。 <1>. 常见方法 目前JSON解析有2种方法,分别是get和opt方法,可以使用JSON 那么使用get方法与使用opt方法的区别是? JsonObj
原文出处:  Long Luo 的博客(@Long_Luo)   引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而产生的。具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个人穷其一生也未必能掌握其一角。不过个人一直认为基本的技术和思想是放之四海而皆准的,许多技术未必需要我们从头到尾再研究一遍,我们要做的就是站在巨人的肩膀上,
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注