2017-03-02 86 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文檔的語言。