如何以编程方式更新元素并将其添加到 XSD

2023-11-30

我需要以编程方式更新 java 中的现有 XSD,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="com/company/common" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="com/company/common/" elementFormDefault="qualified">
    <xs:include schemaLocation="DerivedAttributes.xsd" />
    <xs:element name="MyXSD" type="MyXSD" />
    <xs:complexType name="Containter1">
        <xs:sequence>
            <xs:element name="element1" type="element1" minOccurs="0"
                maxOccurs="unbounded" />
            <xs:element name="element2" type="element2" minOccurs="0"
                maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Containter2">
        <xs:sequence>
            <xs:element name="element3" type="Type1" minOccurs="0" />
            <xs:element name="element2" type="Type2" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>
</xs:schema>

如何以编程方式将具有 (name="element3" type="element 3" minOccurs="0" maxOccurs="unbounded") 的元素添加到容器 1 中?

我研究过 DOM、Xerces、JAXB...但是没有真正明确的“正确”方法来迭代 XSD 并附加元素。 Xerces 看起来很有前途,但几乎没有相关文档。

Thanks!


使用 DOM 的方法如下:

    // parse file and convert it to a DOM
    Document doc = DocumentBuilderFactory
            .newInstance()
            .newDocumentBuilder()
            .parse(new InputSource("test.xml"));

    // use xpath to find node to add to
    XPath xPath = XPathFactory.newInstance().newXPath();
    NodeList nodes = (NodeList) xPath.evaluate("/schema/complexType[@name=\"Containter1\"]",
            doc.getDocumentElement(), XPathConstants.NODESET);

    // create element to add
    org.w3c.dom.Element newElement = doc.createElement("xs:element");
    newElement.setAttribute("type", "element3");
    // set other attributes as appropriate

    nodes.item(0).appendChild(newElement);


    // output
    TransformerFactory
        .newInstance()
        .newTransformer()
        .transform(new DOMSource(doc.getDocumentElement()), new StreamResult(System.out));

关于 Java XML 的文档相当广泛,并且有许多教程和代码示例可供找到。看将 XML 数据读入 DOM, Java:如何通过 org.w3c.dom.document 上的 xpath 字符串定位元素, Java DOM - 在另一个元素之后插入一个元素用于创建和添加新元素,以及将 org.w3c.dom.Document 漂亮地打印到标准输出的最短方法是什么?有关所用概念的更多详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式更新元素并将其添加到 XSD 的相关文章

  • Hibernate注解放置问题

    我有一个我认为很简单的问题 我见过两种方式的例子 问题是 为什么我不能将注释放在字段上 让我举一个例子 Entity Table name widget public class Widget private Integer id Id G
  • SAML 服务提供商 Spring Security

    当使用预先配置的服务提供者元数据时 在 Spring Security 中 是否应该有 2 个用于扩展元数据委托的 bean 定义 一份用于 IDP 元数据 一份用于 SP 元数据
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • java中如何连接字符串

    这是我的字符串连接代码 StringSecret java public class StringSecret public static void main String args String s new String abc s co
  • 运行具有外部依赖项的 Scala 脚本

    我在 Users joe scala lib 下有以下 jar commons codec 1 4 jar httpclient 4 1 1 jar httpcore 4 1 jar commons logging 1 1 1 jar ht
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • 编辑文件名在 JComboBox 中的显示方式,同时保持对文件的访问

    我对 Java 很陌生 对堆栈溢出也很陌生 我正在尝试利用 JMF API 创建一个用 Java 编码的简单媒体播放器 到目前为止 我已经能够设置一个简单的队列 播放列表来使用JComboBox called playListHolder
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • 有没有一种快速方法可以从 Jar/war 中删除文件,而无需提取 jar 并重新创建它?

    所以我需要从 jar war 文件中删除一个文件 我希望有类似 jar d myjar jar file I donot need txt 的内容 但现在我能看到从 Linux 命令行执行此操作的唯一方法 不使用 WinRAR Winzip
  • Java整数双除法混淆[重复]

    这个问题在这里已经有答案了 方案1 int sum 30 double avg sum 4 result is 7 0 not 7 5 VS 方案2 int sum 30 double avg sum 4 0 Prints lns 7 5
  • 欧洲中部时间 14 日 3 月 30 日星期五 00:00:00 至 日/月/年

    我尝试解析格式日期Fri Mar 30 00 00 00 CET 14至 日 月 年 这是我的代码 SimpleDateFormat formatter new SimpleDateFormat dd MM yyyy System out
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • java.lang.NumberFormatException: Invalid int: "3546504756",这个错误是什么意思?

    我正在创建一个 Android 应用程序 并且正在从文本文件中读取一些坐标 我在用着Integer parseInt xCoordinateStringFromFile 将 X 坐标转换为整数 Y 坐标的转换方法相同 当我运行该应用程序时
  • 测试弱引用

    在 Java 中测试弱引用的正确方法是什么 我最初的想法是执行以下操作 public class WeakReferenceTest public class Target private String value public Targe
  • Java中的Object类是什么?

    什么是或什么类型private Object obj Object http download oracle com javase 6 docs api java lang Object html是Java继承层次结构中每个类的最终祖先 从
  • 如何从 Maven 存储库引用本机 DLL?

    如果 JAR 附带 Maven 存储库中的本机 DLL 我需要在 pom xml 中放入什么才能将该 DLL 放入打包中 更具体地举个例子Jacob http search maven org artifactdetails 7Cnet s
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 如何在 JFreeChart 中设置多个系列的线条粗细?

    我创建了很多图表 在他们每个人中我都需要打电话 renderer setSeriesStroke i new BasicStroke 2 0f 对于每个系列 renderer is chart getXYPlot getRenderer 我

