有没有一种简单的方法可以使用IDREF属性来引用不同XML文档中的元素?如果没有,有关如何以不同方式进行的任何建议吗?我要做的是为桌面RPG制作一个数字字符表,我希望包含所有字符特定信息的XML文档引用所有优点的主列表.很抱歉,如果这是一个愚蠢的问题,我对使用XML甚至任何编程语言都很陌生,并且刚刚发现了多少XML可以使事情变得更容易.
我有两节课:
public class A {
B refToB;
}
public class B {
A refToA;
}
Run Code Online (Sandbox Code Playgroud)
它们没有唯一的ID字段(JAX-B XMLID和XMLIDREF是必需的)。
对象实例:
A a = new A();
B b = new B();
a.refToB = b;
b.refToA = a;
Run Code Online (Sandbox Code Playgroud)
我想a在存储循环/循环依赖项时编组为XML,例如:
<a id="gen-id-0">
<b>
<a ref-id="gen-id-0" />
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我发现支持此功能的框架之一是XStream:http : //x-stream.github.io/graphs.html
还有哪些其他框架支持此功能?
某些JAX-B实现是否支持它?
我收到一个错误,似乎无法找到很多文档.
这是XML的一小部分.
<Department Code="LING" Chair="BL">
<Title>Linguistics</Title>
<Course Number="LING180" Prerequisites="CS107 CS109" Instructors="DJ" Enrollment="60">
<Title>From Languages to Information</Title>
<Description>
Natural language processing. Cross-listed as
<Courseref Number="CS124"/>
</Description>
</Course>
<Lecturer InstrID="DJ">
<First_Name>Dan</First_Name>
<Middle_Init>D.</Middle_Init>
<Last_Name>Jurafsky</Last_Name>
</Lecturer>
<Professor InstrID="BL">
<First_Name>Beth</First_Name>
<Last_Name>Levin</Last_Name>
</Professor>
<Lecturer InstrID="FZ">
<First_Name>Frank</First_Name>
<Last_Name>Zoidberg</Last_Name>
</Lecturer>
</Department>
Run Code Online (Sandbox Code Playgroud)
这是我的DTD
<!ELEMENT Course_Catalog (Department*)>
<!ELEMENT Department (Title, Course+, Professor+, Lecturer?)>
<!ATTLIST Department Code CDATA #REQUIRED
Chair IDREFS #REQUIRED>
<!ELEMENT Course (Title, Description)>
<!ATTLIST Course Number ID #REQUIRED
Prerequisites IDREFS #IMPLIED
Instructors IDREFS #REQUIRED
Enrollment CDATA #IMPLIED>
<!ELEMENT …Run Code Online (Sandbox Code Playgroud)