모델 그룹에 maxOccurs > 1인 값이 있는 경우 모델 그룹 배열이 작성됩니다.
모델 그룹이 단일화되고 DataObject에 표시되지 않으므로 모델 그룹 내부의 특성이 아직 참이 아닌 경우 해당 isMany() 메소드가 참을 리턴하도록 모델 그룹 내부의 특성은 다중 카디낼리티 특성이 됩니다. 해당 minOccurs 및 maxOccurs 패싯은 포함된 모델 그룹의 패싯 만큼 배가됩니다. 선택사항은 기타 모델 그룹과 동일한 방법으로 maxOccurs 패싯을 배가시키지만, 선택사항의 어떤 데이터도 선택되지 않기 때문에 minOccurs의 곱셈 값으로 항상 0을 사용합니다.
예를 들어, 다음 XSD에 모델 그룹 배열이 있습니다.
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ModelGroupArray"> <xsd:complexType name="ModelGroupArray"> <xsd:sequence minOccurs="2" maxOccurs="5"> <xsd:element name="element1" type="xsd:string"/> <xsd:element name="element2" type="xsd:string" minOccurs="0" maxOccurs="3"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
설명한 바와 같이 get(...) 액세서가 목록을 리턴할 수 있도록 element1 및 element2가 다중 카디낼리티가 됩니다. Element1에는 minOccurs 기본값 1 및 maxOccurs 기본값 1이 있습니다. Element2에는 minOccurs 값 0 및 maxOccurs 값 3이 있습니다. 다음 예제에서 해당 새 minOccurs 및 maxOccurs는 다음과 같습니다.
DataObject - ModelGroupArray Property[0] - element1 - minOccurs=(2*1)=2 - maxOccurs=(5*1)=5 Property[1] - element2 - minOccurs=(2*0)=0 - maxOccurs=(5*3)=15
유형이 선택사항인 경우에는 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ModelGroupArray"> <xsd:complexType name="ModelGroupArray"> <xsd:choice minOccurs="2" maxOccurs="5"> <xsd:element name="element1" type="xsd:string"/> <xsd:element name="element2" type="xsd:string" minOccurs="0" maxOccurs="3"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
위 예제에서는 매번 element1만 선택하거나 매번 element2만 선택할 수 있는 선택사항이 배제되었기 때문에 다음과 같은 minOccurs를 생성하여 둘 다 0개의 어커런스를 가질 수 있도록 하는 유효성 검증에 패스할 수 있게 합니다.
DataObject - ModelGroupArray Property[0] - element1 - minOccurs=(0*1)=0 - maxOccurs=(5*1)=5 Property[1] - element2 - minOccurs=(0*0)=0 - maxOccurs=(5*3)=15