Обнаружена ошибка неизвестного элемента в документе XML - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь проверить документ XML на соответствие схеме XML.Ошибка, которую я получаю, - Неизвестный Элемент 'jobinfo', который существует в корне иерархии.Элемент 'jobinfo' находится в схеме XML.Я новичок в этой области.Может кто-нибудь помочь пожалуйста?

Вот мой XML

<?xml version="1.0" encoding="utf-8"?>
<saw:jobInfo xmlns:saw="com.analytics.web/report/v1.1">
   <saw:jobStats>...........</saw:jobStats>
   <saw:detailedInfo> .....</saw:detailedInfo>
   <saw:fileInfo>..........</saw:fileInfo>
</saw:jobInfo>

Вот мой XSD

 <?xml version="1.0" encoding="utf-8" ?>
 <xs:schema targetNamespace="com.analytics.web/report/v1.1"  
   xmlns="com.analytics.web/report/v1.1" xmlns:saw="com.analytics.web/report/v1.1" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" 
   attributeFormDefault="unqualified">

 <xs:element name="jobInfo" type="jobInfo"/>
   <xs:complexType name="jobInfo">
      <xs:sequence>
         <xs:element name="jobStats" type="jobStats" minOccurs="1" maxOccurs="1"/>
         <xs:element name="detailedInfo"  type="detailedInfo" minOccurs="0" maxOccurs="1"/>
         <xs:element name="fileInfo"  type="fileInfo" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>

    < other elements>

1 Ответ

0 голосов
/ 24 февраля 2012

Проблема с типом элемента jobStats, detailedInfo и fileInfo.

Поскольку эти типы не определены.

Я изменил XSD таким образом: -

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="com.analytics.web/report/v1.1" xmlns="com.analytics.web/report/v1.1" xmlns:saw="com.analytics.web/report/v1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="jobInfo" type="jobInfo"/>
    <xs:complexType name="jobInfo">
        <xs:sequence>
            <xs:element name="jobStats" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="detailedInfo" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="fileInfo" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

Формат выходного XML-файла будет следующим:

<?xml version="1.0" encoding="UTF-8"?>
<saw:jobInfo xsi:schemaLocation="com.analytics.web/report/v1.1 Untitled1.xsd" xmlns:saw="com.analytics.web/report/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <saw:jobStats>String</saw:jobStats>
    <saw:detailedInfo>String</saw:detailedInfo>
    <saw:fileInfo>String</saw:fileInfo>
</saw:jobInfo>

Вы должны указать xsi:schemaLocation в XML, проверяя при этом XSD.

xsi:schemaLocation="yourXSDfilepath"

<saw:jobInfo xsi:schemaLocation="yourXSDfilepath"  xmlns:saw="com.analytics.web/report/v1.1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...