首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

xsd的约束是根据xml中某一个元素值解决方案

2012-04-03 
xsd的约束是根据xml中某一个元素值看例子:xml文档:例1:studentstudentID0070/studentIDname/name

xsd的约束是根据xml中某一个元素值
看例子:

xml文档:
  例1:
  <student>
  <studentID>0070</studentID>
  <name></name>
  </student>
  例2:
  <student>
  <studentID>0070</studentID>
  <name>jack</name>
  </student>
  例3:
  <student>
  <studentID></studentID>
  <name>jack</name>
  </student>


xsd文档: (有错误)
 <xs:group name="s1">
  <xs:sequence>
  <xs:element name="studentID">
  <xs:simpleType>
<xs:restriction base="xs:string">
  <xs:minLength value="1" />
</xs:restriction>
  </xs:simpleType>
  </xs:element>
  <xs:element name="name" type="xs:string" />
  </xs:sequence>
  </xs:group>

 <xs:group name="s2">
  <xs:sequence>
  <xs:element name="studentID">
  <xs:simpleType>
  <xs:restriction base="xs:string">
<xs:maxLength value="0" />
</xs:restriction>
  </xs:simpleType>
  </xs:element>
  <xs:element name="name">
  <xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1" />
</xs:restriction>
  </xs:simpleType>
  </xs:element>
  </xs:sequence>
 </xs:group>

  <xs:element name="student">
  <xs:complexType>
  <xs:choice><xs:group ref="s1"></xs:group><xs:group ref="s2"></xs:group>
  </xs:choice>
  </xs:complexType>
  </xs:element>


意思是当学号不为空的时候,名字可以为空也可以不为空;当学号为空的时候,名字不可以为空。这个xsd这样写不行啊,元素名"studentID"和"name"命名冲突。谁能告诉我这个XML相应的xsd约束该怎么写呢???

[解决办法]
自己写了一下,没写出来!水平有限,力挺大牛们的到来!

热点排行