在xml文件中的元素中的属性命名空间

时间:2018-07-24 16:20:18

标签: xml xsd xml-namespaces

我想知道是否有可能向元素内的属性添加名称空间。 这是我的XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://fooschema.com"
        xmlns="http://fooschema.com"
        elementFormDefault="qualified"
        version="1.0">    

    <xs:element name = "class">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="student" type="StudentType" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name = "StudentType">
        <xs:sequence>
            <xs:element name = "firstname" type = "xs:string"/>
        </xs:sequence>
        <xs:attribute name = "rollno" type = "xs:positiveInteger"/>
    </xs:complexType>
</xs:schema>

这是我的示例xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:class xmlns:xs = "http://fooschema.com">
    <xs:student rollno="393">
        <xs:firstname>Dinkar</xs:firstname>
    </xs:student>
</xs:class>

现在有一种方法可以将xs名称空间声明添加到rollno属性中,如下所示:

<xs:student xs:rollno="393">

1 个答案:

答案 0 :(得分:0)

解决方案是添加:

attributeFormDefault="unqualified"

作为XSD定义的一部分。