2010-06-21 22 views
5

Bazı temel ancak belirli gereksinimler için basit bir xml editörü oluşturmaya çalışıyorum, nasıl işleneceğinden emin olmadığım şey kendi özel sahip olmak istediğimi xsd-şemasının kendisinde öznitelikleri (veya bir şey). .xml dosyası hiçbir bilgi ya da ipucu var olduğunuBir xsd-şemadaki özel öznitelikler

ben eleman şemada 'listable' olup olmadığına dair bilgi istiyorum
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="Book"> 
     <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="Author" type="xsd:string" listable="1" /> 
      <xsd:element name="Pages" type="xsd:int" /> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

(not:

Böyle bir şey aklımda olan budur öğenin listable olup olmadığına bakılmaksızın, listable niteliği editördeki öğeleri düzenlemenin bir yoludur).

Bu, kendi özniteliği olması gerekmez. Eğer bir misc niteliği varsa veya bununla oynayabileceğim bir şey varsa iyi olur. Sorun, yukarıdaki şemanın doğrulanmamasıdır ('listable' özniteliği bu bağlamda desteklenmez.)

Bu tür bilgileri şemada saklamanın bir yolu var mı?

Yeni bir ad alanı oluşturmanın mümkün olabileceğine benziyor ancak herhangi bir öğenin xsd'de özel bir özniteliği olması için bu ad alanının nasıl bildirilmesi gerektiğini bilmiyorum (xml dosyasıyla uğraşmaktan kaçınmayı tercih ederim) bunun için). Ve sadece bunun için yeni bir isim alanı oluşturmak biraz fazla gibi görünüyor? Ya da ben bunu tamamen yanlış yoldan mı yapıyorum?

cevap

5

Bu bilgi kendi ad alanına yerleştirilmelidir. Saklamak için en iyi yer, özellik hakkında bir ek açıklama olacaktır. Herhangi bir şema öğesine bir ek açıklama ekleyebilir ve insan tarafından okunabilir belgeler için tasarlanmış xsd: dokümantasyon öğeleri ve makine işlenebilir bilgiler için tasarlanmış xsd: appinfo içerebilirler. Böylece örneğiniz şöyle görünür:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:foo="http://www.example.org/bar"> 
    <xsd:element name="Book"> 
     <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="Author" type="xsd:string" > 
     <xsd:annotation> 
      <xsd:appinfo> 
       <foo:listable value="true"/> 
      </xsd:appinfo> 
     </xsd:annotation> 
      </xsd:element> 
      <xsd:element name="Pages" type="xsd:int" /> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 
+0

Teşekkürler! İhtiyacım olan şey tam olarak görünüyor. – Magnus

+0

@Aled G: xml belgesinde belirli bir öğenin belirli bir ad alanına sahip olmasını istiyorsam ne yapmam gerekir. Öğelerin geri kalanı herhangi bir ad alanı bildirimi içermiyor. Bu durumda şemayı nasıl yazmalıyım? – Ashwin

İlgili konular