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

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

Выполнение завершилось с ошибкой.

Код ошибки

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-теге.
Количество детей превышено Превышено максимально допустимое количество дочерних элементов в XML-данных.
NodeDepthExceeded Превышена максимально допустимая глубина XML-элементов в полезной нагрузке XML.
AttributeCountExceeded Превышено максимальное количество атрибутов в одном элементе.
AttributeNameExceeded Превышена максимально допустимая длина имени атрибута.
Значение атрибута превышено Превышена максимально допустимая длина значения атрибута.
Текст превышен Превышена максимально допустимая длина текста.
КомментарийПревышен Превышен максимально допустимый размер комментария.
PIDataExceeded Превышена допустимая длина данных инструкции обработки.
PItargetExceeded Превышена длина имени инструкции процесса.
NSURIПревышен Превышен лимит длины 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> .

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

Диагноз

  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-коде в строке 1 находится корневой элемент с именем company , состоящий из 7 символов. Поскольку длина элемента превышает 5 (значение, указанное для элемента <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>

Количество детей превышено

Код ошибки

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 (обратите внимание, что комментарии, включаемые элементы и другие элементы учитываются в этом лимите):

    <?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 глубина узлов равна . Поскольку глубина узлов превышает 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 содержится элемент с тремя атрибутами. Поскольку количество атрибутов превышает 2 (значение, указанное для элемента <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> на подходящее значение в соответствии с вашими требованиями.

Например, если вы считаете, что можете разрешить до 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>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 , но имя входного атрибута содержит более 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>

Значение атрибута превышено

Код ошибки

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> .

Например, если в политике XMLThreatProtection элемент <Attribute> указан как 10 , но входные данные содержат значение атрибута, превышающее 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>

Текст превышен

Код ошибки

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 символа. Поскольку значение атрибута length превышает 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>

КомментарийПревышен

Код ошибки

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> политики.

Например, если в политике XMLThreatProtection элемент <ProcessingInstructionData> указан как 10 , но входные данные содержат инструкцию обработки, содержащую более 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> политики.

Например, если в политике XMLThreatProtection элемент <ProcessingInstructionTarget> указан как 10 , но входные данные содержат целевую инструкцию обработки, содержащую более 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-данных, показанных выше во второй строке, имя целевого объекта инструкции обработки " 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>

NSURIПревышен

Код ошибки

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> политики.

Например, если в политике XMLThreatProtection элемент <NamespacePrefix> указан как 10 , но входные данные содержат префикс пространства имен, превышающий 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-данных, показанных выше во второй строке, префикс пространства имен 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-данных, показанных выше во второй строке, содержится более 3 пространств имен. Поскольку количество пространств имен превышает 3 (значение, указанное для элемента <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> на подходящее значение в соответствии с вашими требованиями.

Например, если вы считаете, что в одном элементе может быть до 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>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>

Источник недоступен

Код ошибки

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"
        }
    }
}

Причина

Эта ошибка возникает, если переменная сообщения , указанная в элементе <Source> политики XMLThreatProtection, имеет одно из следующих значений:

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

For example, this error occurs if the <Source> element in the policy is set to a variable that doesn't exist in the flow where the policy is executed.

Диагноз

  1. Identify the XMLThreatProtection policy name, and the name of the Source variable from the error message. For example, in the following error message, the XMLThreatProtection policy name is XML-Threat-Protection-1 and the Source variable is requests:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    
  2. Examine the failed XMLThreatProtection policy and check the value specified for the <Source> element identified in Step 1.

    In the following XMLThreatProtection policy example, the <Source> element is set to 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>
    

    The valid values for <Source> element are request , response , or message. Because requests is not a valid value and doesn't exist in the flow where the policy is being executed, you get the error:

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

Разрешение

Ensure that the variable set in the <Source> element of the failed XMLThreatProtection policy is set to either request , response , or message and exists in the flow where the policy executes.

To correct the example policy shown above, you could modify the <Source> element to use the request variable, because it exists in the request flow:

<?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

Error Code

steps.xmlthreatprotection.NonMessageVariable

Error response body

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

Example Error response body

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

Причина

This error occurs if the <Source> element in the XMLThreatProtection policy is set to a variable which is not of type Message .

Message type variables represent entire HTTP requests and responses. The built-in Apigee Edge flow variables request , response , and message are of type Message. To learn more about message variables, see the Variables reference .

Диагноз

  1. Identify the name of the variable that does resolve to a Message type of variable from the error message. For example, in the following error message the name of variable is message.content

    Variable message.content does not resolve to a Message
    
  2. Examine all the XMLThreadProtection policies in the API proxy where the failure occurred and identify the specific XMLThreadProtection policy where <Source> element is specified with the variable name identified in Step 1 above.

    In the following XMLThreatProtection policy example, <Source> is set to 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>
    

    Because the variable message.content is not of type Message, you get the error:

    Variable message.content does not resolve to a Message
    

Разрешение

Ensure that the <Source> element in the failed XMLThreatProtection policy is set to a Message type flow variable that exists in the flow where the policy executes.

To correct the policy, you can modify the <Source> element to specify a variable that is of type Message. For example, in the failed XMLThreatProtection you could specify the <Source> element as 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>