【问题标题】:Validating XML that is a DOM document验证作为 DOM 文档的 XML
【发布时间】:2011-11-24 03:45:41
【问题描述】:

如何验证内存中已作为 DOM 文档的 XML 文档?

【问题讨论】:

    标签: java xml validation schema in-memory


    【解决方案1】:

    没有什么特别之处。 javax.xml.validation 验证器 takeSource。检查Source的实现类的构造函数。

    【讨论】:

      【解决方案2】:

      您可以使用javax.xml.validation API 来验证内存中的 XML。下面是一个将这些 API 与 JAXBSource 一起使用的示例,验证 DOM 模型只需使用 DOMSource

      package blog.validation;
      
      import java.io.File;
      
      import javax.xml.XMLConstants;
      import javax.xml.bind.JAXBContext;
      import javax.xml.bind.util.JAXBSource;
      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 {
              Customer customer = new Customer();
              customer.setName("Jane Doe");
              customer.getPhoneNumbers().add(new PhoneNumber());
              customer.getPhoneNumbers().add(new PhoneNumber());
              customer.getPhoneNumbers().add(new PhoneNumber());
      
              JAXBContext jc = JAXBContext.newInstance(Customer.class);
              JAXBSource source = new JAXBSource(jc, customer);
      
              SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
              Schema schema = sf.newSchema(new File("customer.xsd"));
      
              Validator validator = schema.newValidator();
              validator.setErrorHandler(new MyErrorHandler());
              validator.validate(source);
          }
      
      }
      

      更多信息

      【讨论】:

        【解决方案3】:

        您的模型是如何构成的?我有一个工作解决方案,我得到一个文本格式的 XML 消息,我使用 xmlbeans 解析它。然后我有能力调用它的验证方法。所以在我的 maven 构建期间编译了一个 Java 类,它反映了我拥有的 XSD。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-31
          • 2011-11-10
          相关资源
          最近更新 更多