我制作了以下XML架构
<?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元素属于&#34 ;瓮:MPEG:CENC:2013&#34;名称空间和pro
XML元素属于&#34; urn:microsoft:playready&#34;命名空间。
基本上,我需要我的反序列化类最终结果如下:
@XmlElement(namespace = "urn:mpeg:cenc:2013", required = true)
protected String pssh;
@XmlElement(namespace = "urn:microsoft:playready", required = true)
protected String pro;
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
想出来......
必须制作我自己的cenc
和mspr
XML模式,并将它们作为类型导入原始模式。
<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>
<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>
<?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正确地反序列化所有内容。