2012-01-10 14 views
8

Dane:Jak zadeklarować element zawierający tylko atrybuty w schemacie XML?

<authentication password="turkey" partnerid="exam" /> 

jak mogę zadeklarować ten element w schemacie XML?

mam:

<xs:element name="authentication" type="auth_type" /> 

<xs:complexType name ="auth_type"> 
    <xs:simpleContent> 
    <xs:extension base="xs:string"> 
     <xs:attribute name="password" type="xs:string" /> 
     <xs:attribute name="partnerid" type="xs:string" /> 
    </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

ale pozwoli element mieć zawartość tekstową, to będzie? Nie chcę, że ...

Odpowiedz

15

można usunąć xs:simpleContent i xs:extension ....

<xs:element name="authentication" type="auth_type" /> 

    <xs:complexType name ="auth_type"> 
    <xs:attribute name="password" type="xs:string" /> 
    <xs:attribute name="partnerid" type="xs:string" /> 
    </xs:complexType> 
+0

Myślałem xs: extension było aby element miał atrybuty ... – Mirko

+0

@Mirko - W twoim przykładzie musisz użyć 'xs: extension', aby rozszerzyć' xs: simpleContent' oraz 'xs: simpleContent', co pozwoliło tekstowi znaleźć się w twoim elemencie. –

0

co trzeba jest złożonym elementem, na przykład:

<product prodid="1345" /> 

The " "powyższy element" nie ma żadnej zawartości. Aby zdefiniować typ bez zawartości, musimy określić typ, który pozwala elementy w jego treści, ale w rzeczywistości nie deklarują żadnych elementów, takich jak to:

<xs:element name="product"> 
    <xs:complexType> 
    <xs:complexContent> 
     <xs:restriction base="xs:integer"> 
     <xs:attribute name="prodid" type="xs:positiveInteger"/> 
     </xs:restriction> 
    </xs:complexContent> 
    </xs:complexType> 
</xs:element> 

check http://www.w3schools.com/schema/schema_complex_empty.asp