Rozwiązywanie problemów z błędami w czasie działania zasad XMLThreatProtection

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

ExecutionFailed

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Typy błędów i ich możliwe przyczyny

Zasada XMLThreatProtection może zgłaszać wiele różnych typów błędów ExecutionFailed. Tabela poniżej zawiera opis różnych typów błędów i ich możliwych przyczyn:

Błąd Przyczyna
ElementNameExceeded Przekroczono maksymalną długość ciągu znaków w tagu XML.
ChildCountExceeded Przekroczona została maksymalna dozwolona liczba elementów podrzędnych w ładunku XML.
NodeDepthExceeded Przekroczono maksymalną głębokość elementów XML w ładunku XML.
AttributeCountExceeded Przekroczono maksymalną liczbę atrybutów w jednym elemencie.
AttributeNameExceeded Przekroczono maksymalną długość nazwy atrybutu.
AttributeValueExceeded Przekroczono maksymalną długość wartości atrybutu.
TextExceeded Przekroczono maksymalną długość tekstu.
CommentExceeded Przekroczono maksymalną długość komentarza.
PIDataExceeded Przekroczono dozwoloną długość danych instrukcji przetwarzania.
PITargetExceeded Przekroczono długość nazwy w instrukcji procesu.
NSURIExceeded Przekroczono długość adresu URL przestrzeni nazw.
NSPrefixExceeded Przekroczono długość prefiksu przestrzeni nazw.
NSCountExceeded Liczba przestrzeni nazw używanych w jednym elemencie została przekroczona.
Nieprawidłowy ładunek XML Wejściowy ładunek XML jest nieprawidłowy.

ElementNameExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

Ruch środowiska wykonawczego zwraca kod odpowiedzi 500 z tym błędem:

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek wejściowy określony przez element <Source> zasady zawiera elementy XML, które przekraczają maksymalną długość podaną w elemencie <Element> pod elementem <NameLimits>.

Jeśli na przykład element <Element> jest określony jako 5 w zasadzie XMLThreatProtection, ale ładunek wejściowy zawiera element, który ma więcej niż 5 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection, numer wiersza i możliwy numer znaku w ładunku wejściowym, w którym przekroczono długość elementu.

    Na przykład w poniższym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1,numer wiersza w ładunku to 1, a możliwy numer znaku to „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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie <Element>.

    Na przykład w następującej zasadzie XMLThreatProtection <Element> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość elementu w tym wierszu jest większa niż wartość określona dla elementu <Element> (określona w kroku 2). Jeśli długość elementu przekracza tę wartość, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Przedstawiony powyżej ładunek XML zawiera element główny o nazwie company w wierszu 1, który ma 7 znaków. Długość elementu przekracza 5 (czyli wartość określona dla elementu <Element>), więc pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreadProtection ma na celu ochronę przed ładunkami z nazwami elementów, które przekraczają zdefiniowaną wartość, pojawia się komunikat o błędzie. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że w ładunku można bez żadnych konsekwencji określić dłuższe elementy, zmodyfikuj atrybut <Element> do odpowiedniej wartości na podstawie własnych wymagań.

Jeśli na przykład uważasz, że dozwolone są elementy o długości do 10 elementów, zmodyfikuj zasadę XMLThreatProtection w ten sposób:

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

ChildCountExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zawiera element XML zawierający więcej elementów podrzędnych niż wartość określona w elemencie <ChildCount> zasady.

