Ha egy elem számosság 0 és végtelen, akkor one-to-many, vagy many-to-many kapcsolat jön létre (alapból one-to-many). Ezt a complexCollectionProperty elemmel lehet testreszabni. Az alábbi példában egy many-tomany kapcsolat jön létre az event ésa person entitás között.
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:hj="http://hyperjaxb2.jvnet.org/customizations" jaxb:version="1.0" jaxb:extensionBindingPrefixes="hj" > <xsd:annotation> <xsd:appinfo> <jaxb:globalBindings generateIsSetMethod="true" /> <jaxb:schemaBindings> <jaxb:package name="norbert.test.hjaxb.model" /> </jaxb:schemaBindings> </xsd:appinfo> </xsd:annotation> <xsd:element name="event"> <xsd:complexType> <xsd:annotation> <xsd:appinfo> <hj:class> <hj:table name="EVENTS"/> </hj:class> </xsd:appinfo> </xsd:annotation> <xsd:sequence> <xsd:element name="id" type="xsd:int"> <xsd:annotation> <xsd:appinfo> <hj:id> <hj:column name="EVENT_ID"/> <hj:generator generatorClass="assigned"/> </hj:id> </xsd:appinfo> </xsd:annotation> </xsd:element> <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"></xsd:element> <xsd:element name="startDate" type="xsd:dateTime" maxOccurs="1" minOccurs="1"></xsd:element> <xsd:element name="endDate" type="xsd:dateTime" maxOccurs="1" minOccurs="0"> </xsd:element> <xsd:element ref="person" maxOccurs="unbounded" minOccurs="0"> <xsd:annotation> <xsd:appinfo> <hj:complexCollectionProperty> <hj:table name="EVENT_PERSONS"/> <hj:key> <hj:column name="EVENT_ID"/> </hj:key> <hj:list-index> <hj:column name="EVENT_PERSON_INDEX"/> </hj:list-index> <hj:many-to-many> <hj:column name="PERSON_ID"/> </hj:many-to-many> </hj:complexCollectionProperty> </xsd:appinfo> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="person"> <xsd:complexType> <xsd:annotation> <xsd:appinfo> <hj:class> <hj:table name="PERSONS"/> </hj:class> </xsd:appinfo> </xsd:annotation> <xsd:sequence> <xsd:element name="id" type="xsd:int"> <xsd:annotation> <xsd:appinfo> <hj:id> <hj:column name="PERSON_ID"/> <hj:generator generatorClass="assigned"/> </hj:id> </xsd:appinfo> </xsd:annotation> </xsd:element> <xsd:element name="name" type="xsd:string"></xsd:element> <xsd:element name="age" type="xsd:int" maxOccurs="1" minOccurs="0"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>