Schema中的elementFormDefault
elementFormDefault取值:qualified 或者 unqualified
在http://www.velocityreviews.com/forums/t292290-xsd-what-is-elementformdefault-qualified-for.html这个网站,发现Boris的回答:
All"qualified" elements and attributes are in the targetNamespace of the
schema and all "unqualified" elementsand attributes are in no namespace.
All global elements and attributes are qualified.
意思是这样的:
1、在xml中,所有引用xsd的全局的元素都必须加上命名空间的前缀
(例如xmlns:aa=http://www.example.org/classroom,全局元素都得加上aa)。
2、非全局的元素当设置为qualified时,必须添加命名空间的前缀。
3、非全局的元素当设置为unqualified时,不必也不能添加前缀。
下面是一个简单的例子:
a. 当设置为unqualified时,user为全局元素(可作为根元素)必须添加前缀,非全局元素
(id,name)不必添加前缀。
b. 当设置为qualified时,所有的元素都必须添加前缀。
其实elementFormDefault的qualified/unqualified还与schema的设计模式有关系,目前常用的有Russian Roll , Salami Slice , Venetian Blind
详细及最佳实践可以参照:http://www.xfront.com/GlobalVersusLocal.html#BestPractice
Salami Slice这种schema的设计模式,将所有的元素设置为全局元素,设置不设置elementFormDefault是没有任何意义的,文章的开通说过,所有的全局元素必须添加前缀。
http://www.xfront.com/GlobalVersusLocal.html#BestPractice
上网站中提到的Venetian Blind的优势之一:
UseelementFormDefault to act as aswitchfor controlling namespaceexposure - if you want element namespaces exposed in instance documents, simplyturn the elementFormDefault switch to "on" (i.e, setelementFormDefault= "qualified"); if you don't want elementnamespaces
exposed in instance documents, simply turn the elementFormDefaultswitch to "off" (i.e., setelementFormDefault="unqualified").
分享到:
相关推荐
在 po1.xsd 中,我们明确的声明了一个目标命名空间,并且指明局部定义的元素和属性必须是为无限定的。局部元素和属性的限定能够在全局指定,这是通过 schema 元素的一对属性,elementFormDefault 和 ...
`schemaFactory.newSchema(File)` 方法用于加载XSD文件(在这个例子中是`students.xsd`),并返回一个`Schema`对象。 3. **XML Document Validation**: 使用`Schema`对象可以创建一个`Validator`,它是执行实际验证...
3. **验证XSD文件**:一旦生成了XSD文件,建议对生成的模式进行验证,以确保其准确无误。可以使用专门的工具如XMLSpy或其他在线验证服务来完成这项工作。 #### 四、示例 为了更好地理解这一过程,下面提供了一个...
### XSD 文件规则和语法详解 #### 一、概述 XSD(XML Schema Definition)是一种用于验证XML文档格式和结构的标准。它通过定义XML文档的结构来确保文档符合预定的模式,...XML文件按照XSD文件中定义的模式进行了编写。
XSD(XML Schema Definition)是XML文档的结构定义语言,用于描述XML文档的元素、属性和数据类型,确保XML文件的格式正确性。Spring框架通过提供自己的XSD,为开发者提供了声明式配置的方式。 在Spring中自定义XSD...
XML Schema(XSD)作为一种用于描述XML文档结构和数据类型的标准,提供了更为强大的数据类型支持和约束定义能力,相较于早期的DTD(Document Type Definition),XSD被更多地应用于XML文档的校验中。 然而,Java中...
`targetNamespace`属性定义了文档中元素所属的命名空间,而`elementFormDefault="qualified"`意味着所有元素都需要指定命名空间。 6. **XML Schema的根元素**: - XML Schema文档以`<xs:schema>`作为根元素,并...
XSD 文件以 `<?xml version="1.0"?>` 开头,紧接着是 `<xs:schema>` 元素,该元素是 XSD 文件的根元素。其主要属性包括: - **`xmlns:xs="http://www.w3.org/2001/XMLSchema"`**:声明 XML Schema 的命名空间,通常...
在XML Schema中,我们可以定义元素、属性、数据类型以及它们之间的关系,以确保XML文档符合特定的业务规范。这使得XML文档不仅限于结构正确(Well-Formed),还能保证文档的内容符合预设的规则,从而增强了数据的...
任务一:当`elementFormDefault`和`attributeFormDefault`都为`unqualified`时,创建的XML Schema文档(XSD)中,`Employee`、`FirstName`、`LastName`元素以及`EmpID`属性都不属于目标命名空间。然后,编写相应的...
使用 XMLSpy 工具,我们可以对 XML 文件进行验证,以确保 XML 文件符合 XML Schema 文件的定义。在本实验中,我们使用 XMLSpy 工具将 students.xml 文件与 students.xsd 文件进行了验证,并生成了一个新的 XML 文件...
- XSD (XML Schema Definition) 文件用于定义 XML 文档的结构和规则。在 OpenCMS 中,XSD 文件用来定义 Modules 的数据模型。 ```xml <xsd:schema xmlns:xsd=...
在Spring中,schema是XML配置文件的命名空间,它定义了可以使用的标签和属性。要添加自定义标签,我们需要创建一个schema文件,比如`spring-ext.xsd`。在这个文件中,我们可以定义自己的标签和属性,例如: ```xml ...
为了将XML结构转换为Java类,你可以创建一个XSD(XML Schema Definition)文件来描述XML结构。例如: ```xml <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" ...
- **XSD 文件**: 是 XML Schema 的另一种称呼。 - **创建过程**: - 使用 `<xs:schema>` 根元素来定义 Schema 文档。 - 通过 `<xs:element>`、`<xs:complexType>`、`<xs:simpleType>` 等元素来描述 XML 文档结构。 ...
XML 练习题解析 本资源提供了三个 XML 练习题,涵盖了 DTD、XSD 和 CSS 等知识点。 1. 编写一个有效的 XML ...这三个练习题涵盖了 XML、DTD、XSD 和 CSS 等多个知识点,旨在检验学生对 XML 语言的理解和应用能力。
XSD(XML Schema Definition)文件用于描述XML文档的结构和数据类型。在Spring中,我们可以通过创建一个XSD文件来定义自定义标签。例如,我们定义了一个名为`battcn`的命名空间,并在其中创建了一个名为`...
<xsd uff1aschema xmlns =“” xmlns:xsd u201c” xmlns:beans =“” xmlns:tool u201c” targetNamespace =“” elementFormDefault u201c qualified” attributeFormDefault =“ unqualified”> <xsd uff1a...