当我尝试上传以下声明时,它失败了:
<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.!#$%&'^_`{}~-]+@[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.!#$%&'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" HelpText="..." />
</Restriction>
</ClaimType>
看起来并没有&#34;对&#34;对我来说。 <ClaimType>
的孩子的顺序不重要,对吧?
XSD file中是否指定了该订单? (我听说我可以配置VS Code来根据XSD验证我的XML,我需要弄清楚如何做到这一点......)
答案 0 :(得分:1)
是的,the "ClaimType" type要求子元素附加在声明的序列中,如the XML schema所定义;否则它没有通过架构验证。
这也适用于此XML架构定义的所有其他类型。