규칙 세트 XOM의 XML 직렬화

규칙 세트 실행을 위한 REST 서비스에서 기본 Java™ 유형, XSD 유형 및 Java XOM 클래스는 다르게 직렬화됩니다.

규칙 세트 매개변수는 XML 요소로 또는 Java 유형으로 표현되는지에 따라 다르게 처리됩니다.

기본 유형

기본 유형은 인라인 문자열로 작성될 수 있는 Java 유형과 클래스입니다. 기본 유형을 규칙 세트 매개변수로 직렬화하는 데 사용되는 XML 요소는 매개변수 네임스페이스에서 규칙 세트 매개변수의 이름입니다.

다음에서 자세한 정보를 찾을 수 있습니다.
  • 대상 네임스페이스 변경에서는 Rule Execution Server 콘솔의 규칙 세트 보기에서 매개변수 네임스페이스를 사용자 정의하는 방법을 설명합니다.
  • Java 유형의 XML 직렬화에서는 Java 기본 유형과 단순 유형의 XML 유형과 JAXB(Java Architecture for XML Binding) 어노테이션을 보여줍니다.

동적 XOM

동적 XOM의 경우 루트 요소는 규칙 세트 매개변수가 정의되는 방법에 따라 다릅니다. XML 설명은 규칙 세트가 기반으로 하는 동적 XOM의 원래 XSD 코드부터 직렬화됩니다.

루트 요소의 이름
동적 XOM을 기반으로 하는 규칙 세트의 경우 루트 요소 이름은 다음과 같이 결정됩니다.
  • 매개변수가 규칙 세트 시그니처에서 XML 요소인 경우, 해당 요소는 요청과 응답에서 매개변수의 루트 요소 이름으로 사용됩니다.
  • 매개변수가 복합 또는 기본 Java 유형인 경우, 매개변수 이름은 구성된 param 네임스페이스 내에서 요청과 응답에 있는 매개변수의 루트 요소 이름으로 사용됩니다.
    참고: 규칙 세트 매개변수는 XML 요소가 가져온 원래 XSD 파일의 해당 복합 유형에서 선언된 XML 복합 유형을 사용하는 경우 XML 요소에서 선언됩니다. 예를 들어, 다음 XSD 정의에서 시작하는 경우,
    <xsd:element name="MyConference">
       <xsd:complexType>
          		<xsd:sequence>
             <xsd:element name="session" type="session" maxOccurs="unbounded"/>
             <xsd:element name="participant" type="participant" minOccurs="0" maxOccurs="unbounded"/>
          		</xsd:sequence>
       	</xsd:complexType>
    </xsd:element>
    규칙 세트 매개변수는 MyConference XML 요소에서 선언됩니다.
    <par:Request xmlns:par="http://www.ibm.com/rules/decisionservice/myruleapp/myruleset/param" xmlns:jav="http://www.acme.com/myconference">
       <jav:MyConference>
          <jav:session>
            […]
          <jav:session>
       <jav:MyConference>
    </par:Request>
직렬화
루트 요소는 XML 유형에 따라 다릅니다.
  • XML 복합 유형의 경우, 매개변수 선언에서 매개변수 이름(매개변수 네임스페이스의)을 루트 요소로 사용합니다.
  • XML 요소의 경우, 매개변수 선언에서 정의된 XML 요소를 원래 네임스페이스의 루트 요소로 사용합니다. 이 경우, 각 노드에 연결되는 매개변수의 이름은 주석 메시지로서 WADL 코드로 제공됩니다.
여러 요소가 동일한 이름을 가지고 있을 때 요소 노드는 알파벳순으로 구별됩니다. 이 경우, 요소 중 하나가 널(null)이기를 원하면 xsi:nil 속성을 true로 설정해야 합니다. 동적 XOM의 원래 XSD 스키마에서 루트 요소에 대해 nillable 속성이 true로 설정되는 경우에만 이를 수행할 수 있습니다. nillable 속성의 기본값은 false입니다.

Java XOM

Java XOM의 경우, 루트 요소는 매개변수 선언에서 파생되며 XML 직렬화에서 JAXB 어노테이션을 사용합니다. 배열은 규칙 세트 매개변수에 대해 지원됩니다.
루트 요소의 이름

Java XOM을 기반으로 하는 규칙 세트의 경우, 매개변수 선언에서 매개변수 이름(매개변수 네임스페이스의)을 루트 요소로 사용합니다.

직렬화
Java XOM 클래스의 XML 구조는 표준 JAXB 프로세스를 통해 직렬화됩니다. 기본 직렬화가 클래스에 대해 기대하는 결과를 제공하지 않으면, JAXB 어노테이션을 사용하여 직렬화 프로세스를 사용자 정의할 수 있습니다.
참고: XmlElement 어노테이션을 사용하여 매개변수를 지정하거나 유효한 getXXXsetXXX 메소드가 매개변수에 적용되는 경우에만 매개변수가 XML 요소로 표시됩니다.
규칙 세트 매개변수로서의 배열
Java XOM에서 규칙 세트 매개변수를 단순 또는 다차원 배열로 지정할 수 있습니다. XML 직렬화는 배열의 각 유형에 대해 다르게 처리됩니다.
  • 규칙 세트 매개변수가 단순 배열이면 매개변수 이름은 XML에서 표준 배열로서 반복됩니다.
  • 규칙 세트 매개변수가 다차원적 배열이면, 매개변수 이름은 첫 번째 차원에 대해 XML에서 표준 배열 유형으로 반복된 다음, 이후 차원에 대해 item 요소를 사용합니다. 예를 들면, 다음과 같습니다.
    <myMultiDimArrayParam>
          <item>1</item>
          <item>2</item>
        </myMultiDimArrayParam>
        <myMultiDimArrayParam>
          <item>3</item>
          <item>4</item>
          <item>5</item>
    </myMultiDimArrayParam>