次の2つの例のいずれかを検証できるxsdを作成するにはどうすればよいですか?属性とオプションの値を持つ要素を定義する
<element attribute="attribute-value" />
と
<element attribute="attribute-value">element-value</element>
次の2つの例のいずれかを検証できるxsdを作成するにはどうすればよいですか?属性とオプションの値を持つ要素を定義する
<element attribute="attribute-value" />
と
<element attribute="attribute-value">element-value</element>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
targetNamespace="http://tempuri.org/test.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/test.xsd"
xmlns:mstns="http://tempuri.org/test.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:complexType name="element_type">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attribute" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="element" type="element_type">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
これは、属性が必須ではないことを前提としています。完全のために
あなたはこのためxsd:simpleContent
を使用します。 Hereは例です。
次のように、私はいくつかの検証パラメータを追加しました:
<xsd:element name="element">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="OptionalString">
<xsd:attribute name="row" type="xsd:positiveInteger"
use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="OptionalString">
<xsd:restriction base="xsd:string">
<xsd:minLength value="0" />
</xsd:restriction>
</xsd:simpleType>
が、これは上記の提案された解決策とは異なることでしょうか?
こんにちはルイス、同様の質問への回答を見つける別の方法は、XMLスニペットを取り入れ、XMLスキーマファイルを推論するツールを使用することです。 XMLとXSDを合理的に処理するすべてのツールでは、XMLからXSDを推論する能力が必要です。また、XMLやXSDを扱う場合は、特殊なツールを使用する方が良いと思っています...もっと魚の釣り方を教えようとしています... –
ハイ・ルイス、受け入れられた答え? – Skyrim