2010-12-10 5 views
12

दृश्य स्टूडियो 2010 में http://xmpp.org/schemas/ से stanzaerror.xsd को देख में, मैं निम्नलिखित पंक्ति पर एक चेतावनी हो रही है ...क्यों "नेमस्पेस" http://www.w3.org/XML/1998/namespace 'इस स्कीमा में संदर्भित करने के लिए उपलब्ध नहीं है। "

<xs:attribute ref='xml:lang' use='optional'/> 

चेतावनी:

नाम स्थान 'http://www.w3.org/XML/1998/namespace' नहीं है इस स्कीमा में संदर्भित करने के लिए उपलब्ध है।

यह एक बहुत ही बुनियादी एक्सएमएल चेतावनी की तरह लगता है - कोई विचार?

<?xml version='1.0' encoding='UTF-8'?>  
<xs:schema 
    xmlns:xs='http://www.w3.org/2001/XMLSchema' 
    targetNamespace='urn:ietf:params:xml:ns:xmpp-stanzas' 
    xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' 
    elementFormDefault='qualified'> 

    <xs:element name='bad-request' type='empty'/> 
    <xs:element name='conflict' type='empty'/> 
    <xs:element name='feature-not-implemented' type='empty'/> 
    <xs:element name='forbidden' type='empty'/> 
    <xs:element name='gone' type='xs:string'/> 
    <xs:element name='internal-server-error' type='empty'/> 
    <xs:element name='item-not-found' type='empty'/> 
    <xs:element name='jid-malformed' type='empty'/> 
    <xs:element name='not-acceptable' type='empty'/> 
    <xs:element name='not-allowed' type='empty'/> 
    <xs:element name='not-authorized' type='empty'/> 
    <xs:element name='payment-required' type='empty'/> 
    <xs:element name='policy-violation' type='empty'/> 
    <xs:element name='recipient-unavailable' type='empty'/> 
    <xs:element name='redirect' type='xs:string'/> 
    <xs:element name='registration-required' type='empty'/> 
    <xs:element name='remote-server-not-found' type='empty'/> 
    <xs:element name='remote-server-timeout' type='empty'/> 
    <xs:element name='resource-constraint' type='empty'/> 
    <xs:element name='service-unavailable' type='empty'/> 
    <xs:element name='subscription-required' type='empty'/> 
    <xs:element name='undefined-condition' type='empty'/> 
    <xs:element name='unexpected-request' type='empty'/> 

    <xs:group name='stanzaErrorGroup'> 
    <xs:choice> 
     <xs:element ref='bad-request'/> 
     <xs:element ref='conflict'/> 
     <xs:element ref='feature-not-implemented'/> 
     <xs:element ref='forbidden'/> 
     <xs:element ref='gone'/> 
     <xs:element ref='internal-server-error'/> 
     <xs:element ref='item-not-found'/> 
     <xs:element ref='jid-malformed'/> 
     <xs:element ref='not-acceptable'/> 
     <xs:element ref='not-authorized'/> 
     <xs:element ref='not-allowed'/> 
     <xs:element ref='payment-required'/> 
     <xs:element ref='policy-violation'/> 
     <xs:element ref='recipient-unavailable'/> 
     <xs:element ref='redirect'/> 
     <xs:element ref='registration-required'/> 
     <xs:element ref='remote-server-not-found'/> 
     <xs:element ref='remote-server-timeout'/> 
     <xs:element ref='resource-constraint'/> 
     <xs:element ref='service-unavailable'/> 
     <xs:element ref='subscription-required'/> 
     <xs:element ref='undefined-condition'/> 
     <xs:element ref='unexpected-request'/> 
    </xs:choice> 
    </xs:group> 

    <xs:element name='text'> 
    <xs:complexType> 
     <xs:simpleContent> 
     <xs:extension base='xs:string'> 
      <xs:attribute ref='xml:lang' use='optional'/> 
     </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
    </xs:element>  

    <xs:simpleType name='empty'> 
    <xs:restriction base='xs:string'> 
     <xs:enumeration value=''/> 
    </xs:restriction> 
    </xs:simpleType>  
</xs:schema> 
+0

चेतावनी: यदि आप XMPP को सत्यापित करने के लिए स्कीमा का उपयोग करने का प्रयास करते हैं, तो आप इंटरऑपरेबिलिटी समस्याओं में भाग लेने जा रहे हैं। यह हो सकता है कि आप जो खोज रहे हैं (सभी "खराब" एक्सएमएल को अस्वीकार कर रहे हैं), लेकिन यह उन लोगों के लिए आश्चर्यजनक है जो इस सड़क को शुरू करते हैं। विशेष रूप से, "जो आप समझ में नहीं आते हैं उसे अनदेखा करें" XMPP का मंत्र स्कीमा-भूमि में पालन करना मुश्किल है, और लोगों को तत्वों का सही क्रम कभी नहीं मिलता है। –

उत्तर

9

