2010-01-18 4 views
8

Bazı sistemlerin kısıtlamalarından dolayı, biraz uygunsuz bir şekilde biçimlendirilmiş XML'leri kullanmamız gerekir. Uygun bir forma dönüştürmemiz gerekenler.XSD: Herhangi bir adla bir öğe tanımlayın

soru:

  • herhangi bir ad Has herhangi özelliklerini yok mu hiç çocuk yok mu (: Ben bir XSD şeması aşağıdaki özelliklere sahip bir öğe nasıl tanımlıyoruz o
+0

XSD ile mümkün değil ..: - | –

+0

Tek başına xsd ile mümkün değildir - xml örneği belgesinin öğe türünü kısıtlaması gerekir. – Filburt

cevap

6

Senbirlikte <xsd:any /> elemanını kullanabilirsiniz) sebep sorunlar neler olduğunu 0.

Şema

<?xml version="1.0" encoding="utf-8"?> 
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <!-- valid --> 
    <one xsi:type="st">value one</one> 
    <emptyone xsi:type="st"/> 

    <!-- invalid --> 
    <two name="myname" xsi:type="st">value two</two> 

    <!-- invalid --> 
    <three xsi:type="st"> 
     <four xsi:type="st">value four</four> 
    </three> 
</root> 

Sonuç

Sen Xsd Sche basit tip uygulamadığı olabilir

<?xml version="1.0" encoding="utf-8" ?> 
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="root"> 
     <xsd:complexType> 
      <xsd:sequence maxOccurs="unbounded"> 
       <xsd:any processContents="strict" namespace="##local"></xsd:any> 
      </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
    <xsd:simpleType name="st"> 
     <xsd:restriction base="xsd:string" /> 
    </xsd:simpleType> 
</xsd:schema> 

Testi XML örneği tek başına .

+0

Hayır Yapamam. xsd: herhangi bir isim elemanı (elemanlarının) çocuk veya öznitelikleri olmamasını istediğim halde, keyfi yapıya izin verecek. – GSerg

+0

Bu durumda, gereksinimleriniz karşılıklı olarak özeldir. – Filburt

+0

Neden? Onlar değil, AFAIC. Herhangi bir değeri öğesi, "düğüm" yerine geçen gerçek metne bakılmaksızın, ise uygun değildir. – GSerg