Jeśli np. element <ChildCount> ma wartość 3, ale wejściowy ładunek XML zawiera element zawierający więcej niż 3 elementy podrzędne, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę wpisów. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie <ChildCount>.

    W poniższym przykładzie zasady <ChildCount> ma wartość 3(pamiętaj, że do tego limitu wliczają się komentarze, elementy itd.):

    <?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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy liczba elementów podrzędnych (w tym wszystkich komentarzy itp.) w ładunku jest większa niż wartość określona dla elementu <ChildCount> (określona w kroku 2). Jeśli liczba elementów podrzędnych przekracza liczbę elementów podrzędnych, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    W pokazanym powyżej ładunku XML wiersz 5 zawiera czwarty element podrzędny <director>elementu głównego <movie>. Ponieważ liczba elementów podrzędnych w wejściowym ładunku XML jest większa niż 3 (wartość określona dla elementu <ChildCount>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami z elementami podrzędnymi, które przekraczają określony próg, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że bez żadnych konsekwencji można uwzględnić w ładunku większą liczbę elementów podrzędnych (w tym komentarzy itp.), zmień <ChildCount> na odpowiednią wartość zgodnie ze swoimi wymaganiami.

Jeśli na przykład uważasz, że możesz zezwolić na maksymalnie 10 elementów podrzędnych, zmodyfikuj zasadę XMLThreatProtection w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zawiera dokument XML, w którym hierarchia węzłów przekracza liczbę określoną w elemencie <NodeDepth> w zasadzie XMLThreatProtection.

Jeśli na przykład element <NodeDepth> jest określony w zasadzie jako 4, ale głębokość węzła w ładunku wejściowym przekracza 4, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona jest głębokość węzła. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudaną zasadę XMLThreatProtection (określoną w kroku 1) i zanotuj wartość określoną w elemencie <NodeDepth>.

    W poniższym przykładzie zasady XMLThreatProtection <NodeDepth> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy określona w nim głębokość węzła jest większa niż liczba określona w elemencie <NodeDepth> (określona w kroku 2). Jeśli liczba elementów podrzędnych XML przekracza liczbę, to właśnie jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny powyżej w wierszu 6 ma głębokość węzła równą 6.Ponieważ głębokość węzła jest większa niż 5 (wartość określona dla elementu <NodeDepth>), pojawia się następujący błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami z określonym progiem głębokości węzła, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można zezwolić na większą głębokość węzłów, zmień <NodeDepth> na odpowiednią wartość odpowiednio do swoich wymagań.

Jeśli na przykład uważasz, że możesz zezwolić na głębokość węzłów wynoszącą do 10, zmodyfikuj zasadę w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym liczba atrybutów pojedynczego elementu przekracza liczbę określoną w elemencie <AttributeCountPerElement> zasady.

Jeśli na przykład element <AttributeCountPerElement> jest określony jako 2 w zasadzieXMLThreatProtection, ale ładunek wejściowy zawiera element z więcej niż 2 atrybutami, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to XMLThreat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie <AttributeCountPerElement>.

    W tym przykładzie zasady <AttributeCountPerElement> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy liczba określonych atrybutów przekracza liczbę podaną w elemencie <AttributeCountPerElementh> (określonym w kroku 2). Jeśli liczba atrybutów przekracza liczbę, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny w wierszu 3 powyżej zawiera element z 3 atrybutami. Ponieważ liczba atrybutów jest większa niż 2 (wartość określona dla elementu <AttributeCountPerElement>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami, które przekraczają określoną liczbę atrybutów, pojawia się komunikat o błędzie. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że dozwolona jest większa liczba atrybutów, zmień <AttributeCountPerElement> na odpowiednią wartość na podstawie swoich wymagań.

Jeśli na przykład uważasz, że w jednym elemencie można dodać maksymalnie 5 atrybutów, zmień zasadę w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym nazwa atrybutu przekracza liczbę znaków określoną w elemencie podrzędnym <Attribute> elementu <NameLimits> zasady.

Jeśli na przykład element <Attribute> jest określony w zasadzie jako 5, ale ładunek wejściowy ma nazwę atrybutu o długości większej niż 5 znaków, zgłaszany jest ten błąd.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona jest długość nazwy atrybutu. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie <Attribute>.

    W poniższym przykładzie zasady XMLThreatProtection <Attribute> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość podanego atrybutu ma więcej znaków niż liczba określona w elemencie <Attribute> (określona w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny w wierszu 3 ma 2 atrybuty category i cuisine o długości odpowiednio 8 i 7 znaków.. Ponieważ długość nazwy atrybutu jest większa niż 5 (wartość podana dla elementu <Attribute>), pojawia się następujący błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną długość nazwy atrybutu, wówczas komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że może być dozwolona większa długość nazwy atrybutu, zmień <Attribute> na odpowiednią wartość na podstawie swoich wymagań.

Jeśli na przykład uważasz, że możesz mieć nazwy atrybutów o długości do 10 znaków, zmień zasadę w ten sposób:

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

AttributeValueExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli dane wejściowe komunikatu określonego przez element <Source> zasady zawierają dokument XML, w którym wartość atrybutu przekracza liczbę znaków określoną w elemencie podrzędnym <Attribute> elementu <ValueLimits>.

Jeśli na przykład element <Attribute> jest określony jako 10 w zasadzie XMLThreatProtection, ale ładunek wejściowy ma wartość atrybutu o długości większej niż 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <Attribute> elementu <ValueLimits>.

    W tym przykładzie zasady XMLThreatProtection <Attribute> ma wartość 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. Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość podanej wartości atrybutu zawiera więcej znaków niż liczba określona w elemencie <Attribute> (określona w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny w wierszu 3 ma atrybut (kuchnia) o wartości 12 znaków. Ponieważ długość wartości atrybutu przekracza 10 (wartość określona dla elementu <Attribute>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami, które przekraczają określoną długość wartości atrybutu, pojawia się komunikat o błędzie. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można zezwolić na dłuższe wartości atrybutów, zmodyfikuj <Attribute>element podrzędny elementu <ValueLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli np. uważasz, że możesz przypisywać wartości o długości do 15 znaków, zmień zasadę w ten sposób:

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

TextExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym długość tekstu elementu przekracza liczbę znaków określoną w elemencie podrzędnym <Text> elementu <ValueLimits> zasady.

Jeśli na przykład element <Text> jest określony w zasadzie jako 15, ale ładunek wejściowy zawiera tekst dłuższy niż 15 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono liczbę atrybutów. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <Text> elementu <ValueLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <Text> ma wartość 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. Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość podanej wartości atrybutu zawiera więcej znaków niż liczba określona w elemencie <Text> (określona w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, to jest przyczyną błędu.

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

    Ładunek XML widoczny powyżej w wierszu 4 zawiera tekst o długości 53 znaków. Ponieważ długość wartości atrybutu jest większa niż 15 (wartość określona dla elementu <Text>), wystąpi ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną długość tekstu, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można używać większych długości tekstu, zmodyfikuj <Text>element podrzędny elementu <ValueLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że wartości atrybutów mogą zawierać do 60 znaków, zmień zasadę w ten sposób:

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

CommentExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli dane wejściowe komunikatu wejściowego określone przez element <Source> zasady XMLThreatProtection zawierają dokument XML, w którym długość komentarza przekracza liczbę znaków określoną w elemencie podrzędnym <Comment> elementu <ValueLimits> zasady.

Jeśli na przykład element <Comment> jest określony w zasadzie jako 10, ale ładunek wejściowy zawiera komentarz dłuższy niż 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono długość komentarza. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <Comment> elementu <ValueLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <Comment> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy podany w nim komentarz zawiera więcej znaków niż liczba określona w elemencie <Comment> (określona w kroku 2). Jeśli liczba znaków przekracza wartość atrybutu, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny powyżej w wierszu 2 zawiera komentarz o wartości 31 znaków. Ponieważ długość komentarza przekracza 10 (wartość podana dla elementu <Comment>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną długość komentarza, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można użyć dłuższego komentarza, zmień <Comment>element podrzędny elementu <ValueLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli np. uważasz, że możesz przypisywać wartości o długości do 40 znaków, zmień zasadę w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym liczba znaków w instrukcji przetwarzania danych przekracza liczbę znaków określoną w <ProcessingInstructionData> elemencie podrzędnym <ValueLimits>zasady.

Jeśli na przykład element <ProcessingInstructionData> jest określony jako 10 w zasadzie XMLThreatProtection, ale ładunek wejściowy zawiera instrukcję przetwarzania o długości przekraczającej 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona została długość instrukcji przetwarzania. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <ProcessingInstructionData> elementu <ValueLimits> .

    W poniższym przykładzie zasady XMLThreatProtection <ProcessingInstructionData> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość danych instrukcji przetwarzania określona w tym kroku ma więcej znaków niż liczba określona w elemencie <ProcessingInstructionData> (określona w kroku 2). Jeśli liczba znaków przekracza limit danych w instrukcji przetwarzania, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny w wierszu 1 zawiera element danych instrukcji przetwarzania (type="text/xsl" href="mobilephones.xsl"?)o długości 40 znaków.), ponieważ ta długość jest większa niż 30 (wartość podana dla elementu <ProcessingInstructionData>), pojawia się następujący błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami, które przekraczają określoną długość danych instrukcji przetwarzania, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można zezwolić na dłuższe przetwarzanie elementów danych w instrukcjach, zmodyfikuj element podrzędny <ProcessingInstructionData> elementu <ValueLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że instrukcje przetwarzania danych mogą mieć maksymalnie 50 znaków, zmień tę zasadę w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym wartość docelowa instrukcji procesu przekracza liczbę znaków określoną w <ProcessingInstructionTarget> elemencie podrzędnym <NameLimits>elementu zasady.

Jeśli na przykład element <ProcessingInstructionTarget> jest określony jako 10 w zasadzie XMLThreatProtection, ale ładunek wejściowy ma miejsce docelowe instrukcji procesu mającej więcej niż 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczono docelową liczbę instrukcji przetwarzania. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudaną zasadę XMLThreatProtection (określoną w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <ProcessingInstructionTarget> elementu <NameLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <ProcessingInstructionTarget> ma wartość 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. Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość celu instrukcji przetwarzania określona w tym celu zawiera więcej znaków niż liczba określona w elemencie <ProcessingInstructionTarget> (określona w kroku 2). Jeśli liczba znaków przekracza limit rozmiaru docelowego, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny powyżej w wierszu 2 ma nazwę celu instrukcji przetwarzania „xml-stylesheet"” o długości 14 znaków. Nazwa celu w instrukcji przetwarzania jest dłuższa niż 10 (wartość określona dla elementu <ProcessingInstructionTarget>), dlatego pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną długość docelową instrukcji procesu, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że cel instrukcji procesu może być dłuższy, zmodyfikuj <ProcessingInstructionTarget>element podrzędny elementu <NameLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że elementy docelowe instrukcji przetwarzania mogą zawierać do 25 znaków, zmodyfikuj tę zasadę w ten sposób:

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

NSURIExceeded

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym identyfikator URI przestrzeni nazw przekracza liczbę znaków określoną w elemencie podrzędnym <NamespaceURI> w elemencie <ValueLimits> zasady.

Jeśli na przykład element <NamespaceURI> jest określony w zasadzie jako 10, ale ładunek wejściowy ma identyfikator URI przestrzeni nazw zawierający ponad 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona została długość identyfikatora URI przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <NamespaceURI> elementu <ValueLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <NamespaceURI> ma wartość 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. Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość identyfikatora URI określonego w przestrzeni nazw zawiera więcej znaków niż liczba określona w elemencie <NamespaceURI> (określona w kroku 2). Jeśli liczba znaków przekracza długość identyfikatora URI przestrzeni nazw, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny w wierszu 2 zawiera identyfikator URI przestrzeni nazw www.google.com/profile o długości 22 znaków. Ponieważ długość identyfikatora URI przestrzeni nazw przekracza 10 (wartość określona dla elementu <NamespaceURI>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną długość identyfikatora URI przestrzeni nazw, wyświetlany jest komunikat o błędzie. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można stosować dłuższy identyfikator URI przestrzeni nazw, zmodyfikuj element podrzędny <NamespaceURI> elementu <ValueLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że identyfikator URI przestrzeni nazw może mieć maksymalnie 30 znaków, zmień zasadę w następujący sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli dane wejściowe komunikatu określonego przez element <Source> zawierają dokument XML, w którym prefiks przestrzeni nazw przekracza liczbę znaków określoną w elemencie podrzędnym <NamespacePrefix> elementu <NameLimits> zasady.

Jeśli na przykład element <NamespacePrefix> jest określony jako 10 w zasadzie XMLThreatProtection, ale ładunek wejściowy ma prefiks przestrzeni nazw zawierający ponad 10 znaków, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona została długość prefiksu identyfikatora URI przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to XML-Threat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <NamespacePrefix> elementu <NameLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <NamespacePrefix> ma wartość 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. Sprawdź konkretny numer wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy długość podanego prefiksu przestrzeni nazw zawiera więcej znaków niż liczba określona w elemencie <NamespacePrefix> (określona w kroku 2). Jeśli liczba znaków przekracza limit prefiksu przestrzeni nazw, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny powyżej w wierszu 2 ma prefiks przestrzeni nazw userprofile o długości 11 znaków. Ponieważ długość prefiksu identyfikatora URI przestrzeni nazw przekracza 10 (wartość określona dla elementu <NamespacePrefix>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami o większej długości prefiksu identyfikatora URI przestrzeni nazw, wyświetlany jest komunikat o błędzie. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można stosować dłuższy prefiks identyfikatora URI przestrzeni nazw, zmień element podrzędny <NamespacePrefix> elementu <NameLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że prefiks identyfikatora URI przestrzeni nazw może mieć maksymalnie 15 znaków, zmień zasadę w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek komunikatu wejściowego określony przez element <Source> zasady XMLThreatProtection zawiera dokument XML, w którym liczba przestrzeni nazw używanych w pojedynczym elemencie przekracza liczbę określoną w <NamespaceCountPerElement> elemencie podrzędnym <StructureLimits>elementu zasady.

Jeśli na przykład element <NamespaceCountPerElement> jest określony w zasadzie jako 3, ale ładunek wejściowy zawiera element o więcej niż 3 przestrzeni nazw, ten błąd jest zgłaszany.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady XMLThreatProtection i numer wiersza, w którym przekroczona jest liczba przestrzeni nazw. Na przykład w tym komunikacie o błędzie nazwa zasady to XMLThreat-Protection-1, a numer wiersza w ładunku to 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. Sprawdź nieudane zasady (określone w kroku 1) i zanotuj wartość podaną w elemencie podrzędnym <NamespaceCountPerElement> elementu <StructureLimits>.

    W poniższym przykładzie zasady XMLThreatProtection <NamespaceCountPerElement> ma wartość 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. Sprawdź numer konkretnego wiersza (określony w kroku 1) ładunku wejściowego i sprawdź, czy liczba przestrzeni nazw określona w tym miejscu dla pojedynczego elementu jest większa niż liczba określona w elemencie <NamespaceCountPerElement> (określona w kroku 2). Jeśli liczba przestrzeni nazw przekracza limit liczby przestrzeni nazw na element, to jest przyczyną błędu.

    Oto przykładowy ładunek wejściowy:

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

    Ładunek XML widoczny powyżej w wierszu 2 ma więcej niż 3 przestrzenie nazw. Ponieważ liczba przestrzeni nazw jest większa niż 3 (wartość określona dla elementu <NamespaceCountPerElement>), pojawia się ten błąd:

    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)
    

Rozdzielczość

Jeśli zasada XMLThreatProtection ma na celu ochronę przed ładunkami przekraczającymi określoną liczbę przestrzeni nazw w jednym elemencie, komunikat o błędzie jest oczekiwany. W takim przypadku nie musisz nic robić.

Jeśli jednak stwierdzisz, że można zezwolić na większą liczbę przestrzeni nazw, zmodyfikuj element podrzędny <NamespaceCountPerElement> elementu <StructureLimits> do odpowiedniej wartości w zależności od wymagań.

Jeśli na przykład uważasz, że w jednym elemencie możesz mieć maksymalnie 5 przestrzeni nazw, zmodyfikuj zasady w ten sposób:

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

Kod błędu

steps.xmlthreatprotection.ExecutionFailed

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli ładunek wiadomości wejściowej określony przez element <Source> zasady XMLProtectionPolicy nie jest prawidłowym dokumentem XML.

Diagnostyka

  1. Sprawdź komunikat o błędzie, aby zidentyfikować nazwę zasady, w której wystąpił błąd. W poniższym przykładzie nazwa zasady to XML-Threat-Protection-1.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    
  2. Sprawdź ładunek wejściowy i sprawdź, czy dokument XML przekazany w ładunku jest rzeczywiście poprawnie sformatowanym dokumentem XML.

    Oto przykładowy ładunek wejściowy:

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

    W przedstawionym powyżej ładunku XML wiersz 9 nie zamyka prawidłowo elementu głównego, ponieważ brakuje parametru /. Ten kod XML nie jest poprawnie sformułowany, więc pojawia się błąd:

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

Rozdzielczość

Sprawdź, czy do każdego serwera proxy interfejsu API, który zawiera zasadę XMLThreatProtection, przekazywany jest prawidłowy wejściowy ładunek XML.

Aby poprawić przykładowy błąd opisany powyżej, zmodyfikuj wejściowych ładunek XML w następujący sposób:

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

SourceUnavailable

Kod błędu

steps.xmlthreatprotection.SourceUnavailable

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli zmienna message określona w elemencie <Source> zasady XMLThreatProtection ma wartość:

  • Poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada)
  • Nie jest jedną z prawidłowych wartości request, response lub message

Ten błąd występuje np. wtedy, gdy element <Source> w zasadzie jest ustawiony na zmienną, która nie istnieje w procesie, w którym jest wykonywana.

Diagnostyka

  1. Znajdź nazwę zasady XMLThreatProtection i nazwę zmiennej Source z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady XMLThreatProtection to XML-Threat-Protection-1, a zmienna źródłowa to requests:.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    
  2. Sprawdź nieudaną zasadę XMLThreatProtection i sprawdź wartość podaną dla elementu <Source> wskazanego w kroku 1.

    W poniższym przykładzie zasady XMLThreatProtection element <Source> jest ustawiony na 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>
    

    Prawidłowe wartości elementu <Source> to request, response lub message.. Ponieważ requests nie jest prawidłową wartością i nie istnieje w procesie, w którym jest wykonywana zasada, pojawia się błąd:

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

Rozdzielczość

Sprawdź, czy zmienna ustawiona w elemencie <Source> nieudanej zasady XMLThreatProtection jest ustawiona na request, response lub message i istnieje w procesie uruchamiania zasady.

Aby poprawić przykładową zasadę widoczną powyżej, możesz zmodyfikować element <Source> tak, aby używał zmiennej request , ponieważ występuje ona w procesie żądania:

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

Kod błędu

steps.xmlthreatprotection.NonMessageVariable

Treść odpowiedzi o błędzie

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

Przykładowa treść odpowiedzi dotyczącej błędu

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

Przyczyna

Ten błąd występuje, jeśli element <Source> w zasadzie XMLThreatProtection jest ustawiony na zmienną, która nie jest typu Message.

Zmienne typu wiadomości reprezentują całe żądania i odpowiedzi HTTP. Wbudowane zmienne przepływu Apigee Edge request, response i message są typu Message. Więcej informacji o zmiennych dotyczących wiadomości znajdziesz w informacjach o zmiennych.

Diagnostyka

  1. Wskaż nazwę zmiennej, która odpowiada zmiennej typu komunikatu z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zmiennej to message.content

    Variable message.content does not resolve to a Message
    
  2. Sprawdź wszystkie zasady XMLThreadProtection na serwerze proxy interfejsu API, w których wystąpił błąd, i odszukaj konkretną zasadę XMLThreadProtection zawierającą element <Source> z nazwą zmiennej określoną w kroku 1 powyżej.

    W poniższym przykładzie zasady XMLThreatProtection <Source> ma wartość 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>
    

    Ponieważ zmienna message.content nie jest typu komunikat, występuje błąd:

    Variable message.content does not resolve to a Message
    

Rozdzielczość

Sprawdź, czy element <Source> w nieudanej zasadzie XMLThreatProtection jest ustawiony na zmienną przepływu typu Wiadomość występującą w procesie, w którym jest wykonywana zasada.

Aby poprawić zasadę, możesz zmodyfikować element <Source>, aby określić zmienną typu Wiadomość. Na przykład w nieudanej próbie XMLThreatProtection można określić element <Source> jako 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>