2010-08-05 16 views
15

, ben Ne yazık ki buxs kullanarak: extension & xs: kısıtlama birlikte mi? Bir XML şeması yazarken

<xs:complexType name="ValueWithUnits"> 
    <xs:simpleContent> 
     <xs:extension base="xs:double"> 
      <xs:attribute name="uom" fixed="second"/> 
      <xs:minInclusive="0"/> 
      <xs:maxInclusive="10"/> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

böyle bir şey yapmak çalışılıyor, xs: xs uzantısı ise: minInclusive & xs: maxInclusive xs izin verilmektedir: nitelik xs izin verilir kısıtlama, ancak birlikte değil.

Bunu yapmanın en iyi yolu nedir? Uygun bir & birimiyle bir uzantı tanımlamalı mıyım, daha sonra min & max değerleriyle kısıtlamalı mıyım?

cevap

15

Bunu yapmam & I olmaz umuduyla olurdu ne acaba,

<?xml version="1.0" encoding="utf-8" ?> 
<!--Created with Liquid XML Studio Developer Edition 8.1.4.2482 (http://www.liquid-technologies.com)--> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:simpleType name="RestrictedDouble"> 
     <xs:restriction base="xs:double"> 
      <xs:minInclusive value="0" /> 
      <xs:maxInclusive value="10" /> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:complexType name="ValueWithUnits"> 
     <xs:simpleContent> 
      <xs:extension base="RestrictedDouble"> 
       <xs:attribute name="uom" fixed="second" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:schema> 
+0

Tamam çift separatley üzerinde kısıtlama tanımlamak gerekir. Ben bir DoubleSecondsType ve belirli uygulamaları bir tane bunu kısıtlamak için etrafında sipariş çevirmeye karar verdim. – oconnor0

+0

Bunu denedim, bana adlı bir hata veriyor ve içerik modelinde 'complexType' zaten var. Bunu nasıl düzeltebilirim? – Srini