Külső erőforrások feloldása az XSLT-feldolgozás során
Az XSLT-átalakítás során több alkalommal is előfordulhat, hogy külső erőforrásokat kell feloldania.
Az XmlResolver osztály használata
Az XmlResolver osztály a külső erőforrások feloldására szolgál. Az alábbi táblázat azt ismerteti, hogy mikor kerül sor az XmlResolver XSLT-feldolgozásra.
XSLT-tevékenység | Az XmlResolver használata |
---|---|
Állítsa össze a stíluslapot. | A stíluslap URI-jának feloldása. -és- URI-hivatkozások feloldása bármely xsl:import vagy xsl:include elemben. |
Hajtsa végre a stíluslapot. | A környezeti dokumentum URI-jának feloldása. -és- Az URI-hivatkozások feloldása bármely XSLT-függvényben document() . |
Transform A Load metódusok közé tartoznak azok a túlterhelések, amelyek az XmlResolver objektumok argumentumai közé tartoznak. Ha nincs megadva, XmlResolver a rendszer egy hitelesítő adatok nélküli alapértelmezett XmlUrlResolver beállítást használ.
Az alábbi lista azt ismerteti, hogy mikor érdemes megadni egy objektumot XmlResolver :
Ha az XSLT-folyamatnak egy hitelesítést igénylő hálózati erőforráshoz kell hozzáférnie, használhatja XmlResolver a szükséges hitelesítő adatokat.
Ha korlátozni szeretné az XSLT-folyamat által elérhető erőforrásokat, használhatja XmlSecureResolver a megfelelő engedélykészletet. Használja az XmlSecureResolver osztályt, ha olyan erőforrást kell megnyitnia, amelyet nem szabályoz, vagy amely nem megbízható.
Ha testre szeretné szabni a viselkedést, implementálhatja saját XmlResolver osztályát, és felhasználhatja az erőforrások megoldására.
Ha meg szeretné győződni arról, hogy nem fér hozzá külső erőforrásokhoz, megadhatja
null
az XmlResolver argumentumot.
Példa
Az alábbi példa egy hálózati erőforráson tárolt stíluslapot állít össze. Egy XmlUrlResolver objektum megadja a stíluslap eléréséhez szükséges hitelesítő adatokat.
// Create the credentials.
NetworkCredential myCred = new NetworkCredential(UserName,SecurelyStoredPassword,Domain);
CredentialCache myCache = new CredentialCache();
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred);
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred);
// Set the credentials on the XmlUrlResolver object.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = myCache;
// Compile the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/order.xsl",XsltSettings.Default, resolver);
' Create the credentials.
Dim myCred As NetworkCredential = New NetworkCredential(UserName, SecurelyStoredPassword, Domain)
Dim myCache As CredentialCache = New CredentialCache()
myCache.Add(new Uri("http://www.contoso.com/"), "Basic", myCred)
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred)
' Set the credentials on the XmlUrlResolver object.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = myCache
' Compile the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/order.xsl", XsltSettings.Default, resolver)
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: