ビジネス・オブジェクトのエレメントと属性には、固有の名前を指定する必要があります。
サービス・データ・オブジェクト (SDO) フレームワークでは、エレメントと属性はプロパティーとして作成されます。以下のコード例では、XSD で foo という名前の 1 つのプロパティーを持つタイプを作成します。
<xsd:complexType name="ElementFoo"> <xsd:sequence> <xsd:element name="foo" type="xsd:string" default="elem_value"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AttributeFoo"> <xsd:attribute name="foo" type="xsd:string" default="attr_value"/> </xsd:complexType>
これらの事例では、XML パス言語 (XPath) を使用してプロパティーにアクセスできます。ただし、有効なスキーマ・タイプは、次の例に示すように、同じ名前の属性とエレメントを持つことができます。
<xsd:complexType name="DuplicateNames"> <xsd:sequence> <xsd:element name="foo" type="xsd:string" default="elem_value"/> </xsd:sequence> <xsd:attribute name="foo" type="xsd:string" default="attr_value"/> </xsd:complexType>
XPath では、同じ名前の付いたエレメントと属性を区別できなければなりません。そのためには、一方の名前をアットマーク (@) で始めます。次の断片コードは、同じ名前の付いたエレメントと属性にアクセスする方法を示しています。
1 DataObject duplicateNames = ... 2 // 「elem_value」を表示する 3 System.out.println(duplicateNames.get("foo")); 4 // 「attr_value」を表示する 5 System.out.println(duplicateNames.get("@foo"));
この命名方式は、SDO XPath である String 値を使用するすべてのメソッドに使用してください。