无法上传政策,元素' ClaimType'具有无效的子元素,预期:' InputValidationReference,PredicateValidationReference'

时间:2018-03-29 19:51:25

标签: azure-ad-b2c identity-experience-framework

当我尝试上传以下声明时,它失败了:

<ClaimType Id="my-claim">
    <DisplayName>My Claim</DisplayName>
    <DataType>string</DataType>
    <UserHelpText>some text</UserHelpText>
    <UserInputType>TextBox</UserInputType>
    <Restriction>
        <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
    </Restriction>
    <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="blah" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="blah" />
    </DefaultPartnerClaimTypes>
</ClaimType>

出现以下错误:

  

无法上传政策。原因:验证失败:在策略中找到1个验证错误&#34; B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS&#34;租户&#34; mytenant.onmicrosoft.com&#34;。

     

在策略&#34; B2C_1A_TRUSTFRAMEWORK_BUILDINGBLOCKS&#34;第172行第10行中找到架构验证错误。租户&#34; mytenant.onmicrosoft.com&#34;:元素&#39; ClaimType&#39;在命名空间&#39; http://schemas.microsoft.com/online/cpim/schemas/2013/06&#39;具有无效的子元素&#39; DefaultPartnerClaimTypes&#39;在命名空间&#39; http://schemas.microsoft.com/online/cpim/schemas/2013/06&#39;。

     

预期可能元素的列表:&#39; InputValidationReference,PredicateValidationReference&#39;在命名空间&#39; http://schemas.microsoft.com/online/cpim/schemas/2013/06&#39;。

如果我移动 <DefaultPartnerClaimTypes> 向上一点,则会上传政策。

<ClaimType Id="my-claim">
    <DisplayName>My Claim</DisplayName>
    <DataType>string</DataType>
    <DefaultPartnerClaimTypes>
        <Protocol Name="OAuth2" PartnerClaimType="blah" />
        <Protocol Name="OpenIdConnect" PartnerClaimType="blah" />
    </DefaultPartnerClaimTypes> 
    <UserHelpText>some text</UserHelpText>
    <UserInputType>TextBox</UserInputType>
    <Restriction>
        <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
    </Restriction>
</ClaimType>

看起来并没有&#34;对&#34;对我来说。 <ClaimType>的孩子的顺序不重要,对吧?

XSD file中是否指定了该订单? (我听说我可以配置VS Code来根据XSD验证我的XML,我需要弄清楚如何做到这一点......)

1 个答案:

答案 0 :(得分:1)

是的,the "ClaimType" type要求子元素附加在声明的序列中,如the XML schema所定义;否则它没有通过架构验证。

这也适用于此XML架构定义的所有其他类型。