我的 XSD 中有以下元素:
<xs:element name="documents" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="invoice" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="report" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="additional" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
您可以看到文档必须始终具有发票,并且可以选择具有单个报告和零个或多个附加项。
问题是这些元素可以有不同的出现顺序,所以我不能再使用 asequence了。我尝试使用,all但问题是附加元素,因为它有maxOccurs="unbounded".
我怎样才能有一个无序列表的元素,其中一个元素总是需要的,而另一个元素的出现次数不受限制?
首先,抱歉我的英语.
我为朋友制作了一个访问SQLite数据库的JPA(EclipseLink)桌面应用程序.
我已经在Eclipse中创建了数据库和实体.但我还创建了一个名为class的类UniversalDAO,它是所有实体用来访问和持久化数据库的实用程序类:
package model.DAO;
import java.util.ArrayList;
import javax.persistence.*;
import model.entities.Entities;
public class UniversalDAO {
private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("TheDatabase");
private static EntityManager em = emf.createEntityManager();
private UniversalDAO (){}
public static void close(){
em.close();
emf.close();
}
public static Entities getOne(Class<? extends Entities> table, Object primaryKey) {
return em.find(table, primaryKey);
}
public static ArrayList<Entities> getAll(Class<? extends Entities> table) {
ArrayList<Entities> ret = new ArrayList<>();
for(Object obj : em.createQuery("SELECT o FROM " + table.getName() + " o").getResultList())
ret.add((Entities) obj); …Run Code Online (Sandbox Code Playgroud)