2017-03-02 56 views
0

是否有任何由C#提供的API将输入视为XML和XSD,并根据XSD结构重新排列输入XML文件,以便架构验证不应该引发任何错误?根据xsd结构排列xml文件

是否有任何其他方式重新排列XML按XSD结构(无序列化)?

例如:XSD

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="MyClass"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Field1" 
        type="xs:string"/> 
     <xs:element name="Field2" 
        type="xs:string"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema 

EX:XML

<?xml version="1.0" encoding="utf-8"?> 
<MyClass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Field2>test2</Field2> 
    <Field1>test1</Field1> 
</MyClass 

正如你在XSD文件中的元素看字段1是第一和Field2是第二,但生成的XML包含字段2第一和字段1第二,因为当XML根据模式进行验证时会引发错误。所以我们不能根据XSD重新排列XML,以便Field1排在第一位,并且Field2排在第二位

+0

你是什么意思重新排列?你能给个例子吗? –

回答

0

尝试使用X SLT(可扩展样式表语言转换)。 XSLT是一种用于将XML文档转换为其他XML文档的语言。