未生成 XSD 文件中元素内的元素
Element inside Element in XSD file is not generated
我正在尝试在 XSD 文件中的元素内添加元素。
当我尝试这样做时,我收到了错误:
[错误] s4s-elt-invalid-content.1: '#AnonType_nodeosm' 的内容无效。元素 'element' 无效、放错位置或出现得太频繁。
文件的第 32 行:/D:/.../src/conf/xml-resources/jaxb/generated/scheme.xsd
添加<xs:element name="edge".... </xs:element>
时出现错误
没有这个它工作正常。
我想做的事情:
Class 节点 class.
中的边 class
我也想让class节点有成员List<Edge> m_Edges
,不知道怎么办
我试着用类似于 XSD 元素的方式来做,但没有成功。
我的XSD文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="osm">
<xs:complexType>
<xs:sequence>
<xs:element name="bounds">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:float" name="minlat" />
<xs:attribute type="xs:float" name="minlon" />
<xs:attribute type="xs:float" name="maxlat" />
<xs:attribute type="xs:float" name="maxlon" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="node" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element name="edge" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:attribute type="xs:node" name="source" use="optional" />
<xs:attribute type="xs:node" name="destination" use="optional" />
<xs:attribute type="xs:double" name="weight" use="optional" />
</xs:complexType>
</xs:element>
<xs:attribute type="xs:long" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:byte" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
<xs:attribute type="xs:float" name="lat" use="optional" />
<xs:attribute type="xs:float" name="lon" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="way" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="nd" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:long" name="ref" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:byte" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="relation" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="member" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="type" use="optional" />
<xs:attribute type="xs:long" name="ref" use="optional" />
<xs:attribute type="xs:string" name="role" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:short" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:float" name="version" />
<xs:attribute type="xs:string" name="generator" />
<xs:attribute type="xs:string" name="copyright" />
<xs:attribute type="xs:anyURI" name="attribution" />
<xs:attribute type="xs:anyURI" name="license" />
</xs:complexType>
</xs:element>
</xs:schema>
我想生成 class 包含 class 边的节点,如下所示:
public class Edge {
Node m_Source;
Node m_Destination;
double m_Weight;
public Edge(Node i_Source, Node i_Destination, double i_Weight) {
m_Source = i_Source;
m_Destination = i_Destination;
m_Weight = i_Weight;
}
public Node getSource() {
return m_Source;
}
public Node getDestination() {
return m_Destination;
}
public double getWeight() {
return m_Weight;
}
public void setSource(Node i_SourceNode)
{
m_Source = i_SourceNode;
}
public void setDestination(Node i_DestinationNode)
{
m_Destination = i_DestinationNode;
}
}
XSD 没有错误的解决方案(按照安德烈亚斯的回答):
您的错误 "started when [you] added <xs:element name="edge".... </xs:element>
",如错误消息所述,第 32 行。
您在 <xs:sequence>
标签外添加了元素。将插入的元素上移一行。
这假设您希望 <node>
包含两个元素:<tag>
和 <edge>
(按此顺序)。
我正在尝试在 XSD 文件中的元素内添加元素。
当我尝试这样做时,我收到了错误:
[错误] s4s-elt-invalid-content.1: '#AnonType_nodeosm' 的内容无效。元素 'element' 无效、放错位置或出现得太频繁。
文件的第 32 行:/D:/.../src/conf/xml-resources/jaxb/generated/scheme.xsd
添加<xs:element name="edge".... </xs:element>
时出现错误
没有这个它工作正常。
我想做的事情:
Class 节点 class.
中的边 class
我也想让class节点有成员List<Edge> m_Edges
,不知道怎么办
我试着用类似于 XSD 元素的方式来做,但没有成功。
我的XSD文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="osm">
<xs:complexType>
<xs:sequence>
<xs:element name="bounds">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:float" name="minlat" />
<xs:attribute type="xs:float" name="minlon" />
<xs:attribute type="xs:float" name="maxlat" />
<xs:attribute type="xs:float" name="maxlon" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="node" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:element name="edge" maxOccurs="unbounded" minOccurs="0">
<xs:complexType mixed="true">
<xs:attribute type="xs:node" name="source" use="optional" />
<xs:attribute type="xs:node" name="destination" use="optional" />
<xs:attribute type="xs:double" name="weight" use="optional" />
</xs:complexType>
</xs:element>
<xs:attribute type="xs:long" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:byte" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
<xs:attribute type="xs:float" name="lat" use="optional" />
<xs:attribute type="xs:float" name="lon" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="way" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="nd" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:long" name="ref" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:byte" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="relation" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="member" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="type" use="optional" />
<xs:attribute type="xs:long" name="ref" use="optional" />
<xs:attribute type="xs:string" name="role" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="tag" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="k" use="optional" />
<xs:attribute type="xs:string" name="v" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:int" name="id" use="optional" />
<xs:attribute type="xs:string" name="visible" use="optional" />
<xs:attribute type="xs:short" name="version" use="optional" />
<xs:attribute type="xs:int" name="changeset" use="optional" />
<xs:attribute type="xs:dateTime" name="timestamp" use="optional" />
<xs:attribute type="xs:string" name="user" use="optional" />
<xs:attribute type="xs:int" name="uid" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute type="xs:float" name="version" />
<xs:attribute type="xs:string" name="generator" />
<xs:attribute type="xs:string" name="copyright" />
<xs:attribute type="xs:anyURI" name="attribution" />
<xs:attribute type="xs:anyURI" name="license" />
</xs:complexType>
</xs:element>
</xs:schema>
我想生成 class 包含 class 边的节点,如下所示:
public class Edge {
Node m_Source;
Node m_Destination;
double m_Weight;
public Edge(Node i_Source, Node i_Destination, double i_Weight) {
m_Source = i_Source;
m_Destination = i_Destination;
m_Weight = i_Weight;
}
public Node getSource() {
return m_Source;
}
public Node getDestination() {
return m_Destination;
}
public double getWeight() {
return m_Weight;
}
public void setSource(Node i_SourceNode)
{
m_Source = i_SourceNode;
}
public void setDestination(Node i_DestinationNode)
{
m_Destination = i_DestinationNode;
}
}
XSD 没有错误的解决方案(按照安德烈亚斯的回答):
您的错误 "started when [you] added <xs:element name="edge".... </xs:element>
",如错误消息所述,第 32 行。
您在 <xs:sequence>
标签外添加了元素。将插入的元素上移一行。
这假设您希望 <node>
包含两个元素:<tag>
和 <edge>
(按此顺序)。