XML Tutorial/XML Schema/elementFormDefault — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:26, 26 мая 2010
Allowing Any Elements or Attributes from a Particular Namespace
<source lang="xml">
File: Data.xml <?xml version="1.0"?> <library xmlns="http://wbex.ru/ns/library"
xmlns:mkt="http://wbex.ru/ns/library/mkt"> <book id="b0836217462"> <title>title</title> <authors> <person id="CMS"> <name>name</name> </person> </authors> <mkt:cover>Paperback</mkt:cover> <mkt:pages>128</mkt:pages> </book>
</library> File: Schema.xsd <?xml version="1.0"?> <xs:schema targetNamespace="http://wbex.ru/ns/library"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://wbex.ru/ns/library"> <xs:element name="library"> <xs:complexType> <xs:sequence> <xs:element ref="book" /> </xs:sequence> <xs:anyAttribute namespace="http://wbex.ru/ns/library/mkt" processContents="skip" /> </xs:complexType> </xs:element> <xs:element name="book"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string" /> <xs:element name="authors"> <xs:complexType> <xs:sequence> <xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:any namespace="http://wbex.ru/ns/library/mkt" processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="id" use="required"> <xs:simpleType> <xs:restriction base="xs:string" /> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element>
</xs:schema></source>
Namespace Qualification
<source lang="xml">
When working with namespaces, the schema author must decide whether the namespace of each element and attribute should be hidden or exposed in the document instance.
elementFormDefault="qualified | unqualified" attributeFormDefault="qualified | unqualified" By setting the elementFormDefault attribute, you can require the document instance to expose or hide namespace qualifications. If you use elementFormDefault="qualified", the namespace of each element would have to be exposed in document instances.</source>