2013-04-15 2 views
1

Я только что сделал свою первую попытку XSD.Мой xml не будет проверять мою схему

Когда я пытаюсь проверить свой XML на моем XSD, я получаю ошибку: Не удается найти декларацию элемента 'linkage'.

Ниже я предоставляю свой XSD и сокращенную версию моего XML. Я попытался добавить квалификатор пространства имен к верхнему элементу в моем XML, а также ко всем элементам (изменение XSD на квалифицированный), и это не помогло. Я, очевидно, делаю основную ошибку. Поскольку я новичок в XSD, если бы вы могли включить то, что мне нужно изменить в своем XML и/или XSD, я был бы очень благодарен.

XSD:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.stephenwaring.me.uk/android/nestedsettings" 
    xmlns="http://www.stephenwaring.me.uk/android/nestedsettings" 
    elementFormDefault="unqualified"> 
    <xs:element name="linkage"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="preference-screen" maxOccurs="unbounded"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="parent" maxOccurs="unbounded"> 
           <xs:complexType> 
            <xs:sequence> 
             <xs:element name="child" maxOccurs="unbounded"> 
              <xs:complexType> 
               <xs:attribute name="key" type="xs:token" use="required" /> 
               <xs:attribute name="reformat" type="xs:boolean" /> 
              </xs:complexType> 
             </xs:element> 
            </xs:sequence> 
            <xs:attributeGroup ref="keyed" /> 
            <xs:attribute name="preference-screen" type="xs:token" use="required" /> 
           </xs:complexType> 
          </xs:element> 
         </xs:sequence> 
         <xs:attributeGroup ref="keyed"/> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
      <xs:attributeGroup ref="defaults"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:attributeGroup name="defaults"> 
     <xs:attribute name="html" type="xs:boolean" /> 
     <xs:attribute name="prefix" type="xs:string" /> 
     <xs:attribute name="suffix" type="xs:string" /> 
     <xs:attribute name="separator" type="xs:string"/> 
     <xs:attribute name="reformat" type="xs:boolean" /> 
     <xs:attribute name="shaddow" type="xs:boolean" /> 
     <xs:attribute name="child-summary" type="xs:boolean" /> 
     <xs:attribute name="shadow-separator" type="xs:string"/> 
    </xs:attributeGroup> 
    <xs:attributeGroup name="keyed"> 
     <xs:attributeGroup ref="defaults" /> 
     <xs:attribute name="key" type="xs:token" use="required" /> 
    </xs:attributeGroup> 
</xs:schema> 

Сокращенный XML:

<?xml version="1.0" encoding="UTF-8"?> 
<linkage 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://stevewaring.me.uk/android/nestedsettings nestedsettings.xsd" 
    xmlns="http://www.stevewaring.me.uk"> 
    <preference-screen 
     key="preferences1"> 
     <parent 
      key="prefFruit" 
      preference-screen="preferences2"> 
      <child key="prefFruit1"/> 
      <child key="prefFruit2"/> 
     </parent> 
    </preference-screen> 
</linkage> 

ответ

1

Ваш XSD определяет элементы в http://www.stephenwaring.me.uk/android/nestedsettings тогда ваш элемент документа в http://www.stevewaring.me.uk. Предложите им согласиться, так или иначе, и он должен позаботиться об ошибке, которую вы имеете.

Я добавил фиксированный XML, есть еще одна проблема, связанная с использованием неквалифицированных элементов.

<?xml version="1.0" encoding="UTF-8"?> 
<linkage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.stephenwaring.me.uk/android/nestedsettings nestedsettings.xsd" xmlns="http://www.stephenwaring.me.uk/android/nestedsettings"> 
    <preference-screen xmlns="" key="preferences1"> 
     <parent key="prefFruit" preference-screen="preferences2"> 
      <child key="prefFruit1"/> 
      <child key="prefFruit2"/> 
     </parent> 
    </preference-screen> 
</linkage> 
+0

Большое спасибо, что исправил проблему. –

Смежные вопросы