Specific example code sharing of XML and Schema namespaces

黄舟
Release: 2017-04-01 13:55:43
Original
1871 people have browsed it

The above describesXMLand SchemaSome related contents of the namespaceare introduced in detail. Let’s learn more about it through examples:

Example 1: Key points to understandRelated concepts of namespace

The following example is an XML Schema file named "note.xsd"

            
Copy after login

The XML document below and the one given above The XML Schema is associated with it, named "note.xml", and the following discussion will focus on these two documents

.#

  Tove Jani Reminder Don't forget me this weekend! 
Copy after login

This fragment: xmlns:xsd="
www.w3.org/2001/XMLSchema", indicating that this schema is used The elements anddatatypescome from the "www.w3.org/2001/XMLSchema" namespace (it also indicates that they come from "www.w3.org". /2001/XMLSchema"Namespace elements and data types must be used with "xsd: " prefix. As a namespace identifier (in a declaration as a prefix to an element orattribute), you can also use it without xsd or xsi. This xmlns attribute contains basic XML schema elements, such as element, attribute, complexType, group, simpleType, etc.## For any XML Schema definition document (XSD), there is a top-level schema (XSD) element. The definition must include this namespace:

www.w3.org/2001/XMLSchema

. That is, this namespace is the standard namespace defined by the XML Schema specification - all XML Schema elements must belong to this namespace ##. # This fragment: targetNamespace="www.w3schools.com" indicates this schema The elements defined by (note, to, from, heading, body) come from the "www.w3schools.com
" namespace. The targetNamespace attribute represents the URI of the namespace corresponding to the schema. That is to say, the namespace must be declared inotherdocuments (including its own document) that referencethe Schema, and its URI should be the attribute value of targetNamespace. For example, here we need to use the extended data type defined by note.xsd (note, to, from, heading, body), so the namespace xmlns="www.w3schools.com" is also declared. And that namespace is the default namespace (no prefix). The targetNamespace attribute declares an XML namespace for all new types explicitly created in the schema.Let’s look at what the beginning of the XML document note.xml specified by this schema will look like:

Copy after login

其中缺省名称空间声明xmlns="www.w3schools.com"就是和刚刚声明的XML Schema的名称空间相结合来规定该XML文档。(即该文档用到了此名称空间中定义的数据) xmlns:xsi="www.w3.org/2001/XMLSchema-instance" 是任何XML实例文档固有的XML模式实例名称空间,它由XML模式规范定义。而xsi:schemaLocation="www.w3schools.comnote.xsd"则规定了该名称空间所对应的schema的位置,即在相同路径的note.xsd文件。

例二:重点理解Schema文档使用自身定义类型

xsd文件中定义了一个targetNameSpace后,其内部定义的元素,属性,类型等都属于该targetNameSpace,其自身或外部xsd文件使用这些元素,属性等都必须从定义的targetNameSpace中找。修改一下note.xsd,去除默认名称空间的声明,并添加一个复杂类型:

                   
Copy after login

上述代码中,复杂类型stu是找不到的,因为你定义了一个名称空间"www.w3schools.com",该复杂类型存在于"www.w3schools.com"中,因此应该修改代码如下:

                   
Copy after login

若自身并不使用重用组件,仅供外部使用的话,则只定义targetNameSpace就可以,不用指定别名。
通过上面的例子,我们可以很深刻的理解targetNameSpace。targetNamespace定义了Schema定义的新元素与属性的名称空间。而"www.w3.org/2001/XMLSchema"名称空间则定义了element, attribute, complexType, group, simpleType等元素。

理解了上面的两个例子,Schema的命名空间的内容应该就明了了。



The above is the detailed content of Specific example code sharing of XML and Schema namespaces. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!