复杂元素是一个XML元素,可以包含其他元素和/或属性.我们可以用两种方式创建复杂元素 :
定义复杂类型,然后使用
通过命名直接定义复杂类型
<xs:complexType name = "StudentType"> <xs:sequence> <xs:element name = "firstname" type = "xs:string"/> <xs:element name = "lastname" type = "xs:string"/> <xs:element name = "nickname" type = "xs:string"/> <xs:element name = "marks" type = "xs:positiveInteger"/> </xs:sequence> <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/> </xs:complexType> <xs:element name = 'student' type = 'StudentType' />
<xs:element name = "student"> <xs:complexType> <xs:sequence> <xs:element name = "firstname" type = "xs:string"/> <xs:element name = "lastname" type = "xs:string"/> <xs:element name = "nickname" type = "xs:string"/> <xs:element name = "marks" type = "xs:positiveInteger"/> </xs:sequence> <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/> </xs:complexType> <xs:element>
以下是XSD支持的复杂类型列表.
S.No. | 简单类型&描述 |
---|---|
1 | Empty 复杂的空复杂类型元素只能有属性但没有内容. |
2 | 仅元素 元素 - 仅复杂类型元素只能包含元素 |
3 | 纯文字 纯文字复杂类型元素只能包含属性和文字. |
4 | 混合 混合复杂类型元素可以包含元素,属性和文本. |
5 | 指标 指标控制元素在XML文档中的组织方式. |
6 | <any> < any>元素用于未由模式定义的元素 |
7 | < anyAttribute> <anyAttribute> attribute用于未由架构定义的属性. |