xml到复杂的对象

时间:2013-09-05 22:04:46

标签: c# xml xml-deserialization

我有一个xml如何构建类,以便在我序列化时,它看起来像这样。

<Security xmlns="http://docs.oasis-open.org/x/xxxxx.xsd"  xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml:Assertion ID="xxxxx" IssueInstant="xxxxxxx" Version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
        <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified">MyApp</saml:Issuer>
        <saml:Subject>
            <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified">MyApp</saml:NameID>
        </saml:Subject>
        <saml:AttributeStatement>
            <saml:Attribute Name="UserID" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                <saml:AttributeValue>TestUserID</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="UserFirstName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                <saml:AttributeValue>TestUserFirstName</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="UserLastName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                <saml:AttributeValue>TestUserLastName</saml:AttributeValue>
            </saml:Attribute>
            <saml:Attribute Name="ReasonForSearch" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                <saml:AttributeValue>ReasonForSearch</saml:AttributeValue>
            </saml:Attribute>
        </saml:AttributeStatement>
    </saml:Assertion>
</Security>

1 个答案:

答案 0 :(得分:3)

使用xsd.exe首先生成XSD,然后使用相同的exe生成类文件。 更多信息 - http://msdn.microsoft.com/en-us/library/x6c1kb0s.aspx

在我的系统上将xml保存为security.xml,并在visual studio命令提示符中运行以下命令:

xsd Security.xml

上面的步骤生成了两个可用于生成类的xsd文件。

xsd Security.xsd Security_app1.xsd /classes