①XMLスキーマで属性の定義
XMLでは項目の他に、属性を定義する事ができます。
XMLスキーマでも、属性の定義ルールを記載して、チェックする事ができます。
簡単なサンプルを作ってみます。
■Attribute.xml
<?xml version="1.0" encoding="UTF-8"?> <greeting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Attribute.xsd" attribute="Hello World!!"> Hello World!! </greeting>
■Attribute.xsd
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="greeting" type="greetingType" /> <xsd:complexType name="greetingType"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="attribute" type="xsd:string" use="required" /> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:schema>
属性を定義する場合は、複合型で定義する必要があります。
<xsd:element name="greeting" type="greetingType" />
の「type="greetingType"」で、
greetingType型は、
<xsd:complexType name="greetingType"> 〜 </xsd:complexType>
で定義します。
<xsd:extension base="xsd:string">
で文字列型を継承し、
<xsd:attribute name="attribute" type="xsd:string" use="required" />
で属性を定義しています。
これで、
属性値 | 内容 |
required | 属性は必須 |
optional | 属性は任意(書かなくても良い) |
Eclipseで、XMLスキーマ検証してみます。
「Attribute.xml」を開いて、右クリックメニューの「検証」で、XMLスキーマ検証します。
エラーは出ませんね。
Attribute.xmlの
■Attribute.xml
<?xml version="1.0" encoding="UTF-8"?> <greeting xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Attribute.xsd"> Hello World!! </greeting>
「Attribute.xsd」では、