随机推荐

  • 从java中的XML文件中删除元素

    我已经从 Excel 数据库生成了一个 xml 文件 它自动包含一个名为 的元素 offset为了使我的新文件符合我的需求 我想使用 java 删除此元素 这是xml内容
  • 使用 jQuery 隐藏文本中的字符?

    我想将一些文字 名称 更改为 名称 换句话说 我只是想隐藏 jQuery 可以选择 div 中的字符或单词吗 如果是这样 很容易隐藏 字符 或者如果需要将文本替换为相同的单词但没有该字符 Thanks 如果你想使用 JQuery 那么 id
  • 没有匹配的函数来调用“构造函数”

    我正在尝试创建一个类型的数组Vertex然后初始化函数中的每个成员 这Vertex类在构造函数中采用 Vector3f Vertex Vertex const Vector3f position position position 在头文件
  • 我可以将默认编辑器切换为 Snowsight 吗?

    我通过 SSO 登录 它会加载经典 UI SSO 登录后 我会被发送到特定的网址 例如https company us east snowflakecomputing com console internal worksheet 是否有可能
  • 如何以 png 作为背景进行绘图? [复制]

    这个问题在这里已经有答案了 我制作了一个 300 万点的图并将其保存为 PNG 花了几个小时 我想避免重新绘制所有点 如何生成以此 PNG 作为背景的新图 尝试这个 library png Replace the directory and
  • 使用 bigquery 将字符串拆分为多列

    我在 BigQuery 中有一个包含数百万行的表 我想将 adx catg id 列拆分为多个新列 请注意 adx catg id 列包含任意数量的由空格分隔的单词 如果字符串仅包含少于五个单词 下面的查询示例可以将 adx catg id
  • 如何对 NetworkX 中创建的图 g 进行聚类?

    我正在尝试将聚类应用于数据集 在此之前 我必须将图划分为 n 个簇 但我不知道该怎么做 Suppose 边缘列表你的未加权的 and 不定向的 graph保存在文件edges txt中 您可以按照以下步骤对图的节点进行聚类 Step 1 g
  • 在调用委托之前将我的空检查代码变灰

    我在 VS 2015 中编写统一代码 这意味着它是在 c 4 中并且 null 条件运算符不可用 在调用委托之前 我进行了空检查 但代码是灰色的 是不是说灰码和注释一样无效呢 如果是这样 我应该怎么做才能防止调用空委托 public del
  • 无法从 grails 项目构建 war

    我正在构建 Grails 2 4 4 项目 我遇到了非常奇怪的问题 我可以 运行应用程序 我可以 编译 它 但我不能 战争 或 运行战争 它 将 src groovy 目录中的 Enum 类 AlertType 导入到域类 Alert 时出
  • VSTO - MS Office“配色方案”更改事件

    使用 VSTO 如何获取 MS Office 配色方案更改的通知 希望 Office 2010 中存在更好的东西 以下是我在 Office 2007 和 Word 中使用的内容 这不是任何通知 只是要检查的内容 const string O
  • AccountManager:invalidateAuthToken 不会使令牌失效

    我正在尝试从存储在 Android 设备中的 Google 帐户获取全新的令牌 但我得到的只是我过去几天缓存的旧令牌 看起来它被缓存在手机的某个地方 甚至没有发送互联网请求 我在没有互联网连接的情况下在应用程序中进行了测试 并且返回了相同的
  • PL/SQL 过程的同步。如何保证程序一次只执行一个? [复制]

    这个问题在这里已经有答案了 某些 PL SQL 过程需要花费大量时间进行评估 如重新计算和更新大量数据 我想限制将此过程评估为单个的执行上下文的数量 如果其他上下文执行它 则什么也不做 但我不知道在 PL SQL 代码中使用哪些原子操作 N
  • 接口 VS API VS 公共类

    我对这三个术语的含义和区别有点困惑 接口 APIs 公开课 我之前问过 API 和 Public 类之间有什么区别吗 这是问题 公共方法与公共 API 我明白了 但现在有了新概念界面 我又对Interface和API以及Public cla
  • 为什么 numpy 列表访问比普通 python 慢?

    我的印象是 numpy 对于列表操作会更快 但以下示例似乎表明情况并非如此 import numpy as np import time def ver1 a i for i in range 40 b 0 for i in range 4
  • Visual Studio 2015 jQuery 智能感知不工作

    因此 我创建了一个 Visual Studio 2015 空 ASP net Core 应用程序 并尝试使用 Bower 添加 jQuery 但它没有获取 jQuery 的智能感知 它显示一条警告 指出 智能感知无法确定准确的值 完成列表
  • Bash 脚本数组转 csv

    我想从我的数组中执行逗号分隔的字符串 在我的脚本中我收集数据到数组outputArr然后我想echo来检查一下 但现在我被困住了 我想使用以下命令在控制台上打印它 echo outputArr 但我得到了错误的输出 所以我尝试调试它并这样写
  • 如何判断数据库更新是否成功?

    我正在尝试修改一些遗留的ASP经典代码 并且我对ASP了解不多 如何判断数据库插入 更新或删除是否失败 我所说的 失败 是指它要么引发错误 要么影响零行 以下是 ASP 文件中已有的用于设置数据库连接的代码 On Error Resume
  • 外包RSA加密和解密的问题

    我在 RSA 加密和解密方面遇到问题 我正在 android 中开发 想外包 RSA 加密和解密 在我尝试外包之前 我的源代码运行良好 我创建了私钥和公钥 并将其保存为 private key 和 public key 该错误是由该方法引起
  • 如何在 JavaScript 变量中存储多个 jQuery 选择器?

    显然 如果多次使用 jQuery 选择器 将它们存储在变量中是个好主意 not如果只使用一次是个好主意 我的问题是 如何在变量中存储可互换使用的多个选择器 例如 假设我选择 object1 object2 然后我选择 object1 我将如
  • 如何以编程方式更新元素并将其添加到 XSD

    我需要以编程方式更新 java 中的现有 XSD 如下所示