xml-schema xsd错误:带命名空间
发布时间:2020-12-16 23:18:03 所属栏目:百科 来源:网络整理
导读:我正在尝试定义我的第一个xml架构: ?xml version="1.0" encoding="UTF-8"?xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.example.net/test" xmlns:t="http://www.example.net/test"
我正在尝试定义我的第一个xml架构:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.example.net/test" xmlns:t="http://www.example.net/test"> <xs:annotation> <xs:documentation>This schema describes the xml format that is used in for ILTIS stuff.</xs:documentation> </xs:annotation> <xs:complexType name="station"> <xs:sequence> <xs:element name="transition" type="transition" minOccurs="1" /> </xs:sequence> </xs:complexType> <xs:complexType name="transition"> <xs:sequence> <xs:element name="wActions" type="wActions" maxOccurs="1" minOccurs="1"/> <xs:element name="oActions" type="oAction" maxOccurs="1" minOccurs="1"/> </xs:sequence> <xs:attribute name="from" type="xs:string" use="required"/> <xs:attribute name="to" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="wActions"> <xs:sequence> <xs:element name="wMessage" type="wMessage" maxOccurs="2" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="oActions"> <xs:sequence> <xs:element name="trainRunMessage" type="trainRunMessage" maxOccurs="2" minOccurs="1"/> <xs:element name="wMessage" type="wMessage" maxOccurs="2" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="trainRunMessage"> <xs:attribute name="track" type="xs:string" use="required"/> <xs:attribute name="offset" type="xs:string" default="0"/> <xs:attribute name="station" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="wMessage"> <xs:attribute name="track" type="xs:string" use="required"/> </xs:complexType> </xs:schema> 但我的氧气编辑器总是抛出这个错误信息: src-resolve.4.1: Error resolving component 'transition'. It was detected that 'transition' has no namespace,but components with no target namespace are not referenceable from schema document 'file:/C:/Users/mbohlaender/Desktop/rules-example-schema2.xsd'. If 'transition' is intended to have a namespace,perhaps a prefix needs to be provided. If it is intended that 'transition' has no namespace,then an 'import' without a "namespace" attribute should be added to 'file:/C:/Users/mbohlaender/Desktop/rules-example-schema2.xsd'. 我仍然无法得出我做错了什么. 解决方法
在< transition>的定义中你正在引用一个类型转换,这是Oxygen无法识别的.它不存在.您只在架构中定义了一个名为transition的复杂类型,因此该类型最终位于目标命名空间http://www.example.net/test中,您已使用t前缀导入该命名空间.
试着写 <xs:element name="transition" type="t:transition" minOccurs="1" /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |