2013-05-19 49 views
0

我正在尝试创建一个非常简单的元素,但无法按照我在架构中想要的方式来定义它。 (我用的氧气编辑模式,和我的事实,它试图定义元素的时候给我的错误去)xml架构:如何使用字符串pcdata和一个属性创建元素

我想创建这样一个元素:

<sc:col-hd id="1">Col hd name</sc:col-hd> 

但我无法在模式中定义它。我最终什么事做了两个@atts创建的元素,像这样:

<sc:col-hd id="1" col-name="bean"/> 

和该DEF是这样的:

 <xsd:element name="col-hd" maxOccurs="unbounded"> 

      <xsd:complexType> 
       <xsd:attribute name="id" type="xsd:int"/> 
       <xsd:attribute name="col-name" type="xsd:string"/> 
      </xsd:complexType> 
     </xsd:element>   

,但如果我想将其定义为第一例如,我该怎么做? xsd:simpleContent是atts之前的唯一允许元素(根据oXygen),但是,根据错误必须有一个指向复杂类型的基础。

必须像第一个例子中那样定义元素。第二个折衷方案对我来说确实可行,但它让我感到困扰,我无法像第一个例子那样找到一种方法来实现它。

谢谢。

回答

1

xsd:simpleContent可以扩展简单类型,下面应该做你需要的东西:

<xsd:element name="col-hd" maxOccurs="unbounded"> 

     <xsd:complexType> 
      <xsd:simpleContent> 
       <xsd:extension base="xsd:string"> 
        <xsd:attribute name="id" type="xsd:int"/> 
       </xsd:extension> 
      </xsd:simpleContent> 
     </xsd:complexType> 
    </xsd:element>   
相关问题