Shammer's Philosophy

My private adversaria

Invalid attribute value for 'name' in element 'attribute': Value 'org:sample' is not a valid NCName.

attribute name="org:sample" ... とか定義していると、

Invalid attribute value for 'name' in element 'attribute': Value 'org:sample' is not a valid NCName.

となった。name属性には、「:(コロン)」を使えないようだ。

ここは使おうとして使ったのではなく、

  <element name="elementB">
    <complexType>
      <sequence>
        <element ref="org:someTag" minOccurs='1' maxOccurs='1'/>
      </sequence>
      <attribute name="someAttr" type="string" use="required"/>
    </complexType>
  </element>

の、ref属性からコピペで書いてしまったのでこんなエラーが出たわけだが・・・

このエラーはほとんどの人が見ることないだろうな。

自分のミスが原因で出会うことになってしまったようなエラーだから。。。

ともあれ、ここまで直してようやくエラーが出なくなった。

もっと積極的に情報のリソース(源)の確認をするようにしていこう。



いろいろとエラーを直し続けて、問題なくなったXML Schemaファイルはこんな感じだ。

<?xml version="1.0"?>
<schema
  xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:org="http://www.sample.com/myoriginal"
  targetNamespace="http://www.sample.com/myoriginal">
  <element name="sample">
    <complexType>
      <sequence>
        <element ref="org:elementA" minOccurs='0' maxOccurs='unbounded'/>
        <element ref="org:elementB" minOccurs='0' maxOccurs='unbounded'/>
      </sequence>
    </complexType>
  </element>
  <element name="elementA">
    <complexType>
      <sequence>
        <element ref="org:name" minOccurs='1' maxOccurs='1'/>
      </sequence>
    </complexType>
  </element>
  <element name="elementB">
    <complexType>
      <sequence>
        <element ref="org:someTag" minOccurs='1' maxOccurs='1'/>
      </sequence>
      <attribute name="someAttr" type="string" use="required"/>
    </complexType>
  </element>
  <element name="name" type="string"/>
  <element name="someTag">
    <complexType>
      <attribute name="value" type="string" use="required"/>
    </complexType>
  </element>
</schema>