Я пытаюсь выполнить итерацию через файл xsd, который мне дал.итерация через xsd xml файл
У этого есть сотни этих элементов сложного типа, и я пытаюсь выполнить итерацию по каждому из них и заканчивая массивом, как показано ниже.
<xs:complexType name="UserAccessDeviceFileGetListRequest">
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
<xs:element name="accessDevice" type="AccessDevice"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
<xs:complexType name="UserAccessDeviceFileModifyRequest">
<xs:complexContent>
<xs:extension base="core:OCIRequest">
<xs:sequence>
<xs:element name="userId" type="UserId"/>
<xs:element name="accessDevice" type="AccessDevice"/>
<xs:element name="fileFormat" type="DeviceManagementFileFormat"/>
<xs:element name="uploadFile" type="FileResource"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Array
(
[UserAccessDeviceFileGetListRequest] => Array
([0] => "userId"
[1] => "accessDevice"
)
[UserAccessDeviceFileModifyRequest] = > Array
([0] => "userId"
[1] => "accessDevice"
[2] => "fileFormat"
[3] => "uploadFile"
)
)
Я попытался с помощью XmlReader и я могу получить имена в ComplexType, но не могу получить глубже, чтобы получить имена элементов ...
$xsdstring = "file.xsd";
$t = new XMLREADER();
$t->open($xsdstring);
while($t->read())
{
if ($t->name === "xs:complexType")
{
echo "-->" . $t->getAttribute('name') . "\n";
}
}
Результаты с список всех атрибутов типа complexType ...
-->UserAccessDeviceFileGetListRequest
-->UserAccessDeviceFileModifyRequest
как я могу получить детей тоже?
В вашем фрагменте кода вы только читаете xs: complexType и получаете доступ к атрибуту name. Вам также нужно получить дочерние элементы xs: sequence. – SenseException