以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  有没有牛人来解决以下xsd文件中元素名需要定义成变量的问题!在线等!很急!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=54899)


--  作者:keflo
--  发布时间:11/5/2007 5:45:00 PM

--  有没有牛人来解决以下xsd文件中元素名需要定义成变量的问题!在线等!很急!
应用需要将xsd中的元素名定义成变量形式。xsd片断如下。

<omp:Property omp:name="AppName1" omp:type="String" omp:value="PetShop"/>
  <omp:Property omp:name="RootDir1" omp:type="String" omp:value="C:\temp\PetShop\Web"/>
  <omp:Property omp:name="VDir11" omp:type="String" omp:value="data1"/>
  <omp:Property omp:name="VDirRoot11" omp:type="String" omp:value="D:\data1"/>
  <omp:Property omp:name="VDir12" omp:type="String" omp:value="data2"/>
  <omp:Property omp:name="VDirRoot12" omp:type="String" omp:value="D:\data2"/>
  
  <omp:Property omp:name="AppName2" omp:type="String" omp:value="PetShopSupply"/>
  <omp:Property omp:name="RootDir2" omp:type="String" omp:value="D:\temp\PetShop\Supply"/>
  <omp:Property omp:name="VDir21" omp:type="String" omp:value="supply1"/>
  <omp:Property omp:name="VDirRoot21" omp:type="String" omp:value="D:\supply1"/>
  <omp:Property omp:name="VDir22" omp:type="String" omp:value="supply2"/>
  <omp:Property omp:name="VDirRoot22" omp:type="String" omp:value="D:\supply2"/>

需求为
AppName必须出现至少一次,即AppName1必须有。
在没有AppName1的情况下AppName2,AppName3算错。
RootDir1必须有,RootDir的下标必须跟随AppName。
即AppName1的情况下出现RootDir2算错。
VDir,VDirRoot都是可选项。下标必须跟随AppName。

以上XSD将各个元素都定死了。如果需要将AppName1变成AppName[i]这样的形式,然后i可以从1到3取值。即以下的形式。
      <xsd:element name="[color=#FF0000]AppName[i][/color]" type="xsd:string" minOccurs="1" maxOccurs="1"/>
      <xsd:element name="[color=#FF0000]RootDir[i][/color]" minOccurs="1" maxOccurs="1"/>

在xsd中怎样定义。xsd语法不太熟。但现在急需这样做,请问能办到吗。
xml用例为以下形式
<omp:Property omp:name="AppName1" omp:type="String" omp:value="PetShop"/>
  <omp:Property omp:name="RootDir1" omp:type="String" omp:value="C:\temp\PetShop\Web"/>
  <omp:Property omp:name="VDir11" omp:type="String" omp:value="data1"/>
  <omp:Property omp:name="VDirRoot11" omp:type="String" omp:value="D:\data1"/>
  <omp:Property omp:name="VDir12" omp:type="String" omp:value="data2"/>
  <omp:Property omp:name="VDirRoot12" omp:type="String" omp:value="D:\data2"/>
  
  <omp:Property omp:name="AppName2" omp:type="String" omp:value="PetShopSupply"/>
  <omp:Property omp:name="RootDir2" omp:type="String" omp:value="D:\temp\PetShop\Supply"/>
  <omp:Property omp:name="VDir21" omp:type="String" omp:value="supply1"/>
  <omp:Property omp:name="VDirRoot21" omp:type="String" omp:value="D:\supply1"/>
  <omp:Property omp:name="VDir22" omp:type="String" omp:value="supply2"/>
  <omp:Property omp:name="VDirRoot22" omp:type="String" omp:value="D:\supply2"/>


--  作者:danielhy
--  发布时间:11/9/2007 11:42:00 AM

--  
举个简单的例子吧,看这那么多代码,晕了
--  作者:waoywssy
--  发布时间:1/22/2008 1:34:00 PM

--  
不能.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms