2017-06-20 11 views
-2

このenter image description hereXMLからXSDへ。 ER図

マイXML用のXMLを生成します。

<?xml version="1.0" encoding="UTF-8"?> 

<company> 
    <companyname>ABC company</companyname> 
    <address>xyz street, India.</address> 

    <department> 
     <dname>Marketing</dname> 
     <deptphoneno></deptphoneno> 
     <deptfaxno>0442456879</deptfaxno> 
     <deptemail>[email protected]</deptemail> 

     <employee> 
      <empid>101</empid> 
      <ename>Rishie</ename> 
      <emailid>[email protected]</emailid> 
      <phoneno>9876543211</phoneno> 
     </employee> 

     <contractemployee> 
      <name>Ravi</name> 
      <phoneno>9874563214</phoneno> 
     </contractemployee> 
    </department> 

</company> 

と私のXSD:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="company"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="companyname" type="xs:string"/> 
     <xs:element name="address" type="xs:string"/> 

     <xs:element name="department"> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element name="dname" type="xs:string"/> 
      <xs:element name="deptphoneno" type="xs:integer"/> 
      <xs:element name="deptfaxno" type="xs:integer"/> 
      <xs:element name="deptemail" type="xs:string"/> 

      <xs:element name="employee">  
      <xs:complexType> 
      <xs:sequence> 
      <xs:element name="empid" type="xs:integer"/> 
      <xs:element name="ename" type="xs:string"/> 
      <xs:element name="emailid" type="xs:string"/> 
      <xs:element name="phoneno" type="xs:integer"/> 
      </xs:sequence> 
      </xs:complexType> 
      </xs:element> 


      <xs:element name="contractemployee">  
      <xs:complexType> 
      <xs:sequence> 
      <xs:element name="name" type="xs:string"/> 
      <xs:element name="phoneno" type="xs:integer"/> 
      </xs:sequence> 
      </xs:complexType> 
      </xs:element> 

     </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

</xs:schema> 

私は一目見ただけですべてが正しいに見えることを知っている...しかし、私いくつかのエラーが発生し続ける!誰かが私を助けてくれることを願っています! xmlかxsdかどうかはわかりません。

エラー:

Exception: cvc-complex-type.2.4.a: Invalid content was found starting with eleme 
nt 'employee'. One of '{contractemployee}' is expected. 

私のXSDにタグ<xs:schema>で私を助けるとxmlで<company>してください。

+3

私は一目見ただけですべてが正しいに見えることを知っている*を参照してください...しかし、私はいくつかのエラーを得続ける!* [編集]リンクを使用しますあなたの質問を更新し、正確なエラーメッセージを含めることができます。 – kjhughes

+0

これはXSLTと何が関係していますか? –

+0

@kjhughesエラーを含めてqnを更新しました! –

答えて

1
***XML file-*** 
<?xml version="1.0" encoding="UTF-8"?> 
<company> 
<companyname>ABC</companyname> 
<address>Mumbai</address> 
<department> 
    <dname>IT</dname> 
    <deptphoneno>123</deptphoneno> 
    <deptfaxno>456</deptfaxno> 
    <deptemail>[email protected]</deptemail> 
    <employee> 
     <empid>8</empid> 
     <ename>xyz</ename> 
     <emailid>[email protected]</emailid> 
     <phoneno>789</phoneno> 
    </employee> 
    </department> 
    <department> 
    <dname>EE</dname> 
    <deptphoneno>789</deptphoneno> 
    <deptfaxno>901</deptfaxno> 
    <deptemail>[email protected]</deptemail> 
    <employee> 
     <empid>9</empid> 
     <ename>abc</ename> 
     <emailid>[email protected]</emailid> 
     <phoneno>567</phoneno> 
    </employee> 
    <contractemployee> 
     <name>asd</name> 
     <phoneno>234</phoneno> 
    </contractemployee> 
    </department> 
</company> 


***XSD file*** 
<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="company"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="companyname" type="xs:string"/> 
      <xs:element name="address" type="xs:string"/> 

      <xs:element name="department" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:sequence> 
        <xs:element name="dname" type="xs:string"/> 
        <xs:element name="deptphoneno" type="xs:integer"/> 
        <xs:element name="deptfaxno" type="xs:integer"/> 
        <xs:element name="deptemail" type="xs:string"/> 

        <xs:element name="employee" maxOccurs="unbounded"> 
         <xs:complexType> 
          <xs:sequence> 
          <xs:element name="empid" type="xs:integer"/> 
          <xs:element name="ename" type="xs:string"/> 
          <xs:element name="emailid" type="xs:string"/> 
          <xs:element name="phoneno" type="xs:integer"/> 
          </xs:sequence> 
         </xs:complexType> 
        </xs:element> 

        <xs:element name="contractemployee" minOccurs="0" maxOccurs="unbounded"> 
         <xs:complexType> 
          <xs:sequence> 
          <xs:element name="name" type="xs:string"/> 
          <xs:element name="phoneno" type="xs:integer"/> 
          </xs:sequence> 
         </xs:complexType> 
        </xs:element> 

        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 

      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

@Ravi Rishie、@ kjhughesこれは100%動作します。 –