Что не так с этим xsd-файлом?Преждевременный конец документа qt, xml
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="root" type="rootType"/>
<xs:complexType name="twokindType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:int" name="n"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="twoType">
<xs:sequence>
<xs:element type="twokindType" name="twokind"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:byte" name="number"/>
</xs:complexType>
<xs:complexType name="vendorType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="priceType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="oneType">
<xs:sequence>
<xs:element type="vendorType" name="vendor"/>
<xs:element type="priceType" name="price"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name" use="optional"/>
<xs:attribute type="xs:byte" name="n" use="optional"/>
</xs:complexType>
<xs:complexType name="onesType">
<xs:sequence>
<xs:element type="oneType" name="one" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:byte" name="number"/>
</xs:complexType>
<xs:complexType name="rootType">
<xs:sequence>
<xs:element type="twoType" name="two"/>
<xs:element type="onesType" name="ones"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Я проверил его действительность на разных сайтах, и все говорят, что все в порядке. Я взял образец кода с сайта qt, чтобы загрузить его, и я получаю сообщение об ошибке «Преждевременный конец документа». Ошибка указана в строке 1, столбец 0. Я не вижу в этом ничего плохого. Я посмотрел на этот файл, используя hex-редактор, и нет никаких странных символов.
Ниже приведен код с сайта Qt:
QUrl schemaUrl("file:///home/user/schema.xsd");
QXmlSchema schema;
schema.load(schemaUrl);
if (schema.isValid()) {
QFile file("test.xml");
file.open(QIODevice::ReadOnly);
QXmlSchemaValidator validator(schema);
if (validator.validate(&file, QUrl::fromLocalFile(file.fileName())))
qDebug() << "instance document is valid";
else
qDebug() << "instance document is invalid";
}
может быть ошибкой в файле xml? –
@AlexMuravyov вы читали то, что я сказал вообще? – Pavel
Просьба показать XML-документ 'test.xml'. Благодарю. –