Tôi đang sử dụng jaxb cho các cấu hình ứng dụng của tôilàm thế nào tôi có thể unmarshall trong jaxb và tận hưởng xác nhận sơ đồ mà không cần sử dụng một file schema rõ ràng
tôi cảm thấy như tôi đang làm một cái gì đó thực sự quanh co và tôi đang tìm kiếm một cách để không cần một tập tin thực tế hoặc giao dịch này.
Như bạn thấy trong mã của tôi:
1.create một schema vào một tập tin từ JaxbContext của tôi (từ chú thích lớp học của tôi thực sự) 2.Set tập tin giản đồ này để cho phép xác nhận đúng khi tôi unmarshal
JAXBContext context = JAXBContext.newInstance(clazz);
Schema mySchema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(schemaFile);
jaxbContext.generateSchema(new MySchemaOutputResolver()); // ultimately creates schemaFile
Unmarshaller u = m_context.createUnmarshaller();
u.setSchema(mySchema);
u.unmarshal(...);
Bạn có biết cách xác thực jaxb mà không cần tạo tệp sơ đồ nằm trong máy tính của mình không?
Tôi có cần phải tạo lược đồ để xác thực không, có vẻ như thừa khi tôi nhận được nó bằng JaxbContect.generateSchema?
Bạn làm như thế nào?
Tại sao bạn không đọc lược đồ từ tài nguyên classpath? – lexicore
Tôi không chắc chắn tôi hiểu, bạn có thể xây dựng? – ekeren
Tôi có thể tải tệp lược đồ từ đường dẫn lớp của mình nhưng tôi đang cố gắng tránh tạo tệp sơ đồ, như bạn có thể thấy ở trên tôi đang tạo tệp và sử dụng tệp đó sau một giây tôi thực sự có thể xóa tệp đó sau khi kết thúc marshaling. Tôi có thiếu một số bức tranh lớn ở đây không? Cảm ơn sự giúp đỡ của bạn – ekeren