如何转换":"从XML到XSD架构的冒号名称?

时间:2017-04-01 01:13:21

标签: 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架构中会是什么样子

1 个答案:

答案 0 :(得分:2)

要求如何将定居名称从XML转换为XSD 表示对XML名称空间的误解。分页名称是一种通过名称空间前缀将XML组件放入名称空间的方法。您不希望 XML转换为XSD;您想要编写描述 XML的XSD。

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

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

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

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