如何根据给定的 xsd-schema 将无效的 XML 转换为有效的 XML?例如,我有下一个 xsd 架构:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
和下一个无效的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../my_xsd.xsd">
<to>reviver@mail.com</to>
<from>sender@mail.com</from>
<body>blablabla</body> <!-- IVALID LINE, IT IS NOT IN RIGHT PALCE -->
<heading>head</heading>
</note>
我的问题是:JAXB、XSTREAM 或其他 XML 解析器是否有解决方案来根据给定模式将我的无效 XML 转换为有效 XML:
<?xml version="1.0" encoding="UTF-8"?>
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../my_xsd.xsd">
<to>reviver@mail.com</to>
<from>sender@mail.com</from>
<heading>head</heading>
<body>blablabla</body>
</note>