准备复杂xml的XSD

时间:2012-08-07 04:13:37

标签: c# asp.net .net xml xsd

感谢大家提出建议并随时提供帮助。

昨天我在asp.net 4.0中尝试开发和Web应用程序,我需要从xml解析数据并将其保存在数据库中。但在此之前,我还必须验证它。

我尝试使用.net提供的工具xsd.exe生成模式文件,但我不知道如何标记哪些节点或属性是强制性的?

在我的xml下面,项目是强制性的

Root node <Market> 
<Login> and its sub element
<ProductType> and its <ProductTypeID/>
The attribute DML is mandatory but should have only 3 values NONE, PUT or MODIFY
<ProductType> may or may not have <ProductItem>
If <ProductItem> is present then it should have <ProductItemID>
<ProductItem> may or may not have <Brand>
If <Brand> is present then it should have <BrandID>

下面是我的xml

<?xml version="1.0" encoding="utf-8" ?>
<Market>
    <Login>
        <LoginId />
        <Password />        
    </Login>

    <ProductType DML="NONE">
        <ProductTypeID/>
        <Name/>
        <Detail/>       

        <ProductItem DML="PUT">
            <ProductItemID/>
            <Name/>
            <Detail/>

            <Brand DML="PUT">
                <BrandID/>
                <Name/>
                <Detail/>
            </Brand>

            <Brand DML="MODIFY">
                <BrandID/>
                <Name/>
                <Detail/>
            </Brand>
        </ProductItem>

        <ProductItem DML="MODIFY">
            <ProductItemID/>
            <Name/>
            <Detail/>
        </ProductItem>        
    </ProductType>
</Market>

我应该如何以及在何处指定所有必需参数和可选参数,以便根据要求生成我的xsd。

谢谢,

微米。

2 个答案:

答案 0 :(得分:0)

xsd.exe只能尝试推断,xml中有哪些元素/属性,但无法找出哪些信息是必需的。但这是一个很好的起点。

使用graphical XML_Schema_Editor编辑生成的xsd以标记必填字段。这比学习xsd-language

容易得多

答案 1 :(得分:0)

我认为XSD不支持嵌套XML。我会尝试将XML加载到XmlDocument并手动检查必填字段。