xsd的约束是依据xml中某一个元素值

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约束该怎么写呢???
------解决方案--------------------
自己写了一下,没写出来!水平有限,力挺大牛们的到来!