xml belge ve şema sorun ilk oluştu ettiği çok daha büyük bir şema aşağı haşlanmış Ertesi:'null-namespace', şemada bir ad alanına 'sahip' olarak tanımlanan bir xml öğesi için neden bekleniyor?
xml belge:
<f2b:Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:f2b="http://www.outerfoospace.com/schemas/foo2bar" xsi:schemaLocation="http://www.outerfoospace.com/schemas/foo2bar f2b-0-0-0.xsd">
<f2b:Bar>text</f2b:Bar>
</f2b:Foo>
şema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:f2b="http://www.outerfoospace.com/schemas/foo2bar" targetNamespace="http://www.outerfoospace.com/schemas/foo2bar">
<xs:complexType name="T_Foo">
<xs:sequence>
<xs:element name="Bar" xmlns="f2b"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Foo" type="f2b:T_Foo"/>
</xs:schema>
Ben Belgeyi şemaya göre doğrulayın, <f2b:Bar>
- <f2b:Bar>
beklemediğini belirten bir hata iletisi alıyorum. Belgeyi geçerli hale getirmek için <Bar>
-element'i (null-namespace): (<Bar xmlns="">
) 'a açıkça (!) Koymak zorundayım. Null adlandırılmış bir öğe neden beklenmelidir. Şema, tüm öğeler için bir isim alanını tanımlar ve <Foo>
- için f2b
- isim alanı gerçekten doğrulayıcı tarafından beklenir. Ancak, yukarıda yaptığım gibi <Bar>
-element tanımında açık bir şekilde ad alanı ayarlansa bile, doğrulayıcı Bar
-element için xmlns=""
bekler. Şemadan ve şanstan yoksun bir cevap bulmak için çeşitli varyasyonları denedim - ve bu özel durumda null-namespace'in neden beklendiğini tahmin edemiyorum.
Herhangi bir ipucu takdir ... ekke
Açık cevap için teşekkürler - kesinlikle haklısınız. ekke – ekke