1

在以下示例中,您可以看到 Name、Roll 和 Adress 块正在重复。是否可以将它们声明为一种类型,然后重用它,而不是像以前一样重复相同的代码。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="NameEntry">
    <xs:annotation>
        <xs:documentation>Comment describing your root element</xs:documentation>
    </xs:annotation>
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Asked">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name"/>
                        <xs:element name="Roll"/>
                        <xs:element name="Adress"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Given">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name"/>
                        <xs:element name="Roll"/>
                        <xs:element name="Address"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>
4

1 回答 1

0

这是创建类型并重用它的方式:

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="NameEntry">
        <xs:annotation>
            <xs:documentation>Comment describing your root element</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Asked" type="ToReuse"/>
                <xs:element name="Given" type="ToReuse"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="ToReuse">
        <xs:sequence>
            <xs:element name="Name"/>
            <xs:element name="Roll"/>
            <xs:element name="Adress"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

为了激发兴趣,还有其他重用...类型层次结构或命名组的方法。下面是一个命名组重用:

<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="NameEntry">
        <xs:annotation>
            <xs:documentation>Comment describing your root element</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Asked">
                    <xs:complexType>
                        <xs:group ref="ToReuse"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Given">
                    <xs:complexType>
                        <xs:group ref="ToReuse"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:group name="ToReuse">
        <xs:sequence>
            <xs:element name="Name"/>
            <xs:element name="Roll"/>
            <xs:element name="Address"/>
        </xs:sequence>
    </xs:group>
</xs:schema>
于 2013-09-04T19:42:23.437 回答