必須要素とNULL可能要素
ファイルをインポートしてプロセスオブジェクトを生成する前に、WSDLファイル、Swagger JSONファイルまたはYAMLファイル、およびOpenAPI 3.0 JSONファイルまたはYAMLファイルで、プロセスオブジェクトフィールドを必須およびNULL可能として定義できます。
WSDLファイルで、フィールドをNULL可能として定義するには、フィールド要素でnillable属性を"true"に設定します。nillable属性を指定しない場合、デフォルトでは、フィールドはNULL可能ではないものとして設定されます。フィールドを必須として設定しない場合は、フィールド要素でminOccurs属性を"0"に設定します。minOccurs属性を指定しない場合、デフォルトでは、フィールドは必須と見なされます。
例えば、ProcessObjectReqという名前のスキーマを持つWSDLファイルがあるとします。このスキーマは複合型で、NameとIDという2つの要素を含んでいます。IDフィールドをNULL可能とし、必須としない場合は、次のサンプルに示すように、nillable属性を"true"に設定し、minOccurs属性を"0"に設定します。
<xsd:complexType name=”ProcessObjectReq”>
<xsd:sequence>
<xsd:element name=”Name” nillable=”false” type=”xsd:string”/>
<xsd:element name=”ID” minOccurs=”0” nillable=”true” type=”xsd:integer”/>
</xsd:sequence>
</xsd:complexType>
WSDLファイルをインポートすると、次の図に示すように、WSDLファイルで定義されたNULL可能および必須のフィールド要素がプロセスオブジェクトにプロパゲートされます。
同様に、次のサンプルに示すように、Swagger JSONファイルでも、必須およびNULL可能なフィールド要素を設定し、プロセスオブジェクトを作成できます。
"definitions" : {
"Process1-3Request" : {
"type" : "object",
"required" : [ "Test" ],
"properties" : {
"Test" : {
"$ref" : "#/definitions"/ProcessObjectReq"
}
}
},
"ProcessObjectReq" : {
"type" : "object",
"properties" : {
"Name" : {
"type" : "string"
},
"ID" : {
"type" : "integer",
"format" : "int32"
}
},
"required": [
"Name"
],
"x-nullable":["ID"]
}
}
次のサンプルに示すように、OpenAPI 3.0ファイルでも、必須およびNULL可能なフィールド要素を設定し、プロセスオブジェクトを作成できます。
"ApiResponse": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32",
"required": true,
"nullable": false
},
},
...
NULL可能フィールドがあるプロセスオブジェクトをプロセスで使用している場合に、そのプロセスのSwaggerファイルを生成しても、生成されたSwaggerファイルにはプロセスオブジェクトで定義されたx-nullableフィールドが含まれないことがあります。デフォルトでは、このフィールドはNULL可能ではないものとして設定されます。そのため、NULL可能フィールド値を保持するには、WSDLファイルまたはOpenAPI 3.0ファイルを使用することをお勧めします。
このプロセスオブジェクトをプロセスで使用する場合、必須およびNULL可能としてマークされたフィールドは、生成されたWSDLファイル、Swaggerファイル、およびOpenAPI 3.0ファイルで同じ制限を使用します。
JSONファイルをインポートしてプロセスオブジェクトを作成すると、すべてのフィールドはNULL可能としてマークされ、デフォルトでは必須ではありません。