XSD 中最常用的「简易元素」(Simple Element)完整总结
—— 真正 90% 项目都只用这几招就能搞定
简易元素 = 只能包含文本(text),不能有子元素和属性
典型例子:<name>张三</name>、<age>28</age>、<price>99.90</price>
1. 最最最常用的 6 种写法(背会这 6 种就够吃遍天下)
| 写法 | 示例 XSD | 对应合法 XML | 说明 |
|---|---|---|---|
| 1. 直接用内置类型(最常见) | <xs:element name="name" type="xs:string"/> | <name>张三</name> | 推荐!简洁清晰 |
| 2. 直接用内置类型 + 必填 | <xs:element name="age" type="xs:int"/> | <age>28</age> | 默认就是必填(minOccurs=”1″) |
| 3. 可选元素(允许缺失) | <xs:element name="phone" type="xs:string" minOccurs="0"/> | 可有可无 | 常用于非必填字段 |
| 4. 带默认值 | <xs:element name="status" type="xs:string" default="active"/> | 不写就自动是 active | 常用于状态、开关 |
| 5. 固定值(只能是这个值) | <xs:element name="currency" type="xs:string" fixed="CNY"/> | <currency>CNY</currency> | 写出来也没用,只能是 CNY |
| 6. 可出现多次 | <xs:element name="email" type="xs:string" maxOccurs="unbounded"/> | 可写多个 <email> | 常用于多邮箱、多标签 |
2. 真实项目中最常用的一组简易元素模板(直接复制)
<xs:element name="id" type="xs:string"/> <!-- 主键 -->
<xs:element name="name" type="xs:string"/> <!-- 姓名/名称 -->
<xs:element name="age" type="xs:int"/> <!-- 年龄 -->
<xs:element name="price" type="xs:decimal"/> <!-- 金额(推荐) -->
<xs:element name="quantity" type="xs:positiveInteger"/> <!-- 数量 -->
<xs:element name="createTime" type="xs:dateTime"/> <!-- 创建时间 -->
<xs:element name="isDeleted" type="xs:boolean" default="false"/>
<xs:element name="phone" type="xs:string" minOccurs="0"/> <!-- 可选 -->
<xs:element name="email" type="xs:string" maxOccurs="unbounded"/> <!-- 可多个 -->
<xs:element name="status" type="xs:string" default="NORMAL"/>
<xs:element name="currency" type="xs:string" fixed="CNY"/>
3. 带自定义简单类型的简易元素(稍微高级一点点)
<!-- 先定义一个只能是男/女/其他的性别类型 -->
<xs:simpleType name="GenderType">
<xs:restriction base="xs:string">
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
<xs:enumeration value="other"/>
</xs:restriction>
</xs:simpleType>
<!-- 再使用它 -->
<xs:element name="gender" type="GenderType"/>
4. 一行代码总结(记住这句就行)
简易元素只有三种必需属性:name、type、(可选)minOccurs/maxOccurs/default/fixed
完整语法(你永远只需要记住这一行):
<xs:element name="xxx"
type="xs:string 或 自定义类型"
minOccurs="0或1"
maxOccurs="1或unbounded"
default="默认值"
fixed="固定值"/>
5. 对比图(复杂元素 vs 简易元素)
| 元素类型 | XML 例子 | XSD 写法特点 |
|---|---|---|
| 简易元素 | <name>张三</name> | 只有 type,不能有 <xs:complexType> |
| 复杂元素 | <person><name>张三</name></person> | 必须包 <xs:complexType> |
掌握上面这几招,日常 99% 的“纯文本节点”你都能轻松搞定!
需要我直接给你生成某个业务的简易元素列表(比如用户、商品、订单),告诉我业务名就行~