如何在xsd中找到特定标签是否在xml中可用?

时间:2010-12-21 14:14:45

标签: java xml xsd xml-validation

我的xml文件是,

 <?xml version="1.0"?>
 <type xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"                          
                    xs:noNamespaceSchemaLocation="datatype.xsd">

    <int>integer</int>
    <varchar>varcharacter</varchar>
    <double>doubles</double> 

  </type>

在这个xml中,我想将<float></float>设置为必需。但我没有使用这个标签。那么如何使用xsd和java在我的xml文件中验证<float>是否存在。提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下内容可用于根据架构验证XML:

import java.io.File;

import javax.xml.XMLConstants;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

public class Demo {

    public static void main(String[] args) throws Exception {
        SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema schema = sf.newSchema(new File("datatype.xsd"));

        Validator validator = schema.newValidator();
        validator.setErrorHandler(new MyErrorHandler());
        validator.validate(source);
    }

}

有关更详细的示例,请参阅: