Массивы
Массивы
Если вы хотите поместить в одно поле больше одного элемента, вместо типа ROW воспользуйтесь типом Array. Для этого примера в таблице CONTACTINFO объявим столбец Phone как массив, а затем создадим XML-схему, которая будет преобразовывать массив в XML:
Например:
CREATE TABLE CONTACTINFO ( | |
Name | CHARACTER (30) |
Phone | CHARACTER (13) ARRAY [4] |
) ; |
Теперь воспользуемся следующей XML-схемой для преобразования этого типа:
<xsd:complexType Name='ARRAY_4.CHAR_13'>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind='ARRAY1
maxElements='4'
mappedElementType='CHAR_13'/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element Name='element'
minOccurs='0' maxOccurs='4'
nillable='true' type='CHAR_13'/>
</xsd:sequence >
</xsd:complexType>
Результат будет примерно следующим:
<Phone>
<element>(888)555-llll</element>
<element>xsi:nil='true'/>
<element>(888)555-3434</element>
</Phone>
Элемент в массиве, содержащий xsi:nil='true', говорит о том, что второй телефонный номер в исходной таблице содержит неопределенное значение.