Xml 无法使用XJC仅限定xsd属性

Xml 无法使用XJC仅限定xsd属性,xml,jaxb,xjc,Xml,Jaxb,Xjc,我需要像这样生成XML: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <advice_request xmlns="urn:xyz.com:bf:api:core:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <instructions> <instruction i:type="advice_instructi

我需要像这样生成XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<advice_request xmlns="urn:xyz.com:bf:api:core:v1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<instructions>
    <instruction i:type="advice_instruction_adjust">
        <method>not_set</method>
        <quantity>1</quantity>
        <site_guid>abcd123</site_guid>
    </instruction>
</instructions>
</advice_request>
但是,在编组对象时,我总是将XML作为:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<advice_request xmlns="urn:xyz.com:bf:api:core:v1">
<instructions>
    <instruction type="advice_instruction_adjust">
        <method>not_set</method>
        <quantity>1</quantity>
        <site_guid>abcd123</site_guid>
    </instruction>
</instructions>
</advice_request>

未设置
1.
abcd123
如何使用“I”限定属性?非常感谢您的帮助

我尝试过多种方法,比如导入XMLSchema实例名称空间,显式地在marshaller上设置SCHEMA_位置(尽管这对我来说可能不是一个选项),但仍然没有任何结果


提前谢谢

您应该为您的
complexType
使用层次结构
i:type=“advice\u instruction\u adjust”
表示有一个名为
advice\u instruction\u adjust
complextType

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:xyz.com:bf:api:core:v1"
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
    targetNamespace="urn:xyz.com:bf:api:core:v1"
    elementFormDefault="qualified" attributeFormDefault="qualified">  

    <xsd:element name="advice_instruction_adjust" type="advice_instruction_adjust"/>
    <xsd:complexType name="advice_instruction_adjust">
        <xsd:complexContent>
            <xsd:extension base="Instruction">
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="Instructions" type="Instructions"/>
    <xsd:complexType name="Instructions">
        <xsd:sequence>
            <xsd:element name="instruction" type="Instruction" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>


    <xsd:complexType name="Instruction" abstract="true">
        <xsd:sequence>
            <xsd:element name="method" type="xsd:string" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="quantity" type="xsd:int" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="site_guid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

这里是一个XML示例

<?xml version="1.0" encoding="UTF-8"?>
<ns1:Instructions xmlns:ns1="urn:xyz.com:bf:api:core:v1"  xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ns1:instruction i:type="advice_instruction_adjust">
        <ns1:method />
        <ns1:quantity/>
        <ns1:site_guid/>
    </ns1:instruction>
</ns1:Instructions>

您应该为您的
complexType
使用层次结构
i:type=“advice\u instruction\u adjust”
表示有一个名为
advice\u instruction\u adjust
complextType

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:xyz.com:bf:api:core:v1"
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
    targetNamespace="urn:xyz.com:bf:api:core:v1"
    elementFormDefault="qualified" attributeFormDefault="qualified">  

    <xsd:element name="advice_instruction_adjust" type="advice_instruction_adjust"/>
    <xsd:complexType name="advice_instruction_adjust">
        <xsd:complexContent>
            <xsd:extension base="Instruction">
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="Instructions" type="Instructions"/>
    <xsd:complexType name="Instructions">
        <xsd:sequence>
            <xsd:element name="instruction" type="Instruction" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>


    <xsd:complexType name="Instruction" abstract="true">
        <xsd:sequence>
            <xsd:element name="method" type="xsd:string" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="quantity" type="xsd:int" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="site_guid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

这里是一个XML示例

<?xml version="1.0" encoding="UTF-8"?>
<ns1:Instructions xmlns:ns1="urn:xyz.com:bf:api:core:v1"  xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ns1:instruction i:type="advice_instruction_adjust">
        <ns1:method />
        <ns1:quantity/>
        <ns1:site_guid/>
    </ns1:instruction>
</ns1:Instructions>


非常感谢,先生!!我对此并不熟悉,并假设“type”是一个属性。感谢您的及时回复。非常感谢,先生!!我对此并不熟悉,并假设“type”是一个属性。感谢您的及时回复。