Пропуск начальных значений в XML-файле
Ещё один необязательный параметр, который может увеличить производительность, это omit-initial-values. AVM исключает из XML-документа поля временной таблицы, содержащие заданное начальное значение, при установке этому параметру значения TRUE. Это может значительно уменьшить размер XML-документа.
Приложения OpenEdge могут правильно интерпретировать пропущенные значения. Однако, если ваше приложение отправляет XML-документ в приложение, отличное от OpenEdge, вы должны убедиться, что приложение-получатель может правильно интерпретировать пропущенные значения, прежде чем использовать эту опцию в производственной среде.
В качестве примера рассмотрим временную таблицу ttOrderLine:
DEFINE TEMP-TABLE ttOrderLine NO-UNDO BEFORE-TABLE ttOrderLineBefore FIELD OrderNum AS INTEGER FIELD LineNum AS INTEGER FIELD ItemNUm AS INTEGER FIELD Price AS DECIMAL FIELD Qty AS INTEGER FIELD Discount AS INTEGER FIELD ExtendedPrice AS DECIMAL INDEX OrderNum_LineNum IS UNIQUE PRIMARY OrderNum, LineNum.
Если ваше приложение определяет начальное значение 10 для поля Discount, то приложение, которое знает об этом начальном значении, должно знать только, когда значение Discount не равно 10. Так, выполнив WRITE-XML метод со значением TRUE для параметра omit-initial-values мы получим следующий XML. Обратите внимание, что элемент Discount не отображается для первой записи OrderLine, но отображается для второй.
<ttOrder> <OrderNum>21</OrderNum> <OrderDate>1998-02-08</OrderDate> <SchipDate>1998-02-13</SchipDate> <PromiseDate>1998-02-13</PromiseDate> <OrderTotal>0.0</OrderTotal> <ttOrderLine> <LineNum>1</LineNum> <ItemNum>43</ItemNum> <Price>13.97</Price> <Qty>49</Qty> <ExtendedPrice>616.08</ExtendedPrice> </ttOrderLine> <ttOrderLine> <LineNum>2</LineNum> <ItemNum>9</ItemNum> <Price>18.0</Price> <Qty>13</Qty> <Discount>6</Discount> <ExtendedPrice>236.88</ExtendedPrice> </ttOrderLine> </ttOrder>