如何编写此XML文档是有效实例的XML Schema?

时间:2010-02-19 16:13:45

标签: xml validation xsd

<Unit Number="1">
 <Identifier Type="ABC" Text="STO0001"/>
 <Identifier Type="DEF" Text="Some Value"/>
 <Identifier Type="GHI" Text="20070805"/>
 <Disposition Unit="Accept"/>
</Unit>

我需要验证Type =“DEF”Text =“Some Value”不为空

喜欢的东西:

<xs:complexType name="requiredValue" abstract="true"/>

<xs:complexType name="Identifier">
    <xs:complexContent>
        <xs:extension base="requiredValue">
            <xs:attribute name="Type" use="required" fixed="DEF"/>
            <xs:attribute name="Text" type="NonEmptyString"/>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>

2 个答案:

答案 0 :(得分:1)

这不完全是您所追求的,但它可能会帮助您完成大部分架构。

这允许您上传xml文件,它将创建xsd架构或DTD。

http://www.hitsw.com/xml_utilites/

这也是同样的事情。

http://www.flame-ware.com/products/xml-2-xsd/Default.aspx
帕维尔提到了Schematron。为了帮助构建这些模式,您可能希望使用pyang。

http://code.google.com/p/pyang/

答案 1 :(得分:0)

使用xsd:minLength限制:

<xsd:attribute name="Type">
  <xsd:simpleType>
    <xsd:restriction base="xsd:string">
      <xsd:minLength value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>