gpt4 book ai didi

xml - xsd2code 元素命名空间前缀问题

转载 作者:行者123 更新时间:2023-12-04 16:56:06 25 4
gpt4 key购买 nike

我正在使用 xsd2code VS 插件从几个 xsd 文件创建一些数据类,但我遇到了一个问题,即 XSD 中元素的命名空间前缀没有出现在生成的 XML 文件中。

XSD:

<xsd:complexType name="ProductMasterItemType">
<xsd:sequence>
<xsd:element ref="cmn:PrimaryItemCode"/>
<xsd:element ref="cmn:NewPrimaryItemCode" minOccurs="0"/>
<xsd:element ref="cmn:ProductGroupCode"/>
<xsd:element ref="cmn:ProductStatus"/>
<xsd:element ref="cmn:EffectiveDate" minOccurs="0"/>
<xsd:element ref="cmn:RecordStatus"/>
<xsd:element name="AlternateItemCodes"
type="cmn:AlternateItemCodeListType"
minOccurs="0"/>
<xsd:element name="TargetMarketList"
type="mdx:TargetMarketListType"
minOccurs="0"/>
<xsd:element name="ItemInfoList"
type="mdx:ItemInfoListType"/>
<xsd:element name="PackagingInfoList"
type="mdx:PackagingInfoListType"
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

生成的 XML:
<ProductMasterItem>

<PrimaryItemCode xmlns="urn:tracelink:mapper:sl:mdx:commontypes">
<type>INTERNAL_MATERIAL_CODE</type>
TestBOM5
</PrimaryItemCode>
<ProductGroupCode xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>100</ProductGroupCode>
<ProductStatus xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>Released</ProductStatus>
<RecordStatus xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>Active</RecordStatus>
<TargetMarketList>
<TargetMarket>
<CountryMarket
xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>US</CountryMarket>
</TargetMarket>
<DeleteTargetMarket/>
</TargetMarketList>
<ItemInfoList>
<ItemInfo>
<LanguageCode xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>EN</LanguageCode>
<ProductDescription
xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>Test BOM 5</ProductDescription>
<DrugName xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>Nameofadrug</DrugName>
<Manufacturer xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>- No Manufacturer -</Manufacturer>
<Strength xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>verystrong</Strength>
<DosageForm xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>15ml</DosageForm>
<PackageSize xmlns="urn:tracelink:mapper:sl:mdx:commontypes"
>40ml</PackageSize>
</ItemInfo>
<DeleteItemInfo/>
</ItemInfoList>

生成的 XML 没有元素的“cmn”命名空间前缀。运行插件时是否错误地生成了类?这是我需要在插件源代码中更改的内容吗?

我没有很多使用 XML 的经验,所以如果这不是足够的信息,我深表歉意。如果我遗漏了一些你需要知道的东西来帮助回答,请告诉我!提前致谢 :)

最佳答案

xsd:schema 元素有一个名为 elementFormDefault 的属性,它决定了复杂类型的本地元素是否是命名空间限定的。默认值为“unqualified”,这意味着您的元素 AlternateItemCodes、TargetMarketList 等根本不是命名空间限定的。如果将该值更改为“qualified”,则本地元素位于架构文档的目标命名空间中,即位于由 xsd:schema 的 targetNamespace 属性标识的命名空间中。

从您的示例来看,您似乎没有架构的目标 namespace ,并且您可能希望元素采用复杂类型的 namespace ;不会。

关于xml - xsd2code 元素命名空间前缀问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27662790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com