2010-05-02 62 views
3

我正在阅读w3cschools上的教程(http://www.w3schools.com/schema/schema_complex.asp),但他们似乎没有提及如何在复杂类型上添加限制。如何对XML Schema复杂类型进行限制?

就像我有这个模式。

<xs:element name="employee"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="firstname" type="xs:string"/> 
     <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

现在我想确保firstname不超过10个字符长。我该怎么做呢?

我试图把名字的简单类型,但它说我不能这样做,因为我使用的是复杂类型。

那么我该如何在文件上放置这样的限制,以便我给架构的人不要试图使第一个名字成为100个字符。

回答

5

一些限制,你可以有XSD:

比方说,你想要的firstName没有长度超过10个字符。你会用类似的东西:

<xs:element name="employee"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="firstname"> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
      <xs:maxLength value="10"/> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:element> 
     <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

对于更复杂的约束,你将不得不做一些基于代码的检查,我猜。

+0

因为我总是在元素中放入“type =”xs:string“”,就像它在之前的教程中显示的那样,但是不知道你没有这样做。所以我认为这解决了我的问题。 – chobo2 2010-05-03 05:07:35

3
<xs:element name="employee"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="firstname"> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
      <xs:maxLength value="10"/> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:element> 
     <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

这是否解决了您的问题?

相关问题