Chyby XSLT s možností zotavení
Doporučení W3C XSL (XSLT) verze 1.0 obsahuje oblasti, ve kterých se poskytovatel implementace může rozhodnout, jak řešit situaci. Tyto oblasti jsou považovány za volitelné chování. Například v části 7.3 Vytváření pokynů ke zpracování se v doporučení XSLT 1.0 uvádí, že se jedná o chybu při vytváření instance obsahu xsl:processing-instruction
uzlů jiných než textových uzlů. U některých problémů doporučení XSLT 1.0 indikuje, jaké rozhodnutí by se mělo provést, pokud se procesor rozhodne zotavit z chyby. Pro problém uvedený v části 7.3 W3C říká, že implementace se může zotavit z této chyby ignorováním uzlů a jejich obsahu.
Volitelné chování
V následující tabulce jsou uvedeny jednotlivé volitelné chování povolené doporučením XSLT 1.0 a způsob zpracování těchto chování XslCompiledTransform třídou.
Obnovení indikuje, že XslCompiledTransform třída se z této chyby obnoví. Událost XsltArgumentList.XsltMessageEncountered lze použít k hlášení událostí z procesoru XSLT.
Chyba značí, že je pro tuto podmínku vyvolána výjimka.
Odkazy na oddíly najdete v doporučeních XSLT (W3C XSL Transformations) verze 1.0 a transformacích XSL W3C (XSLT) verze 1.0 Specification Errata.
Podmínka XSLT | Sekce | Chování XslCompiledTransform |
---|---|---|
Textový uzel odpovídá oběma xsl:strip-space a xsl:preserve-space . |
3.4 | Obnovit |
Zdrojový uzel odpovídá více než jednomu pravidlu šablony. | 5.5 | Obnovit |
Identifikátor URI oboru názvů je deklarován jako alias pro více identifikátorů URI oboru názvů, přičemž všechny mají stejnou prioritu importu. | 7.1.1 | Obnovit |
Atribut name v xsl:attribute a xsl:element vygenerovaný z hodnoty atributu není QName. |
7.1.2, 7.1.3 | Chyba* |
Dvě sady atributů se stejným importem a rozšířeným názvem mají společný atribut a neexistuje žádná jiná sada atributů obsahující společný atribut se stejným názvem s vyšší důležitostí. | 7.1.4 | Obnovit |
Přidání atributu do elementu po přidání podřízených položek do elementu | 7.1.3 | Chyba* |
Vytvoření atributu s názvem xmlns | 7.1.3 | Chyba* |
Přidání atributu do uzlu, který není prvkem. | 7.1.3 | Chyba* |
Vytváření uzlů jiných než textových uzlů během vytváření instance obsahu atributu xsl:attribute . |
7.1.3 | Chyba* |
Atribut name nedává xsl:processing-instruction ncName ani cíl instrukce zpracování. |
7.3 | Chyba* |
Vytvoření instance obsahu xsl:processing-instruction uzlů jiných než textových uzlů |
7.3 | Chyba* |
Výsledek vytvoření instance obsahu xsl:processing-instruction obsahuje řetězec "?>". |
7.3 | Obnovit |
Výsledek vytvoření instance obsahu xsl:processing-instruction obsahuje řetězec "--" nebo končí na "-". |
7,4 | Obnovit |
Výsledek vytvoření instance obsahu xsl:comment vytvoří uzly jiné než textové uzly. |
7,4 | Chyba* |
Šablona v elementu proměnné vazby vrátí uzel atributu nebo uzel oboru názvů. | 11.2 | Chyba* |
Při načítání prostředku z identifikátoru URI předaného do funkce dokumentu došlo k chybě. | 12.1 | Chyba |
Odkaz na identifikátor URI ve funkci dokumentu obsahuje identifikátor fragmentu a při zpracování identifikátoru fragmentu došlo k chybě. | 12.1 | Obnovit* |
Existuje více atributů se stejným názvem, ale různé hodnoty, které nejsou pojmenované elementy cdata-section s xsl:output stejnou prioritou importu. |
16 | Obnovit |
Procesor nepodporuje kódování v atributu xsl:output kódování. |
16.1 | Obnovit |
Zakázání výstupního escapingu pro textový uzel, který se používá pro něco jiného než textový uzel ve výsledném stromu | 16.4 | Obnovit* |
Převod fragmentu výsledného stromu na číslo nebo řetězec, pokud fragment výsledného stromu obsahuje textový uzel s povoleným výstupním zapouzdřením. | 16.4 | Obnovit* |
Výstupní zapouzdření je zakázáno pro znak, který nelze reprezentovat v kódování, které procesor XSLT používá pro výstup. | 16.4 | Obnovit* |
Přidání uzlu oboru názvů do elementu po přidání podřízených položek nebo po přidání atributů do něj. | errata 25 | Chyba* |
Atributem value je xsl:number NAN, nekonečné nebo menší než 0,5. |
errata 24 | Obnovit |
Druhý argument node-set na funkci dokumentu je prázdný a odkaz na identifikátor URI je relativní. | errata 14 | Obnovit |
* Toto chování se liší od XslTransform chování třídy. Další informace naleznete v tématu Implementace volitelné chování ve třídě XslTransform.