35.5. 발생 제한
35.5.1. Occurrence 제약 조건 스키마 지원 링크 복사링크가 클립보드에 복사되었습니다!
XML 스키마를 사용하면 복잡한 유형 정의를 구성하는 XML 스키마 요소 중 4개에 대해 발생 제약 조건을 지정할 수 있습니다.
35.5.2. 모든 요소에 대한 발생 제한 링크 복사링크가 클립보드에 복사되었습니다!
35.5.2.1. XML 스키마 링크 복사링크가 클립보드에 복사되었습니다!
all 요소로 정의된 복합 형식은 모든 요소에서 정의한 구조의 여러 발생을 허용하지 않습니다. 그러나 min#187 특성을 수 있습니다.
0 으로 설정하여 all 요소에서 정의하는 구조를 선택적으로 설정할
35.5.2.2. Java에 매핑 링크 복사링크가 클립보드에 복사되었습니다!
모든 요소의 min#187 속성을 으로 설정하면 생성된 Java 클래스에는 영향을 미치지 않습니다.
0
35.5.3. 선택 요소에 대한 발생 제한 링크 복사링크가 클립보드에 복사되었습니다!
35.5.3.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 선택 요소의 결과는 복잡한 형식의 인스턴스에서 한 번만 표시될 수 있습니다. 선택한 요소가 선택 요소에 의해 정의된 구조를 나타내기 위해 선택한 요소의 수를 변경할 수 있습니다. min #187 특성 및 해당 mx Cryostat 특성을 사용하여 표시할 수 있습니다. 이러한 특성을 사용하여 선택 유형이 복잡한 유형의 인스턴스에서 무제한으로 0까지 발생할 수 있도록 지정할 수 있습니다. 선택 유형에 대해 선택한 요소는 해당 유형의 각 항목에 대해 같을 필요가 없습니다.
35.5.3.2. XML 스키마에서 사용 링크 복사링크가 클립보드에 복사되었습니다!
min#187 속성은 선택 유형이 표시되어야 하는 최소 횟수를 지정합니다. 값은 양의 정수일 수 있습니다. min#187 특성을 0 으로 설정하면 선택 유형이 복잡한 형식의 인스턴스 내에 표시되지 않도록 지정합니다.
max#187 속성은 선택 유형이 표시될 수 있는 최대 횟수를 지정합니다. 값은 0이 아닌 정수이거나 바인딩되지 않은 정수일 수 있습니다. max#187 특성을 unbounded 로 설정하면 선택 유형이 무한한 횟수로 표시될 수 있습니다.
예 35.18. “선택 Occurrence 제한” 선택 유형의 정의인 Cryostat Event를 선택할 수 있으며 발생 제약 조건이 표시됩니다. 전체 선택 유형을 0에서 바인딩되지 않은 시간에 반복할 수 있습니다.
예 35.18. 선택 Occurrence 제한
35.5.3.3. Java에 매핑 링크 복사링크가 클립보드에 복사되었습니다!
단일 인스턴스 선택 구조와 달리 여러 번 발생할 수 있는 XML 스키마 선택 구조는 단일 멤버 변수를 사용하여 Java 클래스에 매핑됩니다. 이 단일 멤버 변수는 시퀀스의 여러 항목에 대해 모든 데이터를 포함하는 List<T > 개체입니다. 예를 들어 예 35.18. “선택 Occurrence 제한” 에 정의된 시퀀스가 두 번 발생하면 목록에 두 개의 항목이 있습니다.
Java 클래스의 멤버 변수의 이름은 멤버 요소의 이름을 연결하여 파생됩니다. 요소 이름은 Or 로 구분되며 변수 이름의 첫 문자는 소문자로 변환됩니다. 예를 들어 예 35.18. “선택 Occurrence 제한” 에서 생성된 멤버 변수의 이름은 memberNameOrGuestName 입니다.
목록에 저장된 오브젝트 유형은 멤버 요소의 유형 간의 관계에 따라 다릅니다. 예를 들면 다음과 같습니다.
-
멤버 요소가 동일한 유형인 경우 생성된 목록에는 Cryostat
B Cryostat<T> 오브젝트가포함됩니다. CryostatB Cryostat<T> 개체의 기본 유형은 멤버 요소의 유형의 일반 매핑에 따라 결정됩니다. - 멤버 요소가 서로 다른 유형이며 Java 표현에서 공통 인터페이스를 구현하는 경우 목록에 공통 인터페이스의 개체가 포함됩니다.
- 멤버 요소가 서로 다른 유형이며 Java 표현에서 공통 기본 클래스를 확장하면 목록에 공통 기본 클래스의 오브젝트가 포함됩니다.
-
다른 조건이 충족되지 않으면 목록에
Object개체가 포함됩니다.
생성된 Java 클래스에는 member 변수에 대한 getter 메서드만 있습니다. getter 메서드는 라이브 목록에 대한 참조를 반환합니다. 반환된 목록에 대한 수정 사항은 실제 객체에 영향을 미칩니다.
Java 클래스는 @ CryostatType 주석으로 데코레이팅됩니다. 주석의 name 속성은 XML 스키마 정의의 상위 요소에서 name 속성 값으로 설정됩니다. 주석의 propOrder 속성에는 시퀀스의 요소를 나타내는 단일 멤버 변수가 포함되어 있습니다.
선택한 구조의 요소를 나타내는 멤버 변수는 @ Cryostat Cryostats 주석으로 데코레이팅됩니다. @ Cryostat Cryostats 주석에는 콤마로 구분된 @ Cryostat annotations 목록이 포함되어 있습니다. 목록에는 유형의 XML 스키마 정의에 정의된 각 멤버 요소에 대해 하나의 @ #159 Cryostat 주석이 있습니다. 목록 의 @ Cryostat annotations에는 XML 스키마 요소 요소의 속성 값으로 설정되고 XML 스키마 name 요소 요소의 매핑에서 생성되는 Java 클래스로 설정된 해당 type 속성이 있습니다.
예 35.19. “Occurrence 제약 조건을 사용하여 Java 표현” 예 35.18. “선택 Occurrence 제한” 에 정의된 XML 스키마 선택 구조에 대한 Java 매핑을 보여줍니다.
예 35.19. Occurrence 제약 조건을 사용하여 Java 표현
35.5.3.4. min Cryostat 0으로 설정 링크 복사링크가 클립보드에 복사되었습니다!
min#187 요소만 지정되고 해당 값이 0 이면 코드 생성기는 min #187 속성이 설정되지 않은 것처럼 Java 클래스를 생성합니다.
35.5.4. Cryostat에 대한 발생 제한 링크 복사링크가 클립보드에 복사되었습니다!
35.5.4.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
요소 요소의 min #187 특성 및 max Cryostat 특성을 사용하여 복잡한 유형의 특정 요소가 표시되는 횟수를 지정할 수 있습니다. 두 속성의 기본값은 1 입니다.
35.5.4.2. min Cryostat 0으로 설정 링크 복사링크가 클립보드에 복사되었습니다!
complex 유형의 member 요소의 min Cryostat 속성 중 하나를 0 으로 설정하면 해당 Java 멤버 변수를 데코딩하는 @ Cryostat 주석이 변경됩니다. 필수 속성을 true 로 설정하는 대신 @ Cryostat 주석 의 필수 속성이 false 로 설정됩니다.
35.5.4.3. min Cryostat를 1보다 큰 값으로 설정합니다. 링크 복사링크가 클립보드에 복사되었습니다!
XML 스키마에서는 요소의 min#187 특성을 둘 이상의 값으로 설정하여 형식 인스턴스에서 하도록 지정할 수 있습니다. 그러나 생성된 Java 클래스는 XML 스키마 제약 조건을 지원하지 않습니다. Apache CXF는 요소를 두 번 이상 발생min #187 속성이 설정되지 않은 것처럼 지원 Java 멤버 변수를 생성합니다.
35.5.4.4. max#187 set가 있는 요소 링크 복사링크가 클립보드에 복사되었습니다!
멤버 요소가 복잡한 유형의 인스턴스에서 여러 번 표시되도록 하려면 요소의 max Cryostat 특성을 1보다 큰 값으로 설정합니다. max#187 특성의 값을 unbounded 로 설정하여 멤버 요소가 무제한으로 표시될 수 있도록 지정할 수 있습니다.
코드 생성기는 max #187 특성이 1보다 큰 값으로 멤버 요소를 List<T > 개체인 Java 멤버 변수에 매핑합니다. 목록의 기본 클래스는 요소의 유형을 Java에 매핑하여 결정됩니다. XML 스키마 기본 유형의 경우 “래퍼 클래스” 에 설명된 대로 래퍼 클래스가 사용됩니다. 예를 들어 멤버 요소가 xsd:int 유형의 경우 생성된 멤버 변수는 List<Integer> 개체입니다.For example, if the member element is of type xsd:int the generated member variable is a List<Integer > object.
35.5.5. 시퀀스에 대한 발생 제한 링크 복사링크가 클립보드에 복사되었습니다!
35.5.5.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 시퀀스 요소의 내용은 복잡한 형식의 인스턴스에서 한 번만 나타날 수 있습니다.By default, the contents of a sequence element can only appear once in an instance of a complex type. 시퀀스 요소에서 정의한 요소 시퀀스를 변경할 수 있는 횟수를 변경할 수 있습니다. min #187 속성 및 max Cryostat 특성을 사용하여 표시할 수 있습니다. 이러한 특성을 사용하여 시퀀스 유형이 복잡한 형식의 인스턴스에서 무제한 0으로 발생할 수 있도록 지정할 수 있습니다.Using these attributes you can occur that the sequence type can occur zero to an unlimited number of times in an instance of a complex type.
35.5.5.2. XML 스키마 사용 링크 복사링크가 클립보드에 복사되었습니다!
min#187 속성은 정의된 복합 형식의 인스턴스에서 시퀀스가 발생해야 하는 최소 횟수를 지정합니다. 값은 양의 정수일 수 있습니다. min#187 특성을 0 으로 설정하면 시퀀스가 복잡한 형식의 인스턴스 내에 표시되지 않도록 지정합니다.
max#187 속성은 정의된 복잡한 형식의 인스턴스에서 시퀀스가 발생할 수 있는 횟수에 대한 상한을 지정합니다. 값은 0이 아닌 정수이거나 바인딩되지 않은 정수일 수 있습니다. max#187 특성을 unbounded 로 설정하면 시퀀스가 무한한 횟수만큼 표시될 수 있습니다.
예 35.20. “Occurrence 제약 조건이 있는 순서” 시퀀스 발생 제약 조건이 있는 시퀀스 유형 인 Cryostat의 정의를 표시합니다. 시퀀스는 0에서 2 번 반복할 수 있습니다.
예 35.20. Occurrence 제약 조건이 있는 순서
35.5.5.3. Java에 매핑 링크 복사링크가 클립보드에 복사되었습니다!
단일 인스턴스 순서와 달리 여러 번 발생할 수 있는 XML 스키마 시퀀스는 단일 멤버 변수를 사용하여 Java 클래스에 매핑됩니다. 이 단일 멤버 변수는 시퀀스의 여러 항목에 대해 모든 데이터를 포함하는 List<T > 개체입니다. 예를 들어 예 35.20. “Occurrence 제약 조건이 있는 순서” 에 정의된 시퀀스가 두 번 발생하면 목록에 4개의 항목이 포함됩니다.
Java 클래스의 멤버 변수의 이름은 멤버 요소의 이름을 연결하여 파생됩니다. 요소 이름은 AND로 구분되고 변수 이름의 첫 문자는 소문자로 변환됩니다. 예를 들어 예 35.20. “Occurrence 제약 조건이 있는 순서” 에서 생성된 멤버 변수의 이름은 nameAndLcid 입니다.
목록에 저장된 오브젝트 유형은 멤버 요소의 유형 간의 관계에 따라 다릅니다. 예를 들면 다음과 같습니다.
-
멤버 요소가 동일한 유형인 경우 생성된 목록에는 Cryostat
B Cryostat<T> 오브젝트가포함됩니다. CryostatB Cryostat<T> 개체의 기본 유형은 멤버 요소의 유형의 일반 매핑에 따라 결정됩니다. - 멤버 요소가 서로 다른 유형이며 Java 표현에서 공통 인터페이스를 구현하는 경우 목록에 공통 인터페이스의 개체가 포함됩니다.
- 멤버 요소가 서로 다른 유형이며 Java 표현에서 공통 기본 클래스를 확장하면 목록에 공통 기본 클래스의 오브젝트가 포함됩니다.
-
다른 조건이 충족되지 않으면 목록에
Object개체가 포함됩니다.
생성된 Java 클래스에는 member 변수에 대한 getter 메서드만 있습니다. getter 메서드는 라이브 목록에 대한 참조를 반환합니다. 반환된 목록에 대한 수정 사항은 실제 객체에 영향을 미칩니다.
Java 클래스는 @ CryostatType 주석으로 데코레이팅됩니다. 주석의 name 속성은 XML 스키마 정의의 상위 요소에서 name 속성 값으로 설정됩니다. 주석의 propOrder 속성에는 시퀀스의 요소를 나타내는 단일 멤버 변수가 포함되어 있습니다.
시퀀스의 요소를 나타내는 멤버 변수는 @ Cryostat Cryostats 주석으로 데코레이팅됩니다. @ Cryostat Cryostats 주석에는 콤마로 구분된 @ Cryostat annotations 목록이 포함되어 있습니다. 목록에는 유형의 XML 스키마 정의에 정의된 각 멤버 요소에 대해 하나의 @ #159 Cryostat 주석이 있습니다. 목록 의 @ Cryostat annotations에는 XML 스키마 요소 요소의 속성 값으로 설정되고 XML 스키마 name 요소 요소의 매핑에서 생성되는 Java 클래스로 설정된 해당 type 속성이 있습니다.
예 35.21. “Occurrence 제약 조건을 사용한 시퀀스 표현” 예 35.20. “Occurrence 제약 조건이 있는 순서” 에 정의된 XML 스키마 시퀀스의 Java 매핑을 보여줍니다.
예 35.21. Occurrence 제약 조건을 사용한 시퀀스 표현
35.5.5.4. min Cryostat 0으로 설정 링크 복사링크가 클립보드에 복사되었습니다!
min#187 요소만 지정되고 해당 값이 0 이면 코드 생성기는 min #187 속성이 설정되지 않은 것처럼 Java 클래스를 생성합니다.