Tag: xml

如何使用SAX XML Schema Validator的validation消息进行内部化?

我正在使用此代码来针对XSDvalidationXML: SchemaFactory factory = SchemaFactory.newInstance(“http://www.w3.org/2001/XMLSchema”); Schema schema = factory.newSchema(xmlSchema); Validator validator = schema.newValidator(); Source source = new StreamSource(myXmlFile); try { validator.validate(source); return null; }catch (SAXException ex) { String validationMessage = ex.getMessage(); return validationMessage; } 但是当XML无效时,消息总是如下所示: cvc-minLength-valid: Value ‘-‘ with length = ‘1’ is not facet-valid with respect to minLength ‘2’ for type ‘#AnonType_xLgrTEndereco’. 有没有办法以我的语言返回用户友好的消息,而无需以编程方式翻译消息? 更新这是XSD中发生消息的字段的一段代码: […]

使用Java在.jar中打开并编辑文件?

您如何打开.jar中的.xml文件并进行编辑? 我知道你可以…… InputStream myStream = this.getClass().getResourceAsStream(“xmlData.xml”); 但是如何打开xmlData.xml,编辑文件并将其保存在.jar中? 我会发现知道并且不想编辑.jar之外的文件很有用… 并且应用程序需要在整个时间内保持运行! 谢谢!

有没有办法将JSON Schema转换为XSD?

我目前正在寻找一种将JSON Schema转换为XSD或XML模式的方法。 我没有在这个主题上找到任何东西,希望也许有人在这里知道。 我希望用Java API来做。

使用JAXB处理丢失的节点

我目前正在使用JAXB来解析xml文件。 我通过xsd文件生成了所需的类。 但是,我收到的xml文件不包含生成的类中声明的所有节点。 以下是我的xml文件结构的示例: 12/12/2012 Description 12345 我面临以下两种情况: 节点存在于生成的类中,但不存在于XML文件中 该节点没有任何价值 在这两种情况下,该值都设置为null。 我希望能够区分XML文件中何时缺少节点以及何时存在但具有空值。 尽管我的搜索,我还没有找到办法。 任何帮助都非常受欢迎 非常感谢您的时间和帮助 问候

使用Java中的XSOM解析XSD架构。 如何访问元素和复杂类型

我在Java中使用XSOM解析了很多.XSD文件。 我有两个.XSD文件,一个定义日历,第二个定义全局类型。 我希望能够阅读日历文件并确定: 日历有3个属性 有效的是名为eYN的ENUM Cal是一个字符串 状态是一个名为eSTATUS的ENUM Calendar.xsd gtypes.xsd 我尝试访问此信息的代码如下。 我对Java很陌生,所以任何风格批评都欢迎。 我真的需要知道 如何访问复杂类型cal并看到它是一个字符串? 如何访问Status的定义以查看它是eSTATUS 强调文本类型的枚举 我有几次尝试通过ComplexType和Elements和Content访问正确的信息。 但是,我只是没有得到它,我找不到任何有用的例子。 我希望(希望)当你知道如何时,最好的方法(相对)简单。 所以,再一次,如果有人能指出我正确的方向,那将是一个很大的帮助。 xmlfile = “Calendar.xsd” XSOMParser parser = new XSOMParser(); parser.parse(new File(xmlfile)); XSSchemaSet sset = parser.getResult(); XSSchema s = sset.getSchema(1); if (s.getTargetNamespace().equals(“”)) // this is the ns with all the stuff // in { // try ElementDecls Iterator […]

ElementNSImpl to String

我有一个调用Web服务的客户端,我正在返回一个ElementNSImpl对象。 是否可以将此对象转换为String? 对于org.w3c.dom.Document对象,我使用过这样的代码: protected static String documentToString(final Document doc) { // outputs a DOM structure to plain String try { StringWriter sw = new StringWriter(); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, “no”); transformer.setOutputProperty(OutputKeys.METHOD, “xml”); transformer.setOutputProperty(OutputKeys.INDENT, “yes”); transformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8”); transformer.transform(new DOMSource(doc), new StreamResult(sw)); return sw.toString(); } catch (Exception ex) { throw new RuntimeException(“Error […]

自定义JAXB unmarshall进程的error handling

假设我有一个描述根元素类Root的模式,其中包含一个List ,其中Entry类具有必需的字段名称。 以下是代码中的外观: @XmlRootElement class Root{ @XmlElement(name=”entry”) public List entries = Lists.newArrayList(); } @XmlRootElement class Entry{ @XmlElement(name=”name”,required=true) public String name; } 如果我提供以下XML用于解组: ekeren 我有一个问题,因为第二个条目不包含名称。 所以unmarshall产生null 。 有没有办法自定义JAXB以解组只包含“好”条目的Root对象?

我需要解析非格式良好的xml数据(HTML)

我在JAVA中有一些格式不正确的xml(HTML)数据,我使用了JAXP Dom,但它抱怨道。 问题是:有没有办法使用JAXP来解析这些文件? 我有一个包含以下数据的文件:

用于实体解析的Catalog.xml文件的XMLSchemavalidation

我有一个schema.xsd ,它包含并修改xhtml,如下所示: … 现在我写了一个Validator,其中 从xml文件中读取模式 使用CatalogManager来解析实体 它工作正常,因为它不从网络加载任何文件,而是找到我的catalog.xml文件中给出的xhtml11.xsd。 public class XmlTemplateValidator implements TemplateValidator { public List validate ( String xml ) throws Exception { Reader input = new StringReader(xml); InputSource inputSource = new InputSource(input); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); factory.setValidating(true); SAXParser parser = factory.newSAXParser(); parser.setProperty(“http://java.sun.com/xml/jaxp/properties/schemaLanguage”, “http://www.w3.org/2001/XMLSchema”); XMLReader reader = parser.getXMLReader(); reader.setEntityResolver(new CatalogResolver()); DefaultErrorHandler handler = new […]

如何在java中生成XML(在String表示中)

我已经定义了一个java类,但只需要将这个类的一些字段输出到XML中。 返回的类型必须是String。 我首先选择了使用StringBuffer的最简单方法。 但是,当我尝试处理输出字符串表示时,它失败了。 我认为这很可能是因为有些字符在输入中没有在UTF-8中编码。 有人能告诉我处理这个问题的最佳方法是什么? 谢谢。