2013-04-26 6 views
-1

Я положил xml и xsd в свободном месте. http://xixishuile1.kilu.de/ и используйте http://www.freeformatter.com/xml-validator-xsd.html для проверки xml, он дает мне отзыв. кто мог мне помочь.XML XSD Действительный сбой

+0

Просьба представить более подробную информацию ... это трудно понять, что ваша текущая проблема! – Carsten

+0

Я только начинаю понимать XML и XSD. – user2322723

+0

Я только начинаю разбираться в XML и XSD. Я знаю, что xml содержит содержимое, а xsd содержит структуру. мой пример - популярный интернет-пример. xml описывают хранение компакт-дисков. является корневым элементом. он содержит несколько одинаковых структурированных подэлементов «». в Интернете дайте мне пример xsd, в котором описывается, как определить , но не расскажите мне, как descri быть user2322723

ответ

1

Во-первых, добро пожаловать в SO. Поскольку вы изучаете XML/XSD, я бы рекомендовал вам загрузить и использовать некоторые специализированные редакторы XML/XSD. Все, что я знаю, предлагает бесплатные оценки, поэтому с ним легко начать работу.

Такой инструмент поможет вам сгенерировать XSD на основе вашего XML, что должно помочь вам понять, что может понадобиться для устранения неполадки: сравнение XSD, который вы опубликовали с тем, который у вас есть, является хорошим поскольку он говорит вам, какие части вы пропустили, и в конечном итоге сузите свой поиск: что учиться в первую очередь.

Так вот это XSD я генерируется из вашего XML:

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="CATALOG"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element maxOccurs="unbounded" name="CD"> 
      <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="TITLE" type="xsd:string" /> 
       <xsd:element name="ARTIST" type="xsd:string" /> 
       <xsd:element name="COUNTRY" type="xsd:string" /> 
       <xsd:element name="COMPANY" type="xsd:string" /> 
       <xsd:element name="PRICE" type="xsd:decimal" /> 
       <xsd:element name="YEAR" type="xsd:unsignedShort" /> 
      </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

На первый взгляд:

  • ваш XSD имеет TargetNamespace, и генерируемый один не делает; чтобы исправить это, вы либо удалить TargetNamespace в вашей XSD, или добавить пространство имен по умолчанию в корневой XML следующим образом:

    < КАТАЛОГ XMLNS = «http://www.xixishuile1.kilu.de/»>

  • Элемент КАТАЛОГ теперь определен для вас. Он похож на CD (он сложный, контентная модель секвенирована); поскольку вам нужно несколько элементов CD, есть атрибут maxOccurs (атрибут появления частиц), показывающий unbounded.

Так выше говорит вам, что до сих пор вы должны прочитать о том, как, или нет, целевые пространства имен в вашей XSD, и как определить сложные модели содержания.

Кроме того, посмотрите на How To Ask помощь на задаете хороший вопрос ...

+0

благодарит за то, что дал мне столь ясный полезный ответ. я мог ясно понять, как определить КАТАЛОГ, но я все еще не мог понять ключевое слово targetNamespace. есть ли полезная картина или описание, чтобы объяснить это? – user2322723

+0

Вы должны прочитать о пространствах имен XML ... schema targetNamespace помещает контент в конкретное пространство имен XML. –

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