Java JAXB IDREF和ID使用情况?
我希望编写一个XSD,用于通过JAXB生成一些Java类。我希望生成的XML如下所示:Java JAXB IDREF和ID使用情况?,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我希望编写一个XSD,用于通过JAXB生成一些Java类。我希望生成的XML如下所示: <Appointment> <Patient ref="12345">Bob Smith</Patient> <Type>Some Appointment Type</Type> <Date>2010-02-17</Date> .... </Appointment> Patient
<Appointment>
<Patient ref="12345">Bob Smith</Patient>
<Type>Some Appointment Type</Type>
<Date>2010-02-17</Date>
....
</Appointment>
Patient p = loadPatientFromDB();
Appointment a = new Appointment();
a.setPatient(p);
a.setType("Some Appointment Type");
我想我要做的是让一个元素有一个IDREF作为属性,然后是一个字符串作为元素的内容
有人能帮我拿一些XSD吗
谢谢
编辑
这个问题也可能以以下方式提出
simpleType可以有属性,也可以是complexType
那么,你能喝一杯吗
条
还是一定要有
条
我会回答你的第二个问题,因为问题问得很清楚。不,简单类型不能有属性。您所寻找的是一种具有简单内容的复杂类型:
<xs:complexType name="Person">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
编辑:您现在可以按预期使用此类型,将其分配给名为“person”的元素,并且可以拥有名称
至于第一个问题:如果你真的想要解决ID,你还有一点额外的工作要做。例如
<element id="foo"><name>bar</name></element>
<xs:complexType name="Person">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="ref" type="xs:IDREF" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>