java - 如何将 ":"殖民名称从 XML 转换为 XSD 架构?

标签 java xml xsd jaxb xjc

我想使用来自 XSD 模式的 JAXB 的 xjc 生成 POJOS。我在将名称如“media:title”的元素转换为架构时遇到问题。

<media:title>Sink or Swim - Trailer</media:title>
<media:credit role="Director" scheme="urn:ebu">Jon Bowermaster</media:credit>
<media:credit role="Writer" scheme="urn:ebu">Jon Bowermaster</media:credit>
<media:credit role="Editor" scheme="urn:ebu">Devin Pickering</media:credit>
<media:thumbnail type="landscape" url="http://snagfilms-a.akamaihd.net/bf/f6/41421f834ff49b86e36beae9f47e/sinkorswim-video.jpg"/>
<media:thumbnail type="thumbnail" url="http://snagfilms-a.akamaihd.net/11/50/68399aa743ffa9fa9f9a155ba1c1/sinkorswim-thumbnail.jpg"/>
<media:thumbnail type="widget" url="http://snagfilms-a.akamaihd.net/ce/f7/5a967d1042288b53fecdf100393a/sinkorswim-widget.jpg"/>
<media:thumbnail type="poster" url="http://snagfilms-a.akamaihd.net/30/40/0875f149490a853057bebf69dac0/sinkorswim-poster.jpg"/>
<media:content duration="117" height="323" type="text/html" url="http://embed.snagfilms.com/embed/player?filmId=00000158-b20c-d8f9-affd-b32ce8700000" width="500"/>
<media:keywords>
snagfilms,Trailers,Climate Change,Documentary,Inspiring,Maldives,Swimming,Trailers
</media:keywords>
<media:restriction relationship="allow" type="sharing"/>
<media:community>
  <media:starRating average="0" count="0"/>
  <media:statistics favorites="5" views="5"/>
  <media:tags>
  snagfilms,Trailers,Climate Change,Documentary,Inspiring,Maldives,Swimming,Trailers
  </media:tags>
</media:community>
<media:rights status="official"/>
<media:player height="323" url="http://embed.snagfilms.com/embed/player?filmId=00000158-b20c-d8f9-affd-b32ce8700000" width="500"/>

上面的内容在 XSD 架构中会是什么样子

最佳答案

询问如何将殖民名称从 XML 转换为 XSD 表明对 XML namespace 的误解。殖民名称是一种通过命名空间前缀将 XML 组件放入命名空间的方法。您不想将 XML转换为 XSD;您想要编写一个 XSD 来描述 XML。

在您的示例标记中,应该有

  • 单个根元素
  • media 命名空间前缀的声明(例如:xmlns:media="http://www.example.com/media")

缺少这些项目,您的标记甚至不是 XML,因为它不满足格式良好的要求。

进行这些更正后,您可以编写一个 XSD,其目标命名空间与 XML 根元素的命名空间相匹配。您可以导入其他 XSD 以覆盖 XML 中使用的其他命名空间。只有这样,您才能准备好通过 JAXB 和 xjc 生成 Java 类。

关于java - 如何将 ":"殖民名称从 XML 转换为 XSD 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151716/

相关文章:

java - 如何读取 .dat 文件并写入文本文件?

c# - 如何使用 xsd.exe 在 C# 中生成列表而不是数组

python-3.x - 使用 python 从 XSD 文件创建特定的 XML 文件

xml - 将相邻注释转换为xs :annotations in XSDs

java - 如何在给定条件下返回由前 2 个字符组成的字符串

java - 如果我只有类的对象,如何覆盖类的行为?

java - 将包含 textview 值的文件 .txt (ArrayList) 中的所有项目设置为 ListView [Android Java]

c# - XmlDocument XSD 验证未发现错误

c# - 400 错误请求将 xml 负载发送到 WCF REST 服务

java - 将文本文件编码为 utf-8 以进行 xml 导入