Подтвердить что ты не робот

Почему "Namespace" http://www.w3.org/XML/1998/namespace 'недоступно для ссылки в этой схеме. "?

При взгляде на stanzaerror.xsd из http://xmpp.org/schemas/ в Visual Studio 2010 я получаю предупреждение в следующей строке..

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

Внимание:

Пространство имен http://www.w3.org/XML/1998/namespace 'недоступно для ссылки в этой схеме.

Это похоже на очень основное предупреждение XML - любые идеи?

<?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>
4b9b3361

Ответ 1

Просто потому, что вам не нужно объявлять пространство имен xml для документов экземпляра, это не значит, что это верно для схем. Я знаю, это кажется немного странным, но это так. Вам нужно определить атрибут xml: lang, и вам нужно объявить пространство имен xml. Как правило, я использую простую схему, которую я импортирую в свои схемы. Используйте тот, который W3C сделал доступным.

Импортировать, объявить пространство имен. Все будет хорошо

<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 уже было объявлено.