Я преобразовываю входной XML в другой выходной XML, и мне хотелось бы, чтобы в выходном XML имена q были сохранены, но пространства имен опущены.Я пытался использовать exclude-result-prefixes и пару других вещей, но мне не удалось это сделать (я только начинаю с XLST)
Входной XML, я буду работатьможет не иметь объявленных пространств имен, например ниже
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<A>
<B>
<MessageIdentifier>826964</MessageIdentifier>
<MessageDateTime>2018-05-22T11:54:45</MessageDateTime>
<MessageType>Z</MessageType>
</B>
</A>
Мой сценарий преобразования выполнит пару преобразований, например:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
exclude-result-prefixes="xs xd cbc " version="2.0">
<!--Indents the results to get the proper xml formatting-->
<xsl:output media-type="text/xml" version="1.0" encoding="UTF-8" indent="yes"
use-character-maps="xml"/>
<xsl:strip-space elements="*"/>
<xsl:character-map name="xml">
<xsl:output-character character="&" string="&"/>
</xsl:character-map>
<xsl:template match="A">
<Dummy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:UBLVersionID>2.2</cbc:UBLVersionID>
<cbc:ProfileID>
<xsl:value-of select="B/MessageType"/>
</cbc:ProfileID>
<cbc:UUID>
<xsl:value-of select="B/MessageIdentifier"/>
</cbc:UUID>
</Dummy>
</xsl:template>
</xsl:stylesheet>
Мой текущий вывод
<?xml version="1.0" encoding="UTF-8"?>
<Dummy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<cbc:UBLVersionID xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">2.2</cbc:UBLVersionID>
<cbc:ProfileID xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">Z</cbc:ProfileID>
<cbc:UUID xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">826964</cbc:UUID>
</Dummy>
Я бы хотел, чтобы пространства имен не расширялись в каждом элементе, например:
<?xml version="1.0" encoding="UTF-8"?>
<Dummy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:UBLVersionID >2.2</cbc:UBLVersionID>
<cbc:ProfileID>Z</cbc:ProfileID>
<cbc:UUID>826964</cbc:UUID>
</Dummy>
Есть мысли о том, как это сделать?