XML Schema怎么写 XSD文件编写与验证入门教程

XML Schema(XSD)是定义XML文档结构和数据类型的规范,核心在于明确元素的出现规则、顺序、类型及属性;通过xs:element、xs:complexType、xs:sequence等标签构建“XML蓝图”,并用minOccurs/maxOccurs、xs:simpleType等实现约束与自定义校验。

xml schema怎么写 xsd文件编写与验证入门教程

XML Schema(XSD)是用来定义XML文档结构和数据类型的规范文件。写好一个XSD,核心是明确“哪些元素能出现、出现几次、顺序如何、内容是什么类型、有没有属性”——不是写代码,而是画一张清晰的“XML蓝图”。

从一个简单例子开始:用户信息XSD

先看一个最基础但完整的XSD示例,描述一个元素:




  
    
      
        
        
      

    

  

说明:
xs:element 定义可出现在XML中的元素;
xs:complexType 表示该元素有子元素或属性(不能只放文本);
xs:sequence 要求子元素严格按声明顺序出现;
xs:stringxs:positiveInteger 是内置简单类型,直接可用。

常用约束怎么加:必填、可选、重复次数

XSD通过属性控制元素出现规则,不用写逻辑判断:

  • minOccurs=”0″:表示该元素可不出现(默认是1,即必须出现)
  • maxOccurs=”unbounded”:表示可重复任意次(如多个
  • maxOccurs=”3″:最多出现3次
  • 组合写法:邮箱可填0~2个

自定义简单类型:限制字符串格式或数值范围

内置类型不够用?用xs:simpleType + xs:restriction自己造:



  
    
    
       


这样ab就非法(太短),user@123也非法(含@符号)。

Interior AI

Interior AI

AI室内设计,上传室内照片自动帮你生成多种风格的室内设计图

下载

验证XSD是否有效、XML是否合规

写完XSD别急着用,分两步验证:

  • 检查XSD语法是否合法:用在线工具(如)或IDE(VS Code装XML Tools插件,右键“Validate with XSD”)打开XSD文件,看有没有报错
  • 用XSD校验实际XML:确保XML第一行有xsi:noNamespaceSchemaLocation="user.xsd"(无命名空间)或正确声明xsi:schemaLocation,再用命令行xmllint --schema user.xsd data.xml(Linux/macOS)或Java的SchemaFactory加载验证

常见报错如“Element ‘age’ is not allowed here”通常是因为顺序写错,或误用了——记住:sequence严守顺序,all允许乱序但每个最多1次,choice表示三选一。

基本上就这些。XSD不复杂但容易忽略细节,写的时候多想“这个XML人工写出来会是什么样”,再反推XSD该怎么约束——比死记标签更可靠。

https://www.php.cn/faq/1982002.html

发表回复

Your email address will not be published. Required fields are marked *