2011-03-30 77 views
3

我似乎无法找到一个简单问题的解决方案。我需要写一个xsd文件。带属性和最大长度限制的XSD元素

我想哈瓦一个XML文件是这样的:

<info lang="someLang">Some long text not longer than 3000</info> 

我无法获得最大长度的限制。现在我尝试了这样的事情,但这是不对的。

<element minOccurs="1" maxOccurs="1" name="Info"> 
    <complexType> 
     <simpleContent> 
      <restriction base="string"> 
       <maxLength value="3000" /> 
       <attribute name="lang" type="language"/>    
      </restriction> 
     </simpleContent> 
    </complexType> 
</element> 
+0

你是什么意思“不正确”? – skaffman 2011-03-30 08:03:25

+0

- src-ct.2.1:类型'#AnonType_InfoAdType'的复杂类型定义表示错误。当使用时,基本类型必须是内容类型很简单的complexType,或者只有在指定了限制的情况下,才能使用带有混合内容和可变粒子的复杂类型,或者只有在指定了扩展名的情况下,类型。 '字符串'不满足这些条件。 \t - 元素的开始标记 ivar 2011-03-30 08:05:28

回答

5

是的,这是很晦涩难懂。

具有简单内容的复杂类型总是通过简单类型的扩展派生而来。因此,您需要将一个简单类型定义为xs:string的限制,并使用maxLength约束,然后通过扩展来定义复杂类型。