सिर्फ इसलिए कि आप उदाहरण के दस्तावेज़ों के लिए xml नाम स्थान घोषित की जरूरत नहीं है, इसका मतलब यह नहीं एक ही स्कीमा के लिए सच है। मुझे पता है कि थोड़ा अजीब लगता है लेकिन वहां है। आपको xml: lang विशेषता को परिभाषित करने की आवश्यकता है और आपको XML नामस्थान घोषित करने की आवश्यकता है। आम तौर पर, मैं एक सरल स्कीमा का उपयोग करता हूं जिसे मैं अपने स्कीमा में आयात करता हूं। W3C has made available का उपयोग करें।

आयात करें, नामस्थान घोषित करें। सभी अच्छी तरह से हो जाएगा

<xs:schema 
    xmlns:xs='http://www.w3.org/2001/XMLSchema' 
    xmlns:xml="http://www.w3.org/XML/1998/namespace" 
    targetNamespace='urn:ietf:params:xml:ns:xmpp-stanzas' 
    xmlns='urn:ietf:params:xml:ns:xmpp-stanzas' 
    elementFormDefault='qualified'> 

    <xs:import schemaLocation="http://www.w3.org/2001/xml.xsd" namespace="http://www.w3.org/XML/1998/namespace"/> 

    <xs:element name='bad-request' type='empty'/> 
    <xs:element name='conflict' type='empty'/> 
    <xs:element name='feature-not-implemented' type='empty'/> 
    <xs:element name='forbidden' type='empty'/> 
    <xs:element name='gone' type='xs:string'/> 
    <xs:element name='internal-server-error' type='empty'/> 
    <xs:element name='item-not-found' type='empty'/> 
    <xs:element name='jid-malformed' type='empty'/> 
    <xs:element name='not-acceptable' type='empty'/> 
    <xs:element name='not-allowed' type='empty'/> 
    <xs:element name='not-authorized' type='empty'/> 
    <xs:element name='payment-required' type='empty'/> 
    <xs:element name='policy-violation' type='empty'/> 
    <xs:element name='recipient-unavailable' type='empty'/> 
    <xs:element name='redirect' type='xs:string'/> 
    <xs:element name='registration-required' type='empty'/> 
    <xs:element name='remote-server-not-found' type='empty'/> 
    <xs:element name='remote-server-timeout' type='empty'/> 
    <xs:element name='resource-constraint' type='empty'/> 
    <xs:element name='service-unavailable' type='empty'/> 
    <xs:element name='subscription-required' type='empty'/> 
    <xs:element name='undefined-condition' type='empty'/> 
    <xs:element name='unexpected-request' type='empty'/> 

    <xs:group name='stanzaErrorGroup'> 
     <xs:choice> 
      <xs:element ref='bad-request'/> 
      <xs:element ref='conflict'/> 
      <xs:element ref='feature-not-implemented'/> 
      <xs:element ref='forbidden'/> 
      <xs:element ref='gone'/> 
      <xs:element ref='internal-server-error'/> 
      <xs:element ref='item-not-found'/> 
      <xs:element ref='jid-malformed'/> 
      <xs:element ref='not-acceptable'/> 
      <xs:element ref='not-authorized'/> 
      <xs:element ref='not-allowed'/> 
      <xs:element ref='payment-required'/> 
      <xs:element ref='policy-violation'/> 
      <xs:element ref='recipient-unavailable'/> 
      <xs:element ref='redirect'/> 
      <xs:element ref='registration-required'/> 
      <xs:element ref='remote-server-not-found'/> 
      <xs:element ref='remote-server-timeout'/> 
      <xs:element ref='resource-constraint'/> 
      <xs:element ref='service-unavailable'/> 
      <xs:element ref='subscription-required'/> 
      <xs:element ref='undefined-condition'/> 
      <xs:element ref='unexpected-request'/> 
     </xs:choice> 
    </xs:group> 

    <xs:element name='text'> 
     <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base='xs:string'> 
        <xs:attribute ref='xml:lang' use='optional'/> 
       </xs:extension> 
      </xs:simpleContent> 
     </xs:complexType> 
    </xs:element> 

    <xs:simpleType name='empty'> 
     <xs:restriction base='xs:string'> 
      <xs:enumeration value=''/> 
     </xs:restriction> 
    </xs:simpleType> 

</xs:schema> 

मुझे लगता है कि XMPP से परिचित नहीं हूँ, लेकिन मुझे लगता है कि अपने स्कीमा एक और जहां XML नामस्थान पहले से ही घोषित किया गया है जाएगा में आयात किया जा करने का इरादा है संदेह है।

+0

हां - इसका उद्देश्य दूसरे में आयात किया जाना था जहां एक्सएमएल नेमस्पेस घोषित किया गया था! धन्यवाद! – noctonura

+1

मैं इसे जोड़ना चाहता हूं, मेरे मामले में, जिस समस्या का सामना करना पड़ा था वह था कि मैंने xs: targetmaamespace ** xs में विशेषता नहीं दी थी: स्कीमा तत्व, जिसे हम ऊपर दिए गए उदाहरण में _same value_ के रूप में देखते हैं ** xmlns ** विशेषता – mungflesh

संबंधित मुद्दे