как определить элемент с атрибутом в 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>

and this is what I needed in my xml file.

<?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 как eid типа ID. Я знаю, что код ниже - это тот, который нужно добавить, не могли бы вы помочь мне разобраться в этом. заранее спасибо

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

person Kasun Siyambalapitiya    schedule 11.11.2016    source источник


Ответы (1)


Не могли бы вы попробовать, обновив "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"/>   

Added below line in your "EmployeeType" definition.

***<tns:attribute name="eid" type="tns:string"/>***
person Bhajan    schedule 12.11.2016
comment
Спасибо за ответ, попробую позже и дам знать, сработало ли - person Kasun Siyambalapitiya; 15.11.2016