2012-02-24 11 views
0

XML文書をXMLスキーマに対して検証しようとしています。 エラーが発生するのは、階層の のルートに存在する不明な要素 'jobinfo'です。要素 'jobinfo'はXML Schemaにあります。私はこのエリアの初心者です。誰でもplsを助けることができますか?ここで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> 
+0

パーサーはあなたが使っていますか(またはあなたがどのツールを知っていなければ)? –

答えて

0

は、あなたの要素の型jobStatsdetailedInfofileInfoの問題です。

これらのタイプは定義されていないためです。

私はこのように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> 

を検証しながら、あなたは、XMLにxsi:schemaLocationを指定する必要がありますXSD。

xsi:schemaLocation="yourXSDfilepath" 

<saw:jobInfo xsi:schemaLocation="yourXSDfilepath" xmlns:saw="com.analytics.web/report/v1.1"> 
+0

::お返事ありがとうございます。私はXMLファイルですべてを正しく定義しました。それは巨大なファイルであるので、私はほんの少しのタグをコピーしました。そうそう、分かりやすくするためにコードに「...」を追加しました。ここでの問題は、最初のタグ 'jobInfo'を認識していないことです。 – prathima

+0

- @ Siva:ありがとう。あなたの答えは私にヒントを与えました。私はちょうどとして新しいxsdファイルの場所をスキーマに含めました。私はあなたの答えをupvoteするのに十分なポイントがありません。 – prathima

関連する問題