Если вы собираетесь работать с XML, стоит задуматься о пространствах имен - как бы больно это ни было.Откладывание вашего понимания только усложнит ситуацию в долгосрочной перспективе.
Не существует «нескольких пространств имен» для имени учетной записи или имени агента: элемент всегда входит в самое большее один Пространство имен.
Большая часть синтаксиса пространства имен, который вы видите, - это просто привязка префиксов пространства имен к именам пространства имен (URI).Поэтому, когда вы видите
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
, это связывает префикс "i" с URI "http://www.w3.org/2001/XMLSchema-instance",, чтобы более глубокие элементы в документе могли использовать префикс" i "(по сути, как способ сохранения нажатий клавиш).
Если атрибут xmlns указан сам по себе со значением (т.е. вы видите xmlns = "что-то"), это означает, что пространство имен является эффектом для этого элемента и его потомков (если не переопределено другимПространство имен указывается на более глубоком уровне).
Таким образом, в вашем примере документа (который является частью hodge-podge пространства имен) Имя пространства имен корневого элемента FundDeal равно "http://schemas.datacontract.org/2004/07/Guide.Rx.BusinessObjects.Deal",, и это такжеслучай для его дочерних элементов Account и Agent (хотя они и определяют привязку пространства имен / префикса, это не влияет на их собственное пространство имен: эта привязка используется их дочерними элементами).
Вы можете указать Пространства имен в своей таблице стилей проще всего, связав свои собственные префиксы («фонд» и «сделка» в приведенном ниже примере) для ссылки на Пространства имен, которые выeed (я добавил немного больше, который, я надеюсь, сделает это немного яснее):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fund="http://schemas.datacontract.org/2004/07/Guide.Rx.BusinessObjects.Deal"
xmlns:deal="http://schemas.datacontract.org/2004/07/Guide.BusinessObjects.Deal"
xmlns:d2p1="http://schemas.datacontract.org/2004/07/Guide.Rx.BusinessObjects.Account">
<xsl:output indent="yes" omit-xml-declaration="yes" method="html"/>
<xsl:template match="/">
<html>
<head>
<!-- some styles here -->
</head>
<body>
<table cellpadding="5" cellspacing="5" border="0">
<tr>
<td class="SectionTitle" colspan="2">
<xsl:text>Deal Cancellation Notification - </xsl:text>
<xsl:value-of select="/fund:FundDeal/deal:Id"/>
<br/>
<xsl:text>Account Name - </xsl:text>
<xsl:value-of select="/fund:FundDeal/fund:Account/d2p1:Name"/>
<br/>
<xsl:text>Agent Name - </xsl:text>
<xsl:value-of select="/fund:FundDeal/fund:Agent/d2p1:Name"/>
</td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>