代码之家  ›  专栏  ›  技术社区  ›  kander

是否仅使用架构验证XML文档的一部分?

  •  3
  • kander  · 技术社区  · 16 年前

    例子:

    <request>
        <campaign>CAMP00001</campaign>
        <username>user_bob</username>
        <token>one-time-token-goes-here</token>
        ... more meta-data ...
        <records>
            <record id="90209">
                <name>John Doe</name>
                <address>Park Lane 191</address>
                <postal>99999</postal>
            </record>
    
            <record id="90210">
                <name>Jane Doe</name>
                <address>Park Lane 192</address>
                <postal>88888</postal>
            </record>
        </records>
    </request>
    

    目前,我正在通过手动检查活动、用户名和令牌字段内容的存在性和有效性进行验证。如果可能的话,我想使用XML模式来实现这一点,这样就可以更容易地与开发人员沟通他们需要提供什么元数据以及以什么格式提供元数据——对于活动来说,这是不可能的,因为每个活动都有自己的字段集和应用于这些字段的规则。这样的事能做吗?

    <data> 元素而不是命名元素,然后对 <数据> 在架构中。。但这需要更改周围的规格)

    2 回复  |  直到 16 年前
        1
  •  7
  •   Robert Christie    16 年前

    您可以在模式中使用任意类型。

    例如

    <xs:element name="foo">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="first" type="xs:string"/>
                <xs:element name="second" type="xs:string"/>
                <xs:any minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    

    这要求每个foo元素都有第一个和第二个节点,然后还允许任何其他元素。例如:

    <foo>
        <first>Hello</first>
        <second>World</second>
        <other>can be anything</other>
        <nodes/>
    </foo>
    
        2
  •  0
  •   brianary    16 年前