首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dash XSD名称空间映射

Dash XSD名称空间映射
EN

Stack Overflow用户
提问于 2018-02-02 03:24:21
回答 1查看 379关注 0票数 0

我创建了以下XML模式

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>                                                      
<xs:schema                                                                                  
    targetNamespace="urn:mpeg:dash:schema:mpd:2011"                                         
    xmlns:xs="http://www.w3.org/2001/XMLSchema"                                             
    xmlns:cenc="urn:mpeg:cenc:2013"                                                         
    xmlns:mspr="urn:microsoft:playready"                                                    
    elementFormDefault="qualified"                                                          
>                                                                                                                                                                                        
  <xs:element name="ContentProtection">
    <xs:complexType>
        <xs:sequence>                                                     
          <xs:element name="pssh" type="xs:string"/>
          <xs:element name="pro" type="xs:string"/>
        </xs:sequence>
      <xs:attribute name="value" type="xs:string" />
      <xs:attribute name="schemeIdUri" type="xs:string" />       
    </xs:complexType>
  </xs:element>
</xs:schema>

我正在尝试理解如何进行正确的映射,以便在生成XJC剧集文件时得到一个映射,以便JAXB知道pssh XML元素属于"urn:mpeg:cenc:2013“名称空间,而pro XML元素属于"urn:microsoft:playready”名称空间。

基本上,我需要我的反序列化类以如下方式结束:

代码语言:javascript
复制
  @XmlElement(namespace = "urn:mpeg:cenc:2013", required = true)
  protected String pssh;
  @XmlElement(namespace = "urn:microsoft:playready", required = true)
  protected String pro;

你有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 05:38:05

弄清楚了..。

我必须制作我自己的cencmspr XML,并将它们作为类型导入到原始的模式中。

cenc.xsd

代码语言:javascript
复制
<xs:schema targetNamespace="urn:mpeg:cenc:2013"                                                                                                                                          
           attributeFormDefault="qualified"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:mpeg:cenc:2013">
    <xs:element name="pssh" type="xs:base64Binary"/>
</xs:schema>

mspr.xsd

代码语言:javascript
复制
<xs:schema targetNamespace="urn:microsoft:playready"                                                                                                                                     
           attributeFormDefault="qualified"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="urn:microsoft:playready">
    <xs:element name="pro" type="xs:base64Binary"/>
</xs:schema>

ContentProtection.xsd

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>                                                                                                                                                   
<xs:schema
    targetNamespace="urn:mpeg:dash:schema:mpd:2011"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:cenc="urn:mpeg:cenc:2013"
    xmlns:mspr="urn:microsoft:playready"
    elementFormDefault="qualified"
    >

  <xs:import namespace="urn:mpeg:cenc:2013" schemaLocation="cenc.xsd"/>
  <xs:import namespace="urn:microsoft:playready" schemaLocation="mspr.xsd"/>

  <xs:element name="ContentProtection">
    <xs:complexType>
        <xs:sequence>
          <xs:element ref="cenc:pssh"/>
          <xs:element ref="mspr:pro"/>
        </xs:sequence>
      <xs:attribute name="value" type="xs:string" />
      <xs:attribute name="schemeIdUri" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>    

现在JAXB可以正确地反序列化所有内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48570279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档