相关疑难解决方法(0)

可以在运行时使用Objc/iPhone代码对xsd验证xml

我有运行时读入的xml文件,是否可以在运行时使用Obj C ??对xsd文件验证xml?这可以在javac#中完成.但我需要在我的iPhone应用程序中运行它.

xml iphone cocoa-touch xsd objective-c

5
推荐指数
1
解决办法
2767
查看次数

如何在Java中针对xsd提高速度大xml验证?

我正在尝试针对XSD验证非常XML(~200MB).这花了将近3个小时.我不确定我在这里做错了什么?

    SchemaFactory sf = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
    Schema schema = sf.newSchema(new File(this.productExtraInfoXsd));

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    domFactory.setNamespaceAware(true);
    DocumentBuilder builder = domFactory.newDocumentBuilder();
    Document doc = builder.parse(new File(filePath));

    DOMSource domSource = new DOMSource(doc);
    DOMResult result = new DOMResult();

    Validator validator = schema.newValidator();
    validator.validate(domSource, result);
Run Code Online (Sandbox Code Playgroud)

java xml validation xsd

5
推荐指数
1
解决办法
2298
查看次数

邮件/会话资源工厂在Struts应用程序中不起作用

我想使用Tomcat 6.0提供的标准资源工厂,它为我创建了javax.mail.Sessions实例.如JNDI Resource HOW-TO教程中所述.

我的META-INF/context.xml看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
    <Resource name="mail/Session" 
          auth="Container" 
          type="javax.mail.Session" 
          mail.smtp.host="smtp.gmail.com"
          mail.smtp.port="587"
          mail.smtp.auth="true"
          mail.smtp.user="someone@gmail.com"
          mail.smtp.password="secretpassword" 
          mail.smtp.starttls.enable="true"/>    
</Context>
Run Code Online (Sandbox Code Playgroud)

我在WEB-INF/web.xml中有下一个resource-ref,就在</ webapps>之前.Web.xml验证.我使用McDowell的方式进行了验证.

<resource-ref>
    <description>Resource reference to a factory for javax.mail.Session instances that may be used for sending electronic mail messages, preconfigured
    to connect to the appropiate SMTP server.
    </description>
    <res-ref-name>mail/Session</res-ref-name>
    <res-type>javax.mail.Session</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
Run Code Online (Sandbox Code Playgroud)

我正在使用下一个代码snipett访问我的javax.mail.Session对象.

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
Session session = (Session)envCtx.lookup("mail/Session");
System.out.println("HERE smtp.user: " + session.getProperty("mail.smtp.user"));
Run Code Online (Sandbox Code Playgroud)

我在一个示例应用程序中测试它并且它工作 不幸的是,当我将相同的代码移动到struts应用程序时,我在上面的print语句中得到NULL.我在单例类中查找上下文,称为邮件程序(在我的WEB-INF/classes文件夹中定义)但如果我在Struts操作类中查找上下文,我会遇到同样的问题. …

email tomcat jndi

4
推荐指数
1
解决办法
6614
查看次数

要针对多个xsd架构验证XML

我正在写xsd和代码来验证,所以我在这里有很好的控制权.

我想有一个上传工具,可以根据xml文件向我的应用程序添加内容.应根据其他部分中的某个值,针对不同的模式验证xml文件的一部分.这是一个例子来说明:

<foo>
  <name>Harold</name>
  <bar>Alpha</bar>
  <baz>Mercury</baz>
  <!-- ... more general info that applies to all foos ... -->

  <bar-config>
    <!-- the content here is specific to the bar named "Alpha" -->
  </bar-config>
  <baz-config>
    <!-- the content here is specific to the baz named "Mercury" -->
  </baz>
</foo>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,内容有一些受控的词汇表<bar>,我可以处理那部分就好了.然后,根据条形值,应使用适当的xml架构来验证bar-config的内容.同样适用于baz和baz-config.

执行解析/验证的代码是用Java编写的.不确定解决方案的语言依赖性.

理想情况下,该解决方案将允许xml作者声明适当的模式位置以及什么不是,以便他/她可以在足够智能的编辑器中动态验证xml.

此外,对于可能的值<bar><baz>是正交的,所以我不希望通过延长每一个可能的酒吧/巴兹组合来做到这一点.我的意思是,如果有24个可能的条形值/模式和8个可能的baz值/模式,我希望能够写出1 + 24 + 8 = 33个总模式,而不是1*24*8 = 192个模式.

另外,如果可能的话,我宁愿不将bar-config和baz-config分解成单独的xml文件.我意识到可能会使所有问题变得更容易,因为每个xml文件都有一个模式,但我正在尝试查看是否有一个好的单xml文件解决方案.

java xml xsd

4
推荐指数
1
解决办法
8244
查看次数

Java eclipse错误 - 此行的多个标记 - 无法将URL和SAXException解析为类型

我正在编写一个java代码来验证针对XSD文件的XML.Eclipse在以下代码中显示2个错误.

此行的多个标记 -

无法将URL解析为某种类型

SAXException无法解析为类型

import javax.xml.XMLConstants;
    import javax.xml.transform.Source;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.validation.*;

    public class xml_validator_class {

      public static void main(String argv[]) {
          URL schemaFile = new URL("xsdfile.xsd");
          Source xmlFile = new StreamSource(new File("xmlfile.xml"));
          SchemaFactory schemaFactory = SchemaFactory
              .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
          Schema schema = schemaFactory.newSchema(schemaFile);
          Validator validator = schema.newValidator();
          try {
            validator.validate(xmlFile);
            System.out.println(xmlFile.getSystemId() + " is valid");
          } catch (SAXException e) {
            System.out.println(xmlFile.getSystemId() + " is NOT valid");
            System.out.println("Reason: " + e.getLocalizedMessage());
          }


      }

    }
Run Code Online (Sandbox Code Playgroud)

请参考此链接以获取以下程序:

java eclipse

1
推荐指数
1
解决办法
3万
查看次数

标签 统计

java ×3

xml ×3

xsd ×3

cocoa-touch ×1

eclipse ×1

email ×1

iphone ×1

jndi ×1

objective-c ×1

tomcat ×1

validation ×1