У меня есть XSL вроде этого:Как работает совпадение в шаблоне xsl?
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
version="1.0">
<xsl:template match="wsdl:definitions">
<!-- code here -->
</xsl:template>
</xsl:stylesheet>
в этом XSL, что делает эта линия сделать:
<xsl:template match="wsdl:definitions">
от моего понимания его будет строго соответствовать wsdl:definitions
метки, которые, как это в xml (исправьте меня, если я ошибаюсь здесь).
Но я буквально перепутал момент, я даю этот входной XML:
<xxx:definitions xmlns:xxx="http://schemas.xmlsoap.org/wsdl/" xmlns:xxxx1="http://www.w3.org/2006/05/addressing/wsdl" >
</xxx:definitions>
он по-прежнему соответствует <xxx:definitions>
и делает трансформацию по мере необходимости. Как это возможно, учитывая, что в моем листе xsl я дал ему соответствие wsdl:definitions
? Является ли совпадение чем-то связанным с xmlns
данных ввода xml?
Так как URI 'http: // schemas.xmlsoap.org/wsdl /' совпадает в обоих документах, он работает, правильно? Это не имеет никакого отношения к 'match', правильно? –
@ Муравей Да. Поскольку оба имеют префикс для этого URI, совпадение будет считать их равными. –
Большое спасибо, сейчас чувствуйте! –