如何在具有序列的xsd中定义具有属性的元素
问题描述:
这可能接近于here问题的重复。但这是不一样的。在阅读上面的答案之后,我知道必须为我的场景添加哪些代码,但我无法弄清楚它放在哪里。这是我目前xsd
文件 如何在具有序列的xsd中定义具有属性的元素
<tns:element name="WSO2Lanka">
<tns:complexType>
<tns:sequence>
<tns:element name="Employees" type="EmployeeBaseType">
</tns:element>
</tns:sequence>
</tns:complexType>
</tns:element>
<tns:complexType name="EmployeeBaseType">
<tns:sequence>
<tns:element name="Employee" type="EmployeType">
</tns:element>
</tns:sequence>
</tns:complexType>
<tns:complexType name="EmployeType">
<tns:sequence>
<tns:element name="name" type="nameType">
</tns:element>
<tns:element name="company" type="tns:string"></tns:element>
<tns:element name="position" type="tns:string"></tns:element>
<tns:element name="address" type="addressType"></tns:element>
<tns:element name="tele" type="tns:string"></tns:element>
</tns:sequence>
</tns:complexType>
<tns:complexType name="nameType">
<tns:sequence>
<tns:element name="fname" type="tns:string">
</tns:element>
<tns:element name="lname" type="tns:string">
</tns:element>
</tns:sequence>
</tns:complexType>
<tns:complexType name="addressType">
<tns:sequence>
<tns:element name="city" type="tns:string"></tns:element>
<tns:element name="province" type="tns:string"></tns:element>
</tns:sequence>
</tns:complexType>
,这是我需要在我的xml
文件的内容。
<?xml version="1.0" encoding="UTF-8"?>
<WSO2Lanka xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../EmployeeXMLSchema.xsd">
<Employees>
<Employee eid="001">
<name>
<fname>kasun</fname>
<lname>Siyambalapitiya</lname>
</name>
<company>WSO2</company>
<position>intern</position>
<address>
<city>Kuliyapitiya</city>
<province>North Western</province>
</address>
<tele>0715523333</tele>
</Employee>
</Employees>
</WSO2Lanka>
正如xml
我需要的元素Employee
属性为ID
我知道下面的代码是要添加的一个类型的eid
,可以请你帮我算出这个出。在此先感谢
<tns:complexType>
<tns:simpleContent>
<tns:extension base="tns:ID">
<tns:attribute name="edi" type="tns:ID" use="required"></tns:attribute>
</tns:extension>
</tns:simpleContent>
</tns:complexType>
答
您可以请尝试通过更新“EmployeType”如下(关闭序列元素后在complexType中添加属性)?
<tns:complexType name="EmployeType">
<tns:sequence>
<tns:element name="name" type="nameType">
</tns:element>
<tns:element name="company" type="tns:string"></tns:element>
<tns:element name="position" type="tns:string"></tns:element>
<tns:element name="address" type="tns1:addressType"></tns:element>
<tns:element name="tele" type="tns:string"></tns:element>
</tns:sequence>
<tns:attribute name="eid" type="tns:string"/>
添加下面一行在你的 “EmployeeType” 的定义。
***<tns:attribute name="eid" type="tns:string"/>***
感谢您的回答,我稍后再尝试,并让您知道它是否有效 –