2016-08-10 12 views
0

Я пытаюсь создать классы из файла XSD с помощью xsd.exe, но получить это:Не может создавать классы, потому что ни один из элементов верхнего уровня со сложным типом были найдены

Предупреждение: не может генерировать классы, потому что не сверху обнаружены элементы уровня со сложным типом.

<?xml version="1.0" encoding="UTF-8"?> 
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by (EMBRACE) --> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://comp.com/service/model/extension" targetNamespace="http://comp.com/service/model/extension"> 
    <xs:complexType name="attachment"> 
     <xs:sequence> 
      <xs:element name="fileIdentifier" type="xs:string" minOccurs="0"></xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="metadataSystem"> 
     <xs:sequence> 
      <xs:element name="activityId" type="xs:string" minOccurs="0"></xs:element> 
      <xs:element name="from" type="xs:long" minOccurs="0"></xs:element> 
      <xs:element name="href" type="xs:string" minOccurs="0"></xs:element> 
      <xs:element name="performers" type="xs:long" minOccurs="0"></xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

Где у меня есть это на высшем уровне элементов? Если добавить:

<xs:element name="attachment" type="attachment" /> 

Я получаю это:

отсутствующего типа "прикрепление"


This question не помогают, добавляя элемент тега бросить новую ошибку.

+0

Возможный дубликат [Невозможно сгенерировать классы, потому что нет элементов верхнего уровня со сложным типом, где они найдены] (http://stackoverflow.com/questions/32395215/cannot-generate-classes-because-no-top-level-elements -with-complex-type-where-fo) – Raskayu

+0

Я видел этот вопрос, но добавление тега элемента мне не помогает. –

+0

Я думаю, что это не совсем дубликат, по крайней мере, не с этим другим вопросом, потому что есть проблема с объявлением элемента верхнего уровня. –

ответ

0

При объявлении элемента, тип должен быть передан, чтобы с ее полным именем, то есть префикс ns1, связанный с целевым пространством имен, отсутствовал до attachment в атрибута типа.

Это общий источник путаницы, поскольку объявление типов (атрибут ) всегда выполняется только с локальным именем, причем пространство пространства имен всегда является целевым пространством имен схемы, когда оно доступно.

<xs:element name="attachment" type="ns1:attachment" /> 

Приставка может быть опущен только если пространство имен типа объявлен как пространство имен по умолчанию с атрибутом xmlns.

+0

Спасибо, это помогает. Мне нужно больше читать о пространствах имен xml. –

+0

Добро пожаловать. Если вы хотите прочитать больше, вы можете найти это полезным, поскольку stackoverflow имеет новую функцию документации: http://stackoverflow.com/documentation/xml/1593/namespaces#t=201608100756464310019 –

+0

Еще раз спасибо. Я прочитаю эти документы –