2017-06-20 27 views
-2

生成XML這種enter image description here來自foll的XML到XSD。 ER圖

我的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> 

我知道,乍一看一切看起來正確的...但我不斷收到一些錯誤!我希望有人能幫助我解決這個問題! Iam不確定其xml或xsd。

的錯誤:

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

請幫我與標籤<xs:schema>在我的XSD和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%。 –