2011-07-12 22 views
4

我有三個不同的XML元素有一些共同的標籤。如何使xsd元素延伸另一個

對於如:人有姓名,年齡,性別 然後,我有經理,僱員將共享三個字段人有加管理,像managerNo員工的具體領域,爲employeeno等

我能寫的東西在該XSD會是這樣

1.聲明Person元素

<xsd:element name="Person"> 
     <xsd:annotation> 
      <xsd:documentation>Person Request</xsd:documentation> 
     </xsd:annotation> 
     <xsd:complexType> 
      <xsd:sequence>    
       <xsd:element name="personname" type="xsd:string" minOccurs="1" maxOccurs="1" /> 
       <xsd:element name="age" type="xsd:integer" minOccurs="1" maxOccurs="1" /> 
      </xsd:sequence> 
     </xsd:complexType> 
</xsd:element> 
  1. ù瑟以上人的聲明和延長經理元素:

實際上,我試圖模仿我的模式定義爲每爪哇(的我所期待的只是想法)(面向對象)繼承,如:

public class Person { 
    String name; 
    int age; 

    // getters and setters for above variables go here 
} 

然後執行:

public class Manager extends Person { 
    int managerNo; 
    String departmentName; 
} 

public class Employee extends Person { 
    int employeeNo; 
    String designation; 

// getters/setters and other code goes here 
} 

我想在xsd中模仿這個Java繼承概念,這樣我就可以聲明一個基本元素,並且只擴展該基本元素,使其他子元素也繼承基本元素的屬性。

在此先感謝。

+0

對不起,該架構定義不讓它通過我的最後一個職位。這裏爲i如何定義人 \t \t \t \t \t 人請求 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t < \t \t \t \t \t \t user841717

回答

4

只需使用:

<xs:extension base="AddressType"> 

在你的經理/ Employye模式定義

<xs:complexType name="Manager"> 
    <xs:complexContent> 
     <xs:extension base="Person"> 
      <xs:sequence> 
       <!-- Properties --> 
      </xs:sequence> 
     </xs:extension> 
    </xs:complexContent> 
</xs:complexType>