0

我是 xml 新手,我尝试创建一些复杂的类型。我试图在 Oxygen 中验证我的 .xsd,但我得到“无法将名称‘状态’解析为 (n)‘类型定义’组件。10:70”我真的不明白为什么。这甚至发生在教程代码中,例如http://www.w3schools.com/schema/schema_complex.asp中的最后一个示例。

我试图在此处包含我的代码,但它一直告诉我“您的帖子似乎包含格式不正确的代码”。我尝试了所有能找到的方法来包含我的代码,但没有任何效果。无论如何,就像我说的那样,上面的例子也会发生(周围是: <xs:schema version="1.0" xmlns="http://www.w3schools.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ......这里是例子...... </xs:schema>

[编辑]

好的。逐行包含代码后,它就可以工作了。这里是:

<xs:schema version="1.0" 
           xmlns="http://www.w3schools.com" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <xs:complexType name="state_machine">
    <xs:sequence>
      <xs:element name="state" type="state"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="state">
    <xs:sequence>
      <xs:element name="Superclass" type="xs:string"/>
      <xs:element name="transition" type="transition"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="transition">
    <xs:sequence>
      <xs:element name="from" type="xs:string"/>
      <xs:element name="to" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

请帮忙!!

4

1 回答 1

2

删除命名空间声明

xmlns="http://www.w3schools.com"

定义默认命名空间会影响引用名称的属性(如 type="state"),但不会影响声明名称的属性(如 name="state")。

于 2014-11-15T13:35:41.497 回答