XML スキーマ処理のすべての (複雑な) ルールに従うことを理解しようとしましたが、それでも理解できません! 私の問題はこれです:
- 私は XSD を持っています。
- 要素にプレフィックスを付けずに、この XSD に基づいて XML ファイルを作成して検証したいと考えています。
- jEdit や Eclipse などのエディタで、XSD に基づいてオートコンプリートを処理できるようにしてほしい。
ただし、すべての検証エディターで同じエラー メッセージが表示されます。
以下は、XSD の簡素化されたバージョンです。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.megadix.org/standards/temp.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jfcm="http://www.megadix.org/standards/temp.xsd"
elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xsd:complexType name="MapsType">
<xsd:sequence>
<xsd:element name="map" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
<xsd:sequence>
<xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1"></xsd:element>
<xsd:element name="concepts" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="concept" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:string" use="required"></xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="maps" type="jfcm:MapsType"></xsd:element>
プレフィックスを使用すると、ファイルは正しく検証され、オートコンプリートされます。
<?xml version="1.0" encoding="UTF-8"?>
<jfcm:maps xmlns:jfcm="http://www.megadix.org/standards/temp.xsd">
<map name="Test Map">
<concepts>
<concept name="c1" />
<concept name="c2" />
<concept name="c3" />
</concepts>
</map>
しかし、それを削除すると:
<?xml version="1.0" encoding="UTF-8"?>
<maps xmlns:jfcm="http://www.megadix.org/standards/temp.xsd">
<map name="Test Map">
<concepts>
<concept name="c1" />
<concept name="c2" />
<concept name="c3" />
</concepts>
</map>
次のエラー メッセージが表示されます。
要素 'map' で始まる無効なコンテンツが見つかりました。「{map}」のいずれかが必要です。
助言がありますか?