gpt4 book ai didi

.net - 如何将 "include"一个 XML 文件转换为另一个 XML 文件?

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:18 24 4
gpt4 key购买 nike

我有一个像这样的 XML 模式:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="MySchema"
targetNamespace="http://tempuri.org/MySchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/MySchema.xsd"
xmlns:mstns="http://tempuri.org/MySchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyDocument">
<xs:complexType>
<xs:all>
<xs:element name="TextHeader" type="xs:string" minOccurs="0" />
<xs:element name="TextBody" type="xs:string" minOccurs="0" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>

根据此架构的有效 XML 文档将是:

<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">
<TextHeader>My header which is almost always the same...</TextHeader>
<TextBody>My text body which is always different...</TextBody>
</MyDocument>

问题 1:有没有办法从另一个文件中“包含”TextHeader 元素?

像这样:

文件“Header.xml”:

<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">
<TextHeader>My Header which is almost always the same...</TextHeader>
</MyDocument>

文件“CompleteDocument.xml”:

<?xml version="1.0" encoding="utf-8" ?>
<MyDocument xmlns="http://tempuri.org/MySchema.xsd">

include "Header.xml" ???

<TextBody>My text body which is always different...</TextBody>
</MyDocument>

问题 2:如果可能的话,.NET XMLSerializer 是否能够解析和理解包含此类“include...”的文档?

提前感谢您的帮助!

最佳答案

对这两个问题都不是。您可以编写一些代码(比如 app.config 如何允许导入部分,或者 xslt 如何处理包含/导入),但这不是内置在任何 XML 规范中,也不会匹配现有模式。基本上,您必须自己做所有事情。

如果您真的想走这条路,编写一个识别特定元素(在特定 xmlns 中)并在此时静默合并的自定义 XmlReader 可能是最佳选择。

关于.net - 如何将 "include"一个 XML 文件转换为另一个 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4353520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com