Устранение ошибок выполнения правил XMLThreatProtection

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

ExecutionFailed

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. Reason: error_description at line line_num
        (possibly around char char_num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: Premature end of document while parsing at line 5(possibly  around char 0)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Типы ошибок и возможные причины

Правило XMLThreatProtection может вызывать ошибки ExecutionFailed разных типов. В таблице ниже перечислены различные типы ошибок и их возможные причины.

Ошибка Причина
ElementNameExceeded Превышена максимальная длина строки, допустимая в теге XML.
ChildCountExceeded Превышено максимальное количество дочерних элементов, допустимое в полезной нагрузке XML.
NodeDepthExceeded Превышена максимальная глубина вложенности XML-элементов, допустимая в XML-контенте.
AttributeCountExceeded Превышено максимальное количество атрибутов в одном элементе.
AttributeNameExceeded Превышена максимальная длина названия атрибута.
AttributeValueExceeded Превышена максимальная длина значения атрибута.
TextExceeded Превышена максимальная длина текста.
CommentExceeded Превышена максимальная длина комментария.
PIDataExceeded Превышена допустимая длина данных инструкции по обработке.
PITargetExceeded Превышена длина названия инструкции по процессу.
NSURIExceeded Превышена длина URL пространства имен.
NSPrefixExceeded Превышена длина префикса пространства имен.
NSCountExceeded Превышено количество пространств имен, используемых в одном элементе.
Недопустимая полезная нагрузка XML Недопустимая полезная нагрузка XML.

ElementNameExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

Во время выполнения трафик возвращает код ответа 500 со следующей ошибкой:

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. reason: XMLThreatProtection stepDefinition policy_name:
        Element name length exceeded num at line line_num(possibly
        around char char_num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Element name length exceeded 5 at line 1(possibly around char 9)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если входные данные, указанные в элементе <Source> правила, содержат XML-элементы, длина которых превышает максимальную длину, заданную в элементе <Element>, вложенном в элемент <NameLimits>.

Например, если элемент <Element> указан как 5 в правиле XMLThreatProtection, но входная полезная нагрузка содержит элемент, длина которого превышает пять символов, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection, номер строки и возможный номер символа в полезной нагрузке, где была превышена длина элемента.

    Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1,, номер строки в полезной нагрузке – 1, а возможный номер символа – 9..

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Element name
    length exceeded 5 at line 1(possibly around char 9)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в элементе <Element>.

    Например, в следующем правиле XMLThreatProtection для <Element> задано значение 5:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>5</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) входной полезной нагрузки и убедитесь, что длина элемента в этой строке больше значения, указанного для элемента <Element> (определенного на шаге 2). Если длина элемента превышает это значение, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <company>
      <name>Google</name>
      <country>USA</country>
    </company>
    

    В приведенной выше полезной нагрузке XML корневой элемент company находится в строке 1 и содержит 7 символов. Поскольку длина элемента больше пяти (значения, указанного для элемента <Element>), вы получите следующую ошибку:

    XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition
    XML-Threat-Protection-1: Element name length exceeded 5 at line 1(possibly around char 9)
    

Разрешение

Если правило XMLThreadProtection предназначено для защиты от полезных нагрузок с названиями элементов, превышающими заданное значение, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако если вы считаете, что в полезной нагрузке можно указать более длинные элементы без каких-либо последствий, измените значение <Element> в соответствии со своими требованиями.

Например, если вы считаете, что можете разрешить элементы длиной до 10 символов, измените правило XMLThreatProtection следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>5</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

ChildCountExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. reason: XMLThreatProtection stepDefinition policy_name:
        Children count exceeded num at line  num(possibly
        around char num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Children count exceeded 3 at line 5(possibly around char 89)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source>, содержит XML-элемент, в котором больше дочерних элементов, чем значение, указанное в элементе <ChildCount> правил.

Например, если элемент <ChildCount> имеет значение 3, но входная полезная нагрузка XML содержит элемент с более чем тремя дочерними элементами, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество записей. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 5:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children
    count exceeded 3 at line 5(possibly around char 89)"
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в элементе <ChildCount>.

    В примере правил ниже для параметра <ChildCount> задано значение 3(обратите внимание, что комментарии, элементы include и другие элементы учитываются при подсчете этого ограничения):

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) входных данных и убедитесь, что количество дочерних элементов (включая все комментарии и т. д.) в полезной нагрузке не превышает значение, указанное для элемента <ChildCount> (определенного на шаге 2). Если количество дочерних элементов превышает число дочерних элементов, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <movie>
      <title>Jurassic Park</title>
      <language>English</language>
      <country>USA</country>
      <director>Steven Spielberg</director>
    </movie>
    

    В приведенной выше полезной нагрузке XML строка 5 содержит четвертый дочерний элемент <director> корневого элемента <movie>. Поскольку количество дочерних элементов в полезной нагрузке XML превышает 3 (значение, указанное для элемента <ChildCount>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children
    count exceeded 3 at line 5(possibly around char 89)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок с количеством дочерних элементов, превышающим определенный порог, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий предпринимать не нужно.

Однако, если вы определите, что в полезную нагрузку можно без последствий включить больше дочерних элементов (в том числе комментарии и т. д.), измените значение <ChildCount>на подходящее.

Например, если вы считаете, что можно разрешить до 10 дочерних элементов, измените правило XMLThreatProtection следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>5</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">10</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NodeDepthExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Node depth exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Node depth exceeded 5 at line 6(possibly around char 110)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source>, содержит XML-документ, в котором иерархия узлов превышает число, указанное в элементе <NodeDepth> правила XMLThreatProtection.

Например, если в правиле элемент <NodeDepth> указан как 4, но глубина узла в полезной нагрузке превышает 4, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена глубина узла. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 6:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth
    exceeded 5 at line 6(possibly around char 109)
    
  2. Проверьте правило XMLThreatProtection, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в элементе <NodeDepth>.

    В следующем примере правила XMLThreatProtection для параметра <NodeDepth> задано значение 5:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) полезной нагрузки входных данных и убедитесь, что глубина узла, указанная в этой строке, больше, чем число, указанное в элементе <NodeDepth> (определенном на шаге 2). Если количество дочерних элементов XML превышает указанное значение, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <hellos>
       <hello1>
           <wave1>
                <wave2>
                    <wave3>
                        <wave4>
                           <wave5>wave</wave5>
                        </wave4>
                    </wave3>
                </wave2>
           </wave1>
       </hello1>
       <hello2>world2</hello2>
       <hello3>world3</hello3>
       <hello4>world4</hello4>
       <hello5>world5</hello5>
       <hello6>world6</hello6>
    </hellos>
    

    В XML-файле, показанном выше, на строке 6 глубина узла составляет 6.Поскольку глубина узла больше 5 (значения, указанного для элемента <NodeDepth>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth
    exceeded 5 at line 6(possibly around char 109)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок с определенным порогом глубины узла, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно использовать большую глубину узла, измените значение <NodeDepth> в соответствии со своими требованиями.

Например, если вы считаете, что можете разрешить глубину узла до 10, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeCountExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Attribute count exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute count exceeded 2 at line 3(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором количество атрибутов одного элемента превышает число, указанное в элементе <AttributeCountPerElement> правила.

Например, если элемент <AttributeCountPerElement> указан как 2 в правиле XMLThreatProtection, но входная полезная нагрузка содержит элемент с более чем двумя атрибутами, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество атрибутов. Например, в следующем сообщении об ошибке название правила – XMLThreat-Protection-1, а номер строки в полезной нагрузке – 3:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    count exceeded 2 at line 3(possibly around char 105)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в элементе <AttributeCountPerElement>.

    В примере ниже для параметра <AttributeCountPerElement> задано значение 2:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) во входных данных полезной нагрузки и убедитесь, что количество указанных атрибутов не превышает количество, заданное в элементе <AttributeCountPerElementh> (определенном на шаге 2). Если количество атрибутов превышает допустимое, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    В XML-коде, приведенном выше в строке 3, есть элемент с тремя атрибутами. Поскольку количество атрибутов больше двух (значения, указанного для элемента <AttributeCountPerElement>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    count exceeded 2 at line 3(possibly around char 105)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенное количество атрибутов, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако если вы считаете, что можно разрешить больше атрибутов, измените значение <AttributeCountPerElement> на подходящее.

Например, если вы считаете, что можете разрешить до пяти атрибутов на элемент, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeNameExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Attribute name length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute name length exceeded 5 at line 3(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором название атрибута превышает количество символов, указанное в дочернем элементе <Attribute> элемента <NameLimits> правила.

Например, если в правилах элемент <Attribute> указан как 5, но входная полезная нагрузка содержит название атрибута длиной более пяти символов, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена длина названия атрибута. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 3:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    name length exceeded 5 at line 3(possibly around char 105)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в элементе <Attribute>.

    В следующем примере правила XMLThreatProtection для параметра <Attribute> задано значение 5:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте строку, указанную на шаге 1, и убедитесь, что длина атрибута, указанного в ней, не превышает число символов, заданное в элементе <Attribute> (определенном на шаге 2). Если количество символов превышает значение атрибута, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    В полезной нагрузке XML, указанной выше в строке 3, есть два атрибута category и cuisine, длина названий которых составляет 8 и 7 символов соответственно.. Поскольку длина названия атрибута превышает 5 (значение, указанное для элемента <Attribute>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    name length exceeded 5 at line 3(possibly around char 105)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину названия атрибута, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно использовать более длинные названия атрибутов, измените значение <Attribute> в соответствии со своими требованиями.

Например, если вы считаете, что названия атрибутов могут содержать до 10 символов, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeValueExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Attribute value length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute value length exceeded 10 at line 3(possibly around char 111)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила, содержит XML-документ, в котором значение атрибута превышает количество символов, указанное в дочернем элементе <Attribute> элемента <ValueLimits>.

Например, если элемент <Attribute> указан как 10 в правиле XMLThreatProtection, но входная полезная нагрузка содержит значение атрибута длиной более 10 символов, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество атрибутов. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 3:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    value length exceeded 10 at line 3(possibly around char 111)
    
  2. Проверьте правило, которое не удалось применить (оно указано на шаге 1), и запишите значение, указанное в дочернем элементе <Attribute> элемента <ValueLimits>.

    В приведенном ниже примере правила XMLThreatProtection для параметра <Attribute> задано значение 10:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (указан на шаге 1) во входных данных полезной нагрузки и убедитесь, что длина значения атрибута, указанного в этой строке, не превышает количество символов, заданное в элементе <Attribute> (определен на шаге 2). Если количество символов превышает значение атрибута, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="South Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    В XML-коде, приведенном выше, в строке 3 есть атрибут (cuisine) со значением длиной 12 символов. Поскольку длина значения атрибута больше 10 (значение, указанное для элемента <Attribute>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    value length exceeded 10 at line 3(possibly around char 111)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину значения атрибута, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Если вы считаете, что допустимы более длинные значения атрибутов, измените дочерний элемент <Attribute> элемента <ValueLimits> на подходящее значение.

Например, если вы считаете, что можете указать значения длиной до 15 символов, измените правила следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

TextExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Text length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Text length exceeded 15 at line 4(possibly around char 66)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором длина текста элемента превышает количество символов, указанное в дочернем элементе <Text> элемента <ValueLimits> правила.

Например, если элемент <Text> указан в правилах как 15, но входная полезная нагрузка содержит текст длиной более 15 символов, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество атрибутов. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 4:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length
    exceeded 15 at line 4(possibly around char 66)
    
  2. Проверьте правило, которое не удалось применить (оно указано на шаге 1), и запишите значение, указанное в дочернем элементе <Text> элемента <ValueLimits>.

    В следующем примере правила XMLThreatProtection для параметра <Text> задано значение 15:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (указан на шаге 1) во входных данных полезной нагрузки и убедитесь, что длина значения атрибута, указанного в этой строке, не превышает количество символов, заданное в элементе <Text> (определен на шаге 2). Если количество символов превышает значение атрибута, это и является причиной ошибки.

    <food>
      <name>Veg Sandwich</name>
      <price>$5.95</price>
      <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description>
      <calories>650</calories>
    </food>
    

    В XML-коде, приведенном выше, в строке 4 содержится текст длиной 53 символа. Поскольку длина значения атрибута больше 15 (значение, указанное для элемента <Text>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length
    exceeded 15 at line 4(possibly around char 66)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину текста, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно разрешить более длинный текст, измените значение дочернего элемента <Text> элемента <ValueLimits> на подходящее.

Например, если вы считаете, что значения атрибутов могут содержать до 60 символов, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>60</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

CommentExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Comment length exceeded [num] at line [num](possibly around char
        [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Comment length exceeded 10 at line 2(possibly around char 48)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором длина комментария превышает количество символов, указанное в дочернем элементе <Comment> элемента <ValueLimits> правила.

Например, если в правилах элемент <Comment> указан как 10, но в полезной нагрузке есть комментарий длиной более 10 символов, то будет сгенерирована эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена длина комментария. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 2:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length exceeded 10 at line 2(possibly around char 48)
    
  2. Проверьте правило, которое не удалось применить (оно указано на шаге 1), и запишите значение, указанное в дочернем элементе <Comment> элемента <ValueLimits>.

    В следующем примере правила XMLThreatProtection для параметра <Comment> задано значение 10:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (указан на шаге 1) входных данных и убедитесь, что длина комментария, указанного в этой строке, не превышает число символов, заданное в элементе <Comment> (указан на шаге 2). Если количество символов превышает значение атрибута, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <food>
      <!--This is somewhat a long comment-->
      <name>Veg Sandwich</name>
      <price>$5.95</price>
      <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description>
      <calories>650</calories>
    </food>
    

    В полезной нагрузке XML, показанной выше в строке 2, есть комментарий длиной 31 символ.. Поскольку длина комментария превышает 10 (значение, указанное для элемента <Comment>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length
    exceeded 10 at line 2(possibly around char 48)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину комментария, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако если вы считаете, что комментарий может быть длиннее, измените дочерний элемент <Comment> элемента <ValueLimits> на подходящее значение.

Например, если вы считаете, что можете указывать значения длиной до 40 символов, измените правила следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>40</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

PIDataExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Processing Instruction data length exceeded [num] at line
        [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Processing Instruction data length exceeded 30 at line 2(possibly around char 109)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором инструкция по обработке данных превышает количество символов, указанное в дочернем элементе <ProcessingInstructionData> элемента <ValueLimits> правила.

Например, если элемент <ProcessingInstructionData> указан как 10 в правиле XMLThreatProtection, но входная полезная нагрузка содержит инструкцию по обработке с более чем 10 символами, то возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена длина инструкции по обработке. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 2:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction data length exceeded 30 at line 2(possibly around char 109)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в дочернем элементе <ProcessingInstructionData> элемента <ValueLimits> .

    В следующем примере правила XMLThreatProtection для параметра <ProcessingInstructionData> задано значение 30:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте конкретный номер строки (указанный на шаге 1) входных данных полезной нагрузки и убедитесь, что длина данных инструкции по обработке, указанная там, имеет больше символов, чем число, указанное в элементе <ProcessingInstructionData> (определенном на шаге 2). Если количество символов превышает данные инструкции по обработке, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?>
    <mobilephones>
      <mobilephone>
          <name>iPhone</name>
          <price>$600</price>
      </mobilephone>
      <mobilephone>
          <name>Samsung</name>
          <price>$500</price>
      </mobilephone>
    </mobilephones>
    

    В полезной нагрузке XML, показанной выше в строке 1, есть элемент данных инструкции по обработке (type="text/xsl" href="mobilephones.xsl"?)длиной 40 символов.). Поскольку эта длина больше 30 (значения, указанного для элемента <ProcessingInstructionData>), вы получаете следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction data length exceeded 30 at line 2(possibly around char 109)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину данных инструкции по обработке, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно разрешить более длинные элементы данных инструкции по обработке, измените дочерний элемент <ProcessingInstructionData> элемента <ValueLimits> на подходящее значение в соответствии с вашими требованиями.

Например, если вы считаете, что длина инструкций по обработке данных может достигать 50 символов, измените правила следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>40</Comment>
        <ProcessingInstructionData>50</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

PITargetExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Processing Instruction target length exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Processing Instruction target length exceeded 10 at line 2(possibly around char 114)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором целевой объект инструкции по обработке превышает количество символов, указанное в дочернем элементе <ProcessingInstructionTarget> элемента <NameLimits> правила.

Например, если элемент <ProcessingInstructionTarget> указан как 10 в правиле XMLThreatProtection, но входная полезная нагрузка содержит целевую инструкцию обработки с более чем 10 символами, то возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество целевых инструкций по обработке. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 1:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction target length exceeded 10 at line 2(possibly around char 114)
    
  2. Проверьте невыполненное правило XMLThreatProtection (определенное на шаге 1) и запишите значение, указанное в дочернем элементе <ProcessingInstructionTarget> элемента <NameLimits>.

    В следующем примере правила XMLThreatProtection для параметра <ProcessingInstructionTarget> задано значение 10:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте указанную в шаге 1 строку полезной нагрузки входных данных и убедитесь, что длина цели инструкции по обработке, указанной в ней, превышает количество символов, заданное в элементе <ProcessingInstructionTarget> (определенном в шаге 2). Если количество символов превышает целевой лимит, это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?>
    <mobilephones>
      <mobilephone>
          <name>iPhone</name>
          <price>$600</price>
      </mobilephone>
      <mobilephone>
          <name>Samsung</name>
          <price>$500</price>
      </mobilephone>
    </mobilephones>
    

    В полезной нагрузке XML, показанной выше в строке 2, целевое название инструкции по обработке "xml-stylesheet"состоит из 14 символов. Поскольку целевое имя инструкции по обработке длиннее 10 символов (значение, указанное для элемента <ProcessingInstructionTarget>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction target length exceeded 10 at line 2(possibly around char 114)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную целевую длину инструкции процесса, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако если вы считаете, что целевой элемент инструкции по обработке может быть длиннее, измените дочерний элемент <ProcessingInstructionTarget> элемента <NameLimits> на подходящее значение в соответствии со своими требованиями.

Например, если вы считаете, что целевые значения инструкций по обработке могут содержать до 25 символов, измените правило следующим образом:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>15</NamespacePrefix>
    <ProcessingInstructionTarget>25</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
  </XMLThreatProtection>

NSURIExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Namespace uri length length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Namespace uri length exceeded 10 at line 2(possibly around char 97)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором URI пространства имен превышает количество символов, указанное в дочернем элементе <NamespaceURI> элемента <ValueLimits> правила.

Например, если элемент <NamespaceURI> указан в правиле как 10, но входная полезная нагрузка содержит URI пространства имен длиной более 10 символов, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена длина URI пространства имен. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 2:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    uri length exceeded 10 at line 2(possibly around char 97)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в дочернем элементе <NamespaceURI> элемента <ValueLimits.

    В следующем примере правила XMLThreatProtection для параметра <NamespaceURI> задано значение 10:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте указанный на шаге 1 номер строки входных данных полезной нагрузки и убедитесь, что длина URI пространства имен, указанного в этой строке, не превышает количество символов, заданное в элементе <NamespaceURI> (определенном на шаге 2). Если количество символов превышает длину URI пространства имен, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version = "1.0" encoding = "UTF-8"?>
      <profile:user xmlns:profile = "www.google.com/profile">
      <profile:name>Rama Krishna</profile:name>
      <profile:company>Google</profile:company>
      <profile:phone>(91) 9876543210</profile:phone>
    </profile:user>
    

    В полезной нагрузке XML, указанной выше в строке 2, есть URI пространства имен www.google.com/profile длиной 22 символа. Поскольку длина URI пространства имен больше 10 (значения, указанного для элемента <NamespaceURI>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    uri length exceeded 10 at line 2(possibly around char 99)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, которые превышают определенную длину URI пространства имен, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно использовать более длинный URI пространства имен, измените дочерний элемент <NamespaceURI> элемента <ValueLimits> на подходящее значение в соответствии с вашими требованиями.

Например, если вы считаете, что длина URI пространства имен может составлять до 30 символов, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>30</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NSPrefixExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Namespace prefix length exceeded [num] at line [num](possibly
        around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Namespace prefix length exceeded 10 at line 2(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source>, содержит XML-документ, в котором префикс пространства имен превышает количество символов, указанное в дочернем элементе <NamespacePrefix> элемента <NameLimits> правила.

Например, если элемент <NamespacePrefix> указан как 10 в правиле XMLThreatProtection, но входная полезная нагрузка имеет префикс пространства имен длиной более 10 символов, то возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышена длина префикса URI пространства имен. Например, в следующем сообщении об ошибке название правила – XML-Threat-Protection-1, а номер строки в полезной нагрузке – 2:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    prefix length exceeded 10 at line 2(possibly around char 105)
    
  2. Изучите правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в дочернем элементе <NamespacePrefix> элемента <NameLimits>.

    В следующем примере правила XMLThreatProtection для параметра <NamespacePrefix> задано значение 10:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) входной полезной нагрузки и убедитесь, что длина префикса пространства имен, указанного в ней, не превышает количество символов, заданное в элементе <NamespacePrefix> (определенном на шаге 2). Если количество символов превышает лимит для префикса пространства имен, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version = "1.0" encoding = "UTF-8"?>
    <userprofile:user xmlns:userprofile = "www.googlecom/profile">
      <userprofile:name>Rama Krishna</userprofile:name>
      <userprofile:company>Google</userprofile:company>
      <userprofile:phone>(011) 123-4567</userprofile:phone>
    </userprofile:user>
    

    В полезной нагрузке XML, показанной выше в строке 2, префикс пространства имен userprofile имеет длину 11 символов. Поскольку длина префикса URI пространства имен больше 10 (значения, указанного для элемента <NamespacePrefix>), вы получите следующую ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    prefix length exceeded 10 at line 2(possibly around char 105)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенную длину префикса URI пространства имен, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако, если вы считаете, что можно использовать более длинный префикс URI пространства имен, измените дочерний элемент <NamespacePrefix> элемента <NameLimits> на подходящее значение.

Например, если вы считаете, что префиксы URI пространства имен могут содержать до 15 символов, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>15</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NSCountExceeded

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Namespace count exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count exceeded 3 at line 2(possibly around char 234)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLThreatProtection, содержит XML-документ, в котором количество пространств имен, используемых в одном элементе, превышает число, указанное в дочернем элементе <NamespaceCountPerElement> элемента <StructureLimits> правила.

Например, если элемент <NamespaceCountPerElement> указан в правилах как 3, но входная полезная нагрузка содержит элемент с более чем тремя пространствами имен, возникает эта ошибка.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила XMLThreatProtection и номер строки, в которой превышено количество пространств имен. Например, в следующем сообщении об ошибке название правила – XMLThreat-Protection-1, а номер строки в полезной нагрузке – 2:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count
    exceeded 3 at line 2(possibly around char 234)
    
  2. Проверьте правило, которое не удалось применить (оно было определено на шаге 1), и запишите значение, указанное в дочернем элементе <NamespaceCountPerElement> элемента <StructureLimits.

    В следующем примере правила XMLThreatProtection для параметра <NamespaceCountPerElement> задано значение 3:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Проверьте номер строки (определенный на шаге 1) входной полезной нагрузки и убедитесь, что количество пространств имен, указанных для одного элемента, не превышает количество, указанное в элементе <NamespaceCountPerElement> (определенном на шаге 2). Если количество пространств имен превышает лимит на количество пространств имен на элемент, то это и является причиной ошибки.

    Вот пример входной полезной нагрузки:

    <?xml version = "1.0" encoding = "UTF-8"?>
    <hellos xmlns:h="https://www.w3schools.com/greeting1" xmlns:a="https://www.w3schools.com/greeting2" xmlns:b="https://www.w3schols.com/greeting3" xmlns:c="https://www.w3schools.com/greeting4">
        <a:hello1>world1</a:hello1>
        <b:hello2>world2</b:hello2>
        <c:hello2>world2</c:hello2>
        <h:hello2>world2</h:hello2>
    </hellos>
    

    В полезной нагрузке XML, показанной выше в строке 2, больше трех пространств имен. Поскольку количество пространств имен больше трех (значения, указанного для элемента <NamespaceCountPerElement>), возникает следующая ошибка:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    count exceeded 3 at line 2(possibly around char 234)
    

Разрешение

Если правило XMLThreatProtection предназначено для защиты от полезных нагрузок, превышающих определенное количество пространств имен в одном элементе, то сообщение об ошибке ожидаемо. В этом случае никаких дополнительных действий не требуется.

Однако если вы считаете, что можно разрешить больше пространств имен, измените дочерний элемент <NamespaceCountPerElement> элемента <StructureLimits> на подходящее значение.

Например, если вы считаете, что в одном элементе может быть до пяти пространств имен, измените правило следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>5</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

InvalidXMLPayload

Код ошибки

steps.xmlthreatprotection.ExecutionFailed

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. Reason: [error_description]",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: Syntax error while parsing XML prologue",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Причина

Эта ошибка возникает, если полезная нагрузка входного сообщения, указанная элементом <Source> правила XMLProtectionPolicy, не является действительным XML-документом.

диагностика;

  1. Изучите сообщение об ошибке, чтобы определить название правила, в котором произошла ошибка. В примере ниже название правила – XML-Threat-Protection-1.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    
  2. Проверьте входные данные и убедитесь, что переданный XML-документ корректно отформатирован.

    Вот пример входной полезной нагрузки:

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking">
        <title lang="en">Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    <bookstore>
    

    В приведенном выше XML-файле в строке 9 корневой элемент закрыт неправильно, поскольку отсутствует символ /. Поскольку это некорректный XML-код, вы получите ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    

Разрешение

Убедитесь, что в любой прокси-сервер API, включающий правило XMLThreatProtection, передается действительная полезная нагрузка XML.

Чтобы исправить описанную выше ошибку, измените входные данные XML следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Easy Indian Cooking
    <author>Suneeta</author>
    <year>2004</year>
    <price>300.00</price>
  </book>
</bookstore>

SourceUnavailable

Код ошибки

steps.xmlthreatprotection.SourceUnavailable

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition[policy_name]: Source[var_name] is not available"
        "detail": {
            "errorcode": "steps.xmlthreatprotection.SourceUnavailable"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Source requests is not available",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.SourceUnavailable"
        }
    }
}

Причина

Эта ошибка возникает, если переменная message, указанная в элементе <Source> правила XMLThreatProtection, является:

  • Вне области действия (недоступно в определенном процессе, в котором выполняется правило).
  • Не является одним из допустимых значений: request, response или message.

Например, эта ошибка возникает, если элемент <Source> в правиле задан как переменная, которая не существует в потоке, где выполняется правило.

диагностика;

  1. Определите название правила XMLThreatProtection и название исходной переменной из сообщения об ошибке. Например, в приведенном ниже сообщении об ошибке название правила XMLThreatProtection – XML-Threat-Protection-1, а переменная Source – requests:.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    
  2. Проверьте правила XMLThreatProtection и значение элемента <Source>, указанного на шаге 1.

    В приведенном ниже примере политики XMLThreatProtection элемент <Source> имеет значение requests.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>requests</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    

    Допустимые значения элемента <Source> – request, response или message.. Поскольку requests не является допустимым значением и не существует в потоке, в котором выполняется правило, вы получаете ошибку:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    

Разрешение

Убедитесь, что переменная, заданная в элементе <Source> правила XMLThreatProtection, которое не удалось выполнить, имеет значение request, response или message и существует в потоке, в котором выполняется правило.

Чтобы исправить приведенный выше пример правил, можно изменить элемент <Source>, чтобы использовать переменную request , поскольку она существует в потоке запросов:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NonMessageVariable

Код ошибки

steps.xmlthreatprotection.NonMessageVariable

Тело ответа с ошибкой

{
    "fault": {
        "faultstring": "Variable var_name does not resolve to a Message"
        "detail": {
            "errorcode": "steps.xmlthreatprotection.NonMessageVariable"
        }
    }
}

Пример тела ответа с ошибкой

{
    "fault": {
        "faultstring": "Variable message.content does not resolve to a Message",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.NonMessageVariable"
        }
    }
}

Причина

Эта ошибка возникает, если для элемента <Source> в правиле XMLThreatProtection задана переменная, которая не относится к типу Message.

Переменные типа сообщения представляют собой полные HTTP-запросы и ответы. Встроенные переменные потока Apigee Edge request, response и message имеют тип Message. Подробнее о переменных в сообщениях…

диагностика;

  1. Определите название переменной, которая не преобразуется в переменную типа Message, по сообщению об ошибке. Например, в следующем сообщении об ошибке имя переменной – message.content.

    Variable message.content does not resolve to a Message
    
  2. Проверьте все правила XMLThreadProtection в прокси-сервере API, в котором произошла ошибка, и найдите правило XMLThreadProtection, в котором элемент <Source> указан с именем переменной, определенным на шаге 1.

    В следующем примере правила XMLThreatProtection для параметра <Source> задано значение message.content:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>message.content</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    

    Поскольку переменная message.content не относится к типу Message, вы получите ошибку:

    Variable message.content does not resolve to a Message
    

Разрешение

Убедитесь, что элемент <Source> в невыполненном правиле XMLThreatProtection задан как переменная потока типа Message, которая существует в потоке, где выполняется правило.

Чтобы исправить правила, измените элемент <Source> и укажите переменную типа Message. Например, в элементе XMLThreatProtection, который не удалось выполнить, можно указать элемент <Source> как message:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>message</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>