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

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约束该怎么写呢???

------解决方案--------------------
自己写了一下,没写出来!水平有限,力挺大牛们的到来!