以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [求助]请问“代码表”数据结构在Xml Schema中如何表示?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=47531)


--  作者:sunmcc
--  发布时间:5/25/2007 11:12:00 AM

--  [求助]请问“代码表”数据结构在Xml Schema中如何表示?
刚开始了解XSD ,有个问题一直困扰,有一个这样的数据结构:
MediaType: 01(磁带)
                 02(磁盘)
                 03(光盘)
              .........
在用架构表示时,选用SimpleType enumeration:
<xs:simpleType name="codelist">
    <xs:restriction base="xs:string">
      <xs:enumeration value="001" />
      <xs:enumeration value="002" />
    </xs:restriction>
</xs:simpleType>
我将如何将它的解释信息(磁盘;光盘)也表示出来??前提是不用annotation,因为我还有一些别的信息想放在annotation里面。
能有人解答一下吗,万分感谢!~
--  作者:xml-linguist
--  发布时间:5/25/2007 12:04:00 PM

--  
无知者无畏!上!

数据结构:
      MediaType: 01(磁带)
                 02(磁盘)
                 03(光盘)

xml
...
<media>
<classification num=""></classification>
</media>
...

xsd01
...
<xs:element name="meida">
<xs:complexType>
  <xs:sequence>
   <xs:element name="classification" minOccurs="1"/>
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:enumeration value="磁带"/>
      <xs:enumeration value="磁盘"/>
      <xs:enumeration value="光盘"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:sequence>
  <xs:attribute name="num" type="xs:positiveInteger"/>
</xs:complexType>
</xs:element>
...

xsd02
...



--  作者:sunmcc
--  发布时间:5/25/2007 3:44:00 PM

--  
非常感谢二楼的回复,可能我表达的不够清楚,我的xml希望是这样的:
<MediaType>001</MediaType>
而xsd文件基本上应该是:<xs:simpleType name="MediaType">
                                    <xs:restriction base="xs:string">
                                    <xs:enumeration value="001" />
                                   <xs:enumeration value="002" />
                                  </xs:restriction>
                                </xs:simpleType>
也就是我在xml中不想把注释信息表达出来,但是想在在架构文件中有所说明。问题就是我不清楚如何在架构中表达


--  作者:sunmcc
--  发布时间:5/25/2007 3:49:00 PM

--  
要是可以像:<xs:enumeration value="001" name="磁带" />
这样就好了,



--  作者:xml-linguist
--  发布时间:5/26/2007 9:44:00 AM

--  
以下是引用sunmcc在2007-5-25 15:44:00的发言:
非常感谢二楼的回复,可能我表达的不够清楚,我的xml希望是这样的:
<MediaType>001</MediaType>
而xsd文件基本上应该是:<xs:simpleType name="MediaType">
                                     <xs:restriction base="xs:string">
                                     <xs:enumeration value="001" />
                                    <xs:enumeration value="002" />
                                   </xs:restriction>
                                 </xs:simpleType>
也就是我在xml中不想把注释信息表达出来,但是想在在架构文件中有所说明。问题就是我不清楚如何在架构中表达




<mediaType>作为元素,它的值你已经给确定了是序列号;再要加入“光盘”之类的数据,肯定还得嵌套一层元素;或,把序列号改为属性值。在同一层元素中要设定两种值,我不理解。
--  作者:sunmcc
--  发布时间:5/28/2007 8:58:00 AM

--  
001,002这些是枚举值,是xml文件中mediaType的取值,而“光盘”,“磁盘”这些是在架构中用来做解释的注释。不知道Schema能不能表达呢?Annotation是可以给枚举做注释的,可是我想知道有没有其他的方法


[此贴子已经被作者于2007-5-28 10:47:24编辑过]

--  作者:gemingke
--  发布时间:6/19/2007 3:07:00 PM

--  
看看能不能用这样的方式
代码本身作为元素来建立,注释信息作为元素的值
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
58.594ms